{"version":3,"sources":["serviceWorker.js","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","OtherTasksView/OtherTasksView.jsx","OtherTasksViewLight/OtherTasksViewLight.jsx","FieldAndOtherTasks/FieldAndOtherTasks.jsx","WalkerAssignmentView/WalkerAssignmentView.jsx","TrainingViews/AllHorseWithPriceView/AllHorseDataWithPrice.js","Modal/Modal.jsx","TrainingViews/SalesData/SalesData.js","TrainingViews/RaiderAndOtherTasks/RaiderAndOtherTasks.js","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","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","index.js","TrainingViews/TrainingExtension.js","Home/HomePageExtention.js","AddEditHorse/HorsePageExtention.js","Multimedia/MultimediaMobileHelper.js"],"names":["Boolean","window","location","hostname","match","HorseCell","Component","constructor","arguments","onHorseClick","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","startUploadQueueElements","uploadQueue","isUploading","el","_uploadWthSingleRequest","file","dbxItem","finishCallback","fileName","path_display","getTypeItem","encodedFileName","encodeURIComponent","container","fullUrl","thumbUrl","TYPE_VIDEO","generateThumbnail","imageUrl","shift","request_origin","path","loadUploadQueue","startsWith","getPath","FOLDER_MULTIMEDIA","horseId","FOLDER_EXTRA_NOTES","noteOrTaskId","FOLDER_TASK","h","userid","FOLDER_GENERAL_TASK","loadList","callback","loadCallback","toLowerCase","then","response","_getListFilesForMultimedia","multimediaPage","_getListFilesForTasks","FOLDER_NOTES","_getListFilesForNotes","_getListFiles","catch","result","warn","end","formatDesh","start","addDays","db","getTasksByHorseIdForMultimedia","taskArr","horseOwnerId","items","dropbox","filesListFolder","entries","a","b","setTimeout","_buildThumbs","getNotesByHorse","notesArr","_checkAllThumbLoaded","TYPE_YOUTUBE","_getYoutubeCode","Link","_loadThumb","link","pop","Promise","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","uri","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","hide","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","fetch","TYPE_IMAGE","setCurrentSettings","setRefreshCallback","blobToBase64","_","reader","FileReader","onloadend","readAsDataURL","mimeToExtension","mimeType","localFiles","extension","base64Data","includes","savedFile","Filesystem","writeFile","directory","Directory","Cache","Share","share","title","files","dialogTitle","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","promises","fileUrls","fetchFile","all","content","generateAsync","saveAs","downloadFilesOneByOne","fetchImage","image","images","forEach","_ref","TaskXrayPage","taskId","showPage","close","onFilesSeleted","arr","uploadingFiles","startUploading","encodeURI","fileEntry","helper","status","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","shareItems","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","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","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","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","OtherTasksView","generalTasksDaily","setGeneralTasksDaily","useState","generalTasksWeekly","setGeneralTasksWeekly","generalTasksMonthly","setGeneralTasksMonthly","reorderMode","setReorderMode","setDraggable","DRAG_DROP_TRAININGS","isDragging","setIsDragging","useRef","useClickOutside","auxOrderMode","saveNewOrder","globalDataChangeHandler","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","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","Gender","Height","Result","RFBid","reportData","executeSort","attribute_index","increasing","localeCompare","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","MainView","applyFilters","myHorseArray","notMyHorseArray","addTrainingArr","stablesArray","horseType","istraining","horseTypeIds","flat","stableId","SHOW_IN_STABLE","stIndex","labelId","FILTER_LABEL","horseLabelArr","LabelIds","filteredGeneralTaskArr","otherTasks","addGeneralTaskArr","otherTasksLight","fieldAndOtherTasks","selectedDateFieldFieldAndOther","filteredTrainingsFieldFieldAndOther","selectedDateField","fieldAssignment","walkerAssignment","selectedDateWalker","filteredTrainingsWalker","raiderAndOtherTasks","selectedDateRaider","filteredTrainingsRaider","Training","mode_own_horses","salesData","mode_table_2","mode_equipment","mode_rider_2","selectedDate","mode_feed","mode_rider2","timeSinceLastHA","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","isVisible","openNotes","openPedigree","openResults","openVaccinations","openHerpesVaccinations","herpesVaccination","openEquipment","openFarrier","shoes","openMultimedia","openVeterinarian","veterinarian","openReport","report","openTeeth","openOwnerInfo","openPrice","openLog","openShare","openDelete","deleteHorse","openUnDelete","undeleteHorse","openDeleteCompletly","HorseViewPage","loadHorseData","pedigreeText","getPedigreeByHorse","pedigreeArr","mather","grmather_father","hWrite","isViewMode","extention","showPedigree","showResults","showVaccination","showHerpesVaccination","showFarrier","showMultimedia","hSeeVET","showVeterinarian","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","tableLayout","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","getVeterinarianTrainingsByHorse","vetData","veterinarianData","multimedia","getVeterinarTypeName","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","row","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","VetType","getPriceReportData","getAllOwnersByUser","getLabelsByIds","labelsData","ownerItem","l","priceActual","p","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","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","test","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","Sprinner","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","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","walkerManager","createWalkerManager","showPublicPresentation","getParameterByName","RegExp","exec","decodeURIComponent","link_id","horsePresentationUrl","DataObject","horse_item","logo_file","pedigree_json","AutoCreateTaskPage","showDewormingTypes","reportSettings","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.5fc320b9.chunk.js","sourcesContent":["// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React, { Component } from \"react\";\nimport './HorseCell.css';\n\nclass HorseCell extends Component {\n\n onHorseClick = () => {\n window.Managers.self.isOneGo = false;\n window.Managers.self.editHorseById(this.props.horse.id);\n }\n\n getBottomText = () => {\n let showUnderCode = parseInt(window.GlobalData.getItem(window.GlobalData.NAME_STABLE));\n switch (showUnderCode) {\n case 1: //box or stable number\n {\n if (window.inUseStables == 'Y') {\n if (this.props.horse.BoxName != null && this.props.horse.BoxName != \"\") {\n let box = window.DataStorage.boxesAndStables.find(s => s.IDBox == this.props.horse.BoxName);\n if (box != null)\n return box.BoxName;\n }\n } else {\n if (this.props.horse.StableId != null) {\n const stable = window.DataStorage.boxesAndStables.find(s => s.IdStable == this.props.horse.StableId);\n if (stable != null) {\n return stable.StableName;\n }\n }\n }\n }\n break;\n case 2: //stable and box\n {\n if (this.props.horse.BoxName != null && this.props.horse.BoxName != \"\") {\n let box = window.DataStorage.boxesAndStables.find(s => s.IDBox == this.props.horse.BoxName);\n if (box != null) {\n return box.StableName + \" - \" + box.BoxName;\n }\n }\n }\n break;\n case 3: //owner\n {\n if (this.props.horse.PaperOwner != null && window.Managers.ownersPaper != null) {\n let ownerNames = [];\n for (let i = 0; i < this.props.horse.PaperOwner.length; i++) {\n let o = this.props.horse.PaperOwner[i];\n if (window.Managers.ownersPaper[o] != null) {\n ownerNames.push(window.Managers.ownersPaper[o].Name);\n }\n }\n return ownerNames.join(',');\n }\n }\n break;\n case 4: //stable and owner\n {\n let text = '';\n if (this.props.horse.BoxName != null && this.props.horse.BoxName != \"\") {\n let box = window.DataStorage.boxesAndStables.find(s => s.IDBox == this.props.horse.BoxName);\n if (box != null) {\n return box.StableName;\n }\n }\n\n if (this.props.horse.PaperOwner != null && window.Managers.ownersPaper != null) {\n let ownerNames = [];\n for (let i = 0; i < this.props.horse.PaperOwner.length; i++) {\n let o = this.props.horse.PaperOwner[i];\n if (window.Managers.ownersPaper[o] != null) {\n ownerNames.push(window.Managers.ownersPaper[o].Name);\n }\n }\n if (ownerNames.length != 0) {\n if (text != '')\n text += \"-\";\n text += ownerNames.join(',');\n }\n }\n\n return text;\n }\n break;\n case 5: //horse type\n {\n if (window.DataStorage.horseTypes != null && this.props.horse.HorseType != null) {\n let hType = window.DataStorage.horseTypes.find(t => t.ID == this.props.horse.HorseType);\n if (hType != null) {\n return hType.Name;\n }\n }\n }\n break;\n }\n return \" \";\n }\n\n render() {\n const { horse } = this.props;\n const showImage = window.GlobalData.getItem(window.GlobalData.SHOW_HORSELOGO) == 1;\n const showNotes = window.GlobalData.getItem(window.GlobalData.SHOW_NOTAT_HORSE) == 1;\n const showStar = window.GlobalData.getItem(window.GlobalData.SHOW_NOTAT_HORSE) == '*';\n\n const horseLogo = horse.LogoFile != null ? horse.LogoFile.split('.jpg')[0] + '-thumb.jpg' : '';\n const logoImage = horse.LogoFile != null ? `url('${window.DataGate.baseurl + horseLogo}')` : `url('img/horselogo.png')`;\n const bottomText = this.getBottomText();\n\n let horseName = horse.name;\n if (showStar && horse.notes) {\n horseName = '*' + horseName;\n }\n\n return (\n
\n {showImage &&\n
\n
\n }\n
\n
{showNotes ? horse.notes : \" \"}
\n
{horseName}
\n
{bottomText}
\n
\n
\n );\n }\n}\n\nexport default HorseCell;","export default class TrainingCellMap {\n static ORDER_BY_ALPHABETIC = 1;\n static ORDER_BY_TIME_ALPHABETIC = 2;\n static ORDER_BY_TIME_TOP_COMPACT = 3;\n static ORDER_BY_TIME_TOP = 4;\n static ORDER_BY_ALPHABETIC_COMPACT = 5;\n\n constructor() {\n this.map = {};\n this.maxColumnCompactMap = {};\n this.orderBy = this.ORDER_BY_ALPHABETIC;\n }\n\n refreshMap(dates, trainingArray) {\n this.map = {};\n this.maxColumnCompactMap = {};\n\n this.myTrainingTypes = window.DataStorage.trainTypes.filter(t => t.owner == window.myid);\n this.myTrainingTypes = this.myTrainingTypes.sort(function (t1, t2) {\n return t1.orderC - t2.orderC;\n });\n\n this.orderBy = parseInt(window.GlobalData.getItem(window.GlobalData.ORDER_BY));\n switch (this.orderBy) {\n case TrainingCellMap.ORDER_BY_ALPHABETIC:\n case TrainingCellMap.ORDER_BY_ALPHABETIC_COMPACT:\n {\n\n\n for (let dateIndex = 0; dateIndex < dates.length; dateIndex++) {\n\n //build columns for each day\n let columns = [];\n let taskArray = trainingArray.filter(t => t.starttime == dates[dateIndex]);\n for (let i = 0; i < taskArray.length; i++) {\n let task = taskArray[i];\n let column = columns.find(c => c.shortname == task.shortname);\n if (column == null) {\n column = {\n shortname: task.shortname,\n typeIds: [task.type]\n };\n columns.push(column);\n } else {\n if (column.typeIds.indexOf(task.type) == -1) {\n column.typeIds.push(task.type);\n }\n }\n }\n\n //sort columns\n columns = columns.sort(this.orderComparatorByTrainingType);\n\n this.map[dates[dateIndex]] = {\n date: dates[dateIndex],\n columns: columns\n };\n }\n }\n break;\n\n case TrainingCellMap.ORDER_BY_TIME_TOP:\n case TrainingCellMap.ORDER_BY_TIME_ALPHABETIC:\n case TrainingCellMap.ORDER_BY_TIME_TOP_COMPACT:\n {\n for (let dateIndex = 0; dateIndex < dates.length; dateIndex++) {\n\n //build columns for each day\n let columns = [];\n let columnsByType = [];\n let taskArray = trainingArray.filter(t => t.starttime == dates[dateIndex]);\n for (let i = 0; i < taskArray.length; i++) {\n let task = taskArray[i];\n if (task.TimeOfDay != null && task.TimeOfDay != \"\") {\n let column = columns.find(c => c.TimeOfDay == task.TimeOfDay);\n if (column == null) {\n columns.push({\n TimeOfDay: task.TimeOfDay,\n shortname: task.shortname,\n isTimeColumn: true\n });\n } else {\n }\n } else {\n let column = columnsByType.find(c => c.shortname == task.shortname);\n if (column == null) {\n columnsByType.push({\n shortname: task.shortname,\n isTimeColumn: false\n });\n }\n }\n }\n\n //sort columns\n columns = columns.sort(function (c1, c2) {\n return (c1.TimeOfDay > c2.TimeOfDay) ? 1 : -1;\n });\n\n columnsByType = columnsByType.sort(this.orderComparatorByTrainingType);\n\n //add columns without time\n columns = [...columns, ...columnsByType];\n\n this.map[dates[dateIndex]] = {\n date: dates[dateIndex],\n columns: columns\n };\n }\n }\n break;\n }\n\n\n if (this.orderBy == TrainingCellMap.ORDER_BY_ALPHABETIC_COMPACT) {\n for (let dateIndex = 0; dateIndex < dates.length; dateIndex++) { //calc columns for each day\n let taskArray = trainingArray.filter(t => t.starttime == dates[dateIndex]);\n let byHorseCols = {};\n let trainerCols = {};\n for (let i = 0; i < taskArray.length; i++) {\n let task = taskArray[i];\n if (byHorseCols[task.horseid] == null) {\n byHorseCols[task.horseid] = { snames: [task.shortname] };\n } else {\n if (byHorseCols[task.horseid].snames.indexOf(task.shortname) == -1) {\n byHorseCols[task.horseid].snames.push(task.shortname);\n }\n }\n }\n\n if (window.training.mode == window.TrainingManager.riderStatic || window.training.mode == window.TrainingManager.riderStaticAndEquipment) {\n for (let i in byHorseCols) {\n let horse = window.DataStorage.getAllHorses().find(j => j.id == i);\n if (horse) {\n if (trainerCols[horse.trainer]) {\n if (trainerCols[horse.trainer].columns < byHorseCols[i].snames.length)\n trainerCols[horse.trainer].columns = byHorseCols[i].snames.length;\n }\n else {\n trainerCols[horse.trainer] = { columns: byHorseCols[i].snames.length };\n }\n }\n }\n this.maxColumnCompactMap[dates[dateIndex]] = trainerCols;\n } else {\n let maxColumnCount = Math.max(...Object.values(byHorseCols).map(c => c.snames.length), 1);\n this.maxColumnCompactMap[dates[dateIndex]] = maxColumnCount;\n }\n }\n }\n\n if (this.orderBy == TrainingCellMap.ORDER_BY_TIME_TOP_COMPACT) {\n for (let dateIndex = 0; dateIndex < dates.length; dateIndex++) { //calc columns for each day\n let taskArray = trainingArray.filter(t => t.starttime == dates[dateIndex]);\n let byHorseCols = {};\n let trainerCols = {};\n for (let i = 0; i < taskArray.length; i++) {\n let task = taskArray[i];\n let colName = (task.TimeOfDay != null && task.TimeOfDay != \"\") ? task.TimeOfDay : task.shortname;\n if (byHorseCols[task.horseid] == null) {\n byHorseCols[task.horseid] = [colName];\n } else {\n if (byHorseCols[task.horseid].indexOf(colName) == -1) {\n byHorseCols[task.horseid].push(colName);\n }\n }\n }\n\n if (window.training.mode == window.TrainingManager.riderStatic || window.training.mode == window.TrainingManager.riderStaticAndEquipment) {\n for (let i in byHorseCols) {\n let horse = window.DataStorage.getAllHorses().find(j => j.id == i);\n if (horse) {\n if (trainerCols[horse.trainer]) {\n if (trainerCols[horse.trainer].columns < byHorseCols[i].length)\n trainerCols[horse.trainer].columns = byHorseCols[i].length;\n }\n else {\n trainerCols[horse.trainer] = { columns: byHorseCols[i].length };\n }\n }\n }\n this.maxColumnCompactMap[dates[dateIndex]] = trainerCols;\n } else {\n let maxColumnCount = Math.max(...Object.values(byHorseCols).map(c => c.length), 1);\n this.maxColumnCompactMap[dates[dateIndex]] = maxColumnCount;\n }\n }\n }\n }\n\n orderComparatorByTrainingType = (c1, c2) => {\n let t1 = this.myTrainingTypes.find(t => t.shortname == c1.shortname);\n let t2 = this.myTrainingTypes.find(t => t.shortname == c2.shortname);\n if (t1 != null && t2 != null) {\n return (t1.orderC > t2.orderC) ? 1 : -1;\n }\n return (c1.shortname > c2.shortname) ? 1 : -1;\n }\n\n sortHorsesBySelectedDate = (horseArr, orderDate, getTrainingsForDay) => {\n switch (this.orderBy) {\n case TrainingCellMap.ORDER_BY_ALPHABETIC:\n case TrainingCellMap.ORDER_BY_ALPHABETIC_COMPACT:\n horseArr = horseArr.sort((h1, h2) => {\n let trainingsH1 = getTrainingsForDay(h1, orderDate);\n let trainingsH2 = getTrainingsForDay(h2, orderDate);\n let trainingColums = this.map[orderDate].columns;\n for (let ci = 0; ci < trainingColums.length; ci++) {\n let ct1 = trainingsH1.find(t => t.shortname == trainingColums[ci].shortname);\n let ct2 = trainingsH2.find(t => t.shortname == trainingColums[ci].shortname);\n if (ct1 != null && ct2 == null)\n return -1;\n if (ct1 == null && ct2 != null)\n return 1;\n }\n return 0;\n });\n break;\n\n case TrainingCellMap.ORDER_BY_TIME_TOP:\n case TrainingCellMap.ORDER_BY_TIME_ALPHABETIC:\n case TrainingCellMap.ORDER_BY_TIME_TOP_COMPACT:\n horseArr = horseArr.sort((h1, h2) => {\n let trainingsH1 = getTrainingsForDay(h1, orderDate);\n let trainingsH2 = getTrainingsForDay(h2, orderDate);\n let trainingColums = this.map[orderDate].columns;\n for (let ci = 0; ci < trainingColums.length; ci++) {\n if (trainingColums[ci].isTimeColumn) {\n let ct1 = trainingsH1.find(t => t.TimeOfDay == trainingColums[ci].TimeOfDay);\n let ct2 = trainingsH2.find(t => t.TimeOfDay == trainingColums[ci].TimeOfDay);\n if (ct1 != null && ct2 == null)\n return -1;\n if (ct1 == null && ct2 != null)\n return 1;\n\n //if both have training, then order by type\n if (ct1 != null && ct2 != null) {\n let myttype1 = this.myTrainingTypes.find(type => type.id == ct1.type);\n let myttype2 = this.myTrainingTypes.find(type => type.id == ct2.type);\n if (myttype1 != null && myttype2 != null)\n return myttype1.OrderC - myttype2.OrderC;\n }\n } else {\n let ct1 = trainingsH1.find(t => t.shortname == trainingColums[ci].shortname);\n let ct2 = trainingsH2.find(t => t.shortname == trainingColums[ci].shortname);\n if (ct1 != null && ct2 == null)\n return -1;\n if (ct1 == null && ct2 != null)\n return 1;\n }\n }\n return trainingsH2.length - trainingsH1.length;\n });\n break;\n }\n\n return horseArr;\n }\n}","import React, { Component } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./CopyTaskPopup.css\";\n\nclass CopyTaskV2 extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n task: null,\n selectFreqOptions: [],\n frequencyId: 0,\n isCopyOnSunday: false,\n isCopyOnMonday: false,\n isCopyOnTuesday: false,\n isCopyOnWednesday: false,\n isCopyOnThursday: false,\n isCopyOnFriday: false,\n isCopyOnSaterday: false,\n };\n }\n\n componentDidMount = () => {\n this.loadData();\n };\n\n loadData = () => {\n console.log(this.props.trainingItem);\n var daysToCopy = this.props.trainingItem.DaysToCopy;\n if (daysToCopy != null) this.setDaysToCopyFromProps(daysToCopy);\n\n this.setState({\n selectFreqOptions: [\n {\n id: 0,\n name: \"For ever\",\n },\n {\n id: 1,\n name: window.lang.week1,\n },\n {\n id: 2,\n name: window.lang.week2,\n },\n {\n id: 3,\n name: window.lang.week3,\n },\n {\n id: 4,\n name: window.lang.week4,\n },\n {\n id: 5,\n name: window.lang.week5,\n },\n {\n id: 6,\n name: window.lang.week6,\n },\n {\n id: 7,\n name: window.lang.week7,\n },\n {\n id: 8,\n name: window.lang.week8,\n },\n {\n id: 9,\n name: window.lang.week9,\n },\n {\n id: 10,\n name: window.lang.week10,\n },\n {\n id: 11,\n name: window.lang.week11,\n },\n {\n id: 12,\n name: window.lang.week12,\n },\n ],\n frequencyId: this.props.trainingItem.CopyDuration,\n task: this.props.trainingItem,\n });\n };\n\n setDaysToCopyFromProps = (daysToCopy) => {\n daysToCopy = daysToCopy.substring(0, daysToCopy.length - 1);\n var daysToCopyArr = daysToCopy.split(\"/\");\n for (const i in daysToCopyArr) {\n switch (daysToCopyArr[i]) {\n case \"0\":\n this.state.isCopyOnSunday = true;\n break;\n case \"1\":\n this.state.isCopyOnMonday = true;\n break;\n case \"2\":\n this.state.isCopyOnTuesday = true;\n break;\n case \"3\":\n this.state.isCopyOnWednesday = true;\n break;\n case \"4\":\n this.state.isCopyOnThursday = true;\n break;\n case \"5\":\n this.state.isCopyOnFriday = true;\n break;\n case \"6\":\n this.state.isCopyOnSaterday = true;\n break;\n }\n }\n };\n\n onFrequencyChange = (e) => {\n this.setState({\n frequencyId: parseInt(e.target.value),\n });\n };\n\n onCheckboxClick = (e) => {\n this.setState({\n [e.target.dataset.date]: e.target.checked,\n });\n };\n\n onOkClick = () => {\n if (this.isCopyRuning) return;\n this.isCopyRuning = true;\n\n let daysToCopy = \"\";\n if (this.state.isCopyOnSunday) daysToCopy += \"0/\";\n if (this.state.isCopyOnMonday) daysToCopy += \"1/\";\n if (this.state.isCopyOnTuesday) daysToCopy += \"2/\";\n if (this.state.isCopyOnWednesday) daysToCopy += \"3/\";\n if (this.state.isCopyOnThursday) daysToCopy += \"4/\";\n if (this.state.isCopyOnFriday) daysToCopy += \"5/\";\n if (this.state.isCopyOnSaterday) daysToCopy += \"6/\";\n\n if (this.state.frequencyId == null) this.state.frequencyId = 0;\n\n let trainingItem = this.state.task;\n trainingItem.CopyDuration = this.state.frequencyId;\n trainingItem.DaysToCopy = daysToCopy;\n trainingItem.GroupId = trainingItem.id;\n trainingItem.TrainingFlag = window.DataStorage.TrainingFlagUpdate;\n window.DataStorage.addTraining(trainingItem);\n\n window.training.refresh({ showSpinner: true });\n window.DataGate.copyTraining(\n this.state.task.id,\n this.state.frequencyId,\n daysToCopy,\n (code, data) => {\n //window.training.refresh({ showSpinner: false });\n this.isCopyRuning = false;\n this.onCancelClick();\n if (this.props.doneCallback) this.props.doneCallback();\n window.training.refresh();\n }\n );\n };\n\n onCancelClick = () => {\n ReactDOM.unmountComponentAtNode(document.getElementById(\"tsWeekDivReact\"));\n };\n\n onRemoveRepetitionClick = () => {\n window.training.refresh({ showSpinner: true });\n window.DataGate.deleteCopyTraining(this.state.task.id, (code, data) => {\n this.onCancelClick();\n if (this.props.doneCallback) this.props.doneCallback();\n window.training.refresh();\n });\n };\n\n render = () => {\n const {\n selectFreqOptions,\n frequencyId,\n isCopyOnSunday,\n isCopyOnMonday,\n isCopyOnTuesday,\n isCopyOnWednesday,\n isCopyOnThursday,\n isCopyOnFriday,\n isCopyOnSaterday,\n } = this.state;\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n {window.lang.repeatForEach}\n
\n \n {selectFreqOptions.map((currentElement, index) => (\n \n {currentElement.name}\n \n ))}\n \n
\n
\n
\n
\n \n \n {window.lang.daysNames[0]}\n \n
\n
\n \n \n \n {window.lang.daysNames[1]}\n \n \n \n \n \n \n {window.lang.daysNames[2]}\n \n \n \n \n \n \n {window.lang.daysNames[3]}\n \n \n
\n
\n \n \n {window.lang.daysNames[4]}\n \n
\n
\n \n \n \n {window.lang.daysNames[5]}\n \n \n \n \n \n \n {window.lang.daysNames[6]}\n \n \n
\n
\n \n {window.lang.ok}\n \n \n {window.lang.cancel2}\n \n \n {window.lang.removeRepetition}\n \n
\n
\n
\n );\n };\n}\n\nexport default class CopyTaskWindow {\n showWindow(trainingItem, doneCallback) {\n ReactDOM.render(\n ,\n document.getElementById(\"tsWeekDivReact\")\n );\n }\n}\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport './ReminderSelectWindow.css';\n\nexport default class ReminderSelect extends Component {\n constructor() {\n super();\n\n this.state = {\n reminderList: [\n { id: 0, name: window.lang.reminder_No },\n { id: 1, name: window.lang.reminder_SameDay },\n { id: 2, name: window.lang.reminder_1_dayBefore },\n { id: 3, name: window.lang.reminder_2_dayBefore },\n { id: 4, name: window.lang.reminder_3_dayBefore },\n { id: 5, name: window.lang.reminder_4_dayBefore },\n { id: 6, name: window.lang.reminder_5_dayBefore },\n { id: 7, name: window.lang.reminder_6_dayBefore },\n { id: 8, name: window.lang.reminder_7_dayBefore }\n ]\n };\n }\n\n onItemClick = (item) => {\n this.props.onSelect(item.id);\n }\n\n render() {\n const { reminderList } = this.state;\n return (\n
\n \n
\n );\n }\n}","import { Capacitor } from \"@capacitor/core\";\nimport React, { Component } from \"react\";\n\nexport default class SelectTimePopup extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n timeValue: props.value,\n isCustomTime: false,\n };\n }\n\n componentDidMount = () => {\n let times = window.DataStorage.allUserTimeOfDay;\n if (times.findIndex((i) => i.ShortName == this.state.timeValue) == -1)\n this.setState({\n isCustomTime: true,\n });\n };\n\n onTimeSelect = (e) => {\n this.setState({\n timeValue: e.target.value,\n });\n };\n\n onCustomTimeChanged = (e) => {\n this.setState({\n isCustomTime: e.target.checked,\n });\n };\n\n onOkClick = () => {\n this.props.onTimeChange(this.state.timeValue);\n };\n getCurrentTime() {\n const now = new Date();\n let hours = now.getHours();\n let minutes = now.getMinutes();\n\n hours = hours.toString().padStart(2, \"0\");\n minutes = minutes.toString().padStart(2, \"0\");\n\n return hours + \":\" + minutes;\n }\n onSetCurrentTimeClick = () => {\n this.props.onTimeChange(this.getCurrentTime());\n };\n\n render() {\n const times = window.DataStorage.allUserTimeOfDay;\n return (\n
\n
\n {!this.state.isCustomTime ? (\n \n {times.map((t) => (\n \n ))}\n \n ) : (\n
\n \n {Capacitor.getPlatform() == \"ios\" &&\n this.state.timeValue != \"\" && (\n {\n this.setState({\n timeValue: \"\",\n });\n }}\n >\n x\n
\n )}\n
\n )}\n
\n
\n \n \n
\n \n {window.lang.setCurrentTime}\n \n
\n \n {window.lang.ok}\n \n \n {window.lang.cancel}\n \n
\n \n );\n }\n}\n","import { Directory, Filesystem } from \"@capacitor/filesystem\";\nimport MultimediaMobileHelper from \"./MultimediaMobileHelper\";\nimport { Share } from \"@capacitor/share\";\nimport JSZip, { files } from \"jszip\";\nimport { FileChunkReader } from \"capacitor-file-chunk-reader\";\nimport { random } from \"lodash\";\nimport { Capacitor } from \"@capacitor/core\";\nimport { BlobServiceClient } from \"@azure/storage-blob\";\nimport { saveAs } from \"file-saver\";\nimport { VideoEditor } from \"@whiteguru/capacitor-plugin-video-editor\";\nexport default class MultimediaHelper {\n static DropboxToken =\n \"HqmkA9nKm0wAAAAAAADLWpj-stRJN_4JyfLxtRoZD-Rzpjyz9nnuI_CMbkRkOoSk\";\n\n static sasToken =\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\";\n static accountName = \"eqappdata\";\n static FOLDER_MULTIMEDIA = \"multimedia\";\n static FOLDER_RESULT = \"result\";\n static FOLDER_NOTES = \"notes\";\n static FOLDER_EXTRA_NOTES = \"textnote\";\n static FOLDER_TASK = \"task\";\n static FOLDER_GENERAL_TASK = \"generalTask\";\n static FOLDER_OTHER = \"other\";\n\n static TYPE_IMAGE = 1;\n static TYPE_VIDEO = 2;\n static TYPE_YOUTUBE = 3;\n static TYPE_PDF = 4;\n\n static downloadZip = async (fileUrls) => {\n const zip = new JSZip();\n\n const fetchFile = async (url) => {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to fetch ${url}`);\n }\n return response.blob();\n };\n\n const promises = fileUrls.map(async (item) => {\n const blob = await fetchFile(item.url);\n const fileName = item.name;\n zip.file(fileName, blob);\n });\n\n try {\n await Promise.all(promises);\n const content = await zip.generateAsync({ type: \"blob\" });\n saveAs(content, \"files.zip\");\n } catch (error) {\n console.error(\"Error creating zip file:\", error);\n }\n };\n static downloadFilesOneByOne = async (images) => {\n const fetchImage = async (image) => {\n const response = await fetch(image.url);\n if (!response.ok) {\n throw new Error(`Failed to fetch ${image.url}`);\n }\n const blob = await response.blob();\n return { blob, name: image.name }; // Extract the file name from the URL\n };\n\n try {\n const promises = images.map(fetchImage);\n const fetchedImages = await Promise.all(promises);\n\n fetchedImages.forEach(({ blob, name }) => {\n saveAs(blob, name);\n });\n } catch (error) {\n console.error(\"Error downloading images:\", error);\n }\n };\n\n constructor() {\n // queue elements to be uploaded\n this.uploadQueue = [];\n this.isUploading = false;\n this.urisToShare = [];\n this.id = random(true) * 50;\n\n this.dropbox = new window.Dropbox.Dropbox({\n accessToken: MultimediaHelper.DropboxToken,\n });\n\n if (!MultimediaHelper.sasToken || !MultimediaHelper.accountName) {\n console.error(\"Azure Storage SAS token or account name not found\");\n return;\n }\n\n this.blobServiceClient = new BlobServiceClient(\n `https://${MultimediaHelper.accountName}.blob.core.windows.net?${MultimediaHelper.sasToken}`\n );\n }\n\n handleCreateContainer = async (containerName) => {\n try {\n this.containerClient =\n this.blobServiceClient.getContainerClient(containerName);\n await this.containerClient.create();\n console.log(`Container \"${containerName}\" created successfully.`);\n } catch (error) {\n console.error(`Error creating container: ${error.message}`);\n }\n };\n\n listBlobsWithProperties = async (containerName) => {\n const containerClient =\n this.blobServiceClient.getContainerClient(containerName);\n\n let blobs = [];\n for await (const blob of containerClient.listBlobsFlat()) {\n const blockBlobClient = containerClient.getBlockBlobClient(blob.name);\n const properties = await blockBlobClient.getProperties();\n\n const url = `https://${MultimediaHelper.accountName}.blob.core.windows.net/${containerName}/${blob.name}?${MultimediaHelper.sasToken}`;\n blobs.push({\n name: blob.name,\n size: properties.contentLength,\n lastModifiedDate: properties.lastModified,\n url: url,\n });\n }\n\n return blobs;\n };\n\n listFilesInContainer = async (containerName) => {\n this.containerClient =\n this.blobServiceClient.getContainerClient(containerName);\n let blobItems = [];\n for await (const blob of this.containerClient.listBlobsFlat()) {\n if (blob.name.length > 1024) {\n throw new Error(\n `Blob name \"${blob.name}\" exceeds the maximum length of 1024 characters.`\n );\n }\n const blobUrl = this.containerClient.getBlobClient(blob.name).url;\n blobItems.push({ name: blob.name, url: blobUrl });\n }\n return blobItems;\n };\n\n /**\n * Function to remove an element from the queue upload queue.\n *\n * @param name The name of the file to be removed\n * @param target_origin The location.href of the file to be removed.\n */\n\n removeElementFromUploadQueue(name, target_origin) {\n this.uploadQueue = this.uploadQueue.filter(\n (el) => el.fileName != name || el.request_origin != target_origin\n );\n }\n\n /**\n * Function called when Android/IOS wrappers finish uploading one photo from the upload queueu\n * @param file_name the name of the file finished uploading\n * @param target_request the location.href of the upload item\n * @param dbxPath the path_display of the uplaod element, used to reconstruct the element from database\n */\n onUploadDoneCallback(file_name, target_request, dbxPath) {\n let x = this.uploadQueue.find(\n (el) => el.fileName == file_name && el.request_origin == target_request\n );\n if (!x) return;\n let dbxItem = { path_display: dbxPath, name: file_name };\n console.log(\"OK\");\n dbxItem.type = MultimediaHelper.getTypeItem(dbxItem.fileName);\n\n const encodedFileName = encodeURIComponent(dbxItem.fileName);\n const url = `https://${MultimediaHelper.accountName}.blob.core.windows.net/${dbxItem.container}/${encodedFileName}?${MultimediaHelper.sasToken}`;\n\n dbxItem.path_display = dbxItem.fileName;\n dbxItem.fullUrl = url;\n dbxItem.thumbUrl = url;\n dbxItem.imageUrl = url;\n console.log(dbxItem);\n this.removeElementFromUploadQueue(file_name, target_request);\n this.finishCallback(target_request, file_name, dbxItem);\n }\n onUploadProgressCallback(file_name, percent, target_request) {\n let x = this.uploadQueue.find(\n (el) => el.fileName == file_name && el.request_origin == target_request\n );\n x.file.progress = percent;\n this.refreshUploadQueue();\n }\n\n /**\n * A function that adds elements\n * @description A callback function used by xamarin to add data to the uploadQueue.\n */\n\n async addDataToUploadQueue(fileName, imageUrl, isImage, target_origin) {\n const res = await fetch(imageUrl);\n const blob = await res.blob();\n this.uploadQueue.push({\n request_origin: target_origin,\n path: this.path,\n fileName: fileName,\n file: {\n actual_image: new File([blob], fileName, { type: \"image/png\" }),\n fileName: fileName,\n imageUrl: imageUrl,\n progress: 0,\n type:\n isImage == \"True\"\n ? MultimediaHelper.TYPE_IMAGE\n : MultimediaHelper.TYPE_VIDEO,\n },\n });\n this.refreshUploadQueue();\n // if (this.isUploading) return;\n // this.isUploading = true;\n // this.startUploadQueueElements();\n }\n /**\n * Setter for the current multimedia session.\n */\n setCurrentSettings(\n type,\n horseId,\n userId,\n multimediaPage,\n noteOrTaskId,\n refreshUploadQueue\n ) {\n this.type = type;\n this.horseId = horseId;\n this.userId = userId;\n this.multimediaPage = multimediaPage;\n this.noteOrTaskId = noteOrTaskId;\n this.dropbox = new window.Dropbox.Dropbox({\n accessToken: MultimediaHelper.DropboxToken,\n });\n this.refreshUploadQueue = refreshUploadQueue;\n // queue elements to be uploaded\n }\n setRefreshCallback(callback) {\n this.refreshUploadQueue = callback;\n }\n\n blobToBase64(blob) {\n return new Promise((resolve, _) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result);\n reader.readAsDataURL(blob);\n });\n }\n\n mimeToExtension(mimeType) {\n const mimeMap = {\n \"image/jpeg\": \"jpg\",\n \"image/png\": \"png\",\n \"image/gif\": \"gif\",\n \"application/pdf\": \"pdf\",\n // Add other mappings as needed\n };\n return mimeMap[mimeType] || \"\"; // Return empty string if not found\n }\n\n async shareItems(items, text) {\n try {\n const localFiles = [];\n\n for (const item of items) {\n const { url } = item;\n const response = await fetch(url);\n const blob = await response.blob();\n const mimeType = blob.type;\n\n const extension = mimeType.split(\"/\")[1]; // Extract extension from MIME type\n const base64Data = await this.blobToBase64(blob);\n\n let fileName = item.name;\n if (!fileName.includes(\".\")) {\n fileName += `.${extension}`;\n }\n\n // Write the file to the Filesystem\n const savedFile = await Filesystem.writeFile({\n path: fileName,\n data: base64Data,\n directory: Directory.Cache,\n });\n\n localFiles.push(savedFile.uri);\n }\n\n await Share.share({\n title: \"Share files\",\n text: text || \"\",\n files: localFiles,\n dialogTitle: \"Share with\",\n });\n } catch (error) {\n console.error(\"Error sharing images:\", error);\n }\n }\n\n /**\n * Setter for the callback function\n * @param {Function<>()} finishCallback The new finish callback function\n */\n setFinishCallback(finishCallback) {\n this.finishCallback = finishCallback;\n }\n\n /**\n * Setter for the progress callback function\n * @param {Function<>()} progressCallback The new progress callback function\n */\n setProgressCallback(progressCallback) {\n this.progressCallback = progressCallback;\n }\n\n /**\n * A function that adds files to the upload queue.\n *\n * @param {string} request_origin The location.href from which the files were added.\n * @param {Array} files List of files to be added to the upload queue.\n */\n addToUploadQueue(request_origin, files, static_path) {\n console.log(this.path);\n this.uploadQueue.push(\n ...files.map((file) => {\n return { file, request_origin, path: static_path ?? this.path };\n })\n );\n if (this.isUploading) return;\n this.isUploading = true;\n this.startUploadQueueElements();\n }\n\n /**\n * A function that takes all the elements from the queue, uploads them and calls the respective callbacks.\n */\n startUploadQueueElements = async () => {\n if (this.uploadQueue.length <= 0) {\n this.isUploading = false;\n return;\n }\n\n let el = { ...this.uploadQueue[0] };\n\n this._uploadWthSingleRequest(\n el.file,\n async (dbxItem) => {\n if (dbxItem == null) {\n this.finishCallback(el.file.fileName, null);\n } else {\n console.log(dbxItem.fileName);\n dbxItem.path_display = dbxItem.fileName;\n dbxItem.type = MultimediaHelper.getTypeItem(dbxItem);\n\n // const url = dbxItem.url;\n const encodedFileName = encodeURIComponent(dbxItem.fileName);\n const url = `https://${MultimediaHelper.accountName}.blob.core.windows.net/${dbxItem.container}/${encodedFileName}?${MultimediaHelper.sasToken}`;\n\n dbxItem.path_display = dbxItem.fileName;\n dbxItem.fullUrl = url;\n dbxItem.thumbUrl =\n MultimediaHelper.getTypeItem(dbxItem) ===\n MultimediaHelper.TYPE_VIDEO\n ? await this.generateThumbnail(url)\n : url;\n dbxItem.imageUrl = url;\n dbxItem.name = dbxItem.fileName;\n this.uploadQueue.shift();\n this.finishCallback(el.request_origin, dbxItem.fileName, dbxItem);\n this.startUploadQueueElements();\n // this.dropbox\n // .filesGetThumbnail({\n // path: dbxItem.path_display,\n // size: \"w480h320\",\n // })\n // .then((response) => {\n // let url = window.URL.createObjectURL(response.fileBlob);\n // dbxItem.thumbUrl = url;\n\n // this.uploadQueue.shift();\n // this.finishCallback(el.request_origin, el.file.fileName, dbxItem);\n // this.startUploadQueueElements();\n // })\n // .catch((error) => {\n // dbxItem.thumbUrl = \"\";\n\n // this.uploadQueue.shift();\n // this.finishCallback(el.request_origin, el.file.fileName, dbxItem);\n // this.startUploadQueueElements();\n // });\n }\n },\n el.request_origin,\n el.path\n );\n };\n\n /**\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.\n * @param {string} request_origin The location.href of the page that requested the upload list.\n *\n * @returns a list of items from upload list that match the requester's origin.\n */\n loadUploadQueue = (request_origin) => {\n return this.uploadQueue.filter((item) =>\n item.request_origin.startsWith(request_origin)\n );\n };\n\n getPath = (type) => {\n switch (type) {\n case MultimediaHelper.FOLDER_MULTIMEDIA:\n return `${MultimediaHelper.FOLDER_MULTIMEDIA}${this.horseId}`;\n case MultimediaHelper.FOLDER_EXTRA_NOTES:\n return `${this.type}_${this.noteOrTaskId}`;\n case MultimediaHelper.FOLDER_TASK:\n let horse = window.DataStorage.getAllHorses().find(\n (h) => h.id == this.horseId\n );\n return `${this.type}=${horse.userid}-${this.noteOrTaskId}`;\n\n case MultimediaHelper.FOLDER_GENERAL_TASK:\n return `${this.type}=${this.noteOrTaskId}`;\n\n default:\n return `${this.type}-${this.horseId}`;\n }\n };\n\n loadList = (request_origin, callback, type) => {\n this.loadCallback = callback;\n this.path = this.getPath(type).toLowerCase();\n this.handleCreateContainer(this.path)\n .then((response) => {\n if (this.type == MultimediaHelper.FOLDER_MULTIMEDIA) {\n this._getListFilesForMultimedia();\n } else if (\n this.type == MultimediaHelper.FOLDER_TASK &&\n this.multimediaPage\n ) {\n this._getListFilesForTasks();\n } else if (\n this.type == MultimediaHelper.FOLDER_NOTES &&\n this.multimediaPage\n ) {\n this._getListFilesForNotes();\n } else {\n this._getListFiles();\n }\n })\n .catch((error) => {\n if (this.type == MultimediaHelper.FOLDER_MULTIMEDIA) {\n this._getListFilesForMultimedia();\n } else if (\n this.type == MultimediaHelper.FOLDER_TASK &&\n this.multimediaPage\n ) {\n this._getListFilesForTasks();\n } else if (\n this.type == MultimediaHelper.FOLDER_NOTES &&\n this.multimediaPage\n ) {\n this._getListFilesForNotes();\n } else {\n this._getListFiles();\n }\n });\n };\n generateThumbnail(videoUrl, seekTime = 1) {\n return new Promise((resolve, reject) => {\n if (Capacitor.getPlatform() != \"web\") {\n FileChunkReader.generateThumbnail({\n videoUrl,\n }).then((result) => {\n resolve(result.thumbnail);\n });\n return;\n }\n\n const video = document.createElement(\"video\");\n video.crossOrigin = \"anonymous\"; // Ensure the video is fetched with CORS headers\n\n video.src = videoUrl;\n video.preload = \"metadata\";\n video.currentTime = 0.001;\n\n video.addEventListener(\"seeked\", () => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n const context = canvas.getContext(\"2d\");\n\n // Draw the video frame to the canvas\n context.drawImage(video, 0, 0, canvas.width, canvas.height);\n\n // Get the image data URL from the canvas\n const imageUrl = canvas.toDataURL(\"image/png\");\n resolve(imageUrl);\n });\n\n video.addEventListener(\"error\", (error) => {\n resolve(videoUrl);\n // reject(`Error loading video: ${error.message}`);\n });\n });\n }\n\n _getListFiles = () => {\n this.listFilesInContainer(this.path)\n .then(async (response) => {\n let result = [];\n for (let el of response) {\n // alert(JSON.stringify(el));\n el.path_display = el.name;\n el.fullUrl = el.url;\n el.thumbUrl =\n MultimediaHelper.getTypeItem(el) === MultimediaHelper.TYPE_VIDEO // Capacitor.getPlatform() === \"web\"\n ? await this.generateThumbnail(\n // \"http://localhost:8000/yt5s.io-Cargo%20-%20Ielele%20(Official%20Audio).mp4\"\n el.url\n )\n : el.url;\n el.imageUrl = el.url;\n el.type = MultimediaHelper.getTypeItem(el);\n result.push(el);\n }\n this.loadCallback(result);\n return;\n if (!response.entries) return;\n let items = [];\n for (let i = 0; i < response.entries.length; i++) {\n let item = response.entries[i];\n item.type = MultimediaHelper.getTypeItem(item);\n items.push(item);\n }\n items = items.sort(function (a, b) {\n if (a[\"server_modified\"] > b[\"server_modified\"]) return -1;\n if (a[\"server_modified\"] < b[\"server_modified\"]) return 1;\n return 0;\n });\n\n if (items.length != 0) {\n this._buildThumbs(items);\n } else {\n this.loadCallback(items);\n }\n })\n\n .catch((error) => {\n this.loadCallback(null);\n });\n };\n\n _getListFilesForMultimedia = () => {\n console.warn(this.path);\n this.listFilesInContainer({ path: this.path })\n .then((response) => {\n console.log(response);\n\n this.loadCallback(response);\n // }\n return;\n window.DataGate.getYoutubeMultimedia(\n this.userId,\n this.horseId,\n (code, youtubeData) => {\n if (!response.entries) return;\n let items = [];\n for (let i = 0; i < response.entries.length; i++) {\n let item = response.entries[i];\n item.type = MultimediaHelper.getTypeItem(item);\n //let ext = item.path_display.split('.').pop().toLowerCase();\n //if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\n // item.type = MultimediaHelper.TYPE_IMAGE;\n //} else {\n // item.type = MultimediaHelper.TYPE_VIDEO;\n //}\n items.push(item);\n }\n items = items.sort(function (a, b) {\n if (a[\"server_modified\"] > b[\"server_modified\"]) return -1;\n if (a[\"server_modified\"] < b[\"server_modified\"]) return 1;\n return 0;\n });\n if (youtubeData != null) {\n for (let i = 0; i < youtubeData.length; i++) {\n let item = youtubeData[i];\n item.type = MultimediaHelper.TYPE_YOUTUBE;\n items.push(item);\n }\n }\n\n if (items.length != 0) {\n this._buildThumbs(items);\n } else {\n this.loadCallback(items);\n }\n }\n );\n })\n .catch((error) => {\n this.loadCallback(null);\n });\n };\n\n _getListFilesForTasks = () => {\n let end = new Date().formatDesh();\n let start = new Date().addDays(-92).formatDesh();\n window.db.getTasksByHorseIdForMultimedia(\n this.horseId,\n start,\n end,\n (taskArr) => {\n let horse = window.DataStorage.getAllHorses().find(\n (h) => h.id == this.horseId\n );\n let horseOwnerId = horse.userid;\n let items = [];\n if (!taskArr.length) this.loadCallback(items);\n for (let i = 0; i < taskArr.length; i++) {\n this.path = \"Task\" + horseOwnerId + \"-\" + taskArr[i][\"Id\"];\n this.dropbox\n .filesListFolder({ path: this.path })\n .then((response) => {\n if (!response.entries) return;\n\n for (let i = 0; i < response.entries.length; i++) {\n let item = response.entries[i];\n item.type = MultimediaHelper.getTypeItem(item);\n //let ext = item.path_display.split('.').pop().toLowerCase();\n //if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\n // item.type = MultimediaHelper.TYPE_IMAGE;\n //} else {\n // item.type = MultimediaHelper.TYPE_VIDEO;\n //}\n items.push(item);\n }\n items = items.sort(function (a, b) {\n if (a[\"server_modified\"] > b[\"server_modified\"]) return -1;\n if (a[\"server_modified\"] < b[\"server_modified\"]) return 1;\n return 0;\n });\n\n if (i == taskArr.length - 1) {\n setTimeout(() => {\n if (items.length != 0) {\n this._buildThumbs(items);\n } else {\n this.loadCallback(items);\n }\n }, 500);\n }\n })\n .catch((error) => {\n this.loadCallback(null);\n });\n }\n }\n );\n };\n\n _getListFilesForNotes = () => {\n window.db.getNotesByHorse(this.horseId, (notesArr) => {\n let items = [];\n this.dropbox\n .filesListFolder({ path: this.path })\n .then((response) => {\n if (!response.entries) return;\n for (let i = 0; i < response.entries.length; i++) {\n let item = response.entries[i];\n item.type = MultimediaHelper.getTypeItem(item);\n //let ext = item.path_display.split('.').pop().toLowerCase();\n //if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\n // item.type = MultimediaHelper.TYPE_IMAGE;\n //} else {\n // item.type = MultimediaHelper.TYPE_VIDEO;\n //}\n items.push(item);\n }\n items = items.sort(function (a, b) {\n if (a[\"server_modified\"] > b[\"server_modified\"]) return -1;\n if (a[\"server_modified\"] < b[\"server_modified\"]) return 1;\n return 0;\n });\n if (!notesArr.length) this.loadCallback(items);\n for (let i = 0; i < notesArr.length; i++) {\n this.path =\n `${MultimediaHelper.FOLDER_EXTRA_NOTES}-` +\n this.horseId +\n \"-\" +\n notesArr[i][\"Id\"];\n this.dropbox\n .filesListFolder({ path: this.path })\n .then((response) => {\n if (!response.entries) return;\n\n for (let i = 0; i < response.entries.length; i++) {\n let item = response.entries[i];\n item.type = MultimediaHelper.getTypeItem(item);\n //let ext = item.path_display.split('.').pop().toLowerCase();\n //if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\n // item.type = MultimediaHelper.TYPE_IMAGE;\n //} else {\n // item.type = MultimediaHelper.TYPE_VIDEO;\n //}\n items.push(item);\n }\n items = items.sort(function (a, b) {\n if (a[\"server_modified\"] > b[\"server_modified\"]) return -1;\n if (a[\"server_modified\"] < b[\"server_modified\"]) return 1;\n return 0;\n });\n\n if (i == notesArr.length - 1) {\n setTimeout(() => {\n if (items.length != 0) {\n this._buildThumbs(items);\n } else {\n this.loadCallback(items);\n }\n }, 500);\n }\n })\n .catch((error) => {\n this.loadCallback(null);\n });\n }\n })\n .catch((error) => {\n this.loadCallback(null);\n });\n });\n };\n\n _checkAllThumbLoaded = () => {\n let notLoadedItems = this.items.filter((item) => item.thumbUrl == null);\n if (notLoadedItems.length == 0) {\n this.loadCallback(this.items);\n }\n };\n\n _buildThumbs = (items) => {\n this.items = items;\n for (let i = 0; i < items.length; i++) {\n if (items[i].type == MultimediaHelper.TYPE_YOUTUBE) {\n let code = this._getYoutubeCode(items[i].Link);\n items[i].thumbUrl = `https://img.youtube.com/vi/${code}/hqdefault.jpg`;\n items[i].fullUrl = `https://www.youtube.com/embed/${code}`;\n } else {\n this._loadThumb(items[i]);\n }\n }\n this._checkAllThumbLoaded();\n };\n\n _getYoutubeCode = (link) => {\n //https://youtu.be/tezlfdvAzcc\n //https://www.youtube.com/watch?v=M_hVFRTzFw8\n\n if (link.indexOf(\"youtu.be\") != -1) {\n let code = link.split(\"/\").pop();\n return code;\n }\n if (link.indexOf(\"?v=\") != -1) {\n let code = link.split(\"?v=\").pop();\n return code;\n }\n return null;\n };\n\n _loadThumb = (item) => {\n new Promise((resolve, reject) => {\n this.dropbox\n .filesGetThumbnail({\n path: item.path_display,\n size: \"w480h320\",\n })\n .then((response) => {\n let url = window.URL.createObjectURL(response.fileBlob);\n item.thumbUrl = url;\n this._checkAllThumbLoaded();\n })\n .catch((error) => {\n item.thumbUrl = \"\";\n this._checkAllThumbLoaded();\n });\n });\n };\n\n getItemLink = (item, callback) => {\n if (item.fullUrl != null) {\n if (callback) callback(item.fullUrl);\n return;\n }\n if (item.type == MultimediaHelper.TYPE_YOUTUBE) {\n let code = this._getYoutubeCode(item);\n item.fullUrl = `https://www.youtube.com/embed/${code}`;\n if (callback) callback(item.fullUrl);\n return;\n }\n\n this.dropbox\n .filesGetTemporaryLink({ path: item.path_display })\n .then((response) => {\n item.fullUrl = response.link;\n if (callback) callback(item.fullUrl);\n })\n .catch(function (error) {\n if (callback) callback(null);\n });\n };\n\n _loadThubmAndUploadCallback = (\n fileName,\n dbxItem,\n callback,\n request_origin\n ) => {\n if (dbxItem == null) {\n callback(fileName, null);\n } else {\n dbxItem.type = MultimediaHelper.getTypeItem(dbxItem);\n //let ext = dbxItem.path_display.split('.').pop().toLowerCase();\n //if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\n // dbxItem.type = MultimediaHelper.TYPE_IMAGE;\n //} else {\n // dbxItem.type = MultimediaHelper.TYPE_VIDEO;\n //}\n this.dropbox\n .filesGetThumbnail({\n path: dbxItem.path_display,\n size: \"w480h320\",\n })\n .then((response) => {\n let url = window.URL.createObjectURL(response.fileBlob);\n dbxItem.thumbUrl = url;\n\n callback(fileName, dbxItem, request_origin);\n })\n .catch((error) => {\n dbxItem.thumbUrl = \"\";\n callback(fileName, dbxItem, request_origin);\n });\n }\n };\n wait(milliseconds) {\n return new Promise((resolve) => setTimeout(resolve, milliseconds));\n }\n\n _setSoothProgress = async (file, new_progress, request_origin) => {\n const duration = 2000;\n const steps_per_seconds = 2;\n const steps = (duration / 1000) * steps_per_seconds;\n const delay_between_steps = 1 / steps_per_seconds;\n for (let i = 0; i <= steps; i++) {\n // alert(file.progress + ((new_progress - file.progress) * i) / steps);\n // this.progressCallback(\n // request_origin,\n // file.name,\n // file.progress + ((file.progress - new_progress) * i) / steps\n // );\n }\n };\n\n _uploadWthSingleRequest = async (\n file,\n doneCallback,\n request_origin,\n file_path\n ) => {\n const path = file_path + \"/\" + file.fileName;\n const maxBlob = 4 * 1024 * 1024;\n if (true) {\n this.uploadFileWithProgress(\n file,\n path,\n doneCallback,\n request_origin,\n this.dropbox\n );\n return;\n }\n\n if (file.actual_image) {\n console.log(file);\n\n if (Capacitor.getPlatform() == \"web\") {\n FileChunkReader.azureBlobStorageUploadFile({\n file: file.actual_image,\n sasToken: MultimediaHelper.sasToken,\n accountName: MultimediaHelper.accountName,\n containerName: this.containerClient.containerName,\n targetPath: file.fileName,\n progressCallback: (progress) => {},\n doneCallback: (success, response) => {\n if (success) {\n console.log(response);\n doneCallback(response, request_origin);\n } else {\n console.error(\"Upload failed\");\n }\n },\n }).then();\n } else {\n // const doneCallback = doneCallback;\n FileChunkReader.addListener(\"uploadComplete\", (info) => {\n FileChunkReader.removeAllListeners(\"uploadComplete\");\n // alert(\"DONE\");\n if (info.success) {\n if (typeof info === \"string\") {\n doneCallback(JSON.parse(info), request_origin);\n } else {\n doneCallback(info, request_origin);\n }\n } else {\n console.error(\"Upload failed\");\n }\n });\n FileChunkReader.azureBlobStorageUploadFile({\n uri: file.media_path,\n sasToken: MultimediaHelper.sasToken,\n accountName: MultimediaHelper.accountName,\n containerName: this.containerClient.containerName,\n blobName: file.fileName,\n });\n }\n } else {\n FileChunkReader.addListener(\"uploadProgress\", (info) => {\n this.progressCallback(request_origin, file.fileName, info.progress);\n });\n\n FileChunkReader.addListener(\"uploadComplete\", (info) => {\n FileChunkReader.removeAllListeners(\"uploadProgress\");\n FileChunkReader.removeAllListeners(\"uploadComplete\");\n if (info.success) {\n if (typeof info === \"string\") {\n doneCallback(JSON.parse(info), request_origin);\n } else {\n doneCallback(info, request_origin);\n }\n } else {\n console.error(\"Upload failed\");\n }\n });\n FileChunkReader.azureBlobStorageUploadFile({\n uri: file.media_path,\n sasToken: MultimediaHelper.sasToken,\n accountName: MultimediaHelper.accountName,\n containerName: this.containerClient.containerName,\n blobName: file.fileName,\n targetPath: path,\n }).then();\n }\n };\n base64ToBlob(base64, mimeType = \"\") {\n // Decode Base64 string to a binary string\n const binaryStr = atob(base64);\n // Create a Uint8Array of the same length as the binary string\n const length = binaryStr.length;\n const bytes = new Uint8Array(length);\n // Fill the Uint8Array with byte values from the binary string\n for (let i = 0; i < length; i++) {\n bytes[i] = binaryStr.charCodeAt(i);\n }\n // Create and return a Blob from the Uint8Array\n return new Blob([bytes], { type: mimeType });\n }\n async uploadFileChunk(options) {\n const {\n sasToken,\n accountName,\n containerName,\n file,\n targetPath,\n progressCallback,\n doneCallback,\n } = options;\n\n const blobServiceClient = new BlobServiceClient(\n `https://${accountName}.blob.core.windows.net?${sasToken}`\n );\n const containerClient = blobServiceClient.getContainerClient(containerName);\n const blockBlobClient = containerClient.getBlockBlobClient(targetPath);\n\n const chunkSize = 4 * 1024 * 1024; // 4MB\n const totalChunks = Math.ceil(file.size / chunkSize);\n let uploadedBytes = 0;\n const blockList = [];\n\n for (let i = 0; i < totalChunks; i++) {\n const start = i * chunkSize;\n const end = Math.min(start + chunkSize, file.size);\n const chunk = file.slice(start, end);\n\n const arrayBuffer = await chunk.arrayBuffer();\n const buffer = new Uint8Array(arrayBuffer);\n const blockId = btoa(String(i).padStart(5, \"0\")); // Base64 encode the block ID\n console.log(\"STAGE BLOCK\");\n await blockBlobClient.stageBlock(blockId, buffer, buffer.length);\n uploadedBytes += chunkSize;\n progressCallback(Math.min((uploadedBytes / file.size) * 100, 100));\n console.log(\"STAGE BLOCK DONE\");\n\n blockList.push(blockId);\n }\n\n await blockBlobClient.commitBlockList(blockList, {\n blobHTTPHeaders: {\n blobContentType: file.type,\n },\n });\n\n doneCallback();\n }\n uploadFileWithProgress = async (\n file,\n path,\n doneCallback,\n request_origin,\n dbx\n ) => {\n const fileSize = file.fileSize;\n\n try {\n if (file.actual_image && Capacitor.getPlatform() == \"web\") {\n FileChunkReader.azureBlobStorageUploadFileChunk({\n file: file.actual_image,\n sasToken: MultimediaHelper.sasToken,\n accountName: MultimediaHelper.accountName,\n containerName: this.containerClient.containerName,\n targetPath: file.fileName,\n progressCallback: (progress) => {\n if (this.progressCallback)\n this.progressCallback(\n request_origin,\n file.fileName,\n progress / 100\n );\n },\n doneCallback: (success, response) => {\n console.log(response);\n if (success) {\n console.log(response);\n doneCallback(response, request_origin);\n } else {\n console.error(\"Upload failed\");\n }\n },\n }).then();\n } else {\n FileChunkReader.addListener(\"uploadProgress\", (info) => {\n this.progressCallback(request_origin, file.fileName, info.progress);\n });\n\n FileChunkReader.addListener(\"uploadComplete\", (info) => {\n FileChunkReader.removeAllListeners(\"uploadProgress\");\n FileChunkReader.removeAllListeners(\"uploadComplete\");\n\n if (info.success) {\n if (typeof info === \"string\") {\n doneCallback(JSON.parse(info), request_origin);\n } else {\n doneCallback(info, request_origin);\n }\n } else {\n console.error(\"Upload failed\");\n }\n });\n FileChunkReader.azureBlobStorageUploadFileChunk({\n uri: file.media_path,\n sasToken: MultimediaHelper.sasToken,\n accountName: MultimediaHelper.accountName,\n containerName: this.containerClient.containerName,\n blobName: file.fileName,\n fileSize: fileSize,\n }).then();\n }\n } catch (error) {\n doneCallback(null, request_origin);\n }\n };\n\n cancelUploading = (fileName) => {\n let cancelIndex = this.uploadQueue.findIndex(\n (f) => f.file.fileName == fileName\n );\n this.uploadQueue.splice(cancelIndex, 1);\n\n this.refreshUploadQueue();\n };\n\n uploadYoutube = (link, callback) => {\n window.DataGate.addYoutubeMultimedia(\n link,\n this.userId,\n this.horseId,\n (c, data) => {\n let code = this._getYoutubeCode(link);\n const item = {\n Link: link,\n type: MultimediaHelper.TYPE_YOUTUBE,\n fullUrl: `https://www.youtube.com/embed/${code}`,\n thumbUrl: `https://img.youtube.com/vi/${code}/hqdefault.jpg`,\n };\n callback(item);\n }\n );\n };\n\n deleteItems = (items, callback) => {\n this.deleteCallback = callback;\n this.itemsForDelete = items;\n for (let i = 0; i < this.itemsForDelete.length; i++) {\n this._deleteItem(this.itemsForDelete[i]);\n }\n };\n\n _deleteItem = (item) => {\n if (item.type == MultimediaHelper.TYPE_YOUTUBE) {\n window.DataGate.deleteYoutubeMultimedia(item.Id, () => {\n item.isDeleted = true;\n this._checkItemsDelete();\n });\n } else {\n const blobClient = this.containerClient.getBlobClient(item.name);\n\n // Delete the blob\n blobClient.delete().then(() => {\n item.isDeleted = true;\n this._checkItemsDelete();\n });\n // this.dropbox\n // .filesDelete({ path: item.path_display })\n // .then((response) => {\n // item.isDeleted = true;\n // this._checkItemsDelete();\n // })\n // .catch((error) => {\n // console.error(error);\n // item.isDeleted = true;\n // this._checkItemsDelete();\n // });\n }\n };\n\n _checkItemsDelete = () => {\n let notDeletedItems = this.itemsForDelete.filter((item) => !item.isDeleted);\n if (notDeletedItems.length == 0) {\n this.deleteCallback();\n }\n };\n\n changeName = async (oldFileName, newFileName, callback) => {\n const oldBlobClient = this.containerClient.getBlobClient(oldFileName);\n const newBlobClient = this.containerClient.getBlobClient(newFileName);\n\n // Copy the blob to the new name\n newBlobClient.beginCopyFromURL(oldBlobClient.url).then(() =>\n oldBlobClient\n .delete()\n .then(() => callback(true))\n .catch(() => callback(false))\n );\n\n // const pathNew =\n // item.path_display.substring(0, item.path_display.lastIndexOf(\"/\")) +\n // \"/\" +\n // nameNew;\n // this.dropbox\n // .filesMove({\n // from_path: item.path_display,\n // to_path: pathNew,\n // })\n // .then((response) => {\n // response.thumbUrl = item.thumbUrl;\n // response.type = item.type;\n // if (callback) callback(response);\n // })\n // .catch(function (error) {\n // console.error(error);\n // });\n };\n\n downloadItems = (items, callback) => {\n let dowloadStep = (itemIndex) => {\n if (itemIndex < items.length) {\n this._downloadItem(items[itemIndex], () => {\n dowloadStep(itemIndex + 1);\n });\n } else {\n window.Spinner.hide();\n //end\n }\n };\n\n window.Spinner.show();\n dowloadStep(0);\n };\n\n /**\n *\n * Download a list of items from dropbox\n *\n * @param {String[]} items list of items to be downloaded\n *\n * @returns A list of blobs, corresponding to the items provided.\n */\n downloadAllItems = async (items) => {\n let result = [];\n for (let item of items) {\n if (item.type == MultimediaHelper.TYPE_YOUTUBE) {\n continue;\n }\n const response = await this.dropbox.filesDownload({\n path: item.path_display,\n });\n result.push(\n new File([response.fileBlob], response.name, {\n type: \"image/jpeg\",\n })\n );\n }\n return result;\n };\n\n _downloadItem = (item, callback) => {\n if (item.type == MultimediaHelper.TYPE_YOUTUBE) {\n callback();\n return;\n }\n\n this.dropbox\n .filesDownload({\n path: item.path_display,\n })\n .then((response) => {\n var downloadUrl = URL.createObjectURL(response.fileBlob);\n var downloadButton = document.createElement(\"a\");\n downloadButton.setAttribute(\"href\", downloadUrl);\n downloadButton.setAttribute(\"download\", response.name);\n downloadButton.setAttribute(\"class\", \"button\");\n downloadButton.innerText = \"Download: \" + response.name;\n downloadButton.click();\n\n callback();\n })\n .catch((error) => {\n console.error(error);\n });\n };\n\n showMobileFullscreen(imageItem) {\n if (\n window.multimediaMobileHelper.isActive &&\n this.type == MultimediaHelper.FOLDER_MULTIMEDIA\n ) {\n window.multimediaMobileHelper.showFullScreen(\n this.userId,\n this.horseId,\n imageItem\n );\n return true;\n }\n return false;\n }\n\n downloadAndShareItems(items) {\n if (window.multimediaMobileHelper.isActive) {\n window.multimediaMobileHelper.downloadAndShareItems(items);\n }\n }\n\n hasImages = (callback) => {\n this.path = `${MultimediaHelper.FOLDER_MULTIMEDIA}=${this.horseId}`;\n this.dropbox\n .filesListFolder({ path: this.path })\n .then((response) => {\n if (callback) callback(response.entries.length > 0);\n })\n .catch((error) => {\n if (callback) callback(false);\n });\n };\n\n static getTypeItem(item) {\n let ext = item.path_display.split(\".\").pop().toLowerCase();\n if (\n ext == \"png\" ||\n ext == \"jpeg\" ||\n ext == \"jpg\" ||\n ext == \"gif\" ||\n ext == \"bmp\"\n ) {\n return MultimediaHelper.TYPE_IMAGE;\n } else if (ext == \"pdf\") {\n return MultimediaHelper.TYPE_PDF;\n } else {\n return MultimediaHelper.TYPE_VIDEO;\n }\n }\n}\n","import React, { Component } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { set } from \"lodash\";\nimport MultimediaHelper from \"../Multimedia/MultimediaHelper\";\n\nexport default class TaskXrayPage extends Component {\n static show(taskId) {\n window.showPage(\"#taskXrayPage\");\n ReactDOM.render(\n ,\n document.getElementById(\"taskXrayPage\")\n );\n\n setTimeout(() => {\n try {\n document.getElementById(\"xrayFileInput\").value = null;\n } catch {}\n }, 100);\n }\n\n static DropboxToken =\n \"HqmkA9nKm0wAAAAAAADLWpj-stRJN_4JyfLxtRoZD-Rzpjyz9nnuI_CMbkRkOoSk\";\n\n constructor(props) {\n super(props);\n\n this.state = {\n entries: [],\n uploadingFiles: [],\n uploadingIndex: -1,\n };\n\n this.dropbox = new window.Dropbox.Dropbox({\n accessToken: TaskXrayPage.DropboxToken,\n });\n\n this.helper = new MultimediaHelper();\n }\n\n componentDidMount() {\n this.loadData();\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.taskId != prevProps.taskId) {\n this.loadData();\n }\n }\n\n loadData() {\n this.path = `xray-${this.props.taskId}`;\n\n this.setState({\n entries: [],\n uploadingFiles: [],\n });\n\n window.Spinner.show();\n this.helper.handleCreateContainer(this.path).then(() => {\n this._getListFiles();\n });\n // };\n // this.dropbox\n // .filesCreateFolder({\n // path: this.path,\n // autorename: false,\n // })\n // .then((response) => {\n // this._getListFiles();\n // })\n // .catch((error) => {\n // this._getListFiles();\n // });\n }\n\n _getListFiles() {\n // this.dropbox\n // .filesListFolder({ path: this.path })\n // .then((response) => {\n // this.setState({\n // entries: response.entries,\n // });\n\n // })\n // .catch((error) => {\n // window.Spinner.hide();\n // });\n this.helper.listBlobsWithProperties(this.path).then((response) => {\n this.setState({\n entries: response.map((el) => {\n el.path_display = el.name;\n el.fullUrl = el.url;\n el.thumbUrl = el.url;\n el.imageUrl = el.url;\n el.type = MultimediaHelper.getTypeItem(el);\n return el;\n }),\n });\n console.log(response);\n window.Spinner.hide();\n });\n }\n\n close = () => {\n window.showPage(\"#mainPage\");\n };\n\n onFilesSeleted = (e) => {\n let arr = [];\n for (let i = 0; i < e.target.files.length; i++)\n arr.push({\n name: e.target.files[i].name,\n size: e.target.files[i].size,\n lastModifiedDate: e.target.files[i].lastModifiedDate,\n file: e.target.files[i],\n });\n this.setState({\n uploadingFiles: [...this.state.uploadingFiles, ...arr],\n });\n setTimeout(() => this.startUploading());\n };\n\n startUploading() {\n if (this.isUploading) return;\n this.isUploading = true;\n this._uploadNextFile();\n }\n\n _uploadNextFile() {\n let uploadingIndex = this.state.uploadingFiles.findIndex(\n (item) => !item.isUploaded\n );\n this.setState({\n uploadingIndex: uploadingIndex,\n });\n if (uploadingIndex == -1) {\n this.isUploading = false;\n this.loadData();\n } else {\n const file = this.state.uploadingFiles[uploadingIndex].file;\n const reader = new FileReader();\n reader.onload = () => {\n this._uploadWthSingleRequest(\n file,\n reader.result,\n (item) => {\n let uploadingFiles = [...this.state.uploadingFiles];\n uploadingFiles[this.state.uploadingIndex] = {\n ...uploadingFiles[this.state.uploadingIndex],\n isUploaded: true,\n };\n this.setState({\n uploadingFiles: uploadingFiles,\n });\n setTimeout(() => this._uploadNextFile());\n },\n () => {}\n );\n };\n reader.readAsArrayBuffer(file);\n }\n }\n\n _uploadWthSingleRequest = (\n file,\n arrayBuffer,\n doneCallback,\n progressCallback\n ) => {\n const path = this.path + \"/\" + encodeURI(file.name);\n\n const fileEntry = {\n actual_image: file,\n fileName: file.name,\n };\n this.helper._uploadWthSingleRequest(\n fileEntry,\n (status, res) => {\n doneCallback(res);\n },\n document.location.href,\n path\n );\n\n //ajax for getting pogress, stop workig because of CORS\n //window.$.ajax({\n // url: \"https://content.dropboxapi.com/2/files/upload\",\n // headers: {\n // 'Authorization': 'Bearer ' + TaskXrayPage.DropboxToken,\n // //'Content-Length': file.size,\n // 'Dropbox-API-Arg': '{\"path\": \"' + path + '\"}'\n // },\n // crossDomain: true,\n // crossOrigin: true,\n // type: 'POST',\n // contentType: 'application/octet-stream',//file.type,\n // data: arrayBuffer,\n // dataType: 'json',\n // processData: false,\n // xhr: () => {\n // this.xhr = new window.XMLHttpRequest();\n // this.xhr.upload.addEventListener(\"progress\", function (evt) {\n // if (evt.lengthComputable) {\n // const percentComplete = parseInt(parseFloat(evt.loaded / evt.total) * 100);\n // progressCallback(percentComplete);\n // }\n // }, false);\n // return this.xhr;\n // },\n // success: function (result) {\n // console.log(result);\n // doneCallback(result);\n // },\n // error: function (jqXHR, textStatus, errorThrown) {\n // console.log(errorThrown);\n // doneCallback(null);\n // }\n //});\n };\n\n _deleteItem = (item, callback) => {\n this.dropbox\n .filesDelete({ path: item.path_display })\n .then((response) => {\n callback();\n })\n .catch((error) => {\n callback();\n });\n };\n\n getFilesSize(bytes) {\n if (bytes < 1024) {\n return bytes + \"b\";\n }\n if (bytes < 1024 * 1024) {\n return (bytes / 1024).toFixed(1) + \"kb\";\n }\n return (bytes / 1024 / 1024).toFixed(1) + \"mb\";\n }\n\n onSelectAll = (e) => {\n const entries = this.state.entries.map((item) => ({\n ...item,\n isSelected: e.target.checked,\n }));\n this.setState({\n entries: entries,\n });\n };\n\n onSelectItem = (item, itemIndex) => {\n const entries = [...this.state.entries];\n entries[itemIndex] = {\n ...entries[itemIndex],\n isSelected: !entries[itemIndex].isSelected,\n };\n this.setState({\n entries: entries,\n });\n };\n\n onDeleteClick = () => {\n let arr = this.state.entries\n .filter((item) => item.isSelected)\n .map((el) => {\n return { ...el, type: MultimediaHelper.getTypeItem(el) };\n });\n\n if (arr.length <= 0) return;\n\n window.Spinner.show();\n this.helper.deleteItems(arr, () => {\n window.Spinner.hide();\n this.loadData();\n });\n // if (arr.length != 0) {\n // window.Spinner.show();\n // const deleteFunc = (index) => {\n // if (index < arr.length) {\n // this._deleteItem(arr[index], () => {\n // deleteFunc(index + 1);\n // });\n // } else {\n // window.Spinner.hide();\n // this.loadData();\n // }\n // };\n // deleteFunc(0);\n // }\n };\n\n downloadFiles = () => {\n window.Spinner.show();\n console.log(this.state.entries);\n\n try {\n const filesToDownload = this.state.entries.map((el) => {\n return { url: el.fullUrl, name: el.name };\n });\n if (this.state.entries.length < 5) {\n MultimediaHelper.downloadFilesOneByOne(filesToDownload).then(() => {\n window.Spinner.hide();\n });\n } else {\n MultimediaHelper.downloadZip(filesToDownload).then(() => {\n window.Spinner.hide();\n });\n }\n } catch (error) {\n window.Spinner.hide();\n }\n };\n\n render() {\n const { uploadingFiles, uploadingIndex, entries } = this.state;\n\n return (\n
\n
\n \n \n
\n
\n
\n \n \n
\n \n Delete selected\n \n \n Download all\n \n
\n
\n \n \n \n \n \n \n \n \n \n {uploadingFiles.map((item, itemIndex) => (\n \n \n \n \n \n \n \n ))}\n {entries.map((item, itemIndex) => (\n \n \n \n \n \n \n ))}\n \n
\n \n NameSizeDate
{item.name}{this.getFilesSize(item.size)}{item.lastModifiedDate.toLocaleString()}\n {item.isUploaded ? (\n Done\n ) : (\n <>\n {itemIndex == uploadingIndex ? (\n Uploading\n ) : (\n Waiting\n )}\n \n )}\n
\n this.onSelectItem(item, itemIndex)}\n />\n {decodeURI(item.name)}{this.getFilesSize(item.size)}{item.lastModifiedDate.toLocaleString()}
\n
\n
\n );\n }\n}\n","import React, { Component } from \"react\";\n\nexport default class SpinnerView extends Component {\n render() {\n return (\n
\n
\n
\n
\n
\n );\n }\n}","import React, { Component } from \"react\";\nimport { Document, Page, pdfjs } from \"react-pdf\";\nimport pdfjsWorker from \"react-pdf/dist/esm/pdf.worker.entry\";\n\nimport \"./PdfViewer.css\";\n\nclass PdfViewer extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n showPdfDocument: props.src,\n currentPdfPage: 1,\n pdfNumberOfPages: 1,\n };\n\n pdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker; //`//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\n this.pdfPageWidth = window.isMobileDevice()\n ? window.innerWidth - 40\n : Math.min(window.innerWidth - 40, 800);\n }\n\n onPdfDocumentLoadSuccess = (args) => {\n this.setState({\n pdfNumberOfPages: args.numPages,\n });\n };\n\n onCurrentPdfPageChange = (offset) => {\n const currentPdfPage = this.state.currentPdfPage + offset;\n if (currentPdfPage <= 0 || currentPdfPage > this.state.pdfNumberOfPages)\n return;\n\n this.setState({\n currentPdfPage: currentPdfPage,\n });\n };\n\n render() {\n return (\n
\n
\n \n \n \n
\n
\n this.onCurrentPdfPageChange(-1)}\n />\n
\n {this.state.currentPdfPage}/{this.state.pdfNumberOfPages}\n
\n this.onCurrentPdfPageChange(1)}\n />\n
\n
\n );\n }\n}\n\nexport default PdfViewer;\n","import React from \"react\";\nimport \"./MediaTypeAlert.css\";\nimport { useEffect } from \"react\";\nexport default function MediaTypeAlert({\n show,\n setShow,\n selectImages,\n selectVideos,\n}) {\n if (!show) return null;\n\n const selectImagesHandler = () => {\n setShow(false);\n selectImages();\n };\n const selectVideosHandler = () => {\n setShow(false);\n selectVideos();\n };\n\n return (\n
setShow(false)}>\n
\n
\n

Select media type

\n

Please select the type of files you want to upload

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

\n \n

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

\n \n

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

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

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

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

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

{title}

\n

{body}

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

\n {window.lang.remainingHorsesFarr}\n

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

\n {window.lang.remainingHorsesVacc}\n

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

\n {window.lang.remainingHorsesTeeth}\n

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

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

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

\n {window.lang.remainingHorsesVacc}\n

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

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

{window.lang.permissionForHorses}

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

{window.lang.permissionForTasks}

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

Permission for Reports

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

{window.lang.permissionForView}

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

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

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

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

\n {\n setCurrentWorkingWalkerAreaId(walker_area.id);\n setShowDeleteWalkerAreaModal(true);\n }}\n className=\"tcDelButton--field-area\"\n />\n\n {walker_area_index == 0 && (\n
\n \n \n When selecting walker as task then Walker area, Walker\n name and Time period should always be selected\n \n
\n )}\n
\n\n
\n {generateFieldAreaFieldTables(walker_area, walker_area_index)}\n {generateFieldAreaTimePeriodTables(walker_area)}\n
\n
\n ))}\n
\n setShowCreateWalkerAreaModal(true)}\n >\n Add Walker Area\n \n
\n\n {showCreateWalkerAreaModal && (\n setShowCreateWalkerAreaModal(false)}\n button1_callback={createWalkerArea}\n />\n )}\n\n {showEditWalkerModal && (\n setShowEditWalkerModal(false)}\n button1_callback={editWalker}\n />\n )}\n {showCreateWalkerModal && (\n setShowCreateWalkerModal(false)}\n button1_callback={createWalker}\n />\n )}\n\n {showCreateTimeModal && (\n setShowCreateTimeModal(false)}\n button1_callback={createTimePeriod}\n />\n )}\n\n {showEditTimePeriodModal && (\n setShowEditTimePeriodModal(false)}\n button1_callback={editWalkerTimePeriod}\n />\n )}\n\n {(showDeleteWalkerModal ||\n showDeleteTimePeriodModal ||\n showDeleteWalkerAreaModal) && (\n {\n setShowDeleteWalkerModal(false);\n setShowDeleteTimePeriodModal(false);\n setShowDeleteWalkerAreaModal(false);\n }}\n button1_callback={deleteWalkerAreaItem}\n />\n )}\n \n );\n}\n\nexport default class WalkerManagerHolder {\n createWalkerManager() {\n ReactDOM.render(\n ,\n document.getElementById(\"walkerManagementPageReact\")\n );\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\n\nimport * as serviceWorker from \"./serviceWorker\";\nimport TrainingExtension from \"./TrainingViews/TrainingExtension\";\nimport HomePageExtention from \"./Home/HomePageExtention\";\nimport HorsePageExtention from \"./AddEditHorse/HorsePageExtention\";\nimport MultimediaMobileHelper from \"./Multimedia/MultimediaMobileHelper\";\nimport { SideMenuExtention } from \"./Menu/SideMenu\";\nimport Report from \"./Report/Report\";\nimport RiderRole from \"./RiderRole/RiderRole\";\nimport Sharing from \"./SharingPage/SharingPage\";\nimport TrainingPopup from \"./TrainingPopup/TrainingPopup\";\nimport SharePage from \"./SharingPage/SharePage\";\nimport AutoCreateTaskPage from \"./AutoCreateTask/AutoCreateTaskPage\";\nimport VaccinationPopup from \"./Home/VaccinationView/VaccinationPopup\";\nimport PriceReport from \"./Home/Settings/PriceReport\";\nimport DewormingTypes from \"./Home/Settings/DewormingTypes\";\nimport ReportSettings from \"./Report/ReportSettings\";\nimport MultimediaHelper from \"./Multimedia/MultimediaHelper\";\nimport SendSalesData from \"./SendSalesData/SendSalesData\";\nimport { PublicHorsePresentationHolder } from \"./SendSalesData/SendSalesData\";\nimport FieldManager from \"./FieldManager/FieldManager\";\nimport WalkerManager from \"./WalkerManager/WalkerManager\";\nwindow.trainingExtension = new TrainingExtension();\nwindow.HomePage.extention = new HomePageExtention();\nwindow.Managers.extention = new HorsePageExtention();\nwindow.multimediaMobileHelper = new MultimediaMobileHelper();\n// window.multimediaHelper = new MultimediaHelper();\nwindow.TopMenu.Self.sidebarExtention = new SideMenuExtention();\nwindow.vetfartable.extention = new Report();\nwindow.sendSalesData = new SendSalesData();\nwindow.fieldManager = new FieldManager();\nwindow.walkerManager = new WalkerManager();\nwindow.showPublicPresentation = new PublicHorsePresentationHolder();\nwindow.window.managers = new RiderRole();\nwindow.managers.extention = new Sharing();\nwindow.TrainingPopup = TrainingPopup;\nwindow.SharePage = SharePage;\nwindow.AutoCreateTaskPage = AutoCreateTaskPage;\nwindow.VaccinationPage.extention = new VaccinationPopup();\nwindow.managers.priceReport = new PriceReport();\nwindow.managers.dewormingTypes = new DewormingTypes();\nwindow.managers.reportSettings = new ReportSettings();\n\n// ReactDOM.render(, document.getElementById(\"root\"));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport WeekView from \"./WeekView/WeekView\";\nimport MainView from \"./MainView\";\n\nexport default class TrainingExtension {\n renderMainView(mode) {\n if (window.myid == null) {\n return;\n }\n if (window.DataStorage.trainTypes == null) {\n return;\n }\n window.$(\"#trainReactDiv\").show();\n window.$(\"#trainTableDiv, #trainRiderView, #notat-rider-column\").html(\"\");\n\n //console.log(\"mode: \" + mode);\n\n ReactDOM.render(\n ,\n document.getElementById(\"trainReactDiv\")\n );\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport FarrierView from \"./FarrierView/FarrierView\";\nimport VaccinationView from \"./VaccinationView/VaccinationView\";\nimport TeethView from \"./TeethView/TeethView\";\nimport XrayView from \"./XrayView/XrayView\";\nimport DewormingView from \"./DewormingView/DewormingView\";\nimport HerpesVaccinationView from \"./VaccinationView/HerpesVaccinationView\";\nimport AllHorseDataWithPrice from \"../TrainingViews/AllHorseWithPriceView/AllHorseDataWithPrice\";\n\nexport default class HomePageExtention {\n renderFarrier() {\n ReactDOM.render(\n ,\n document.getElementById(\"homeReactDiv\")\n );\n }\n\n renderVaccination() {\n ReactDOM.render(\n ,\n document.getElementById(\"homeReactDiv\")\n );\n }\n\n renderHerpesVaccination() {\n ReactDOM.render(\n ,\n document.getElementById(\"homeReactDiv\")\n );\n }\n\n renderTeeth() {\n ReactDOM.render(, document.getElementById(\"homeReactDiv\"));\n }\n // @todo\n // $(\"#sellDataDiv\").hide();\n renderSalesData() {\n ReactDOM.render(\n ,\n document.getElementById(\"homeReactDiv\")\n );\n }\n\n renderXray() {\n ReactDOM.render(, document.getElementById(\"homeReactDiv\"));\n }\n\n renderDeworming() {\n ReactDOM.render(, document.getElementById(\"homeReactDiv\"));\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport HorseViewPage from './HorseViewPage';\nimport PedigreePage from './HorseData/PedigreePage';\nimport OwnerInfoPage from './HorseData/OwnerInfoPage';\nimport NotesPage from './HorseData/NotesPage';\nimport PricePage from './HorseData/PricePage';\nimport ResultsPage from './HorseData/ResultsPage';\nimport EquipmentPage from './HorseData/EquipmentPage';\nimport VaccinationPage from './HorseData/VaccinationPage';\nimport FarrierPage from './HorseData/FarrierPage';\nimport TeethPage from './HorseData/Teeth/TeethPage';\nimport VeterinarianPage from './HorseData/VeterinarianPage';\nimport MultimediaPage from './HorseData/MultimediaPage';\nimport HerpesVaccinationPage from './HorseData/HerpesVaccinationPage';\n\nexport default class HorsePageExtention {\n showHorsePage(horseId, options) {\n if (horseId != -1) {\n let horseItem = window.DataStorage.getAllHorses().find(h => h.id == horseId);\n if (horseItem) {\n if (horseItem.userid != window.myid) {\n let role = window.DataStorage.rolesDataFromUsers.find(r => r.UserId == horseItem.userid);\n if (role != null && role.hOpenHorse == false) {\n window.onBack();\n window.alert(\"You have no access to view this horse\");\n return;\n }\n }\n }\n\n if (!window.location.href.includes(\"?id=\"))\n window.location.href = window.location.href + \"?id=\" + horseId;\n else\n window.location.href = window.location.href.split(\"?id=\")[0] + \"?id=\" + horseId;\n }\n\n if (options == null) {\n options = {\n showGallery: false\n };\n }\n this.currentHorseId = horseId;\n this.currentHorseOprtions = options;\n ReactDOM.render(\n ,\n document.getElementById('addHorsePageContent'));\n }\n\n refreshHorsePage() {\n if (this.currentHorseId != null) {\n ReactDOM.render(\n ,\n document.getElementById('addHorsePageContent'));\n }\n }\n\n showPedigree(horseId) {\n if (!window.location.href.includes(\"&p=pedigree\")) {\n window.location.href = window.location.href + \"&p=pedigree\";\n }\n\n ReactDOM.render(\n ,\n document.getElementById('addHorsePageContent'));\n }\n\n showOwnerInfo(horseId) {\n if (!window.location.href.includes(\"&p=owner\")) {\n window.location.href = window.location.href + \"&p=owner\";\n }\n\n ReactDOM.render(\n ,\n document.getElementById('addHorsePageContent'));\n }\n\n showNotes(horseId) {\n if (!window.location.href.includes(\"&p=notes\")) {\n window.location.href = window.location.href + \"&p=notes\";\n }\n\n ReactDOM.render(\n ,\n document.getElementById('addHorsePageContent'));\n }\n\n showHorsePrice(horseId) {\n if (!window.location.href.includes(\"&p=price\")) {\n window.location.href = window.location.href + \"&p=price\";\n }\n\n ReactDOM.render(\n ,\n document.getElementById('addHorsePageContent'));\n }\n\n showResults(horseId) {\n if (!window.location.href.includes(\"&p=results\")) {\n window.location.href = window.location.href + \"&p=results\";\n }\n\n ReactDOM.render(\n ,\n document.getElementById('addHorsePageContent'));\n }\n\n showEquipment(horseId) {\n if (!window.location.href.includes(\"&p=equipment\")) {\n window.location.href = window.location.href + \"&p=equipment\";\n }\n\n ReactDOM.render(\n ,\n document.getElementById('addHorsePageContent'));\n }\n\n showVaccination(horseId) {\n if (!window.location.href.includes(\"&p=vaccination\")) {\n window.location.href = window.location.href + \"&p=vaccination\";\n }\n\n ReactDOM.render(\n ,\n document.getElementById('addHorsePageContent'));\n }\n\n showHerpesVaccination(horseId) {\n if (!window.location.href.includes(\"&p=herpesvaccination\")) {\n window.location.href = window.location.href + \"&p=herpesvaccination\";\n }\n\n ReactDOM.render(\n ,\n document.getElementById('addHorsePageContent'));\n }\n\n showFarrier(horseId) {\n if (!window.location.href.includes(\"&p=farrier\")) {\n window.location.href = window.location.href + \"&p=farrier\";\n }\n\n ReactDOM.render(\n ,\n document.getElementById('addHorsePageContent'));\n }\n\n showTeeth(horseId) {\n if (!window.location.href.includes(\"&p=teeth\")) {\n window.location.href = window.location.href + \"&p=teeth\";\n }\n\n ReactDOM.render(\n ,\n document.getElementById('addHorsePageContent'));\n }\n\n showVeterinarian(horseId) {\n if (!window.location.href.includes(\"&p=veterinarian\")) {\n window.location.href = window.location.href + \"&p=veterinarian\";\n }\n\n ReactDOM.render(\n ,\n document.getElementById('addHorsePageContent'));\n }\n\n showMultimedia(horseId) {\n if (!window.location.href.includes(\"&p=multimedia\")) {\n window.location.href = window.location.href + \"&p=multimedia\";\n }\n\n ReactDOM.render(\n ,\n document.getElementById('addHorsePageContent'));\n }\n}","export default class MultimediaMobileHelper {\n constructor() {\n this.MultimediaIOS = null;\n if (\n window.webkit != null &&\n window.webkit.messageHandlers != null &&\n window.webkit.messageHandlers.MultimediaIOS != null\n )\n this.MultimediaIOS = window.webkit.messageHandlers.MultimediaIOS;\n\n this.isActive =\n this.MultimediaIOS != null || window.MultimediaAndroid != null;\n }\n\n postMessage(dataObj) {\n if (this.MultimediaIOS) {\n this.MultimediaIOS.postMessage(dataObj);\n } else if (window.MultimediaAndroid) {\n window.MultimediaAndroid.postMessage(dataObj.type, dataObj.data);\n }\n }\n\n setHorseList(horses) {\n if (this.isActive) {\n this.postMessage({ type: \"setHorseList\", data: JSON.stringify(horses) });\n }\n }\n\n loadList(userId, horseId, callback) {\n this.loadCallback = callback;\n if (this.isActive) {\n this.postMessage({\n type: \"getImageList\",\n data: JSON.stringify({ userId: userId, horseId: horseId }),\n });\n }\n }\n\n onLoadCallback(data) {\n if (this.loadCallback) this.loadCallback(data);\n }\n\n cancelUpload(request_origin, fileName) {\n this.postMessage({\n type: \"cancelUpload\",\n data: JSON.stringify({\n request_origin,\n fileName,\n }),\n });\n }\n\n downloadExcell() {\n this.postMessage({\n type: \"downloadExcel\",\n data: JSON.stringify({}),\n });\n }\n\n showFullScreen(userId, horseId, imageItem) {\n if (this.isActive) {\n this.postMessage({\n type: \"showFullscreen\",\n data: JSON.stringify({\n userId: userId,\n horseId: horseId,\n fileName: imageItem.name,\n }),\n });\n }\n }\n\n onUploadDoneCallback(fileName, data, target_origin) {\n if (this.uploadDoneCallback)\n this.uploadDoneCallback(fileName, data, target_origin);\n }\n\n onUploadStartCallback(fileName, imageUrl, target_origin) {\n if (this.uploadStartCallback) {\n this.uploadStartCallback(fileName, imageUrl, target_origin);\n }\n }\n\n onUploadProgressCallback(fileName, percent, target_origin) {\n if (this.uploadProgressCallback) {\n this.uploadProgressCallback(fileName, percent, target_origin);\n }\n }\n\n onUploadListCallback(data, target_origin) {\n if (this.uploadListCallback) this.uploadListCallback(data, target_origin);\n }\n\n changeName(item, nameNew, horseId, callback) {\n if (this.isActive) {\n this.changeNameCallback = callback;\n this.postMessage({\n type: \"renameImage\",\n data: JSON.stringify({\n id: item.id,\n name: item.name,\n path_display: item.path_display,\n horseId: horseId,\n }),\n });\n }\n }\n\n onChangeNameCallback(item) {\n if (this.changeNameCallback) this.changeNameCallback(item);\n }\n\n shareItems(userId, horseId, items) {\n let itemNames = items.map((item) => item.name);\n this.postMessage({\n type: \"shareItems\",\n data: JSON.stringify({\n userId: userId,\n horseId: horseId,\n itemNames: itemNames,\n }),\n });\n }\n\n downloadAndShareItems(items) {\n this.postMessage({\n type: \"downloadAndShareItems\",\n data: JSON.stringify(items),\n });\n }\n\n onDownloadSyncCallback(count, totalCount) {\n if (count > 0) {\n window.$(\"#syncMultmediaInfo\").show();\n window\n .$(\"#syncMultmediaInfo\")\n .html(`Sync multimedia horses: ${count} of ${totalCount}`);\n } else {\n window.$(\"#syncMultmediaInfo\").hide();\n }\n }\n}\n"],"sourceRoot":""}