{"version":3,"sources":["serviceWorker.js","TrainingViews/HorseCell/HorseCell.js","TrainingViews/TrainingCellMap.js","TrainingPopup/CopyTaskPopupV2.js","TrainingPopup/ReminderSelectPopup.js","TrainingPopup/SelectTimePopup.js","Multimedia/MultimediaMobileHelper.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","TrainingViews/MainView.js","TrainingViews/TrainingExtension.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","TrainingViews/AllHorseWithPriceView/AllHorseDataWithPrice.js","Home/HomePageExtention.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","AddEditHorse/HorsePageExtention.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","Modal/Modal.jsx","Notification/Notification.jsx","SendSalesData/SendSalesData.jsx","FieldManager/FieldManager.jsx","index.js"],"names":["Boolean","window","location","hostname","match","HorseCell","onHorseClick","Managers","self","isOneGo","editHorseById","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","this","showImage","SHOW_HORSELOGO","showNotes","SHOW_NOTAT_HORSE","showStar","horseLogo","LogoFile","split","logoImage","DataGate","baseurl","bottomText","horseName","name","notes","style","cursor","paddingLeft","onClick","className","backgroundImage","Component","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","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","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","render","display","colSpan","alignItems","repeatForEach","marginLeft","data-role","width","onChange","currentElement","index","key","data-date","daysNames","ok","cancel2","removeRepetition","CopyTaskWindow","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","MultimediaMobileHelper","MultimediaIOS","webkit","messageHandlers","isActive","MultimediaAndroid","dataObj","postMessage","horses","JSON","stringify","userId","horseId","callback","loadCallback","request_origin","fileName","imageItem","target_origin","uploadDoneCallback","imageUrl","uploadStartCallback","percent","uploadProgressCallback","uploadListCallback","nameNew","changeNameCallback","path_display","items","itemNames","count","totalCount","$","show","html","hide","MultimediaHelper","handleCreateContainer","containerName","a","containerClient","blobServiceClient","getContainerClient","create","error","message","listBlobsWithProperties","blobs","listBlobsFlat","blob","blockBlobClient","getBlockBlobClient","getProperties","properties","url","accountName","sasToken","size","contentLength","lastModifiedDate","lastModified","listFilesInContainer","blobItems","Error","blobUrl","getBlobClient","startUploadQueueElements","uploadQueue","isUploading","el","_uploadWthSingleRequest","file","dbxItem","finishCallback","getTypeItem","encodedFileName","encodeURIComponent","container","fullUrl","TYPE_VIDEO","generateThumbnail","thumbUrl","shift","path","loadUploadQueue","startsWith","getPath","FOLDER_MULTIMEDIA","FOLDER_EXTRA_NOTES","noteOrTaskId","FOLDER_TASK","h","userid","FOLDER_GENERAL_TASK","loadList","toLowerCase","then","response","_getListFilesForMultimedia","multimediaPage","_getListFilesForTasks","FOLDER_NOTES","_getListFilesForNotes","_getListFiles","catch","result","entries","b","_buildThumbs","warn","end","formatDesh","start","addDays","db","getTasksByHorseIdForMultimedia","taskArr","horseOwnerId","dropbox","filesListFolder","setTimeout","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","actual_image","FileChunkReader","azureBlobStorageUploadFile","targetPath","progressCallback","progress","success","addListener","info","removeAllListeners","parse","uri","media_path","blobName","dbx","fileSize","azureBlobStorageUploadFileChunk","cancelUploading","cancelIndex","f","splice","refreshUploadQueue","uploadYoutube","addYoutubeMultimedia","deleteItems","deleteCallback","itemsForDelete","_deleteItem","deleteYoutubeMultimedia","Id","isDeleted","_checkItemsDelete","delete","changeName","oldFileName","newFileName","oldBlobClient","beginCopyFromURL","downloadItems","Spinner","dowloadStep","itemIndex","_downloadItem","downloadAllItems","filesDownload","File","downloadUrl","downloadButton","createElement","setAttribute","innerText","click","hasImages","urisToShare","random","Dropbox","accessToken","DropboxToken","BlobServiceClient","file_name","target_request","dbxPath","removeElementFromUploadQueue","isImage","fetch","res","TYPE_IMAGE","_","reader","FileReader","onloadend","readAsDataURL","mimeType","localFiles","extension","blobToBase64","base64Data","includes","Filesystem","writeFile","directory","Directory","Cache","savedFile","Share","share","title","files","dialogTitle","static_path","videoUrl","video","crossOrigin","src","preload","currentTime","addEventListener","canvas","videoWidth","height","videoHeight","getContext","drawImage","toDataURL","thumbnail","milliseconds","base64","binaryStr","atob","bytes","Uint8Array","charCodeAt","Blob","options","chunkSize","totalChunks","ceil","uploadedBytes","blockList","min","chunk","slice","arrayBuffer","buffer","blockId","btoa","String","stageBlock","commitBlockList","blobHTTPHeaders","blobContentType","multimediaMobileHelper","showFullScreen","downloadAndShareItems","ext","TYPE_PDF","FOLDER_RESULT","FOLDER_OTHER","downloadZip","fileUrls","zip","JSZip","fetchFile","promises","all","generateAsync","content","saveAs","downloadFilesOneByOne","images","fetchImage","image","forEach","TaskXrayPage","close","showPage","onFilesSeleted","arr","uploadingFiles","startUploading","encodeURI","fileEntry","helper","status","href","filesDelete","onSelectAll","isSelected","onSelectItem","onDeleteClick","downloadFiles","filesToDownload","uploadingIndex","taskId","prevProps","_uploadNextFile","isUploaded","onload","readAsArrayBuffer","toFixed","maxWidth","padding","paddingTop","accept","multiple","htmlFor","float","defaultValue","getFilesSize","toLocaleString","decodeURI","SpinnerView","PdfViewer","onPdfDocumentLoadSuccess","args","pdfNumberOfPages","numPages","onCurrentPdfPageChange","offset","currentPdfPage","showPdfDocument","pdfjs","GlobalWorkerOptions","workerSrc","pdfjsWorker","pdfPageWidth","isMobileDevice","innerWidth","onLoadSuccess","pageNumber","renderTextLayer","loading","MediaTypeAlert","setShow","selectImages","selectVideos","HorseGallery","toggleExtraButtons","multiSelectMode","setOwnSettings","generalTask","setCurrentSettings","setFinishCallback","onUploadedFile","setProgressCallback","onProgressFile","setRefreshCallback","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","addToUploadQueue","uploadImages","FilePicker","pickImages","readData","r","data_blob","uploadVideos","pickVideos","VideoEditor","at","thumbNailMediaResult","readFile","contents","file_to_upload","onCancelUploading","onShowAddYoutube","showAddYoutube","addYoutubeLink","hideAddYoutube","onYoutubeLinkChange","onAddYoutubeLink","selectItem","onDownloadClick","imagesToDownload","onShareClick","shareItems","onImageChangeNameStart","changeNameMode","onImageNameNewChange","onImageChangeNameEnd","oldName","nameIsUpdated","renderFullscreenItem","controls","poster","frameborder","testUrl","selectUploadMediaType","platform","urlAddYoutubeFrame","showFullScreenLeft","showFullScreenRight","hideEditImages","newVal","customHeader","showUploadButton","acceptPdf","showYoutube","select","reverse","autoFocus","frameBorder","GroupDeleteUpdateQuestion","isDelete","onGroupClick","onSingleClick","thisTaskIsPartOfaSeries","doYouWantTo","marginBottom","changeThisTaskOnly","changeAllTasksInThisSerie","GroupDeleteUpdateQuestionWindow","TrainingPopupWindow","componentDidUpdate","scrollToSelectedItems","loadFieldAreas","cur_horse_id","cur_training_name","isInit","isField","getAvailableFieldAreas","alert","fieldAreas","Item1","Item2","fieldAreaId","auxFieldAreaIndex","x","auxFieldIndex","fields","fieldId","auxTimePeriodIndex","timePeriods","timePeriodId","selectedFieldAreaIndex","selectedFieldIndex","selectedFieldTimePeriodIndex","fieldAssignInfo","field_area_id","field_id","time_id","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","setItem","showWindow","isGroupSelected","saveTraining","updateCopyTraining","getFieldNote","fieldNote","note","HeaderNote","TextNote","onDoneCallback","dewormingTypesPeriod","trainItem","period","tr","TrainingFlagAdd","refreshLayout","trainingRequestStart","insertOrUpdateTrainings","CODE_OK","trainingRequestEnd","showConnectionError","returnTrainingCallback","onExtraTrainingClick","oprionObj","TrainingPopup","showPopup","onDeleteTrainingClick","deleteTraining","deleteTrainingById","deleteTrainings","onShowMultimediaClick","css","unbind","bind","onBack","stopPropagation","onXrayClick","onCopyTaskClick","onCopyDone","onReminderSelectClick","showReminderPopup","currentTarget","idf","vx","nextHorseId","nextHorseOwnerId","prevHorseOwnerId","onHorseChange","onTrainerClick","currentTrainer","onTrainerChange","onTrainingClick","undefined","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","farrierWeeks","nextMonday","nextTuesday","nextWednesday","nextThursday","nextFriday","nextSaturday","nextSunday","today","oneMonth","threeMonths","sixMonths","oneYear","selectTime","inches","sqrt","pow","screen","inch","offsetWidth","horseItem","role","rolesDataFromUsers","UserId","test","navigator","userAgent","tabIndex","data-position","aria-level","index-id","borderSpacing","verticalAlign","data-time","customInput","dateFormat","selected","trained","copyTask","fieldArea","fieldName","field","timePeriod","time_period","marginRight","tShowSmileOnTask","data-id","border","borderRadius","nextDeworming","rows","showData","showXray","isVetPage","align","data-inset","data-autodividers","data-icon","data-idf","data-name","minWidth","gap","InputForMobile","readOnly","backgroundColor","InputForDesktop","Footer","addExtraTraining","h-id","TrainingDay","renderAlphabetic","trainings","rider","isSelectedDate","trainingCellMap","holdEnabled","showRider","getTrainingCellsAlphabetic","trainigs","renderAlphabeticCompact","trainerColsArr","columnCount","allColumns","shortColumns","tByType","uniqueId","renderTimeTop","getTrainingCellsTime","renderTimeTopCompact","tByColumn","TrainingCell","onCellClick","positionLastTimeClick","screenX","y","screenY","trainType","callbackAdd","useOnlyAddCallback","allUsers","trainername","tt","initNewPermanent","waitForInit","trainingPopup","isTrainerLoading","prop","onCellLongClick","setTimeOnFirstHold","training_aux","updateTrainingBackground","getFieldInfo","FieldAreaId","FieldId","FieldAreaTimePeriodId","handleDragStart","dataTransfer","setData","field_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","handleDragOver","showHorseName","multipleOnSameColumn","draggable","onDragStart","onDrop","onDragOver","riderInitials","riderStaticLight","riderStaticAndEquipmentLight","getInitials","timeText","getTimeOfDayTitle","nameClass","fromFieldAssignmentView","time","onClickNHold","FieldAssignmentFieldAreaName","FieldAssignmentFieldName","FieldAssignmentFieldTimePeriod","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","myHorseArr","notMyHorseArr","sharedWithMe","startDate","IsPermanent","permanentTypeIds","refreshMap","d","dayOfWeek","equipment","isIphoneIpad","renderOrderByHorse","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","addGeneralTaskArr","saveTask","CopyGeneralTasksGroup","addGeneralTask","GeneralTaskFlagAdd","insertOrUpdateGeneralTask","deleteGeneralTaskGroup","notification","connectionId","everyMonth","CopyGeneralTaskWindow","taskItem","TaskType","DeleteUpdateGeneralTaskPopup","updateGeneralTask","deleteGeneralTaskById","userForId","UserForId","deleteGeneralTask","isForAllGroup","Flag","GeneralTaskFlagUpdate","insertOrUpdateGeneralTaskGroup","DeleteUpdateGeneralTaskPopupWindow","GeneralTaskPopupWindow","typeIdToBeSelected","getGeneralTaskType","SELECT_MAIN_USER_STABLE","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","otherHorses","id1","some","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","enable","right","bottom","topRight","bottomRight","bottomLeft","topLeft","handleComponent","isTouchDevice","defaultSize","direction","ref","ResizeIcon","RiderView","horseIdArr","horseIdsWithTrainings","horsesWihoutTrainings","Rider2RowsView","trainingTdWidth","TimeSinceLastHA","getLastDatesForTrainingTypes","haTypes","makeHorseArr","curr","horseDataArr","widthFC","tableWidth","maxHeight","overflowY","days","FieldAssignmentView","renderFieldAreaTable","word","toUpperCase","current_trainings","nrOfTasks","field_area","maxNumberHorses","current_training","returnCellContent","useClickOutside","useEffect","handleClickOutside","event","current","contains","removeEventListener","OtherTasksView","useState","generalTasksDaily","setGeneralTasksDaily","generalTasksWeekly","setGeneralTasksWeekly","generalTasksMonthly","setGeneralTasksMonthly","reorderMode","setReorderMode","DRAG_DROP_TRAININGS","setDraggable","setIsDragging","useRef","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","list","startIndex","endIndex","removed","reorder","source","move_task","lower","newIndex","aux","flex","currentTasks","onBeforeDragStart","droppableId","provided","snapshot","droppableProps","innerRef","draggableId","disabled","draggableProps","dragHandleProps","placeholder","renderGeneralTaskTableDaily","renderGeneralTaskTableWeekly","renderGeneralTaskTableMonthly","OtherTasksViewLight","FieldAndOtherTasks","filteredTrainingsField","MainView","applyFilters","myHorseArray","notMyHorseArray","addTrainingArr","stablesArray","horseType","SHOW_IN_TRAINING","istraining","horseTypeIds","flat","stableId","SHOW_IN_STABLE","stIndex","labelId","FILTER_LABEL","horseLabelArr","LabelIds","filteredGeneralTaskArr","otherTasks","otherTasksLight","fieldAndOtherTasks","selectedDateFieldFieldAndOther","filteredTrainingsFieldFieldAndOther","selectedDateField","fieldAssignment","mode_table_2","mode_equipment","Training","mode_rider_2","mode_own_horses","selectedDate","mode_feed","mode_rider2","timeSinceLastHA","TrainingExtension","curdate","ToggleView","yes","no","FarrierView","onEditClick","getNewDate","newItem","FarrierTypeName","HorseName","HomePage","latestIconClick","prototype","onFarrierMenuClick","onAddClick","weeks","onAddForHorseClick","onDoneToggle","getDaysLeft","dateStr","renderTable","shoeDate","planedFarrier","shoeDaysSinceLast","shoeType","RFBid","Chipid","reminderNames","planFarrier","renderRemainingHorsesTable","horsesArr","onMakePdfClick","reportDataArr","tasksNotDoneReportArr","tasksNotDone","getTasksNotDone","filterData","tasksDoneReportArr","getTasksDone","makePdf","download","body","appendChild","onMakeXlsxClick","makeXlsx","onTrainingAddChangeCallback","getFarrierData","horseIds","tasksDone","shoeNewFarrier","remainingHorsesFarr","borderCollapse","VaccinationPopupWindow","vaccinationTypes","VaccinationPage","types","currentVaccinationType","currentVaccinationId","getHorse","vtype","nextVaccinationDate","MaxMonth","MaxDay","showHorseList","currentHorseUserid","getVaccinationLatest","lastItem","nextTypeIndex","NextIndex","onVaccinationTypeChange","getVeterinarianTrainingTypeByUser","vTrainingTypes","VType","VDate","insertOrUpdateVaccination","valign","nextVaccinationShort","VaccinationPopup","VaccinationView","getVaccinationDataForUser","vaccinationData","vaccination","minMonths","MinMonth","maxMonths","minDays","MinDay","maxDays","lastDate","minDate","maxDate","daysLeft","daysBetween","lastVaccination","nextVaccination","remarks","remainingHorses","onNewVaccinationButtonClick","showVaccinationPopup","onEditVaccinationButtonClick","onDeleteButtonClick","setVaccinationUpdate","onNewVaccinationForHorseButtonClick","tasksReportArr","vaccinationType","remainingHorsesReportData","remainingHorsesArr","makeVaccinationReportPdf","Browser","open","getCurrentDate","currentDay","currentMonth","currentYear","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","remainingHorsesVacc","TeethView","getTeethDataForUser","teethData","teeth","bornIn","BirthYear","ZipViewer","JSZipUtils","getBinaryContent","fileUrl","err","isError","loadAsync","fileList","relativePath","onFileSelect","async","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","HerpesVaccinationPopupWindow","herpesVaccinationTypes","getHerpesVaccinationLatest","insertOrUpdateHerpesVaccination","HerpesVaccinationPopup","HerpesVaccinationView","getHerpesVaccinationDataForUser","nextType","setHerpesVaccinationUpdate","AllHorseDataWithPrice","isHistoricHorses","createAllHorsesWithPrice","componentWillUnmount","getPermission","rSeeHorseData","setPeddi","jsonText","peddiText","setGender","horseTypeMare","horseTypeGelding","horseTypeStallion","getHorsesForReportByTypeAndWithPrice","dataHorses","typeName","ColorName","price","Price","peddi","PedigreeJsonText","Gender","Height","Result","reportData","executeSort","attribute_index","increasing","localeCompare","sortBy","sort_index","sortedBy","sortedIncreasing","age","pedigree","header_index","paddingRight","position","horseDetails","horse_index","el_index","HomePageExtention","HorseEditPage","loadTrainers","getShareWithHorseTrainers","trainers","trainerArr","sharewithid","uname","horseOwner","loadLabels","horseLabelsArr","labelsArr","horseLabelIdArr","horseLabels","element","label","Label","labels","selectedLabels","fetchHorseLabels","userLabels","onTextChange","hasChanges","onToggleClick","onHorseImageSelect","doSave","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","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","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","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","PricePage","onPriceChange","selectedInput","selectedPrice","selectedCostPrice","showPriceData","saveInputData","updatePriceByHorse","createDefaultNotes","firstDefaultNote","priceFirstDefaultNote","secondDefaultNote","priceSecondDefaultNote","onInputButtonClick","onInputDataChange","inputData","inputDataChanged","ValuationDate","isNaN","PotentialDate","SellingPrice","parseFloat","PurchasePrice","CurrentAssessment","PotentialAssessment","CostPriceActual","VAT","vatArr","CostPriceAccumulated","insertOrUpdateHorseInputData","onPriceButtonClick","onCostPriceButtonClick","onLogButtonClick","showLogHorsePrice","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","getVaccination","vdate","onAllVaccinationClick","showVaccinationNextPopup","dropboxData","allVacinations","FarrierWindow","getFarrierDataForAllHorses","isHighPriority","shoeType4","daysStr","week","msgStr","shoeDaysSinceLost","daysSinceLast","sortFarrierArrByPriority","farrierData","lowPriority","highPriority","sortFarrierArrByDays","farrierTrainingTypes","paddingBottom","FarrierAllPopup","FarrierPage","fTrainingTypes","getFarrierTrainingsByHorse","farriers","insertDefaultTypes","insertFarrierType","shoeType1","shoeType2","shoeType3","getFarrierTypeName","farrierTypeId","addNewTrainingPopup","onEditButtonClick","onAllFarrierButtonClick","showFarrierAllPopup","farrierView","NextTeethCheckPopupWindow","firstDateChange","firstDate","secondDateChange","secondDate","onAddButtonClick","TDateFirst","TDateSecond","insertOrUpdateTeeth","next","setFullYear","teethSubDate","teethNextDate","add","NextTeethCheckPopup","TeethWindow","sortTeethArr","getTeethDataForAllHorses","TeethAllPopup","TeethPage","getTeeth","setTeethUpdate","onNextTeethCheckButtonClick","showNextTeethCheckPopup","onAllNextTeethButtonClick","TeethPopup","showTeethAllPopup","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","HorsePageExtention","hOpenHorse","currentHorseOprtions","pageName","SideMenu","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","showTrianingGroup","showFilterGroup","orderDefaultValue","alfabetic","timeAlfabetic","timeTop","timeTopCompact","vindex","SideMenuExtention","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","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","Report","Permissions","getRiderRolePermissions","roleId","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","RiderRolePage","getRiderRoles","sortRolesArr","rolesArr","managers","showSharingPage","onNewRoleInputChange","newRole","onAddNewRoleClick","createRiderRole","onDeleteRoleClick","deleteRiderRole","showPermissions","onOrderDownClick","swipeRiderRoleOrder","onOrderUpClick","RiderRole","getLocalSettingsById","dataSettings","sharedUsersData","autoShare","shareEmails","currentRiderRole","currentEmail","myHorses","myHorsesArr","shared","horseData","shareAllHorsesUserId","shareAllHorsesUsersId","shareData","originalHorseList","currentEmails","onEmailChange","onEmailInputClick","onEmailClick","newEmails","user","onShareOtherHorseClick","onAutomaticallyShareAllHorsesClick","set","updateLocalSettingsShareAllHorses","onSelectAllClick","myHorsesArrAux","currentIndex","selectedForShareHorsesArr","notSelectedForShareHorsesArr","notSelectesHorseIds","shareHorse","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","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","showRiderRolePage","onOpenShareButtonClick","onCreateRiderClick","alertDeleteShare","setShareWithUpdate","deleteNotAcceptedHorseByNotAccepted","onShareHorsesWithNewRiderClick","onChangeLicenseDate","changeLicenseItem","handleChangeLicenseDate","saveChangeLicenseDate","shareItem","closeChangeLicensePopup","changeCreateHorseLicenseDate","handleResetPassword","changeResetPasswordItem","resetPasswordInputValue","resetPasswordRetypeInputValue","resetPassword","changePasswordForSharedUser","toggleShareOtherTasks","changeCreateHorseShareOtherTasks","Data","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","AutoCreateTaskPage","LogPriceReportPage","getLogPriceReportByUser","PriceReport","showPriceReport","LogPriceReport","PriceReportPage","getHorseTypes","horsePriceReportData","updateServer","updateRequired","updateHorseTypePriceData","updateItemOnServer","deleteHorseTypePriceData","onAddDataHorseTypeChange","onAddDataPriceChange","insertHorseTypePriceData","showLogPriceReport","DewormingTypesPage","deleteDewormingType","deleteUserDewormingType","onNewTypeInputChange","newType","onAddNewTypeClick","createUserDewormingType","DewormingTypes","ReportSettingsPage","onIsVisibleChange","rItemIndex","swapOrder","rItemIndex1","rItemIndex2","orderIndex1","orderIndex2","needToSave","cr","AllReportsArr","rItem","ReportSettings","BasicButton","svgIcon","PaperPlaneIcon","Modal","button1_text","button2_text","button1_callback","button2_callback","Notification","class","SendSalesData","display_gallery","display_notes","display_results","presentationMode","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","images_to_share","drawCustomHeader","aux_state","clickToggle","presId","trim","clipboard","writeText","SendSalesDataHolder","pedigreeData","NoHorseFoundView","PublicHorsePresentationHolder","regex","RegExp","exec","decodeURIComponent","link_id","getParameterByName","horsePresentationUrl","DataObject","horse_item","logo_file","pedigree_json","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","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","is_editable","firstColumnColSpan","fieldIndex","generateFieldAreaFieldTables","generateFieldAreaTimePeriodTables","addFieldArea","editField","addField","addFieldTimePeriod","editFieldTimePeriod","wantDelete","deleteFieldFromAreaField","deleteTimePeriodFromAreaField","deleteFieldArea","FieldManagerHolder","trainingExtension","vetfartable","fieldManager","showPublicPresentation","reportSettings","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.6b281a3f.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\";\r\nimport './HorseCell.css';\r\n\r\nclass HorseCell extends Component {\r\n\r\n onHorseClick = () => {\r\n window.Managers.self.isOneGo = false;\r\n window.Managers.self.editHorseById(this.props.horse.id);\r\n }\r\n\r\n getBottomText = () => {\r\n let showUnderCode = parseInt(window.GlobalData.getItem(window.GlobalData.NAME_STABLE));\r\n switch (showUnderCode) {\r\n case 1: //box or stable number\r\n {\r\n if (window.inUseStables == 'Y') {\r\n if (this.props.horse.BoxName != null && this.props.horse.BoxName != \"\") {\r\n let box = window.DataStorage.boxesAndStables.find(s => s.IDBox == this.props.horse.BoxName);\r\n if (box != null)\r\n return box.BoxName;\r\n }\r\n } else {\r\n if (this.props.horse.StableId != null) {\r\n const stable = window.DataStorage.boxesAndStables.find(s => s.IdStable == this.props.horse.StableId);\r\n if (stable != null) {\r\n return stable.StableName;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n case 2: //stable and box\r\n {\r\n if (this.props.horse.BoxName != null && this.props.horse.BoxName != \"\") {\r\n let box = window.DataStorage.boxesAndStables.find(s => s.IDBox == this.props.horse.BoxName);\r\n if (box != null) {\r\n return box.StableName + \" - \" + box.BoxName;\r\n }\r\n }\r\n }\r\n break;\r\n case 3: //owner\r\n {\r\n if (this.props.horse.PaperOwner != null && window.Managers.ownersPaper != null) {\r\n let ownerNames = [];\r\n for (let i = 0; i < this.props.horse.PaperOwner.length; i++) {\r\n let o = this.props.horse.PaperOwner[i];\r\n if (window.Managers.ownersPaper[o] != null) {\r\n ownerNames.push(window.Managers.ownersPaper[o].Name);\r\n }\r\n }\r\n return ownerNames.join(',');\r\n }\r\n }\r\n break;\r\n case 4: //stable and owner\r\n {\r\n let text = '';\r\n if (this.props.horse.BoxName != null && this.props.horse.BoxName != \"\") {\r\n let box = window.DataStorage.boxesAndStables.find(s => s.IDBox == this.props.horse.BoxName);\r\n if (box != null) {\r\n return box.StableName;\r\n }\r\n }\r\n\r\n if (this.props.horse.PaperOwner != null && window.Managers.ownersPaper != null) {\r\n let ownerNames = [];\r\n for (let i = 0; i < this.props.horse.PaperOwner.length; i++) {\r\n let o = this.props.horse.PaperOwner[i];\r\n if (window.Managers.ownersPaper[o] != null) {\r\n ownerNames.push(window.Managers.ownersPaper[o].Name);\r\n }\r\n }\r\n if (ownerNames.length != 0) {\r\n if (text != '')\r\n text += \"-\";\r\n text += ownerNames.join(',');\r\n }\r\n }\r\n\r\n return text;\r\n }\r\n break;\r\n case 5: //horse type\r\n {\r\n if (window.DataStorage.horseTypes != null && this.props.horse.HorseType != null) {\r\n let hType = window.DataStorage.horseTypes.find(t => t.ID == this.props.horse.HorseType);\r\n if (hType != null) {\r\n return hType.Name;\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n return \" \";\r\n }\r\n\r\n render() {\r\n const { horse } = this.props;\r\n const showImage = window.GlobalData.getItem(window.GlobalData.SHOW_HORSELOGO) == 1;\r\n const showNotes = window.GlobalData.getItem(window.GlobalData.SHOW_NOTAT_HORSE) == 1;\r\n const showStar = window.GlobalData.getItem(window.GlobalData.SHOW_NOTAT_HORSE) == '*';\r\n\r\n const horseLogo = horse.LogoFile != null ? horse.LogoFile.split('.jpg')[0] + '-thumb.jpg' : '';\r\n const logoImage = horse.LogoFile != null ? `url('${window.DataGate.baseurl + horseLogo}')` : `url('img/horselogo.png')`;\r\n const bottomText = this.getBottomText();\r\n\r\n let horseName = horse.name;\r\n if (showStar && horse.notes) {\r\n horseName = '*' + horseName;\r\n }\r\n\r\n return (\r\n
\r\n {showImage &&\r\n
\r\n
\r\n }\r\n
\r\n
{showNotes ? horse.notes : \" \"}
\r\n
{horseName}
\r\n
{bottomText}
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default HorseCell;","export default class TrainingCellMap {\r\n static ORDER_BY_ALPHABETIC = 1;\r\n static ORDER_BY_TIME_ALPHABETIC = 2;\r\n static ORDER_BY_TIME_TOP_COMPACT = 3;\r\n static ORDER_BY_TIME_TOP = 4;\r\n static ORDER_BY_ALPHABETIC_COMPACT = 5;\r\n\r\n constructor() {\r\n this.map = {};\r\n this.maxColumnCompactMap = {};\r\n this.orderBy = this.ORDER_BY_ALPHABETIC;\r\n }\r\n\r\n refreshMap(dates, trainingArray) {\r\n this.map = {};\r\n this.maxColumnCompactMap = {};\r\n\r\n this.myTrainingTypes = window.DataStorage.trainTypes.filter(t => t.owner == window.myid);\r\n this.myTrainingTypes = this.myTrainingTypes.sort(function (t1, t2) {\r\n return t1.orderC - t2.orderC;\r\n });\r\n\r\n this.orderBy = parseInt(window.GlobalData.getItem(window.GlobalData.ORDER_BY));\r\n switch (this.orderBy) {\r\n case TrainingCellMap.ORDER_BY_ALPHABETIC:\r\n case TrainingCellMap.ORDER_BY_ALPHABETIC_COMPACT:\r\n {\r\n\r\n\r\n for (let dateIndex = 0; dateIndex < dates.length; dateIndex++) {\r\n\r\n //build columns for each day\r\n let columns = [];\r\n let taskArray = trainingArray.filter(t => t.starttime == dates[dateIndex]);\r\n for (let i = 0; i < taskArray.length; i++) {\r\n let task = taskArray[i];\r\n let column = columns.find(c => c.shortname == task.shortname);\r\n if (column == null) {\r\n column = {\r\n shortname: task.shortname,\r\n typeIds: [task.type]\r\n };\r\n columns.push(column);\r\n } else {\r\n if (column.typeIds.indexOf(task.type) == -1) {\r\n column.typeIds.push(task.type);\r\n }\r\n }\r\n }\r\n\r\n //sort columns\r\n columns = columns.sort(this.orderComparatorByTrainingType);\r\n\r\n this.map[dates[dateIndex]] = {\r\n date: dates[dateIndex],\r\n columns: columns\r\n };\r\n }\r\n }\r\n break;\r\n\r\n case TrainingCellMap.ORDER_BY_TIME_TOP:\r\n case TrainingCellMap.ORDER_BY_TIME_ALPHABETIC:\r\n case TrainingCellMap.ORDER_BY_TIME_TOP_COMPACT:\r\n {\r\n for (let dateIndex = 0; dateIndex < dates.length; dateIndex++) {\r\n\r\n //build columns for each day\r\n let columns = [];\r\n let columnsByType = [];\r\n let taskArray = trainingArray.filter(t => t.starttime == dates[dateIndex]);\r\n for (let i = 0; i < taskArray.length; i++) {\r\n let task = taskArray[i];\r\n if (task.TimeOfDay != null && task.TimeOfDay != \"\") {\r\n let column = columns.find(c => c.TimeOfDay == task.TimeOfDay);\r\n if (column == null) {\r\n columns.push({\r\n TimeOfDay: task.TimeOfDay,\r\n shortname: task.shortname,\r\n isTimeColumn: true\r\n });\r\n } else {\r\n }\r\n } else {\r\n let column = columnsByType.find(c => c.shortname == task.shortname);\r\n if (column == null) {\r\n columnsByType.push({\r\n shortname: task.shortname,\r\n isTimeColumn: false\r\n });\r\n }\r\n }\r\n }\r\n\r\n //sort columns\r\n columns = columns.sort(function (c1, c2) {\r\n return (c1.TimeOfDay > c2.TimeOfDay) ? 1 : -1;\r\n });\r\n\r\n columnsByType = columnsByType.sort(this.orderComparatorByTrainingType);\r\n\r\n //add columns without time\r\n columns = [...columns, ...columnsByType];\r\n\r\n this.map[dates[dateIndex]] = {\r\n date: dates[dateIndex],\r\n columns: columns\r\n };\r\n }\r\n }\r\n break;\r\n }\r\n\r\n\r\n if (this.orderBy == TrainingCellMap.ORDER_BY_ALPHABETIC_COMPACT) {\r\n for (let dateIndex = 0; dateIndex < dates.length; dateIndex++) { //calc columns for each day\r\n let taskArray = trainingArray.filter(t => t.starttime == dates[dateIndex]);\r\n let byHorseCols = {};\r\n let trainerCols = {};\r\n for (let i = 0; i < taskArray.length; i++) {\r\n let task = taskArray[i];\r\n if (byHorseCols[task.horseid] == null) {\r\n byHorseCols[task.horseid] = { snames: [task.shortname] };\r\n } else {\r\n if (byHorseCols[task.horseid].snames.indexOf(task.shortname) == -1) {\r\n byHorseCols[task.horseid].snames.push(task.shortname);\r\n }\r\n }\r\n }\r\n\r\n if (window.training.mode == window.TrainingManager.riderStatic || window.training.mode == window.TrainingManager.riderStaticAndEquipment) {\r\n for (let i in byHorseCols) {\r\n let horse = window.DataStorage.getAllHorses().find(j => j.id == i);\r\n if (horse) {\r\n if (trainerCols[horse.trainer]) {\r\n if (trainerCols[horse.trainer].columns < byHorseCols[i].snames.length)\r\n trainerCols[horse.trainer].columns = byHorseCols[i].snames.length;\r\n }\r\n else {\r\n trainerCols[horse.trainer] = { columns: byHorseCols[i].snames.length };\r\n }\r\n }\r\n }\r\n this.maxColumnCompactMap[dates[dateIndex]] = trainerCols;\r\n } else {\r\n let maxColumnCount = Math.max(...Object.values(byHorseCols).map(c => c.snames.length), 1);\r\n this.maxColumnCompactMap[dates[dateIndex]] = maxColumnCount;\r\n }\r\n }\r\n }\r\n\r\n if (this.orderBy == TrainingCellMap.ORDER_BY_TIME_TOP_COMPACT) {\r\n for (let dateIndex = 0; dateIndex < dates.length; dateIndex++) { //calc columns for each day\r\n let taskArray = trainingArray.filter(t => t.starttime == dates[dateIndex]);\r\n let byHorseCols = {};\r\n let trainerCols = {};\r\n for (let i = 0; i < taskArray.length; i++) {\r\n let task = taskArray[i];\r\n let colName = (task.TimeOfDay != null && task.TimeOfDay != \"\") ? task.TimeOfDay : task.shortname;\r\n if (byHorseCols[task.horseid] == null) {\r\n byHorseCols[task.horseid] = [colName];\r\n } else {\r\n if (byHorseCols[task.horseid].indexOf(colName) == -1) {\r\n byHorseCols[task.horseid].push(colName);\r\n }\r\n }\r\n }\r\n\r\n if (window.training.mode == window.TrainingManager.riderStatic || window.training.mode == window.TrainingManager.riderStaticAndEquipment) {\r\n for (let i in byHorseCols) {\r\n let horse = window.DataStorage.getAllHorses().find(j => j.id == i);\r\n if (horse) {\r\n if (trainerCols[horse.trainer]) {\r\n if (trainerCols[horse.trainer].columns < byHorseCols[i].length)\r\n trainerCols[horse.trainer].columns = byHorseCols[i].length;\r\n }\r\n else {\r\n trainerCols[horse.trainer] = { columns: byHorseCols[i].length };\r\n }\r\n }\r\n }\r\n this.maxColumnCompactMap[dates[dateIndex]] = trainerCols;\r\n } else {\r\n let maxColumnCount = Math.max(...Object.values(byHorseCols).map(c => c.length), 1);\r\n this.maxColumnCompactMap[dates[dateIndex]] = maxColumnCount;\r\n }\r\n }\r\n }\r\n }\r\n\r\n orderComparatorByTrainingType = (c1, c2) => {\r\n let t1 = this.myTrainingTypes.find(t => t.shortname == c1.shortname);\r\n let t2 = this.myTrainingTypes.find(t => t.shortname == c2.shortname);\r\n if (t1 != null && t2 != null) {\r\n return (t1.orderC > t2.orderC) ? 1 : -1;\r\n }\r\n return (c1.shortname > c2.shortname) ? 1 : -1;\r\n }\r\n\r\n sortHorsesBySelectedDate = (horseArr, orderDate, getTrainingsForDay) => {\r\n switch (this.orderBy) {\r\n case TrainingCellMap.ORDER_BY_ALPHABETIC:\r\n case TrainingCellMap.ORDER_BY_ALPHABETIC_COMPACT:\r\n horseArr = horseArr.sort((h1, h2) => {\r\n let trainingsH1 = getTrainingsForDay(h1, orderDate);\r\n let trainingsH2 = getTrainingsForDay(h2, orderDate);\r\n let trainingColums = this.map[orderDate].columns;\r\n for (let ci = 0; ci < trainingColums.length; ci++) {\r\n let ct1 = trainingsH1.find(t => t.shortname == trainingColums[ci].shortname);\r\n let ct2 = trainingsH2.find(t => t.shortname == trainingColums[ci].shortname);\r\n if (ct1 != null && ct2 == null)\r\n return -1;\r\n if (ct1 == null && ct2 != null)\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n break;\r\n\r\n case TrainingCellMap.ORDER_BY_TIME_TOP:\r\n case TrainingCellMap.ORDER_BY_TIME_ALPHABETIC:\r\n case TrainingCellMap.ORDER_BY_TIME_TOP_COMPACT:\r\n horseArr = horseArr.sort((h1, h2) => {\r\n let trainingsH1 = getTrainingsForDay(h1, orderDate);\r\n let trainingsH2 = getTrainingsForDay(h2, orderDate);\r\n let trainingColums = this.map[orderDate].columns;\r\n for (let ci = 0; ci < trainingColums.length; ci++) {\r\n if (trainingColums[ci].isTimeColumn) {\r\n let ct1 = trainingsH1.find(t => t.TimeOfDay == trainingColums[ci].TimeOfDay);\r\n let ct2 = trainingsH2.find(t => t.TimeOfDay == trainingColums[ci].TimeOfDay);\r\n if (ct1 != null && ct2 == null)\r\n return -1;\r\n if (ct1 == null && ct2 != null)\r\n return 1;\r\n\r\n //if both have training, then order by type\r\n if (ct1 != null && ct2 != null) {\r\n let myttype1 = this.myTrainingTypes.find(type => type.id == ct1.type);\r\n let myttype2 = this.myTrainingTypes.find(type => type.id == ct2.type);\r\n if (myttype1 != null && myttype2 != null)\r\n return myttype1.OrderC - myttype2.OrderC;\r\n }\r\n } else {\r\n let ct1 = trainingsH1.find(t => t.shortname == trainingColums[ci].shortname);\r\n let ct2 = trainingsH2.find(t => t.shortname == trainingColums[ci].shortname);\r\n if (ct1 != null && ct2 == null)\r\n return -1;\r\n if (ct1 == null && ct2 != null)\r\n return 1;\r\n }\r\n }\r\n return trainingsH2.length - trainingsH1.length;\r\n });\r\n break;\r\n }\r\n\r\n return horseArr;\r\n }\r\n}","import React, { Component } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './CopyTaskPopup.css';\r\n\r\nclass CopyTaskV2 extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n task: null,\r\n selectFreqOptions: [],\r\n frequencyId: 0,\r\n isCopyOnSunday: false,\r\n isCopyOnMonday: false,\r\n isCopyOnTuesday: false,\r\n isCopyOnWednesday: false,\r\n isCopyOnThursday: false,\r\n isCopyOnFriday: false,\r\n isCopyOnSaterday: false\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n console.log(this.props.trainingItem);\r\n var daysToCopy = this.props.trainingItem.DaysToCopy;\r\n if (daysToCopy != null)\r\n this.setDaysToCopyFromProps(daysToCopy);\r\n\r\n this.setState({\r\n selectFreqOptions: [{\r\n id: 0,\r\n name: \"For ever\",\r\n }, {\r\n id: 1,\r\n name: window.lang.week1,\r\n }, {\r\n id: 2,\r\n name: window.lang.week2,\r\n }, {\r\n id: 3,\r\n name: window.lang.week3,\r\n }, {\r\n id: 4,\r\n name: window.lang.week4,\r\n }, {\r\n id: 5,\r\n name: window.lang.week5,\r\n }, {\r\n id: 6,\r\n name: window.lang.week6\r\n }, {\r\n id: 7,\r\n name: window.lang.week7\r\n }, {\r\n id: 8,\r\n name: window.lang.week8\r\n }, {\r\n id: 9,\r\n name: window.lang.week9\r\n }, {\r\n id: 10,\r\n name: window.lang.week10\r\n }, {\r\n id: 11,\r\n name: window.lang.week11\r\n }, {\r\n id: 12,\r\n name: window.lang.week12\r\n }],\r\n frequencyId: this.props.trainingItem.CopyDuration,\r\n task: this.props.trainingItem\r\n });\r\n }\r\n\r\n setDaysToCopyFromProps = (daysToCopy) => {\r\n daysToCopy = daysToCopy.substring(0, daysToCopy.length - 1);\r\n var daysToCopyArr = daysToCopy.split('/');\r\n for (const i in daysToCopyArr) {\r\n switch (daysToCopyArr[i]) {\r\n case '0':\r\n this.state.isCopyOnSunday = true;\r\n break;\r\n case '1':\r\n this.state.isCopyOnMonday = true;\r\n break;\r\n case '2':\r\n this.state.isCopyOnTuesday = true;\r\n break;\r\n case '3':\r\n this.state.isCopyOnWednesday = true;\r\n break;\r\n case '4':\r\n this.state.isCopyOnThursday = true;\r\n break;\r\n case '5':\r\n this.state.isCopyOnFriday = true;\r\n break;\r\n case '6':\r\n this.state.isCopyOnSaterday = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n onFrequencyChange = (e) => {\r\n this.setState({\r\n frequencyId: parseInt(e.target.value)\r\n });\r\n }\r\n\r\n onCheckboxClick = (e) => {\r\n this.setState({\r\n [e.target.dataset.date]: e.target.checked\r\n });\r\n }\r\n\r\n onOkClick = () => {\r\n if (this.isCopyRuning)\r\n return;\r\n this.isCopyRuning = true;\r\n\r\n let daysToCopy = '';\r\n if (this.state.isCopyOnSunday)\r\n daysToCopy += '0/';\r\n if (this.state.isCopyOnMonday)\r\n daysToCopy += '1/';\r\n if (this.state.isCopyOnTuesday)\r\n daysToCopy += '2/';\r\n if (this.state.isCopyOnWednesday)\r\n daysToCopy += '3/';\r\n if (this.state.isCopyOnThursday)\r\n daysToCopy += '4/';\r\n if (this.state.isCopyOnFriday)\r\n daysToCopy += '5/';\r\n if (this.state.isCopyOnSaterday)\r\n daysToCopy += '6/';\r\n\r\n if (this.state.frequencyId == null)\r\n this.state.frequencyId = 0;\r\n\r\n let trainingItem = this.state.task;\r\n trainingItem.CopyDuration = this.state.frequencyId;\r\n trainingItem.DaysToCopy = daysToCopy;\r\n trainingItem.GroupId = trainingItem.id;\r\n trainingItem.TrainingFlag = window.DataStorage.TrainingFlagUpdate;\r\n window.DataStorage.addTraining(trainingItem);\r\n\r\n window.training.refresh({ showSpinner: true });\r\n window.DataGate.copyTraining(this.state.task.id, this.state.frequencyId, daysToCopy,\r\n (code, data) => {\r\n //window.training.refresh({ showSpinner: false });\r\n this.isCopyRuning = false;\r\n this.onCancelClick(); \r\n if (this.props.doneCallback)\r\n this.props.doneCallback();\r\n window.training.refresh();\r\n });\r\n }\r\n\r\n onCancelClick = () => {\r\n ReactDOM.unmountComponentAtNode(document.getElementById('tsWeekDivReact'));\r\n }\r\n\r\n onRemoveRepetitionClick = () => {\r\n window.training.refresh({ showSpinner: true });\r\n window.DataGate.deleteCopyTraining(this.state.task.id,\r\n (code, data) => {\r\n this.onCancelClick();\r\n if (this.props.doneCallback)\r\n this.props.doneCallback();\r\n window.training.refresh();\r\n });\r\n }\r\n\r\n render = () => {\r\n const { selectFreqOptions, frequencyId, isCopyOnSunday, isCopyOnMonday, isCopyOnTuesday, isCopyOnWednesday, isCopyOnThursday, isCopyOnFriday, isCopyOnSaterday } = this.state;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {window.lang.repeatForEach}\r\n
\r\n \r\n {selectFreqOptions.map((currentElement, index) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {window.lang.daysNames[0]}\r\n
\r\n
\r\n
\r\n \r\n {window.lang.daysNames[1]}\r\n
\r\n
\r\n
\r\n \r\n {window.lang.daysNames[2]}\r\n
\r\n
\r\n
\r\n \r\n {window.lang.daysNames[3]}\r\n
\r\n
\r\n
\r\n \r\n {window.lang.daysNames[4]}\r\n
\r\n
\r\n
\r\n \r\n {window.lang.daysNames[5]}\r\n
\r\n
\r\n
\r\n \r\n {window.lang.daysNames[6]}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default class CopyTaskWindow {\r\n showWindow(trainingItem, doneCallback) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('tsWeekDivReact')\r\n )\r\n }\r\n}","import React, { Component } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './ReminderSelectWindow.css';\r\n\r\nexport default class ReminderSelect extends Component {\r\n constructor() {\r\n super();\r\n\r\n this.state = {\r\n reminderList: [\r\n { id: 0, name: window.lang.reminder_No },\r\n { id: 1, name: window.lang.reminder_SameDay },\r\n { id: 2, name: window.lang.reminder_1_dayBefore },\r\n { id: 3, name: window.lang.reminder_2_dayBefore },\r\n { id: 4, name: window.lang.reminder_3_dayBefore },\r\n { id: 5, name: window.lang.reminder_4_dayBefore },\r\n { id: 6, name: window.lang.reminder_5_dayBefore },\r\n { id: 7, name: window.lang.reminder_6_dayBefore },\r\n { id: 8, name: window.lang.reminder_7_dayBefore }\r\n ]\r\n };\r\n }\r\n\r\n onItemClick = (item) => {\r\n this.props.onSelect(item.id);\r\n }\r\n\r\n render() {\r\n const { reminderList } = this.state;\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}","import { Capacitor } from \"@capacitor/core\";\r\nimport React, { Component } from \"react\";\r\n\r\nexport default class SelectTimePopup extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n timeValue: props.value,\r\n isCustomTime: false,\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n let times = window.DataStorage.allUserTimeOfDay;\r\n if (times.findIndex((i) => i.ShortName == this.state.timeValue) == -1)\r\n this.setState({\r\n isCustomTime: true,\r\n });\r\n };\r\n\r\n onTimeSelect = (e) => {\r\n this.setState({\r\n timeValue: e.target.value,\r\n });\r\n };\r\n\r\n onCustomTimeChanged = (e) => {\r\n this.setState({\r\n isCustomTime: e.target.checked,\r\n });\r\n };\r\n\r\n onOkClick = () => {\r\n this.props.onTimeChange(this.state.timeValue);\r\n };\r\n getCurrentTime() {\r\n const now = new Date();\r\n let hours = now.getHours();\r\n let minutes = now.getMinutes();\r\n\r\n hours = hours.toString().padStart(2, \"0\");\r\n minutes = minutes.toString().padStart(2, \"0\");\r\n\r\n return hours + \":\" + minutes;\r\n }\r\n onSetCurrentTimeClick = () => {\r\n this.props.onTimeChange(this.getCurrentTime());\r\n };\r\n\r\n render() {\r\n const times = window.DataStorage.allUserTimeOfDay;\r\n return (\r\n
\r\n
\r\n {!this.state.isCustomTime ? (\r\n \r\n {times.map((t) => (\r\n \r\n ))}\r\n \r\n ) : (\r\n
\r\n \r\n {Capacitor.getPlatform() == \"ios\" &&\r\n this.state.timeValue != \"\" && (\r\n {\r\n this.setState({\r\n timeValue: \"\",\r\n });\r\n }}\r\n >\r\n x\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {window.lang.setCurrentTime}\r\n \r\n
\r\n \r\n {window.lang.ok}\r\n \r\n \r\n {window.lang.cancel}\r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n","export default class MultimediaMobileHelper {\r\n constructor() {\r\n this.MultimediaIOS = null;\r\n if (\r\n window.webkit != null &&\r\n window.webkit.messageHandlers != null &&\r\n window.webkit.messageHandlers.MultimediaIOS != null\r\n )\r\n this.MultimediaIOS = window.webkit.messageHandlers.MultimediaIOS;\r\n\r\n this.isActive =\r\n this.MultimediaIOS != null || window.MultimediaAndroid != null;\r\n }\r\n\r\n postMessage(dataObj) {\r\n if (this.MultimediaIOS) {\r\n this.MultimediaIOS.postMessage(dataObj);\r\n } else if (window.MultimediaAndroid) {\r\n window.MultimediaAndroid.postMessage(dataObj.type, dataObj.data);\r\n }\r\n }\r\n\r\n setHorseList(horses) {\r\n if (this.isActive) {\r\n this.postMessage({ type: \"setHorseList\", data: JSON.stringify(horses) });\r\n }\r\n }\r\n\r\n loadList(userId, horseId, callback) {\r\n this.loadCallback = callback;\r\n if (this.isActive) {\r\n this.postMessage({\r\n type: \"getImageList\",\r\n data: JSON.stringify({ userId: userId, horseId: horseId }),\r\n });\r\n }\r\n }\r\n\r\n onLoadCallback(data) {\r\n if (this.loadCallback) this.loadCallback(data);\r\n }\r\n\r\n cancelUpload(request_origin, fileName) {\r\n this.postMessage({\r\n type: \"cancelUpload\",\r\n data: JSON.stringify({\r\n request_origin,\r\n fileName,\r\n }),\r\n });\r\n }\r\n\r\n downloadExcell() {\r\n this.postMessage({\r\n type: \"downloadExcel\",\r\n data: JSON.stringify({}),\r\n });\r\n }\r\n\r\n showFullScreen(userId, horseId, imageItem) {\r\n if (this.isActive) {\r\n this.postMessage({\r\n type: \"showFullscreen\",\r\n data: JSON.stringify({\r\n userId: userId,\r\n horseId: horseId,\r\n fileName: imageItem.name,\r\n }),\r\n });\r\n }\r\n }\r\n\r\n onUploadDoneCallback(fileName, data, target_origin) {\r\n if (this.uploadDoneCallback)\r\n this.uploadDoneCallback(fileName, data, target_origin);\r\n }\r\n\r\n onUploadStartCallback(fileName, imageUrl, target_origin) {\r\n if (this.uploadStartCallback) {\r\n this.uploadStartCallback(fileName, imageUrl, target_origin);\r\n }\r\n }\r\n\r\n onUploadProgressCallback(fileName, percent, target_origin) {\r\n if (this.uploadProgressCallback) {\r\n this.uploadProgressCallback(fileName, percent, target_origin);\r\n }\r\n }\r\n\r\n onUploadListCallback(data, target_origin) {\r\n if (this.uploadListCallback) this.uploadListCallback(data, target_origin);\r\n }\r\n\r\n changeName(item, nameNew, horseId, callback) {\r\n if (this.isActive) {\r\n this.changeNameCallback = callback;\r\n this.postMessage({\r\n type: \"renameImage\",\r\n data: JSON.stringify({\r\n id: item.id,\r\n name: item.name,\r\n path_display: item.path_display,\r\n horseId: horseId,\r\n }),\r\n });\r\n }\r\n }\r\n\r\n onChangeNameCallback(item) {\r\n if (this.changeNameCallback) this.changeNameCallback(item);\r\n }\r\n\r\n shareItems(userId, horseId, items) {\r\n let itemNames = items.map((item) => item.name);\r\n this.postMessage({\r\n type: \"shareItems\",\r\n data: JSON.stringify({\r\n userId: userId,\r\n horseId: horseId,\r\n itemNames: itemNames,\r\n }),\r\n });\r\n }\r\n\r\n downloadAndShareItems(items) {\r\n this.postMessage({\r\n type: \"downloadAndShareItems\",\r\n data: JSON.stringify(items),\r\n });\r\n }\r\n\r\n onDownloadSyncCallback(count, totalCount) {\r\n if (count > 0) {\r\n window.$(\"#syncMultmediaInfo\").show();\r\n window\r\n .$(\"#syncMultmediaInfo\")\r\n .html(`Sync multimedia horses: ${count} of ${totalCount}`);\r\n } else {\r\n window.$(\"#syncMultmediaInfo\").hide();\r\n }\r\n }\r\n}\r\n","import { Directory, Filesystem } from \"@capacitor/filesystem\";\r\nimport MultimediaMobileHelper from \"./MultimediaMobileHelper\";\r\nimport { Share } from \"@capacitor/share\";\r\nimport JSZip, { files } from \"jszip\";\r\nimport { FileChunkReader } from \"capacitor-file-chunk-reader\";\r\nimport { random } from \"lodash\";\r\nimport { Capacitor } from \"@capacitor/core\";\r\nimport { BlobServiceClient } from \"@azure/storage-blob\";\r\nimport { saveAs } from \"file-saver\";\r\nimport { VideoEditor } from \"@whiteguru/capacitor-plugin-video-editor\";\r\nexport default class MultimediaHelper {\r\n static DropboxToken =\r\n \"HqmkA9nKm0wAAAAAAADLWpj-stRJN_4JyfLxtRoZD-Rzpjyz9nnuI_CMbkRkOoSk\";\r\n\r\n static sasToken =\r\n \"sv=2022-11-02&ss=b&srt=sco&sp=rwdlactfx&se=2030-07-05T19:59:33Z&st=2024-07-05T11:59:33Z&spr=https,http&sig=5GboONytsEL8EyTgy1htKc4lsUNbrSNQauJ%2B2Hi9VlE%3D\";\r\n static accountName = \"eqappdata\";\r\n static FOLDER_MULTIMEDIA = \"multimedia\";\r\n static FOLDER_RESULT = \"result\";\r\n static FOLDER_NOTES = \"notes\";\r\n static FOLDER_EXTRA_NOTES = \"textnote\";\r\n static FOLDER_TASK = \"task\";\r\n static FOLDER_GENERAL_TASK = \"generalTask\";\r\n static FOLDER_OTHER = \"other\";\r\n\r\n static TYPE_IMAGE = 1;\r\n static TYPE_VIDEO = 2;\r\n static TYPE_YOUTUBE = 3;\r\n static TYPE_PDF = 4;\r\n\r\n static downloadZip = async (fileUrls) => {\r\n const zip = new JSZip();\r\n\r\n const fetchFile = async (url) => {\r\n const response = await fetch(url);\r\n if (!response.ok) {\r\n throw new Error(`Failed to fetch ${url}`);\r\n }\r\n return response.blob();\r\n };\r\n\r\n const promises = fileUrls.map(async (item) => {\r\n const blob = await fetchFile(item.url);\r\n const fileName = item.name;\r\n zip.file(fileName, blob);\r\n });\r\n\r\n try {\r\n await Promise.all(promises);\r\n const content = await zip.generateAsync({ type: \"blob\" });\r\n saveAs(content, \"files.zip\");\r\n } catch (error) {\r\n console.error(\"Error creating zip file:\", error);\r\n }\r\n };\r\n static downloadFilesOneByOne = async (images) => {\r\n const fetchImage = async (image) => {\r\n const response = await fetch(image.url);\r\n if (!response.ok) {\r\n throw new Error(`Failed to fetch ${image.url}`);\r\n }\r\n const blob = await response.blob();\r\n return { blob, name: image.name }; // Extract the file name from the URL\r\n };\r\n\r\n try {\r\n const promises = images.map(fetchImage);\r\n const fetchedImages = await Promise.all(promises);\r\n\r\n fetchedImages.forEach(({ blob, name }) => {\r\n saveAs(blob, name);\r\n });\r\n } catch (error) {\r\n console.error(\"Error downloading images:\", error);\r\n }\r\n };\r\n\r\n constructor() {\r\n // queue elements to be uploaded\r\n this.uploadQueue = [];\r\n this.isUploading = false;\r\n this.urisToShare = [];\r\n this.id = random(true) * 50;\r\n\r\n this.dropbox = new window.Dropbox.Dropbox({\r\n accessToken: MultimediaHelper.DropboxToken,\r\n });\r\n\r\n if (!MultimediaHelper.sasToken || !MultimediaHelper.accountName) {\r\n console.error(\"Azure Storage SAS token or account name not found\");\r\n return;\r\n }\r\n\r\n this.blobServiceClient = new BlobServiceClient(\r\n `https://${MultimediaHelper.accountName}.blob.core.windows.net?${MultimediaHelper.sasToken}`\r\n );\r\n }\r\n\r\n handleCreateContainer = async (containerName) => {\r\n try {\r\n this.containerClient =\r\n this.blobServiceClient.getContainerClient(containerName);\r\n await this.containerClient.create();\r\n console.log(`Container \"${containerName}\" created successfully.`);\r\n } catch (error) {\r\n console.error(`Error creating container: ${error.message}`);\r\n }\r\n };\r\n\r\n listBlobsWithProperties = async (containerName) => {\r\n const containerClient =\r\n this.blobServiceClient.getContainerClient(containerName);\r\n\r\n let blobs = [];\r\n for await (const blob of containerClient.listBlobsFlat()) {\r\n const blockBlobClient = containerClient.getBlockBlobClient(blob.name);\r\n const properties = await blockBlobClient.getProperties();\r\n\r\n const url = `https://${MultimediaHelper.accountName}.blob.core.windows.net/${containerName}/${blob.name}?${MultimediaHelper.sasToken}`;\r\n blobs.push({\r\n name: blob.name,\r\n size: properties.contentLength,\r\n lastModifiedDate: properties.lastModified,\r\n url: url,\r\n });\r\n }\r\n\r\n return blobs;\r\n };\r\n\r\n listFilesInContainer = async (containerName) => {\r\n this.containerClient =\r\n this.blobServiceClient.getContainerClient(containerName);\r\n let blobItems = [];\r\n for await (const blob of this.containerClient.listBlobsFlat()) {\r\n if (blob.name.length > 1024) {\r\n throw new Error(\r\n `Blob name \"${blob.name}\" exceeds the maximum length of 1024 characters.`\r\n );\r\n }\r\n const blobUrl = this.containerClient.getBlobClient(blob.name).url;\r\n blobItems.push({ name: blob.name, url: blobUrl });\r\n }\r\n return blobItems;\r\n };\r\n\r\n /**\r\n * Function to remove an element from the queue upload queue.\r\n *\r\n * @param name The name of the file to be removed\r\n * @param target_origin The location.href of the file to be removed.\r\n */\r\n\r\n removeElementFromUploadQueue(name, target_origin) {\r\n this.uploadQueue = this.uploadQueue.filter(\r\n (el) => el.fileName != name || el.request_origin != target_origin\r\n );\r\n }\r\n\r\n /**\r\n * Function called when Android/IOS wrappers finish uploading one photo from the upload queueu\r\n * @param file_name the name of the file finished uploading\r\n * @param target_request the location.href of the upload item\r\n * @param dbxPath the path_display of the uplaod element, used to reconstruct the element from database\r\n */\r\n onUploadDoneCallback(file_name, target_request, dbxPath) {\r\n let x = this.uploadQueue.find(\r\n (el) => el.fileName == file_name && el.request_origin == target_request\r\n );\r\n if (!x) return;\r\n let dbxItem = { path_display: dbxPath, name: file_name };\r\n console.log(\"OK\");\r\n dbxItem.type = MultimediaHelper.getTypeItem(dbxItem.fileName);\r\n\r\n const encodedFileName = encodeURIComponent(dbxItem.fileName);\r\n const url = `https://${MultimediaHelper.accountName}.blob.core.windows.net/${dbxItem.container}/${encodedFileName}?${MultimediaHelper.sasToken}`;\r\n\r\n dbxItem.path_display = dbxItem.fileName;\r\n dbxItem.fullUrl = url;\r\n dbxItem.thumbUrl = url;\r\n dbxItem.imageUrl = url;\r\n console.log(dbxItem);\r\n this.removeElementFromUploadQueue(file_name, target_request);\r\n this.finishCallback(target_request, file_name, dbxItem);\r\n }\r\n onUploadProgressCallback(file_name, percent, target_request) {\r\n let x = this.uploadQueue.find(\r\n (el) => el.fileName == file_name && el.request_origin == target_request\r\n );\r\n x.file.progress = percent;\r\n this.refreshUploadQueue();\r\n }\r\n\r\n /**\r\n * A function that adds elements\r\n * @description A callback function used by xamarin to add data to the uploadQueue.\r\n */\r\n\r\n async addDataToUploadQueue(fileName, imageUrl, isImage, target_origin) {\r\n const res = await fetch(imageUrl);\r\n const blob = await res.blob();\r\n this.uploadQueue.push({\r\n request_origin: target_origin,\r\n path: this.path,\r\n fileName: fileName,\r\n file: {\r\n actual_image: new File([blob], fileName, { type: \"image/png\" }),\r\n fileName: fileName,\r\n imageUrl: imageUrl,\r\n progress: 0,\r\n type:\r\n isImage == \"True\"\r\n ? MultimediaHelper.TYPE_IMAGE\r\n : MultimediaHelper.TYPE_VIDEO,\r\n },\r\n });\r\n this.refreshUploadQueue();\r\n // if (this.isUploading) return;\r\n // this.isUploading = true;\r\n // this.startUploadQueueElements();\r\n }\r\n /**\r\n * Setter for the current multimedia session.\r\n */\r\n setCurrentSettings(\r\n type,\r\n horseId,\r\n userId,\r\n multimediaPage,\r\n noteOrTaskId,\r\n refreshUploadQueue\r\n ) {\r\n this.type = type;\r\n this.horseId = horseId;\r\n this.userId = userId;\r\n this.multimediaPage = multimediaPage;\r\n this.noteOrTaskId = noteOrTaskId;\r\n this.dropbox = new window.Dropbox.Dropbox({\r\n accessToken: MultimediaHelper.DropboxToken,\r\n });\r\n this.refreshUploadQueue = refreshUploadQueue;\r\n // queue elements to be uploaded\r\n }\r\n setRefreshCallback(callback) {\r\n this.refreshUploadQueue = callback;\r\n }\r\n\r\n blobToBase64(blob) {\r\n return new Promise((resolve, _) => {\r\n const reader = new FileReader();\r\n reader.onloadend = () => resolve(reader.result);\r\n reader.readAsDataURL(blob);\r\n });\r\n }\r\n\r\n mimeToExtension(mimeType) {\r\n const mimeMap = {\r\n \"image/jpeg\": \"jpg\",\r\n \"image/png\": \"png\",\r\n \"image/gif\": \"gif\",\r\n \"application/pdf\": \"pdf\",\r\n // Add other mappings as needed\r\n };\r\n return mimeMap[mimeType] || \"\"; // Return empty string if not found\r\n }\r\n\r\n async shareItems(items) {\r\n try {\r\n const localFiles = [];\r\n\r\n for (const item of items) {\r\n const { url } = item;\r\n const response = await fetch(url);\r\n const blob = await response.blob();\r\n const mimeType = blob.type;\r\n\r\n const extension = mimeType.split(\"/\")[1]; // Extract extension from MIME type\r\n const base64Data = await this.blobToBase64(blob);\r\n\r\n let fileName = item.name;\r\n if (!fileName.includes(\".\")) {\r\n fileName += `.${extension}`;\r\n }\r\n\r\n // Write the file to the Filesystem\r\n const savedFile = await Filesystem.writeFile({\r\n path: fileName,\r\n data: base64Data,\r\n directory: Directory.Cache,\r\n });\r\n\r\n localFiles.push(savedFile.uri);\r\n }\r\n\r\n await Share.share({\r\n title: \"Share files\",\r\n text: \"\",\r\n files: localFiles,\r\n dialogTitle: \"Share with\",\r\n });\r\n } catch (error) {\r\n console.error(\"Error sharing images:\", error);\r\n }\r\n }\r\n\r\n /**\r\n * Setter for the callback function\r\n * @param {Function<>()} finishCallback The new finish callback function\r\n */\r\n setFinishCallback(finishCallback) {\r\n this.finishCallback = finishCallback;\r\n }\r\n\r\n /**\r\n * Setter for the progress callback function\r\n * @param {Function<>()} progressCallback The new progress callback function\r\n */\r\n setProgressCallback(progressCallback) {\r\n this.progressCallback = progressCallback;\r\n }\r\n\r\n /**\r\n * A function that adds files to the upload queue.\r\n *\r\n * @param {string} request_origin The location.href from which the files were added.\r\n * @param {Array} files List of files to be added to the upload queue.\r\n */\r\n addToUploadQueue(request_origin, files, static_path) {\r\n console.log(this.path);\r\n this.uploadQueue.push(\r\n ...files.map((file) => {\r\n return { file, request_origin, path: static_path ?? this.path };\r\n })\r\n );\r\n if (this.isUploading) return;\r\n this.isUploading = true;\r\n this.startUploadQueueElements();\r\n }\r\n\r\n /**\r\n * A function that takes all the elements from the queue, uploads them and calls the respective callbacks.\r\n */\r\n startUploadQueueElements = async () => {\r\n if (this.uploadQueue.length <= 0) {\r\n this.isUploading = false;\r\n return;\r\n }\r\n\r\n let el = { ...this.uploadQueue[0] };\r\n\r\n this._uploadWthSingleRequest(\r\n el.file,\r\n async (dbxItem) => {\r\n if (dbxItem == null) {\r\n this.finishCallback(el.file.fileName, null);\r\n } else {\r\n console.log(dbxItem.fileName);\r\n dbxItem.path_display = dbxItem.fileName;\r\n dbxItem.type = MultimediaHelper.getTypeItem(dbxItem);\r\n\r\n // const url = dbxItem.url;\r\n const encodedFileName = encodeURIComponent(dbxItem.fileName);\r\n const url = `https://${MultimediaHelper.accountName}.blob.core.windows.net/${dbxItem.container}/${encodedFileName}?${MultimediaHelper.sasToken}`;\r\n\r\n dbxItem.path_display = dbxItem.fileName;\r\n dbxItem.fullUrl = url;\r\n dbxItem.thumbUrl =\r\n MultimediaHelper.getTypeItem(dbxItem) ===\r\n MultimediaHelper.TYPE_VIDEO\r\n ? await this.generateThumbnail(url)\r\n : url;\r\n dbxItem.imageUrl = url;\r\n dbxItem.name = dbxItem.fileName;\r\n this.uploadQueue.shift();\r\n this.finishCallback(el.request_origin, dbxItem.fileName, dbxItem);\r\n this.startUploadQueueElements();\r\n // this.dropbox\r\n // .filesGetThumbnail({\r\n // path: dbxItem.path_display,\r\n // size: \"w480h320\",\r\n // })\r\n // .then((response) => {\r\n // let url = window.URL.createObjectURL(response.fileBlob);\r\n // dbxItem.thumbUrl = url;\r\n\r\n // this.uploadQueue.shift();\r\n // this.finishCallback(el.request_origin, el.file.fileName, dbxItem);\r\n // this.startUploadQueueElements();\r\n // })\r\n // .catch((error) => {\r\n // dbxItem.thumbUrl = \"\";\r\n\r\n // this.uploadQueue.shift();\r\n // this.finishCallback(el.request_origin, el.file.fileName, dbxItem);\r\n // this.startUploadQueueElements();\r\n // });\r\n }\r\n },\r\n el.request_origin,\r\n el.path\r\n );\r\n };\r\n\r\n /**\r\n * A function that returns all the elements in the upload queue such that the origin or the items matches the origin of the requester.\r\n * @param {string} request_origin The location.href of the page that requested the upload list.\r\n *\r\n * @returns a list of items from upload list that match the requester's origin.\r\n */\r\n loadUploadQueue = (request_origin) => {\r\n return this.uploadQueue.filter((item) =>\r\n item.request_origin.startsWith(request_origin)\r\n );\r\n };\r\n\r\n getPath = (type) => {\r\n switch (type) {\r\n case MultimediaHelper.FOLDER_MULTIMEDIA:\r\n return `${MultimediaHelper.FOLDER_MULTIMEDIA}${this.horseId}`;\r\n case MultimediaHelper.FOLDER_EXTRA_NOTES:\r\n return `${this.type}_${this.noteOrTaskId}`;\r\n case MultimediaHelper.FOLDER_TASK:\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.horseId\r\n );\r\n return `${this.type}=${horse.userid}-${this.noteOrTaskId}`;\r\n\r\n case MultimediaHelper.FOLDER_GENERAL_TASK:\r\n return `${this.type}=${this.noteOrTaskId}`;\r\n\r\n default:\r\n return `${this.type}-${this.horseId}`;\r\n }\r\n };\r\n\r\n loadList = (request_origin, callback, type) => {\r\n this.loadCallback = callback;\r\n this.path = this.getPath(type).toLowerCase();\r\n this.handleCreateContainer(this.path)\r\n .then((response) => {\r\n if (this.type == MultimediaHelper.FOLDER_MULTIMEDIA) {\r\n this._getListFilesForMultimedia();\r\n } else if (\r\n this.type == MultimediaHelper.FOLDER_TASK &&\r\n this.multimediaPage\r\n ) {\r\n this._getListFilesForTasks();\r\n } else if (\r\n this.type == MultimediaHelper.FOLDER_NOTES &&\r\n this.multimediaPage\r\n ) {\r\n this._getListFilesForNotes();\r\n } else {\r\n this._getListFiles();\r\n }\r\n })\r\n .catch((error) => {\r\n if (this.type == MultimediaHelper.FOLDER_MULTIMEDIA) {\r\n this._getListFilesForMultimedia();\r\n } else if (\r\n this.type == MultimediaHelper.FOLDER_TASK &&\r\n this.multimediaPage\r\n ) {\r\n this._getListFilesForTasks();\r\n } else if (\r\n this.type == MultimediaHelper.FOLDER_NOTES &&\r\n this.multimediaPage\r\n ) {\r\n this._getListFilesForNotes();\r\n } else {\r\n this._getListFiles();\r\n }\r\n });\r\n };\r\n generateThumbnail(videoUrl, seekTime = 1) {\r\n return new Promise((resolve, reject) => {\r\n if (Capacitor.getPlatform() != \"web\") {\r\n FileChunkReader.generateThumbnail({\r\n videoUrl,\r\n }).then((result) => {\r\n resolve(result.thumbnail);\r\n });\r\n return;\r\n }\r\n\r\n const video = document.createElement(\"video\");\r\n video.crossOrigin = \"anonymous\"; // Ensure the video is fetched with CORS headers\r\n\r\n video.src = videoUrl;\r\n video.preload = \"metadata\";\r\n video.currentTime = 0.001;\r\n\r\n video.addEventListener(\"seeked\", () => {\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.width = video.videoWidth;\r\n canvas.height = video.videoHeight;\r\n const context = canvas.getContext(\"2d\");\r\n\r\n // Draw the video frame to the canvas\r\n context.drawImage(video, 0, 0, canvas.width, canvas.height);\r\n\r\n // Get the image data URL from the canvas\r\n const imageUrl = canvas.toDataURL(\"image/png\");\r\n resolve(imageUrl);\r\n });\r\n\r\n video.addEventListener(\"error\", (error) => {\r\n resolve(videoUrl);\r\n // reject(`Error loading video: ${error.message}`);\r\n });\r\n });\r\n }\r\n\r\n _getListFiles = () => {\r\n this.listFilesInContainer(this.path)\r\n .then(async (response) => {\r\n let result = [];\r\n for (let el of response) {\r\n // alert(JSON.stringify(el));\r\n el.path_display = el.name;\r\n el.fullUrl = el.url;\r\n el.thumbUrl =\r\n MultimediaHelper.getTypeItem(el) === MultimediaHelper.TYPE_VIDEO // Capacitor.getPlatform() === \"web\"\r\n ? await this.generateThumbnail(\r\n // \"http://localhost:8000/yt5s.io-Cargo%20-%20Ielele%20(Official%20Audio).mp4\"\r\n el.url\r\n )\r\n : el.url;\r\n el.imageUrl = el.url;\r\n el.type = MultimediaHelper.getTypeItem(el);\r\n result.push(el);\r\n }\r\n this.loadCallback(result);\r\n return;\r\n if (!response.entries) return;\r\n let items = [];\r\n for (let i = 0; i < response.entries.length; i++) {\r\n let item = response.entries[i];\r\n item.type = MultimediaHelper.getTypeItem(item);\r\n items.push(item);\r\n }\r\n items = items.sort(function (a, b) {\r\n if (a[\"server_modified\"] > b[\"server_modified\"]) return -1;\r\n if (a[\"server_modified\"] < b[\"server_modified\"]) return 1;\r\n return 0;\r\n });\r\n\r\n if (items.length != 0) {\r\n this._buildThumbs(items);\r\n } else {\r\n this.loadCallback(items);\r\n }\r\n })\r\n\r\n .catch((error) => {\r\n this.loadCallback(null);\r\n });\r\n };\r\n\r\n _getListFilesForMultimedia = () => {\r\n console.warn(this.path);\r\n this.listFilesInContainer({ path: this.path })\r\n .then((response) => {\r\n console.log(response);\r\n\r\n this.loadCallback(response);\r\n // }\r\n return;\r\n window.DataGate.getYoutubeMultimedia(\r\n this.userId,\r\n this.horseId,\r\n (code, youtubeData) => {\r\n if (!response.entries) return;\r\n let items = [];\r\n for (let i = 0; i < response.entries.length; i++) {\r\n let item = response.entries[i];\r\n item.type = MultimediaHelper.getTypeItem(item);\r\n //let ext = item.path_display.split('.').pop().toLowerCase();\r\n //if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\r\n // item.type = MultimediaHelper.TYPE_IMAGE;\r\n //} else {\r\n // item.type = MultimediaHelper.TYPE_VIDEO;\r\n //}\r\n items.push(item);\r\n }\r\n items = items.sort(function (a, b) {\r\n if (a[\"server_modified\"] > b[\"server_modified\"]) return -1;\r\n if (a[\"server_modified\"] < b[\"server_modified\"]) return 1;\r\n return 0;\r\n });\r\n if (youtubeData != null) {\r\n for (let i = 0; i < youtubeData.length; i++) {\r\n let item = youtubeData[i];\r\n item.type = MultimediaHelper.TYPE_YOUTUBE;\r\n items.push(item);\r\n }\r\n }\r\n\r\n if (items.length != 0) {\r\n this._buildThumbs(items);\r\n } else {\r\n this.loadCallback(items);\r\n }\r\n }\r\n );\r\n })\r\n .catch((error) => {\r\n this.loadCallback(null);\r\n });\r\n };\r\n\r\n _getListFilesForTasks = () => {\r\n let end = new Date().formatDesh();\r\n let start = new Date().addDays(-92).formatDesh();\r\n window.db.getTasksByHorseIdForMultimedia(\r\n this.horseId,\r\n start,\r\n end,\r\n (taskArr) => {\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.horseId\r\n );\r\n let horseOwnerId = horse.userid;\r\n let items = [];\r\n if (!taskArr.length) this.loadCallback(items);\r\n for (let i = 0; i < taskArr.length; i++) {\r\n this.path = \"Task\" + horseOwnerId + \"-\" + taskArr[i][\"Id\"];\r\n this.dropbox\r\n .filesListFolder({ path: this.path })\r\n .then((response) => {\r\n if (!response.entries) return;\r\n\r\n for (let i = 0; i < response.entries.length; i++) {\r\n let item = response.entries[i];\r\n item.type = MultimediaHelper.getTypeItem(item);\r\n //let ext = item.path_display.split('.').pop().toLowerCase();\r\n //if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\r\n // item.type = MultimediaHelper.TYPE_IMAGE;\r\n //} else {\r\n // item.type = MultimediaHelper.TYPE_VIDEO;\r\n //}\r\n items.push(item);\r\n }\r\n items = items.sort(function (a, b) {\r\n if (a[\"server_modified\"] > b[\"server_modified\"]) return -1;\r\n if (a[\"server_modified\"] < b[\"server_modified\"]) return 1;\r\n return 0;\r\n });\r\n\r\n if (i == taskArr.length - 1) {\r\n setTimeout(() => {\r\n if (items.length != 0) {\r\n this._buildThumbs(items);\r\n } else {\r\n this.loadCallback(items);\r\n }\r\n }, 500);\r\n }\r\n })\r\n .catch((error) => {\r\n this.loadCallback(null);\r\n });\r\n }\r\n }\r\n );\r\n };\r\n\r\n _getListFilesForNotes = () => {\r\n window.db.getNotesByHorse(this.horseId, (notesArr) => {\r\n let items = [];\r\n this.dropbox\r\n .filesListFolder({ path: this.path })\r\n .then((response) => {\r\n if (!response.entries) return;\r\n for (let i = 0; i < response.entries.length; i++) {\r\n let item = response.entries[i];\r\n item.type = MultimediaHelper.getTypeItem(item);\r\n //let ext = item.path_display.split('.').pop().toLowerCase();\r\n //if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\r\n // item.type = MultimediaHelper.TYPE_IMAGE;\r\n //} else {\r\n // item.type = MultimediaHelper.TYPE_VIDEO;\r\n //}\r\n items.push(item);\r\n }\r\n items = items.sort(function (a, b) {\r\n if (a[\"server_modified\"] > b[\"server_modified\"]) return -1;\r\n if (a[\"server_modified\"] < b[\"server_modified\"]) return 1;\r\n return 0;\r\n });\r\n if (!notesArr.length) this.loadCallback(items);\r\n for (let i = 0; i < notesArr.length; i++) {\r\n this.path =\r\n `${MultimediaHelper.FOLDER_EXTRA_NOTES}-` +\r\n this.horseId +\r\n \"-\" +\r\n notesArr[i][\"Id\"];\r\n this.dropbox\r\n .filesListFolder({ path: this.path })\r\n .then((response) => {\r\n if (!response.entries) return;\r\n\r\n for (let i = 0; i < response.entries.length; i++) {\r\n let item = response.entries[i];\r\n item.type = MultimediaHelper.getTypeItem(item);\r\n //let ext = item.path_display.split('.').pop().toLowerCase();\r\n //if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\r\n // item.type = MultimediaHelper.TYPE_IMAGE;\r\n //} else {\r\n // item.type = MultimediaHelper.TYPE_VIDEO;\r\n //}\r\n items.push(item);\r\n }\r\n items = items.sort(function (a, b) {\r\n if (a[\"server_modified\"] > b[\"server_modified\"]) return -1;\r\n if (a[\"server_modified\"] < b[\"server_modified\"]) return 1;\r\n return 0;\r\n });\r\n\r\n if (i == notesArr.length - 1) {\r\n setTimeout(() => {\r\n if (items.length != 0) {\r\n this._buildThumbs(items);\r\n } else {\r\n this.loadCallback(items);\r\n }\r\n }, 500);\r\n }\r\n })\r\n .catch((error) => {\r\n this.loadCallback(null);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n this.loadCallback(null);\r\n });\r\n });\r\n };\r\n\r\n _checkAllThumbLoaded = () => {\r\n let notLoadedItems = this.items.filter((item) => item.thumbUrl == null);\r\n if (notLoadedItems.length == 0) {\r\n this.loadCallback(this.items);\r\n }\r\n };\r\n\r\n _buildThumbs = (items) => {\r\n this.items = items;\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].type == MultimediaHelper.TYPE_YOUTUBE) {\r\n let code = this._getYoutubeCode(items[i].Link);\r\n items[i].thumbUrl = `https://img.youtube.com/vi/${code}/hqdefault.jpg`;\r\n items[i].fullUrl = `https://www.youtube.com/embed/${code}`;\r\n } else {\r\n this._loadThumb(items[i]);\r\n }\r\n }\r\n this._checkAllThumbLoaded();\r\n };\r\n\r\n _getYoutubeCode = (link) => {\r\n //https://youtu.be/tezlfdvAzcc\r\n //https://www.youtube.com/watch?v=M_hVFRTzFw8\r\n\r\n if (link.indexOf(\"youtu.be\") != -1) {\r\n let code = link.split(\"/\").pop();\r\n return code;\r\n }\r\n if (link.indexOf(\"?v=\") != -1) {\r\n let code = link.split(\"?v=\").pop();\r\n return code;\r\n }\r\n return null;\r\n };\r\n\r\n _loadThumb = (item) => {\r\n new Promise((resolve, reject) => {\r\n this.dropbox\r\n .filesGetThumbnail({\r\n path: item.path_display,\r\n size: \"w480h320\",\r\n })\r\n .then((response) => {\r\n let url = window.URL.createObjectURL(response.fileBlob);\r\n item.thumbUrl = url;\r\n this._checkAllThumbLoaded();\r\n })\r\n .catch((error) => {\r\n item.thumbUrl = \"\";\r\n this._checkAllThumbLoaded();\r\n });\r\n });\r\n };\r\n\r\n getItemLink = (item, callback) => {\r\n if (item.fullUrl != null) {\r\n if (callback) callback(item.fullUrl);\r\n return;\r\n }\r\n if (item.type == MultimediaHelper.TYPE_YOUTUBE) {\r\n let code = this._getYoutubeCode(item);\r\n item.fullUrl = `https://www.youtube.com/embed/${code}`;\r\n if (callback) callback(item.fullUrl);\r\n return;\r\n }\r\n\r\n this.dropbox\r\n .filesGetTemporaryLink({ path: item.path_display })\r\n .then((response) => {\r\n item.fullUrl = response.link;\r\n if (callback) callback(item.fullUrl);\r\n })\r\n .catch(function (error) {\r\n if (callback) callback(null);\r\n });\r\n };\r\n\r\n _loadThubmAndUploadCallback = (\r\n fileName,\r\n dbxItem,\r\n callback,\r\n request_origin\r\n ) => {\r\n if (dbxItem == null) {\r\n callback(fileName, null);\r\n } else {\r\n dbxItem.type = MultimediaHelper.getTypeItem(dbxItem);\r\n //let ext = dbxItem.path_display.split('.').pop().toLowerCase();\r\n //if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\r\n // dbxItem.type = MultimediaHelper.TYPE_IMAGE;\r\n //} else {\r\n // dbxItem.type = MultimediaHelper.TYPE_VIDEO;\r\n //}\r\n this.dropbox\r\n .filesGetThumbnail({\r\n path: dbxItem.path_display,\r\n size: \"w480h320\",\r\n })\r\n .then((response) => {\r\n let url = window.URL.createObjectURL(response.fileBlob);\r\n dbxItem.thumbUrl = url;\r\n\r\n callback(fileName, dbxItem, request_origin);\r\n })\r\n .catch((error) => {\r\n dbxItem.thumbUrl = \"\";\r\n callback(fileName, dbxItem, request_origin);\r\n });\r\n }\r\n };\r\n wait(milliseconds) {\r\n return new Promise((resolve) => setTimeout(resolve, milliseconds));\r\n }\r\n\r\n _setSoothProgress = async (file, new_progress, request_origin) => {\r\n const duration = 2000;\r\n const steps_per_seconds = 2;\r\n const steps = (duration / 1000) * steps_per_seconds;\r\n const delay_between_steps = 1 / steps_per_seconds;\r\n for (let i = 0; i <= steps; i++) {\r\n // alert(file.progress + ((new_progress - file.progress) * i) / steps);\r\n // this.progressCallback(\r\n // request_origin,\r\n // file.name,\r\n // file.progress + ((file.progress - new_progress) * i) / steps\r\n // );\r\n }\r\n };\r\n\r\n _uploadWthSingleRequest = async (\r\n file,\r\n doneCallback,\r\n request_origin,\r\n file_path\r\n ) => {\r\n const path = file_path + \"/\" + file.fileName;\r\n const maxBlob = 4 * 1024 * 1024;\r\n if (true) {\r\n this.uploadFileWithProgress(\r\n file,\r\n path,\r\n doneCallback,\r\n request_origin,\r\n this.dropbox\r\n );\r\n return;\r\n }\r\n\r\n if (file.actual_image) {\r\n console.log(file);\r\n\r\n if (Capacitor.getPlatform() == \"web\") {\r\n FileChunkReader.azureBlobStorageUploadFile({\r\n file: file.actual_image,\r\n sasToken: MultimediaHelper.sasToken,\r\n accountName: MultimediaHelper.accountName,\r\n containerName: this.containerClient.containerName,\r\n targetPath: file.fileName,\r\n progressCallback: (progress) => {},\r\n doneCallback: (success, response) => {\r\n if (success) {\r\n console.log(response);\r\n doneCallback(response, request_origin);\r\n } else {\r\n console.error(\"Upload failed\");\r\n }\r\n },\r\n }).then();\r\n } else {\r\n // alert(\"AICI MA\");\r\n // const doneCallback = doneCallback;\r\n FileChunkReader.addListener(\"uploadComplete\", (info) => {\r\n FileChunkReader.removeAllListeners(\"uploadComplete\");\r\n // alert(\"DONE\");\r\n if (info.success) {\r\n if (typeof info === \"string\") {\r\n doneCallback(JSON.parse(info), request_origin);\r\n } else {\r\n doneCallback(info, request_origin);\r\n }\r\n } else {\r\n console.error(\"Upload failed\");\r\n }\r\n });\r\n FileChunkReader.azureBlobStorageUploadFile({\r\n uri: file.media_path,\r\n sasToken: MultimediaHelper.sasToken,\r\n accountName: MultimediaHelper.accountName,\r\n containerName: this.containerClient.containerName,\r\n blobName: file.fileName,\r\n });\r\n }\r\n } else {\r\n // alert(\"CE E AICI MA PLA\");\r\n FileChunkReader.addListener(\"uploadProgress\", (info) => {\r\n this.progressCallback(request_origin, file.fileName, info.progress);\r\n });\r\n\r\n FileChunkReader.addListener(\"uploadComplete\", (info) => {\r\n FileChunkReader.removeAllListeners(\"uploadProgress\");\r\n FileChunkReader.removeAllListeners(\"uploadComplete\");\r\n if (info.success) {\r\n if (typeof info === \"string\") {\r\n doneCallback(JSON.parse(info), request_origin);\r\n } else {\r\n doneCallback(info, request_origin);\r\n }\r\n } else {\r\n console.error(\"Upload failed\");\r\n }\r\n });\r\n FileChunkReader.azureBlobStorageUploadFile({\r\n uri: file.media_path,\r\n sasToken: MultimediaHelper.sasToken,\r\n accountName: MultimediaHelper.accountName,\r\n containerName: this.containerClient.containerName,\r\n blobName: file.fileName,\r\n targetPath: path,\r\n }).then();\r\n }\r\n };\r\n base64ToBlob(base64, mimeType = \"\") {\r\n // Decode Base64 string to a binary string\r\n const binaryStr = atob(base64);\r\n // Create a Uint8Array of the same length as the binary string\r\n const length = binaryStr.length;\r\n const bytes = new Uint8Array(length);\r\n // Fill the Uint8Array with byte values from the binary string\r\n for (let i = 0; i < length; i++) {\r\n bytes[i] = binaryStr.charCodeAt(i);\r\n }\r\n // Create and return a Blob from the Uint8Array\r\n return new Blob([bytes], { type: mimeType });\r\n }\r\n async uploadFileChunk(options) {\r\n const {\r\n sasToken,\r\n accountName,\r\n containerName,\r\n file,\r\n targetPath,\r\n progressCallback,\r\n doneCallback,\r\n } = options;\r\n\r\n const blobServiceClient = new BlobServiceClient(\r\n `https://${accountName}.blob.core.windows.net?${sasToken}`\r\n );\r\n const containerClient = blobServiceClient.getContainerClient(containerName);\r\n const blockBlobClient = containerClient.getBlockBlobClient(targetPath);\r\n\r\n const chunkSize = 4 * 1024 * 1024; // 4MB\r\n const totalChunks = Math.ceil(file.size / chunkSize);\r\n let uploadedBytes = 0;\r\n const blockList = [];\r\n\r\n for (let i = 0; i < totalChunks; i++) {\r\n const start = i * chunkSize;\r\n const end = Math.min(start + chunkSize, file.size);\r\n const chunk = file.slice(start, end);\r\n\r\n const arrayBuffer = await chunk.arrayBuffer();\r\n const buffer = new Uint8Array(arrayBuffer);\r\n const blockId = btoa(String(i).padStart(5, \"0\")); // Base64 encode the block ID\r\n console.log(\"STAGE BLOCK\");\r\n await blockBlobClient.stageBlock(blockId, buffer, buffer.length);\r\n uploadedBytes += chunkSize;\r\n progressCallback(Math.min((uploadedBytes / file.size) * 100, 100));\r\n console.log(\"STAGE BLOCK DONE\");\r\n\r\n blockList.push(blockId);\r\n }\r\n\r\n await blockBlobClient.commitBlockList(blockList, {\r\n blobHTTPHeaders: {\r\n blobContentType: file.type,\r\n },\r\n });\r\n\r\n doneCallback();\r\n }\r\n uploadFileWithProgress = async (\r\n file,\r\n path,\r\n doneCallback,\r\n request_origin,\r\n dbx\r\n ) => {\r\n const fileSize = file.fileSize;\r\n\r\n try {\r\n if (file.actual_image && Capacitor.getPlatform() == \"web\") {\r\n FileChunkReader.azureBlobStorageUploadFileChunk({\r\n file: file.actual_image,\r\n sasToken: MultimediaHelper.sasToken,\r\n accountName: MultimediaHelper.accountName,\r\n containerName: this.containerClient.containerName,\r\n targetPath: file.fileName,\r\n progressCallback: (progress) => {\r\n if (this.progressCallback)\r\n this.progressCallback(\r\n request_origin,\r\n file.fileName,\r\n progress / 100\r\n );\r\n },\r\n doneCallback: (success, response) => {\r\n console.log(response);\r\n if (success) {\r\n console.log(response);\r\n doneCallback(response, request_origin);\r\n } else {\r\n console.error(\"Upload failed\");\r\n }\r\n },\r\n }).then();\r\n } else {\r\n FileChunkReader.addListener(\"uploadProgress\", (info) => {\r\n this.progressCallback(request_origin, file.fileName, info.progress);\r\n });\r\n\r\n FileChunkReader.addListener(\"uploadComplete\", (info) => {\r\n FileChunkReader.removeAllListeners(\"uploadProgress\");\r\n FileChunkReader.removeAllListeners(\"uploadComplete\");\r\n\r\n if (info.success) {\r\n if (typeof info === \"string\") {\r\n doneCallback(JSON.parse(info), request_origin);\r\n } else {\r\n doneCallback(info, request_origin);\r\n }\r\n } else {\r\n console.error(\"Upload failed\");\r\n }\r\n });\r\n FileChunkReader.azureBlobStorageUploadFileChunk({\r\n uri: file.media_path,\r\n sasToken: MultimediaHelper.sasToken,\r\n accountName: MultimediaHelper.accountName,\r\n containerName: this.containerClient.containerName,\r\n blobName: file.fileName,\r\n fileSize: fileSize,\r\n }).then();\r\n }\r\n } catch (error) {\r\n doneCallback(null, request_origin);\r\n }\r\n };\r\n\r\n cancelUploading = (fileName) => {\r\n let cancelIndex = this.uploadQueue.findIndex(\r\n (f) => f.file.fileName == fileName\r\n );\r\n this.uploadQueue.splice(cancelIndex, 1);\r\n\r\n this.refreshUploadQueue();\r\n };\r\n\r\n uploadYoutube = (link, callback) => {\r\n window.DataGate.addYoutubeMultimedia(\r\n link,\r\n this.userId,\r\n this.horseId,\r\n (c, data) => {\r\n let code = this._getYoutubeCode(link);\r\n const item = {\r\n Link: link,\r\n type: MultimediaHelper.TYPE_YOUTUBE,\r\n fullUrl: `https://www.youtube.com/embed/${code}`,\r\n thumbUrl: `https://img.youtube.com/vi/${code}/hqdefault.jpg`,\r\n };\r\n callback(item);\r\n }\r\n );\r\n };\r\n\r\n deleteItems = (items, callback) => {\r\n this.deleteCallback = callback;\r\n this.itemsForDelete = items;\r\n for (let i = 0; i < this.itemsForDelete.length; i++) {\r\n this._deleteItem(this.itemsForDelete[i]);\r\n }\r\n };\r\n\r\n _deleteItem = (item) => {\r\n if (item.type == MultimediaHelper.TYPE_YOUTUBE) {\r\n window.DataGate.deleteYoutubeMultimedia(item.Id, () => {\r\n item.isDeleted = true;\r\n this._checkItemsDelete();\r\n });\r\n } else {\r\n const blobClient = this.containerClient.getBlobClient(item.name);\r\n\r\n // Delete the blob\r\n blobClient.delete().then(() => {\r\n item.isDeleted = true;\r\n this._checkItemsDelete();\r\n });\r\n // this.dropbox\r\n // .filesDelete({ path: item.path_display })\r\n // .then((response) => {\r\n // item.isDeleted = true;\r\n // this._checkItemsDelete();\r\n // })\r\n // .catch((error) => {\r\n // console.error(error);\r\n // item.isDeleted = true;\r\n // this._checkItemsDelete();\r\n // });\r\n }\r\n };\r\n\r\n _checkItemsDelete = () => {\r\n let notDeletedItems = this.itemsForDelete.filter((item) => !item.isDeleted);\r\n if (notDeletedItems.length == 0) {\r\n this.deleteCallback();\r\n }\r\n };\r\n\r\n changeName = async (oldFileName, newFileName, callback) => {\r\n const oldBlobClient = this.containerClient.getBlobClient(oldFileName);\r\n const newBlobClient = this.containerClient.getBlobClient(newFileName);\r\n\r\n // Copy the blob to the new name\r\n newBlobClient.beginCopyFromURL(oldBlobClient.url).then(() =>\r\n oldBlobClient\r\n .delete()\r\n .then(() => callback(true))\r\n .catch(() => callback(false))\r\n );\r\n\r\n // const pathNew =\r\n // item.path_display.substring(0, item.path_display.lastIndexOf(\"/\")) +\r\n // \"/\" +\r\n // nameNew;\r\n // this.dropbox\r\n // .filesMove({\r\n // from_path: item.path_display,\r\n // to_path: pathNew,\r\n // })\r\n // .then((response) => {\r\n // response.thumbUrl = item.thumbUrl;\r\n // response.type = item.type;\r\n // if (callback) callback(response);\r\n // })\r\n // .catch(function (error) {\r\n // console.error(error);\r\n // });\r\n };\r\n\r\n downloadItems = (items, callback) => {\r\n let dowloadStep = (itemIndex) => {\r\n if (itemIndex < items.length) {\r\n this._downloadItem(items[itemIndex], () => {\r\n dowloadStep(itemIndex + 1);\r\n });\r\n } else {\r\n window.Spinner.hide();\r\n //end\r\n }\r\n };\r\n\r\n window.Spinner.show();\r\n dowloadStep(0);\r\n };\r\n\r\n /**\r\n *\r\n * Download a list of items from dropbox\r\n *\r\n * @param {String[]} items list of items to be downloaded\r\n *\r\n * @returns A list of blobs, corresponding to the items provided.\r\n */\r\n downloadAllItems = async (items) => {\r\n let result = [];\r\n for (let item of items) {\r\n if (item.type == MultimediaHelper.TYPE_YOUTUBE) {\r\n continue;\r\n }\r\n const response = await this.dropbox.filesDownload({\r\n path: item.path_display,\r\n });\r\n result.push(\r\n new File([response.fileBlob], response.name, {\r\n type: \"image/jpeg\",\r\n })\r\n );\r\n }\r\n return result;\r\n };\r\n\r\n _downloadItem = (item, callback) => {\r\n if (item.type == MultimediaHelper.TYPE_YOUTUBE) {\r\n callback();\r\n return;\r\n }\r\n\r\n this.dropbox\r\n .filesDownload({\r\n path: item.path_display,\r\n })\r\n .then((response) => {\r\n var downloadUrl = URL.createObjectURL(response.fileBlob);\r\n var downloadButton = document.createElement(\"a\");\r\n downloadButton.setAttribute(\"href\", downloadUrl);\r\n downloadButton.setAttribute(\"download\", response.name);\r\n downloadButton.setAttribute(\"class\", \"button\");\r\n downloadButton.innerText = \"Download: \" + response.name;\r\n downloadButton.click();\r\n\r\n callback();\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n };\r\n\r\n showMobileFullscreen(imageItem) {\r\n if (\r\n window.multimediaMobileHelper.isActive &&\r\n this.type == MultimediaHelper.FOLDER_MULTIMEDIA\r\n ) {\r\n window.multimediaMobileHelper.showFullScreen(\r\n this.userId,\r\n this.horseId,\r\n imageItem\r\n );\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n downloadAndShareItems(items) {\r\n if (window.multimediaMobileHelper.isActive) {\r\n window.multimediaMobileHelper.downloadAndShareItems(items);\r\n }\r\n }\r\n\r\n hasImages = (callback) => {\r\n this.path = `${MultimediaHelper.FOLDER_MULTIMEDIA}=${this.horseId}`;\r\n this.dropbox\r\n .filesListFolder({ path: this.path })\r\n .then((response) => {\r\n if (callback) callback(response.entries.length > 0);\r\n })\r\n .catch((error) => {\r\n if (callback) callback(false);\r\n });\r\n };\r\n\r\n static getTypeItem(item) {\r\n let ext = item.path_display.split(\".\").pop().toLowerCase();\r\n if (\r\n ext == \"png\" ||\r\n ext == \"jpeg\" ||\r\n ext == \"jpg\" ||\r\n ext == \"gif\" ||\r\n ext == \"bmp\"\r\n ) {\r\n return MultimediaHelper.TYPE_IMAGE;\r\n } else if (ext == \"pdf\") {\r\n return MultimediaHelper.TYPE_PDF;\r\n } else {\r\n return MultimediaHelper.TYPE_VIDEO;\r\n }\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { set } from \"lodash\";\r\nimport MultimediaHelper from \"../Multimedia/MultimediaHelper\";\r\n\r\nexport default class TaskXrayPage extends Component {\r\n static show(taskId) {\r\n window.showPage(\"#taskXrayPage\");\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"taskXrayPage\")\r\n );\r\n\r\n setTimeout(() => {\r\n try {\r\n document.getElementById(\"xrayFileInput\").value = null;\r\n } catch {}\r\n }, 100);\r\n }\r\n\r\n static DropboxToken =\r\n \"HqmkA9nKm0wAAAAAAADLWpj-stRJN_4JyfLxtRoZD-Rzpjyz9nnuI_CMbkRkOoSk\";\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n entries: [],\r\n uploadingFiles: [],\r\n uploadingIndex: -1,\r\n };\r\n\r\n this.dropbox = new window.Dropbox.Dropbox({\r\n accessToken: TaskXrayPage.DropboxToken,\r\n });\r\n\r\n this.helper = new MultimediaHelper();\r\n }\r\n\r\n componentDidMount() {\r\n this.loadData();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.taskId != prevProps.taskId) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n loadData() {\r\n this.path = `xray-${this.props.taskId}`;\r\n\r\n this.setState({\r\n entries: [],\r\n uploadingFiles: [],\r\n });\r\n\r\n window.Spinner.show();\r\n this.helper.handleCreateContainer(this.path).then(() => {\r\n this._getListFiles();\r\n });\r\n // };\r\n // this.dropbox\r\n // .filesCreateFolder({\r\n // path: this.path,\r\n // autorename: false,\r\n // })\r\n // .then((response) => {\r\n // this._getListFiles();\r\n // })\r\n // .catch((error) => {\r\n // this._getListFiles();\r\n // });\r\n }\r\n\r\n _getListFiles() {\r\n // this.dropbox\r\n // .filesListFolder({ path: this.path })\r\n // .then((response) => {\r\n // this.setState({\r\n // entries: response.entries,\r\n // });\r\n\r\n // })\r\n // .catch((error) => {\r\n // window.Spinner.hide();\r\n // });\r\n this.helper.listBlobsWithProperties(this.path).then((response) => {\r\n this.setState({\r\n entries: response.map((el) => {\r\n el.path_display = el.name;\r\n el.fullUrl = el.url;\r\n el.thumbUrl = el.url;\r\n el.imageUrl = el.url;\r\n el.type = MultimediaHelper.getTypeItem(el);\r\n return el;\r\n }),\r\n });\r\n console.log(response);\r\n window.Spinner.hide();\r\n });\r\n }\r\n\r\n close = () => {\r\n window.showPage(\"#mainPage\");\r\n };\r\n\r\n onFilesSeleted = (e) => {\r\n let arr = [];\r\n for (let i = 0; i < e.target.files.length; i++)\r\n arr.push({\r\n name: e.target.files[i].name,\r\n size: e.target.files[i].size,\r\n lastModifiedDate: e.target.files[i].lastModifiedDate,\r\n file: e.target.files[i],\r\n });\r\n this.setState({\r\n uploadingFiles: [...this.state.uploadingFiles, ...arr],\r\n });\r\n setTimeout(() => this.startUploading());\r\n };\r\n\r\n startUploading() {\r\n if (this.isUploading) return;\r\n this.isUploading = true;\r\n this._uploadNextFile();\r\n }\r\n\r\n _uploadNextFile() {\r\n let uploadingIndex = this.state.uploadingFiles.findIndex(\r\n (item) => !item.isUploaded\r\n );\r\n this.setState({\r\n uploadingIndex: uploadingIndex,\r\n });\r\n if (uploadingIndex == -1) {\r\n this.isUploading = false;\r\n this.loadData();\r\n } else {\r\n const file = this.state.uploadingFiles[uploadingIndex].file;\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n this._uploadWthSingleRequest(\r\n file,\r\n reader.result,\r\n (item) => {\r\n let uploadingFiles = [...this.state.uploadingFiles];\r\n uploadingFiles[this.state.uploadingIndex] = {\r\n ...uploadingFiles[this.state.uploadingIndex],\r\n isUploaded: true,\r\n };\r\n this.setState({\r\n uploadingFiles: uploadingFiles,\r\n });\r\n setTimeout(() => this._uploadNextFile());\r\n },\r\n () => {}\r\n );\r\n };\r\n reader.readAsArrayBuffer(file);\r\n }\r\n }\r\n\r\n _uploadWthSingleRequest = (\r\n file,\r\n arrayBuffer,\r\n doneCallback,\r\n progressCallback\r\n ) => {\r\n const path = this.path + \"/\" + encodeURI(file.name);\r\n\r\n const fileEntry = {\r\n actual_image: file,\r\n fileName: file.name,\r\n };\r\n this.helper._uploadWthSingleRequest(\r\n fileEntry,\r\n (status, res) => {\r\n doneCallback(res);\r\n },\r\n document.location.href,\r\n path\r\n );\r\n\r\n //ajax for getting pogress, stop workig because of CORS\r\n //window.$.ajax({\r\n // url: \"https://content.dropboxapi.com/2/files/upload\",\r\n // headers: {\r\n // 'Authorization': 'Bearer ' + TaskXrayPage.DropboxToken,\r\n // //'Content-Length': file.size,\r\n // 'Dropbox-API-Arg': '{\"path\": \"' + path + '\"}'\r\n // },\r\n // crossDomain: true,\r\n // crossOrigin: true,\r\n // type: 'POST',\r\n // contentType: 'application/octet-stream',//file.type,\r\n // data: arrayBuffer,\r\n // dataType: 'json',\r\n // processData: false,\r\n // xhr: () => {\r\n // this.xhr = new window.XMLHttpRequest();\r\n // this.xhr.upload.addEventListener(\"progress\", function (evt) {\r\n // if (evt.lengthComputable) {\r\n // const percentComplete = parseInt(parseFloat(evt.loaded / evt.total) * 100);\r\n // progressCallback(percentComplete);\r\n // }\r\n // }, false);\r\n // return this.xhr;\r\n // },\r\n // success: function (result) {\r\n // console.log(result);\r\n // doneCallback(result);\r\n // },\r\n // error: function (jqXHR, textStatus, errorThrown) {\r\n // console.log(errorThrown);\r\n // doneCallback(null);\r\n // }\r\n //});\r\n };\r\n\r\n _deleteItem = (item, callback) => {\r\n this.dropbox\r\n .filesDelete({ path: item.path_display })\r\n .then((response) => {\r\n callback();\r\n })\r\n .catch((error) => {\r\n callback();\r\n });\r\n };\r\n\r\n getFilesSize(bytes) {\r\n if (bytes < 1024) {\r\n return bytes + \"b\";\r\n }\r\n if (bytes < 1024 * 1024) {\r\n return (bytes / 1024).toFixed(1) + \"kb\";\r\n }\r\n return (bytes / 1024 / 1024).toFixed(1) + \"mb\";\r\n }\r\n\r\n onSelectAll = (e) => {\r\n const entries = this.state.entries.map((item) => ({\r\n ...item,\r\n isSelected: e.target.checked,\r\n }));\r\n this.setState({\r\n entries: entries,\r\n });\r\n };\r\n\r\n onSelectItem = (item, itemIndex) => {\r\n const entries = [...this.state.entries];\r\n entries[itemIndex] = {\r\n ...entries[itemIndex],\r\n isSelected: !entries[itemIndex].isSelected,\r\n };\r\n this.setState({\r\n entries: entries,\r\n });\r\n };\r\n\r\n onDeleteClick = () => {\r\n let arr = this.state.entries\r\n .filter((item) => item.isSelected)\r\n .map((el) => {\r\n return { ...el, type: MultimediaHelper.getTypeItem(el) };\r\n });\r\n\r\n if (arr.length <= 0) return;\r\n\r\n window.Spinner.show();\r\n this.helper.deleteItems(arr, () => {\r\n window.Spinner.hide();\r\n this.loadData();\r\n });\r\n // if (arr.length != 0) {\r\n // window.Spinner.show();\r\n // const deleteFunc = (index) => {\r\n // if (index < arr.length) {\r\n // this._deleteItem(arr[index], () => {\r\n // deleteFunc(index + 1);\r\n // });\r\n // } else {\r\n // window.Spinner.hide();\r\n // this.loadData();\r\n // }\r\n // };\r\n // deleteFunc(0);\r\n // }\r\n };\r\n\r\n downloadFiles = () => {\r\n window.Spinner.show();\r\n console.log(this.state.entries);\r\n\r\n try {\r\n const filesToDownload = this.state.entries.map((el) => {\r\n return { url: el.fullUrl, name: el.name };\r\n });\r\n if (this.state.entries.length < 5) {\r\n MultimediaHelper.downloadFilesOneByOne(filesToDownload).then(() => {\r\n window.Spinner.hide();\r\n });\r\n } else {\r\n MultimediaHelper.downloadZip(filesToDownload).then(() => {\r\n window.Spinner.hide();\r\n });\r\n }\r\n } catch (error) {\r\n window.Spinner.hide();\r\n }\r\n };\r\n\r\n render() {\r\n const { uploadingFiles, uploadingIndex, entries } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Delete selected\r\n \r\n \r\n Download all\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {uploadingFiles.map((item, itemIndex) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n {entries.map((item, itemIndex) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n \r\n NameSizeDate
{item.name}{this.getFilesSize(item.size)}{item.lastModifiedDate.toLocaleString()}\r\n {item.isUploaded ? (\r\n Done\r\n ) : (\r\n <>\r\n {itemIndex == uploadingIndex ? (\r\n Uploading\r\n ) : (\r\n Waiting\r\n )}\r\n \r\n )}\r\n
\r\n this.onSelectItem(item, itemIndex)}\r\n />\r\n {decodeURI(item.name)}{this.getFilesSize(item.size)}{item.lastModifiedDate.toLocaleString()}
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\n\r\nexport default class SpinnerView extends Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport { Document, Page, pdfjs } from \"react-pdf\";\r\nimport pdfjsWorker from \"react-pdf/dist/esm/pdf.worker.entry\";\r\n\r\nimport \"./PdfViewer.css\";\r\n\r\nclass PdfViewer extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showPdfDocument: props.src,\r\n currentPdfPage: 1,\r\n pdfNumberOfPages: 1,\r\n };\r\n\r\n pdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker; //`//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n this.pdfPageWidth = window.isMobileDevice()\r\n ? window.innerWidth - 40\r\n : Math.min(window.innerWidth - 40, 800);\r\n }\r\n\r\n onPdfDocumentLoadSuccess = (args) => {\r\n this.setState({\r\n pdfNumberOfPages: args.numPages,\r\n });\r\n };\r\n\r\n onCurrentPdfPageChange = (offset) => {\r\n const currentPdfPage = this.state.currentPdfPage + offset;\r\n if (currentPdfPage <= 0 || currentPdfPage > this.state.pdfNumberOfPages)\r\n return;\r\n\r\n this.setState({\r\n currentPdfPage: currentPdfPage,\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n this.onCurrentPdfPageChange(-1)}\r\n />\r\n
\r\n {this.state.currentPdfPage}/{this.state.pdfNumberOfPages}\r\n
\r\n this.onCurrentPdfPageChange(1)}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PdfViewer;\r\n","import React from \"react\";\r\nimport \"./MediaTypeAlert.css\";\r\nimport { useEffect } from \"react\";\r\nexport default function MediaTypeAlert({\r\n show,\r\n setShow,\r\n selectImages,\r\n selectVideos,\r\n}) {\r\n if (!show) return null;\r\n\r\n const selectImagesHandler = () => {\r\n setShow(false);\r\n selectImages();\r\n };\r\n const selectVideosHandler = () => {\r\n setShow(false);\r\n selectVideos();\r\n };\r\n\r\n return (\r\n
setShow(false)}>\r\n
\r\n
\r\n

Select media type

\r\n

Please select the type of files you want to upload

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

\r\n \r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {showTimeTraining == 1 ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n {showDateTraining == 1 ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n {showDoneTraining == 1 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {showCopyTaskTraining == 1 ? (\r\n currentIsCanCopy ? (\r\n \r\n \r\n \r\n {window.lang.copyTask}\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n {window.lang.copyTask}\r\n \r\n \r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n\r\n {vetTrainingId == currentTrainingType ? (\r\n \r\n \r\n \r\n ) : farTrainingId == currentTrainingType ? (\r\n \r\n \r\n \r\n ) : role != null && role.tShowSmileOnTask == false ? (\r\n <>\r\n ) : showEvaluationTraining == 1 ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n {vetTrainingId == currentTrainingType &&\r\n currentVeterinarianType == 4 ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n {showRemarksTraining == 1 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
{window.lang.trainerName}{window.lang.training}
\r\n \r\n {trainersArr.length ? (\r\n trainersArr.map((currentElement) =>\r\n currentElement.id == window.myid ? (\r\n \r\n Me\r\n \r\n ) : (\r\n \r\n {currentElement.name}\r\n \r\n )\r\n )\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n {trainingTypesArr.length ? (\r\n trainingTypesArr.map((currentElement) => (\r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
\r\n
\r\n {window.lang.horse}\r\n
\r\n \r\n {horseNameArr.length ? (\r\n horseNameArr.map((currentElement) => (\r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
\r\n \r\n {selectTime}\r\n \r\n
\r\n
\r\n }\r\n dateFormat=\"dd-MM-yyyy\"\r\n selected={date}\r\n onChange={this.handleChange}\r\n />\r\n
\r\n
\r\n {this.isField(this.state.currentTrainingName) &&\r\n this.getFieldNote(this.state.horseNotes) && (\r\n \r\n alert(\r\n this.getFieldNote(this.state.horseNotes)\r\n ?.TextNote\r\n )\r\n }\r\n className=\"field-note\"\r\n >\r\n {window.lang.fieldNote + \": \"}\r\n {this.getFieldNote(this.state.horseNotes)?.TextNote}\r\n \r\n )}\r\n
\r\n \r\n \r\n {window.lang.trained}\r\n \r\n
\r\n {/* SELECT FIELD AREA, FIELD & TIME_PERIOD */}\r\n {this.isField(this.state.currentTrainingName) && (\r\n
\r\n {/* FIELD AREA */}\r\n
\r\n {window.lang.fieldArea}\r\n {\r\n this.setState({\r\n selectedFieldAreaIndex: e.currentTarget.value,\r\n selectedFieldIndex: -1,\r\n selectedFieldTimePeriodIndex: -1,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.fieldAreas.map((fieldArea, index) => (\r\n \r\n ))}\r\n \r\n
\r\n\r\n {/* FIELD */}\r\n
\r\n {window.lang.fieldName}\r\n {\r\n this.setState({\r\n selectedFieldIndex: e.currentTarget.value,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.selectedFieldAreaIndex >= 0 &&\r\n this.state.fieldAreas[\r\n this.state.selectedFieldAreaIndex\r\n ].fields.map((field, index) => (\r\n \r\n ))}\r\n \r\n
\r\n {/* FIELD TIME PERIOD */}\r\n
\r\n {window.lang.timePeriod}\r\n {\r\n this.setState({\r\n selectedFieldTimePeriodIndex:\r\n e.currentTarget.value,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.selectedFieldAreaIndex >= 0 &&\r\n this.state.selectedFieldIndex >= 0 &&\r\n this.state.fieldAreas[\r\n this.state.selectedFieldAreaIndex\r\n ].fields[\r\n this.state.selectedFieldIndex\r\n ].timePeriods.map((time_period, index) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n )}\r\n
\r\n \r\n \r\n {veterinarType.map((i) => (\r\n \r\n ))}\r\n \r\n \r\n {currentVeterinarianType == 4 ? (\r\n
\r\n \r\n {dewormingTypes.map((i) => (\r\n \r\n ))}\r\n \r\n
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n \r\n {farrierType.map((i) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n \r\n {farrierWeeks.map((i, index) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n \r\n {imgStrArr.length ? (\r\n imgStrArr.map((i) =>\r\n i.imgId == currentEvaluation ? (\r\n \r\n ) : (\r\n \r\n )\r\n )\r\n ) : (\r\n <>\r\n )}\r\n \r\n
\r\n
\r\n \r\n {dewormingTypesPeriod.map((i, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {this.state.showReminderPopup && (\r\n \r\n )}\r\n
\r\n
\r\n \r\n ) : (\r\n \r\n \r\n \r\n {showDateTraining == 1 ? (\r\n
\r\n
\r\n }\r\n dateFormat=\"dd-MM-yyyy\"\r\n selected={date}\r\n onChange={this.handleChange}\r\n />\r\n
\r\n
\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {showTimeTraining == 1 ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {vetTrainingId == currentTrainingType &&\r\n currentVeterinarianType == 4 ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n \r\n {showRemarksTraining == 1 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {this.state.showReminderPopup && (\r\n \r\n )}\r\n \r\n \r\n \r\n
{window.lang.horse}{window.lang.trainerName}{window.lang.training}
\r\n
\r\n \r\n {horseNameArr.length ? (\r\n horseNameArr.map((currentElement, index) =>\r\n index == 0 ? (\r\n currentElement.id == currentHorseId ? (\r\n \r\n \r\n {currentElement.name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.name}\r\n \r\n \r\n )\r\n ) : index == horseNameArr.length - 1 ? (\r\n currentElement.id == currentHorseId ? (\r\n \r\n \r\n {currentElement.name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.name}\r\n \r\n \r\n )\r\n ) : currentElement.id == currentHorseId ? (\r\n \r\n \r\n {currentElement.name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.name}\r\n \r\n \r\n )\r\n )\r\n ) : (\r\n <>\r\n )}\r\n \r\n
\r\n
\r\n
\r\n \r\n {trainersArr.length ? (\r\n trainersArr.map((currentElement, index) =>\r\n index == 0 ? (\r\n currentElement.id == currentTrainerId ? (\r\n \r\n \r\n {currentElement.id == window.myid\r\n ? \"Me\"\r\n : currentElement.name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.id == window.myid\r\n ? \"Me\"\r\n : currentElement.name}\r\n \r\n \r\n )\r\n ) : index == trainersArr.length - 1 ? (\r\n currentElement.id == currentTrainerId ? (\r\n \r\n \r\n {currentElement.id == window.myid\r\n ? \"Me\"\r\n : currentElement.name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.id == window.myid\r\n ? \"Me\"\r\n : currentElement.name}\r\n \r\n \r\n )\r\n ) : currentElement.id == currentTrainerId ? (\r\n \r\n \r\n {currentElement.id == window.myid\r\n ? \"Me\"\r\n : currentElement.name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.id == window.myid\r\n ? \"Me\"\r\n : currentElement.name}\r\n \r\n \r\n )\r\n )\r\n ) : (\r\n \r\n Create new user\r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n \r\n {trainingTypesArr.length ? (\r\n trainingTypesArr.map((currentElement, index) =>\r\n index == 0 ? (\r\n currentElement.id == currentTrainingType ? (\r\n \r\n \r\n {currentElement.name +\r\n \"(\" +\r\n currentElement.shortname +\r\n \")\"}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.name +\r\n \"(\" +\r\n currentElement.shortname +\r\n \")\"}\r\n \r\n \r\n )\r\n ) : index == trainingTypesArr.length - 1 ? (\r\n currentElement.id == currentTrainingType ? (\r\n \r\n \r\n {currentElement.name +\r\n \"(\" +\r\n currentElement.shortname +\r\n \")\"}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.name +\r\n \"(\" +\r\n currentElement.shortname +\r\n \")\"}\r\n \r\n \r\n )\r\n ) : currentElement.id == currentTrainingType ? (\r\n \r\n \r\n {currentElement.name +\r\n \"(\" +\r\n currentElement.shortname +\r\n \")\"}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.name +\r\n \"(\" +\r\n currentElement.shortname +\r\n \")\"}\r\n \r\n \r\n )\r\n )\r\n ) : (\r\n <>\r\n )}\r\n \r\n
\r\n
\r\n {this.isField(this.state.currentTrainingName) &&\r\n this.getFieldNote(this.state.horseNotes) && (\r\n \r\n alert(\r\n this.getFieldNote(this.state.horseNotes)?.TextNote\r\n )\r\n }\r\n className=\"field-note\"\r\n >\r\n {window.lang.fieldNote + \": \"}\r\n {this.getFieldNote(this.state.horseNotes)?.TextNote}\r\n \r\n )}\r\n \r\n \r\n {selectTime}\r\n \r\n
\r\n {showDoneTraining == 1 ? (\r\n \r\n \r\n \r\n {window.lang.trained}\r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n {vetTrainingId == currentTrainingType ? (\r\n \r\n \r\n {veterinarType.map((i) => (\r\n \r\n ))}\r\n \r\n \r\n ) : farTrainingId == currentTrainingType ? (\r\n
\r\n \r\n \r\n {farrierType.map((i) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n \r\n {farrierWeeks.map((i, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n ) : role != null && role.tShowSmileOnTask == false ? (\r\n <>\r\n ) : showEvaluationTraining == 1 ? (\r\n \r\n {imgStrArr.length ? (\r\n imgStrArr.map((i) =>\r\n i.imgId == currentEvaluation ? (\r\n \r\n ) : (\r\n \r\n )\r\n )\r\n ) : (\r\n <>\r\n )}\r\n \r\n ) : (\r\n <>\r\n )}\r\n\r\n {showCopyTaskTraining == 1 ? (\r\n currentIsCanCopy ? (\r\n
\r\n \r\n \r\n {window.lang.copyTask}\r\n \r\n
\r\n ) : (\r\n
\r\n \r\n \r\n {window.lang.copyTask}\r\n \r\n
\r\n )\r\n ) : (\r\n <>\r\n )}\r\n\r\n {/* SELECT FIELD AREA, FIELD & TIME_PERIOD */}\r\n {this.isField(this.state.currentTrainingName) && (\r\n <>\r\n {/* FIELD AREA */}\r\n {\r\n this.setState({\r\n selectedFieldAreaIndex: e.currentTarget.value,\r\n selectedFieldIndex: -1,\r\n selectedFieldTimePeriodIndex: -1,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.fieldAreas.map((fieldArea, index) => (\r\n \r\n ))}\r\n \r\n\r\n {/* FIELD */}\r\n {\r\n this.setState({\r\n selectedFieldIndex: e.currentTarget.value,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.selectedFieldAreaIndex >= 0 &&\r\n this.state.fieldAreas[\r\n this.state.selectedFieldAreaIndex\r\n ].fields.map((field, index) => (\r\n \r\n ))}\r\n \r\n {/* FIELD TIME PERIOD */}\r\n {\r\n this.setState({\r\n selectedFieldTimePeriodIndex:\r\n e.currentTarget.value,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.selectedFieldAreaIndex >= 0 &&\r\n this.state.selectedFieldIndex >= 0 &&\r\n this.state.fieldAreas[\r\n this.state.selectedFieldAreaIndex\r\n ].fields[\r\n this.state.selectedFieldIndex\r\n ].timePeriods.map((time_period, index) => (\r\n \r\n ))}\r\n \r\n \r\n )}\r\n
\r\n {vetTrainingId == currentTrainingType &&\r\n currentVeterinarianType == 4 ? (\r\n
\r\n \r\n \r\n {dewormingTypes.map((i) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n \r\n {dewormingTypesPeriod.map((i, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n {window.lang.remark}\r\n \r\n
\r\n \r\n )}\r\n {this.state.isShowTimePopup && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nconst InputForMobile = (props) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst InputForDesktop = (props) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst Footer = (props) => {\r\n return (\r\n
\r\n {!props.isVetPage && (\r\n \r\n {window.lang.addExtraTraining}\r\n \r\n )}\r\n \r\n {props.showData.showXray && (\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n {props.showData.showMultimediaTraining == 1 ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n {props.showData.showCopyButtonTraining == 1 ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n {props.showData.showRemainderTraining == 1 ? (\r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default class TrainingPopup {\r\n showPopup(options, item, callback, returnTrainingCallback) {\r\n if (options == null) {\r\n options = {};\r\n }\r\n if (options.horseId == null) {\r\n let horseId = window.DataStorage.getAllHorses()[0].id;\r\n options.horseId = horseId;\r\n }\r\n if (options.date == null) {\r\n options.date = new Date();\r\n }\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"trainingPopupReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport uniqueId from \"lodash/uniqueId\";\r\nimport ClickNHold from \"react-click-n-hold\";\r\nimport TrainingCellMap from \"../TrainingCellMap\";\r\nimport TrainingPopup from \"../../TrainingPopup/TrainingPopup\";\r\nimport \"./TrainingDay.css\";\r\n\r\nclass TrainingDay extends Component {\r\n renderAlphabetic = () => {\r\n const { trainings, date, horse, isSelectedDate, rider } = this.props;\r\n\r\n const columns = this.props.trainingCellMap.map[date.formatDesh()].columns;\r\n\r\n if (columns.length == 0)\r\n return (\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n {columns.map((column) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n {this.getTrainingCellsAlphabetic(column, rider)}\r\n
\r\n );\r\n };\r\n\r\n getTrainingCellsAlphabetic = (column, rider) => {\r\n const trainigs = this.props.trainings.filter(\r\n (t) => t.shortname == column.shortname\r\n );\r\n if (trainigs.length == 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n {trainigs.map((t) => (\r\n \r\n ))}\r\n
\r\n );\r\n };\r\n\r\n renderAlphabeticCompact = () => {\r\n const { trainings, date, horse, isSelectedDate, rider } = this.props;\r\n if (\r\n window.training.mode == window.TrainingManager.riderStatic ||\r\n window.training.mode == window.TrainingManager.riderStaticAndEquipment\r\n ) {\r\n let trainerColsArr =\r\n this.props.trainingCellMap.maxColumnCompactMap[date.formatDesh()];\r\n if (horse.trainer == null || horse.trainer == window.myid) {\r\n if (trainerColsArr[window.myid]) {\r\n if (trainerColsArr[\"null\"]) {\r\n if (\r\n trainerColsArr[\"null\"].columns >\r\n trainerColsArr[window.myid].columns\r\n )\r\n var columnCount = trainerColsArr[\"null\"].columns;\r\n else var columnCount = trainerColsArr[window.myid].columns;\r\n } else {\r\n var columnCount = trainerColsArr[window.myid].columns;\r\n }\r\n } else {\r\n if (trainerColsArr[\"null\"]) {\r\n var columnCount = trainerColsArr[\"null\"].columns;\r\n } else {\r\n var columnCount = 1;\r\n }\r\n }\r\n } else if (trainerColsArr[rider]) {\r\n var columnCount = trainerColsArr[rider].columns;\r\n } else var columnCount = 1;\r\n } else {\r\n var columnCount =\r\n this.props.trainingCellMap.maxColumnCompactMap[date.formatDesh()];\r\n }\r\n\r\n const allColumns =\r\n this.props.trainingCellMap.map[date.formatDesh()].columns;\r\n const shortColumns = [];\r\n for (let ci = 0; ci < allColumns.length; ci++) {\r\n //build current trainings\r\n const tByType = trainings.filter(\r\n (t) => t.shortname == allColumns[ci].shortname\r\n );\r\n if (tByType.length != 0) {\r\n shortColumns.push(tByType);\r\n }\r\n }\r\n\r\n for (let ci = shortColumns.length; ci < columnCount; ci++) {\r\n //add empty to columnCount\r\n shortColumns.push([]);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {shortColumns.map((trainigs) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n {/*key*/}\r\n {trainigs.length != 0 ? (\r\n
\r\n {trainigs.map((t) => (\r\n \r\n ))}\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n );\r\n };\r\n\r\n renderTimeTop = () => {\r\n const { date, horse, rider } = this.props;\r\n const columns = this.props.trainingCellMap.map[date.formatDesh()].columns;\r\n\r\n if (columns.length == 0)\r\n return (\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n {columns.map((column) => (\r\n \r\n {this.getTrainingCellsTime(column, rider)}\r\n \r\n ))}\r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n getTrainingCellsTime = (column, rider) => {\r\n let trainigs = [];\r\n if (column.isTimeColumn) {\r\n trainigs = this.props.trainings.filter(\r\n (t) => t.TimeOfDay == column.TimeOfDay\r\n );\r\n } else {\r\n trainigs = this.props.trainings.filter(\r\n (t) =>\r\n t.shortname == column.shortname &&\r\n (t.TimeOfDay == null || t.TimeOfDay == \"\")\r\n );\r\n }\r\n\r\n if (trainigs.length == 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n {trainigs.map((t) => (\r\n \r\n ))}\r\n
\r\n );\r\n };\r\n\r\n renderTimeTopCompact = () => {\r\n const { trainings, date, horse, isSelectedDate, rider } = this.props;\r\n if (\r\n window.training.mode == window.TrainingManager.riderStatic ||\r\n window.training.mode == window.TrainingManager.riderStaticAndEquipment\r\n ) {\r\n let trainerColsArr =\r\n this.props.trainingCellMap.maxColumnCompactMap[date.formatDesh()];\r\n if (horse.trainer == null || horse.trainer == window.myid) {\r\n if (trainerColsArr[window.myid]) {\r\n if (trainerColsArr[\"null\"]) {\r\n if (\r\n trainerColsArr[\"null\"].columns >\r\n trainerColsArr[window.myid].columns\r\n )\r\n var columnCount = trainerColsArr[\"null\"].columns;\r\n else var columnCount = trainerColsArr[window.myid].columns;\r\n } else {\r\n var columnCount = trainerColsArr[window.myid].columns;\r\n }\r\n } else {\r\n if (trainerColsArr[\"null\"]) {\r\n var columnCount = trainerColsArr[\"null\"].columns;\r\n } else {\r\n var columnCount = 1;\r\n }\r\n }\r\n } else if (trainerColsArr[rider]) {\r\n var columnCount = trainerColsArr[rider].columns;\r\n } else var columnCount = 1;\r\n } else {\r\n var columnCount =\r\n this.props.trainingCellMap.maxColumnCompactMap[date.formatDesh()];\r\n }\r\n\r\n const allColumns =\r\n this.props.trainingCellMap.map[date.formatDesh()].columns;\r\n const shortColumns = [];\r\n for (let ci = 0; ci < allColumns.length; ci++) {\r\n //build current trainings\r\n const tByColumn = allColumns[ci].isTimeColumn\r\n ? trainings.filter((t) => t.TimeOfDay == allColumns[ci].TimeOfDay)\r\n : trainings.filter(\r\n (t) =>\r\n t.shortname == allColumns[ci].shortname &&\r\n (t.TimeOfDay == null || t.TimeOfDay == \"\")\r\n );\r\n if (tByColumn.length != 0) {\r\n shortColumns.push(tByColumn);\r\n }\r\n }\r\n\r\n for (let ci = shortColumns.length; ci < columnCount; ci++) {\r\n //add empty to columnCount\r\n shortColumns.push([]);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {shortColumns.map((trainigs) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n {/*key*/}\r\n {trainigs.length != 0 ? (\r\n
\r\n {trainigs.map((t) => (\r\n \r\n ))}\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n );\r\n };\r\n\r\n render() {\r\n switch (this.props.trainingCellMap.orderBy) {\r\n case TrainingCellMap.ORDER_BY_ALPHABETIC:\r\n return this.renderAlphabetic();\r\n case TrainingCellMap.ORDER_BY_ALPHABETIC_COMPACT:\r\n return this.renderAlphabeticCompact();\r\n case TrainingCellMap.ORDER_BY_TIME_TOP:\r\n case TrainingCellMap.ORDER_BY_TIME_ALPHABETIC:\r\n return this.renderTimeTop();\r\n case TrainingCellMap.ORDER_BY_TIME_TOP_COMPACT:\r\n return this.renderTimeTopCompact();\r\n }\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default TrainingDay;\r\n\r\nexport class TrainingCell extends Component {\r\n onCellClick = (e) => {\r\n window.training.positionLastTimeClick = { x: e.screenX, y: e.screenY };\r\n let training = this.props.training;\r\n\r\n let trainType = null;\r\n let trainerId = null;\r\n let trainerName = null;\r\n if (\r\n this.props.callbackAdd != null &&\r\n this.props.useOnlyAddCallback &&\r\n training == null\r\n ) {\r\n this.props.callbackAdd();\r\n return;\r\n }\r\n let currentTrainerId = window.DataStorage.getAllHorses().find(\r\n (i) => i.id == this.props.horse.id\r\n ).trainer;\r\n if (!currentTrainerId)\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == window.myid\r\n );\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == currentTrainerId\r\n );\r\n trainerId = currentTrainer.Id;\r\n trainerName = currentTrainer.Name;\r\n if (training != null) {\r\n trainType = training.type;\r\n trainerId = training.trainer;\r\n trainerName = training.trainername;\r\n } else if (this.props.fieldAssignInfo) {\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horse.id\r\n );\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse.userid\r\n );\r\n trainType = trainingTypes.find((tt) => this.isField(tt.name)).id;\r\n } else if (this.props.column != null) {\r\n trainType = this.props.column.typeIds[0];\r\n }\r\n\r\n let item = {\r\n date: this.props.date,\r\n horseName: this.props.horse.name,\r\n training: this.props.training,\r\n trainId: training != null ? training.id : null,\r\n };\r\n\r\n let options = {\r\n horseId: this.props.horse.id,\r\n trainingType: trainType,\r\n date: this.props.date,\r\n trainerId: trainerId,\r\n trainerName: trainerName,\r\n fieldAssignInfo: this.props.fieldAssignInfo,\r\n };\r\n\r\n let trainingPopup = new TrainingPopup();\r\n trainingPopup.showPopup(options, this.props.training, () => {});\r\n };\r\n\r\n initNewPermanent = () => {\r\n let $ = window.$;\r\n var onInitDone = function () {\r\n if ($(\"#dates2 li\").length != 0) {\r\n $(`#dates2 li[idf=\"${window.myid}\"] a`).click();\r\n }\r\n if ($(\".tcTrainer option\").length != 0) {\r\n $(\".tcTrainer\").val(window.myid);\r\n }\r\n $(\".tcColor\").prop(\"checked\", true);\r\n };\r\n var waitForInit = function () {\r\n if (window.trainingPopup.isTrainerLoading) {\r\n setTimeout(waitForInit, 200);\r\n } else {\r\n onInitDone();\r\n }\r\n };\r\n waitForInit();\r\n };\r\n\r\n getCurrentTime() {\r\n const now = new Date();\r\n let hours = now.getHours();\r\n let minutes = now.getMinutes();\r\n\r\n hours = hours.toString().padStart(2, \"0\");\r\n minutes = minutes.toString().padStart(2, \"0\");\r\n\r\n return hours + \":\" + minutes;\r\n }\r\n onCellLongClick = (e) => {\r\n const { holdEnabled } = this.props;\r\n if (!holdEnabled) return;\r\n const { setTimeOnFirstHold, training } = this.props;\r\n if (setTimeOnFirstHold && training.TimeOfDay == \"\") {\r\n let training_aux = { ...training };\r\n training_aux.TimeOfDay = this.getCurrentTime();\r\n window.DataStorage.updateTrainingBackground(training_aux);\r\n return;\r\n }\r\n\r\n let training_aux = { ...training };\r\n training_aux.color = training.color == \"red\" ? \"green\" : \"red\";\r\n\r\n window.DataStorage.updateTrainingBackground(training_aux);\r\n };\r\n isField = (name) => {\r\n name = name.toLowerCase();\r\n\r\n if (!name) return false;\r\n return name == \"field\" || name == \"fold\" || name == \"feld\";\r\n };\r\n getFieldInfo = () => {\r\n const { training } = this.props;\r\n const field_info = {\r\n field_area_id: training?.FieldAreaId,\r\n field_id: training?.FieldId,\r\n time_id: training?.FieldAreaTimePeriodId,\r\n };\r\n return field_info;\r\n };\r\n handleDragStart = (e) => {\r\n e.dataTransfer.setData(\"training\", JSON.stringify(this.props.training));\r\n\r\n const field_info = this.getFieldInfo();\r\n e.dataTransfer.setData(\"field_info\", JSON.stringify(field_info));\r\n };\r\n\r\n handleDrop = (e) => {\r\n e.preventDefault();\r\n\r\n let source_training = JSON.parse(e.dataTransfer.getData(\"training\"));\r\n\r\n let source_field_info_str = e.dataTransfer.getData(\"field_info\");\r\n\r\n let target_field_info_str = JSON.stringify(\r\n this.props.fieldAssignInfo || this.getFieldInfo()\r\n );\r\n let target_training = this.props.training;\r\n let target_field_info = this.props.fieldAssignInfo;\r\n\r\n if (!source_training) {\r\n return;\r\n }\r\n\r\n if (target_field_info_str == source_field_info_str) return;\r\n\r\n if (!target_training) {\r\n let training_aux = { ...source_training };\r\n training_aux.FieldAreaId = target_field_info.field_area_id;\r\n training_aux.FieldId = target_field_info.field_id;\r\n training_aux.FieldAreaTimePeriodId = target_field_info.time_id;\r\n\r\n window.DataStorage.updateTrainingBackground(training_aux);\r\n return;\r\n }\r\n\r\n if (source_training?.id == target_training?.id) return;\r\n let swapPayload = {\r\n source_training_id: source_training?.id,\r\n target_training_id: target_training?.id,\r\n };\r\n\r\n // don't swap if they are in the same field/time\r\n\r\n window.DataStorage.swapFieldsOfTrainingBackground(swapPayload);\r\n };\r\n\r\n handleDragOver = (e) => {\r\n e.preventDefault();\r\n };\r\n\r\n render() {\r\n const { training, column, horse, date, showRider, rider, showHorseName } =\r\n this.props;\r\n if (training == null || !horse) {\r\n return (\r\n horse && this.handleDragStart(e)}\r\n onDrop={(e) => horse && this.handleDrop(e)}\r\n onDragOver={horse && this.handleDragOver}\r\n style={{ width: \"100%\" }}\r\n onClick={horse && this.onCellClick}\r\n >\r\n
-
\r\n \r\n );\r\n }\r\n\r\n let riderInitials = null;\r\n if (showRider) {\r\n if (\r\n window.training.mode == window.TrainingManager.riderStatic ||\r\n window.training.mode ==\r\n window.TrainingManager.riderStaticAndEquipment ||\r\n window.training.mode == window.TrainingManager.riderStaticLight ||\r\n window.training.mode ==\r\n window.TrainingManager.riderStaticAndEquipmentLight\r\n ) {\r\n if (rider != training.trainer)\r\n riderInitials = window.getInitials(training.trainername);\r\n } else riderInitials = window.getInitials(training.trainername);\r\n }\r\n let timeText = null;\r\n if (training.TimeOfDay != null && training.TimeOfDay != \"\") {\r\n timeText = window.training.getTimeOfDayTitle(training.TimeOfDay);\r\n }\r\n if (timeText == \"0\" || timeText == \" \") {\r\n timeText = null;\r\n }\r\n\r\n let nameClass =\r\n timeText != null || training.remark != \"\"\r\n ? \"trainingCellNameSmall\"\r\n : \"trainingCellName\";\r\n\r\n // if (!showHorseName)\r\n nameClass +=\r\n training.color == \"red\"\r\n ? timeText && this.props.fromFieldAssignmentView\r\n ? \" trainingCellNotDoneTimeSet\"\r\n : \" trainingCellNotDone\"\r\n : \" trainingCellDone\";\r\n return (\r\n this.handleDragStart(e)}\r\n onDrop={(e) => this.handleDrop(e)}\r\n onDragOver={this.handleDragOver}\r\n >\r\n \r\n \r\n {timeText != null && (\r\n
{timeText}
\r\n )}\r\n
\r\n {showHorseName ? horse.name : training.shortname}\r\n {/* {training.remark != \"\" && <>*} */}\r\n {riderInitials != null && <>({riderInitials})}\r\n
\r\n {this.isField(training.name) &&\r\n !this.props.fromFieldAssignmentView && (\r\n
\r\n \r\n {training.FieldAssignmentFieldAreaName}{\" \"}\r\n {training.FieldAssignmentFieldName && \"- \"}\r\n {training.FieldAssignmentFieldName}{\" \"}\r\n {training.FieldAssignmentFieldTimePeriod && \"- \"}\r\n {training.FieldAssignmentFieldTimePeriod}\r\n \r\n
\r\n )}\r\n {training.remark != \"\" && (\r\n
{training.remark}
\r\n )}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","export default class DataGateActions {\r\n static updateEquipment(data) {\r\n window.Spinner.show();\r\n window.db.updateEquipment(data, () => {\r\n window.Managers.self.refreshHorses();\r\n window.Spinner.hide();\r\n });\r\n }\r\n\r\n static getFeedData(callback) {\r\n window.Spinner.show();\r\n window.db.getFeed(window.myid, (data) => {\r\n window.Spinner.hide();\r\n if (callback != null) {\r\n callback(data);\r\n }\r\n });\r\n }\r\n\r\n static getFarrierData(callback) {\r\n window.Spinner.show();\r\n window.db.getFarrierDataForUser(window.myid, (data) => {\r\n window.Spinner.hide();\r\n if (callback != null) {\r\n callback(data);\r\n }\r\n });\r\n }\r\n\r\n static deleteTraining(id) {\r\n window.db.deleteTraining(id);\r\n }\r\n\r\n static makeLocalTrainingItemFromS(item) {\r\n item.id = item.Id;\r\n item.starttime = item.StartTime;\r\n item.userid = item.UserId;\r\n item.trainer = item.Trainer;\r\n item.type = item.Type;\r\n item.color = item.Color;\r\n item.remark = item.Remark;\r\n item.shortname = window.DataStorage.trainTypes.find(tt => tt.id == item.Type).shortname;\r\n\r\n return item;\r\n }\r\n\r\n static addTrainingForPermanentColumn(horse, type, date) {\r\n console.log('addPermanentTraining');\r\n let serverItem = {\r\n Color: \"green\", //is done\r\n Duration: 1,\r\n Evaluation: 0,\r\n FarrierType: undefined,\r\n HasMultimedia: 0,\r\n HorseId: horse.id, //horse\r\n Id: Math.uuid(),\r\n IsCanCopy: type.IsCanCopyType ? \"1\" : \"0\",\r\n PaddockPeriod: null,\r\n Remark: \"\",\r\n ReminderType: \"0\",\r\n StartTime: date.formatDesh(), //date\r\n Status: \"\",\r\n SyncTime: -1,\r\n TimeOfDay: \"\",\r\n Trainer: window.myid, //rider me\r\n Type: type.id, //type\r\n U: \"u\",\r\n VeterinarianType: \"2\",\r\n VeterinarianVacType: undefined\r\n };\r\n\r\n let localItem = {\r\n Evaluation: serverItem.Evaluation,\r\n FarrierType: serverItem.FarrierType,\r\n HasMultimedia: false,\r\n PaddockPeriod: null,\r\n ReminderType: 0,\r\n TimeOfDay: serverItem.TimeOfDay,\r\n VeterinarianType: 2,\r\n VeterinarianVacType: 10,\r\n color: serverItem.Color,\r\n duration: 1,\r\n horseid: serverItem.HorseId,\r\n id: serverItem.Id,\r\n isCanCopy: type.IsCanCopyType,\r\n name: type.name,\r\n remark: serverItem.Remark,\r\n shortname: type.shortname,\r\n starttime: serverItem.StartTime,\r\n status: serverItem.Status,\r\n synctime: serverItem.SyncTime,\r\n trainer: serverItem.Trainer,\r\n type: serverItem.Type,\r\n u: serverItem.U,\r\n trainername: window.Managers.User.name,\r\n TrainingFlag: window.DataStorage.TrainingFlagAdd\r\n };\r\n\r\n window.DataStorage.addTraining(localItem);\r\n window.DataGate.insertOrUpdateTrainings(serverItem, () => {\r\n });\r\n }\r\n\r\n static insertOrUpdateHorse(horse, horseLogo, isNewHorse, callback) {\r\n let resreshAndCallback = function () {\r\n window.Managers.self.refreshHorses(horse[\"Id\"], () => {\r\n window.Spinner.hide();\r\n window.training.refresh();\r\n if (callback)\r\n callback();\r\n });\r\n\r\n if (isNewHorse) {\r\n window.Managers.self.checkAutoShare(horse[\"Id\"], horse.UserId);\r\n }\r\n };\r\n\r\n window.Spinner.show();\r\n window.DataGate.insertOrUpdateHorse(horse, function (code, data) {\r\n if (code == window.DataGate.CODE_OK) {\r\n if (horseLogo != null) {\r\n window.db.saveLogo(horse[\"Id\"], horseLogo, window.DataBase.LOGO_HORSE, () => {\r\n resreshAndCallback();\r\n });\r\n } else {\r\n resreshAndCallback();\r\n }\r\n }\r\n });\r\n }\r\n\r\n static unDeleteHorse(horse) {\r\n window.db.setHorseUpdate(horse[\"id\"], 'u', function () {\r\n window.onDataRefresh();\r\n window.onBack();\r\n });\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport \"./WeekView.css\";\r\nimport HorseCell from \"../HorseCell/HorseCell\";\r\nimport TrainingCellMap from \"../TrainingCellMap\";\r\nimport TrainingDay, { TrainingCell } from \"../TrainingCell/TrainingDay\";\r\nimport DataGateActions from \"../../DataGateActions\";\r\n\r\nclass WeekView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n orderDate: null,\r\n horseArr: [],\r\n horseEquipmentFlag: false,\r\n };\r\n this.dates = [];\r\n this.permanentTypes = [];\r\n this.trainingCellMap = new TrainingCellMap();\r\n this.showRider =\r\n window.GlobalData.getItem(window.GlobalData.SHOW_RIDER_ON_TASKS) != 0;\r\n }\r\n\r\n componentDidUpdate = () => {\r\n if (this.state.horseArr != this.props.filteredHorses)\r\n this.setState({\r\n horseArr: this.props.filteredHorses,\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n this.setState({\r\n horseArr: this.props.filteredHorses,\r\n });\r\n }\r\n\r\n equipmentUpdate = (e, horse) => {\r\n if (this.state.horseEquipmentFlag) {\r\n horse.Equipment = e.target.value;\r\n DataGateActions.updateEquipment({\r\n Equipment: e.target.value,\r\n HorseId: horse.id,\r\n });\r\n this.setState({\r\n horseEquipmentFlag: false,\r\n });\r\n }\r\n };\r\n\r\n equipmentChange = (e, horse) => {\r\n let arr = this.state.horseArr;\r\n arr.find((h) => h.id == horse.id).Equipment = e.target.value;\r\n this.setState({\r\n horseArr: arr,\r\n horseEquipmentFlag: true,\r\n });\r\n };\r\n\r\n onOrderChange = (orderDate) => {\r\n this.setState({\r\n orderDate: orderDate,\r\n });\r\n };\r\n\r\n getTrainingsForDay = (horse, date) => {\r\n return this.filteredTrainings.filter(\r\n (t) => t.horseid == horse.id && t.starttime == date\r\n );\r\n };\r\n\r\n widthFirstColumn() {\r\n let widthFC = 200;\r\n if (window.training.period == 1) {\r\n if (window.GlobalData.getItem(window.GlobalData.SHOW_HORSELOGO) == 1) {\r\n widthFC = window.isMobileDevice() ? 150 : 200;\r\n } else {\r\n widthFC = window.isMobileDevice() ? 150 : 200;\r\n }\r\n } else {\r\n if (window.GlobalData.getItem(window.GlobalData.SHOW_HORSELOGO) == 1) {\r\n widthFC = window.isMobileDevice() ? 100 : 180;\r\n } else {\r\n widthFC = window.isMobileDevice() ? 70 : 180;\r\n }\r\n }\r\n return widthFC;\r\n }\r\n\r\n renderOrderByHorse() {\r\n let horseArr = this.state.horseArr;\r\n\r\n let myHorseArr = horseArr.filter((h) => h.userid == window.myid);\r\n myHorseArr = myHorseArr.sort(function (h1, h2) {\r\n return h1.name.toLowerCase() > h2.name.toLowerCase() ? 1 : -1;\r\n });\r\n\r\n let notMyHorseArr = horseArr.filter((h) => h.userid != window.myid);\r\n notMyHorseArr = notMyHorseArr.sort(function (h1, h2) {\r\n return h1.name.toLowerCase() > h2.name.toLowerCase() ? 1 : -1;\r\n });\r\n\r\n return (\r\n <>\r\n {myHorseArr.map((horse) => this.getRow(horse))}\r\n {notMyHorseArr.length != 0 && myHorseArr.length != 0 && (\r\n \r\n \r\n {window.lang.sharedWithMe}\r\n \r\n \r\n )}\r\n {notMyHorseArr.map((horse) => this.getRow(horse))}\r\n \r\n );\r\n }\r\n\r\n renderOrderByDate = () => {\r\n let horseArr = this.trainingCellMap.sortHorsesBySelectedDate(\r\n this.state.horseArr,\r\n this.state.orderDate,\r\n this.getTrainingsForDay\r\n );\r\n\r\n return <>{horseArr.map((horse) => this.getRow(horse))};\r\n };\r\n\r\n getRow = (horse) => {\r\n let widthFirstColumn = this.widthFirstColumn();\r\n let trainingPeriod = window.GlobalData.getItem(\r\n window.GlobalData.KEY_DAYS_NUMBER\r\n );\r\n return (\r\n \r\n \r\n \r\n \r\n {this.dates.map((date) => (\r\n \r\n \r\n \r\n ))}\r\n {this.permanentTypes.map((type) => (\r\n \r\n {this.permanentCell(horse, type)}\r\n \r\n ))}\r\n {this.props.showEquipment && (\r\n \r\n this.equipmentChange(e, horse)}\r\n onBlur={(e) => this.equipmentUpdate(e, horse)}\r\n />\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n permanentCell = (horse, ttype) => {\r\n let trainings = this.permanentTrainings.filter(\r\n (t) => t.horseid == horse.id && t.type == ttype.id\r\n );\r\n if (trainings.length == 0) {\r\n return (\r\n \r\n this.addPermanentTraining(horse, ttype, this.dates[0])\r\n }\r\n useOnlyAddCallback={true}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n
\r\n {trainings.map((t) => (\r\n \r\n ))}\r\n
\r\n );\r\n };\r\n\r\n addPermanentTraining = (horse, type, date) => {\r\n DataGateActions.addTrainingForPermanentColumn(horse, type, date);\r\n window.training.refreshLayout();\r\n //window.training.buildFromCache();\r\n };\r\n\r\n render() {\r\n this.showRider =\r\n window.GlobalData.getItem(window.GlobalData.SHOW_RIDER_ON_TASKS) != 0;\r\n let widthFirstColumn = this.widthFirstColumn();\r\n let today = new Date();\r\n this.dates = [];\r\n for (var i = 0; i < window.training.period; i++) {\r\n this.dates.push(window.training.startDate.addDays(i));\r\n }\r\n\r\n this.permanentTypes = [];\r\n this.filteredTrainings = this.props.filteredTrainings;\r\n if (this.dates.length == 1) {\r\n this.permanentTypes = window.DataStorage.trainTypes.filter(\r\n (tt) => tt.IsPermanent\r\n );\r\n const permanentTypeIds = this.permanentTypes.map((tt) => tt.id);\r\n if (this.permanentTypes.length != null) {\r\n this.filteredTrainings = this.props.filteredTrainings.filter(\r\n (t) => permanentTypeIds.indexOf(t.type) == -1\r\n );\r\n this.permanentTrainings = this.props.filteredTrainings.filter(\r\n (t) => permanentTypeIds.indexOf(t.type) != -1\r\n );\r\n }\r\n }\r\n\r\n this.trainingCellMap.refreshMap(\r\n this.dates.map((d) => d.formatDesh()),\r\n this.filteredTrainings\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n this.onOrderChange(null)}\r\n >\r\n {window.lang.horse}\r\n {this.state.orderDate == null &&
}\r\n \r\n {this.dates.map((date) => (\r\n this.onOrderChange(date.formatDesh())}\r\n >\r\n {`${date.getDate()}.${date.getMonth() + 1}`}\r\n
\r\n {date.dayOfWeek()}\r\n {this.state.orderDate == date.formatDesh() && (\r\n
\r\n )}\r\n \r\n ))}\r\n {this.permanentTypes.map((type) => (\r\n \r\n {type.name}\r\n \r\n ))}\r\n {this.props.showEquipment && {window.lang.equipment}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.orderDate == null\r\n ? this.renderOrderByHorse()\r\n : this.renderOrderByDate()}\r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\nexport default WeekView;\r\n","import React, { Component } from \"react\";\r\nimport DataGateActions from \"../../DataGateActions\";\r\nimport './FeedView.css';\r\nimport HorseCell from \"../HorseCell/HorseCell\";\r\n\r\nclass FeedView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n feeds: [],\r\n headers: window.DataStorage.feedHeaders,\r\n showDeletePopup: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n window.$(\"#addTaskImg\").click(this.addHeader);\r\n window.$(\"#trashImg\").click(this.deleteHeaderClick);\r\n\r\n DataGateActions.getFeedData(this.onDataLoad);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.$(\"#addTaskImg\").unbind(\"click\", this.addHeader);\r\n window.$(\"#trashImg\").unbind(\"click\", this.deleteHeaderClick);\r\n }\r\n\r\n addHeader = () => {\r\n this.setState({\r\n headers: [...this.state.headers, \"[Enter name]\"]\r\n });\r\n }\r\n\r\n deleteHeaderClick = () => {\r\n this.setState({\r\n showDeletePopup: true\r\n });\r\n }\r\n\r\n deleteHeader = (header) => {\r\n if (header != null) {\r\n let feedsForDelete = this.state.feeds.filter(f => f.TimeHeader == header);\r\n if (feedsForDelete.length != 0) {\r\n let feedIds = \"(\" + feedsForDelete.map(f => \"'\" + f.Id + \"'\").join(\",\") + \")\";\r\n window.db.deleteFeeds(feedIds, () => {\r\n });\r\n }\r\n\r\n let headersNew = this.state.headers.filter(h => h != header);\r\n this.setState({\r\n feeds: this.state.feeds.filter(f => f.TimeHeader != header),\r\n headers: headersNew,\r\n showDeletePopup: false\r\n });\r\n this.saveHeadersLocal(headersNew);\r\n } else {\r\n this.setState({\r\n showDeletePopup: false\r\n });\r\n }\r\n }\r\n\r\n saveHeadersLocal = (headers) => {\r\n window.GlobalData.setItem(window.GlobalData.FEED_HEADERS, JSON.stringify(headers));\r\n }\r\n\r\n onHeaderBlur = (e) => {\r\n if (e.target.defaultValue != e.target.value) {\r\n let feeds = this.state.feeds.filter(f => f.TimeHeader == e.target.defaultValue);\r\n feeds.forEach((f) => {\r\n f.TimeHeader = e.target.value;\r\n });\r\n if (feeds.length != 0) {\r\n let feedIds = \"(\" + feeds.map(f => \"'\" + f.Id + \"'\").join(\",\") + \")\";\r\n window.db.updateFeedHeader(e.target.value, feedIds, () => {\r\n });\r\n }\r\n\r\n let allfeeds = [...this.state.feeds.filter(f => f.TimeHeader != e.target.defaultValue), ...feeds];\r\n let headersNew = [...this.state.headers.filter(h => h != e.target.defaultValue), e.target.value].sort();\r\n this.setState({\r\n headers: headersNew,\r\n feed: allfeeds\r\n });\r\n this.saveHeadersLocal(headersNew);\r\n }\r\n }\r\n\r\n onFeedBlur = (e, feed, horseId, feedHeader) => {\r\n if (e.target.defaultValue != e.target.value) {\r\n if (feed == null) {\r\n feed = {\r\n Id: window.Math.uuid(),\r\n HorseId: horseId,\r\n TimeHeader: feedHeader,\r\n U: 'u'\r\n };\r\n }\r\n feed.Feed = e.target.value;\r\n window.db.insertOrUpdateFeed(feed);\r\n }\r\n }\r\n\r\n onDataLoad = (feedData) => {\r\n let headers = feedData.map(f => f.TimeHeader);\r\n headers = [...this.state.headers, ...headers];\r\n headers = Array.from(new Set(headers)).sort();\r\n this.setState({\r\n feeds: feedData,\r\n headers: headers\r\n });\r\n }\r\n\r\n render() {\r\n const { filteredHorses } = this.props;\r\n const { feeds, headers, showDeletePopup } = this.state;\r\n const widthFirstColumn = 200;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {headers.map((header) => (\r\n \r\n \r\n \r\n
\r\n {window.lang.horse}\r\n \r\n \r\n
\r\n )}\r\n {!this.props.options.simplified && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Other tasks{window.lang.trainerName}
\r\n \r\n {generalTaskTypeArr &&\r\n generalTaskTypeArr.map((currentElement) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n {trainersArr &&\r\n trainersArr.map((currentElement) => (\r\n \r\n {currentElement.Name}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n \r\n + Add new task to list\r\n \r\n
\r\n \r\n {selectTime}\r\n \r\n
\r\n
\r\n }\r\n dateFormat=\"dd-MM-yyyy\"\r\n selected={date}\r\n onChange={this.handleChange}\r\n />\r\n
\r\n
\r\n \r\n {window.lang.addExtraTraining}\r\n \r\n
\r\n \r\n \r\n {window.lang.trained}\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n }\r\n dateFormat=\"dd-MM-yyyy\"\r\n selected={date}\r\n onChange={this.handleChange}\r\n />\r\n
\r\n
\r\n \r\n
\r\n\r\n {this.props.options.simplified && (\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {window.lang.trained}\r\n \r\n \r\n
\r\n {window.lang.remark}\r\n \r\n
\r\n )}\r\n {!this.props.options.simplified && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Other tasks{window.lang.trainerName}
\r\n
\r\n \r\n {generalTaskTypeArr &&\r\n generalTaskTypeArr.map((currentElement, index) =>\r\n index == 0 ? (\r\n currentElement.Id == currentGeneralTaskTypeId ? (\r\n \r\n \r\n
\r\n {currentElement.Name}\r\n\r\n
\r\n \r\n this.editGeneralTaskType(\r\n currentElement.Id\r\n )\r\n }\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n width=\"25px\"\r\n stroke=\"currentColor\"\r\n className=\"w-6 h-6\"\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n ) : (\r\n \r\n \r\n
\r\n {currentElement.Name}\r\n\r\n
\r\n \r\n this.editGeneralTaskType(\r\n currentElement.Id\r\n )\r\n }\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n width=\"25px\"\r\n stroke=\"currentColor\"\r\n className=\"w-6 h-6\"\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n ) : currentElement.Id ==\r\n currentGeneralTaskTypeId ? (\r\n \r\n \r\n
\r\n {currentElement.Name}\r\n\r\n
\r\n \r\n this.editGeneralTaskType(\r\n currentElement.Id\r\n )\r\n }\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n width=\"25px\"\r\n stroke=\"currentColor\"\r\n className=\"w-6 h-6\"\r\n >\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n ) : (\r\n \r\n \r\n
\r\n {currentElement.Name}\r\n\r\n
\r\n \r\n this.editGeneralTaskType(\r\n currentElement.Id\r\n )\r\n }\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n width=\"25px\"\r\n stroke=\"currentColor\"\r\n className=\"w-6 h-6\"\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n )}\r\n {generalTaskTypeArr.length ? (\r\n \r\n \r\n + Add new task to list\r\n \r\n \r\n ) : (\r\n \r\n \r\n + Add new task to list\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n \r\n {trainersArr &&\r\n trainersArr.map((currentElement, index) =>\r\n index == 0 ? (\r\n currentElement.userid == currentTrainerId ? (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n )\r\n ) : index == trainersArr.length - 1 ? (\r\n currentElement.userid == currentTrainerId ? (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n )\r\n ) : currentElement.userid == currentTrainerId ? (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n )\r\n )}\r\n \r\n
\r\n
\r\n \r\n {window.lang.addExtraTraining}\r\n \r\n \r\n \r\n {selectTime}\r\n \r\n
\r\n \r\n \r\n \r\n {window.lang.trained}\r\n \r\n \r\n
\r\n {window.lang.remark}\r\n \r\n
\r\n \r\n
\r\n )}\r\n \r\n\r\n {this.state.isShowTimePopup && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nconst InputForMobile = (props) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst InputForDesktop = (props) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst Footer = (props) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default class GeneralTaskPopup {\r\n showPopup(options, item, callback) {\r\n if (options == null) {\r\n options = {};\r\n }\r\n if (options.date == null) {\r\n options.date = new Date();\r\n }\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"generalTaskPopupReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ResizePanel from \"react-resize-panel\";\r\nimport { Resizable } from \"re-resizable\";\r\nimport \"./RiderView.css\";\r\nimport TrainingCellMap from \"../TrainingCellMap\";\r\nimport HorseCell from \"../HorseCell/HorseCell\";\r\nimport TrainingDay, { TrainingCell } from \"../TrainingCell/TrainingDay\";\r\nimport DataGateActions from \"../../DataGateActions\";\r\nimport GeneralTaskPopup from \"../../GeneralTask/GeneralTaskPopup\";\r\n\r\nexport default class StaticRiderView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ridersOrder: [],\r\n filteredHorses: [],\r\n horseEquipmentFlag: false,\r\n showGeneralTasks: \"\",\r\n };\r\n\r\n this.dates = [];\r\n this.permanentTypes = [];\r\n this.defaultWidth = window.GlobalData.getItem(\r\n window.GlobalData.RIDER_COLUMN_WIDTH\r\n );\r\n if (this.defaultWidth == null) {\r\n this.defaultWidth = [];\r\n for (let i = 0; i < 100; i++) this.defaultWidth[i] = 500;\r\n } else {\r\n this.defaultWidth = JSON.parse(this.defaultWidth);\r\n }\r\n this.showRider =\r\n window.GlobalData.getItem(window.GlobalData.SHOW_RIDER_ON_TASKS) != 0;\r\n }\r\n\r\n componentDidUpdate = () => {\r\n if (this.state.filteredHorses != this.props.filteredHorses)\r\n this.setState({\r\n filteredHorses: this.props.filteredHorses,\r\n });\r\n if (\r\n this.state.showGeneralTasks !=\r\n window.GlobalData.getItem(window.GlobalData.VIEW_OTHER_TASKS)\r\n )\r\n this.setState({\r\n showGeneralTasks: window.GlobalData.getItem(\r\n window.GlobalData.VIEW_OTHER_TASKS\r\n ),\r\n });\r\n };\r\n\r\n componentDidMount = () => {\r\n let ridersOrder = JSON.parse(\r\n JSON.stringify(\r\n window.GlobalData.getItem(window.GlobalData.KEY_RIDERS_ORDER)\r\n )\r\n );\r\n if (ridersOrder == null) {\r\n window.db.getUserOrdered(window.myid, (data) => {\r\n ridersOrder = data[0].OrderedRider;\r\n window.GlobalData.setItem(\r\n window.GlobalData.KEY_RIDERS_ORDER,\r\n ridersOrder\r\n );\r\n this.setState({\r\n ridersOrder: JSON.parse(ridersOrder),\r\n });\r\n });\r\n }\r\n\r\n this.setState({\r\n filteredHorses: this.props.filteredHorses,\r\n showGeneralTasks: window.GlobalData.getItem(\r\n window.GlobalData.VIEW_OTHER_TASKS\r\n ),\r\n });\r\n };\r\n\r\n onResizeStop = (rIndex, delta) => {\r\n this.defaultWidth[rIndex] += delta.width;\r\n window.GlobalData.setItem(\r\n window.GlobalData.RIDER_COLUMN_WIDTH,\r\n JSON.stringify(this.defaultWidth)\r\n );\r\n };\r\n\r\n equipmentUpdate = (e, horse) => {\r\n if (this.state.horseEquipmentFlag) {\r\n horse.Equipment = e.target.value;\r\n DataGateActions.updateEquipment({\r\n Equipment: e.target.value,\r\n HorseId: horse.id,\r\n });\r\n this.setState({\r\n horseEquipmentFlag: false,\r\n });\r\n }\r\n };\r\n\r\n equipmentChange = (e, horse) => {\r\n let arr = this.state.filteredHorses;\r\n arr.find((h) => h.id == horse.id).Equipment = e.target.value;\r\n this.setState({\r\n filteredHorses: arr,\r\n horseEquipmentFlag: true,\r\n });\r\n };\r\n\r\n renderRiderTable = (rider) => {\r\n let trainingCellMap = new TrainingCellMap();\r\n let trainingArr = this.props.filteredTrainings;\r\n if (\r\n window.training.mode == window.TrainingManager.riderStaticLight ||\r\n window.training.mode ==\r\n window.TrainingManager.riderStaticAndEquipmentLight\r\n ) {\r\n trainingArr = trainingArr.filter((i) => i.trainer == rider.id);\r\n }\r\n trainingCellMap.refreshMap([this.props.date.formatDesh()], trainingArr);\r\n let riderTrainings = trainingArr.filter((i) => i.trainer == rider.id);\r\n\r\n //let horses = rider.horses;\r\n let horses = [];\r\n if (\r\n (window.training.mode ==\r\n window.TrainingManager.riderStaticAndEquipmentLight ||\r\n window.training.mode == window.TrainingManager.riderStaticLight) &&\r\n rider.id != window.myid\r\n )\r\n horses = this.state.filteredHorses.filter((i) => i.trainer == rider.id);\r\n //for (let i in rider.horses) {\r\n // let tArr = this.props.filteredTrainings.filter(j => j.horseid == rider.horses[i].id);\r\n // if (tArr.length) {\r\n // if (tArr.filter(j => j.trainer == rider.id).length)\r\n // horses.push(rider.horses[i])\r\n // } else {\r\n // horses.push(rider.horses[i])\r\n // }\r\n //}\r\n else horses = rider.horses;\r\n\r\n let otherHorses = [];\r\n for (let i in riderTrainings) {\r\n if (this.state.filteredHorses.length) {\r\n if (!otherHorses.find((j) => j.id == riderTrainings[i].horseid)) {\r\n if (\r\n this.state.filteredHorses.find(\r\n (j) => j.id == riderTrainings[i].horseid\r\n )\r\n )\r\n otherHorses.push(\r\n this.state.filteredHorses.find(\r\n (j) => j.id == riderTrainings[i].horseid\r\n )\r\n );\r\n }\r\n }\r\n }\r\n otherHorses = otherHorses.filter(\r\n ({ id: id1 }) => !horses.some(({ id: id2 }) => id2 === id1)\r\n );\r\n otherHorses = otherHorses.sort(function (h1, h2) {\r\n return h1.name.toLowerCase() > h2.name.toLowerCase() ? 1 : -1;\r\n });\r\n\r\n let trainingTdWidth =\r\n Math.max(\r\n trainingCellMap.map[this.props.date.formatDesh()].columns.length,\r\n 1\r\n ) * 80;\r\n\r\n let otherTasksArr = this.props.generalTaskArr.filter(\r\n (t) => t.TrainerId == rider.id\r\n );\r\n otherTasksArr = otherTasksArr.sort(function (h1, h2) {\r\n return h1.Name.toLowerCase() > h2.Name.toLowerCase() ? 1 : -1;\r\n });\r\n if (this.props.showEquipment)\r\n trainingCellMap.refreshMap(\r\n this.dates.map((d) => d.formatDesh()),\r\n this.filteredTrainings\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {this.props.showEquipment &&\r\n this.permanentTypes.map((type) => (\r\n \r\n ))}\r\n {this.props.showEquipment && }\r\n \r\n \r\n \r\n {horses.map((horse) => (\r\n \r\n \r\n \r\n t.horseid == horse.id)}\r\n date={this.props.date}\r\n isSelectedDate={true}\r\n horse={horse}\r\n trainingCellMap={trainingCellMap}\r\n rider={rider.id}\r\n showRider={this.showRider}\r\n />\r\n \r\n {this.props.showEquipment &&\r\n this.permanentTypes.map((type) => (\r\n \r\n ))}\r\n {this.props.showEquipment && (\r\n \r\n )}\r\n \r\n ))}\r\n \r\n
{window.lang.horse}{rider.name}{type.name}{window.lang.equipment}
\r\n \r\n \r\n {this.permanentCell(horse, type, rider.id)}\r\n \r\n this.equipmentChange(e, horse)}\r\n onBlur={(e) => this.equipmentUpdate(e, horse)}\r\n />\r\n
\r\n {otherHorses.length ? (\r\n
\r\n Other horses\r\n \r\n \r\n {otherHorses.map((horse) => (\r\n \r\n \r\n \r\n t.horseid == horse.id\r\n )}\r\n date={this.props.date}\r\n isSelectedDate={true}\r\n horse={horse}\r\n trainingCellMap={trainingCellMap}\r\n rider={rider.id}\r\n showRider={this.showRider}\r\n />\r\n \r\n {this.props.showEquipment &&\r\n this.permanentTypes.map((type) => (\r\n \r\n ))}\r\n {this.props.showEquipment && (\r\n \r\n )}\r\n \r\n ))}\r\n \r\n
\r\n \r\n \r\n {this.permanentCell(horse, type, rider.id)}\r\n \r\n this.equipmentChange(e, horse)}\r\n onBlur={(e) => this.equipmentUpdate(e, horse)}\r\n />\r\n
\r\n
\r\n ) : (\r\n <>\r\n )}\r\n {this.state.showGeneralTasks == 1 && otherTasksArr.length ? (\r\n
\r\n Other tasks\r\n \r\n \r\n {otherTasksArr.map((i) => (\r\n \r\n this.onGeneralTaskClick(i)}\r\n >\r\n
\r\n
{i.TimeOfDay}
\r\n \r\n {i.Name} ({window.getInitials(rider.name)})\r\n
\r\n
{i.Remark}
\r\n \r\n \r\n
\r\n ))}\r\n \r\n
\r\n
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n );\r\n };\r\n\r\n renderGeneralTaskTable = () => {\r\n let generalTaskArr = this.props.generalTaskArr;\r\n generalTaskArr = generalTaskArr.sort(function (h1, h2) {\r\n return h1.Name.toLowerCase() > h2.Name.toLowerCase() ? 1 : -1;\r\n });\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {generalTaskArr &&\r\n generalTaskArr.map((i) => (\r\n \r\n this.onGeneralTaskClick(i)}\r\n >\r\n
\r\n
{i.TimeOfDay}
\r\n \r\n {window.DataStorage.allUsers.length\r\n ? i.TrainerId\r\n ? i.Name +\r\n \" (\" +\r\n window.getInitials(\r\n window.DataStorage.allUsers.find(\r\n (t) => t.Id == i.TrainerId\r\n ).Name\r\n ) +\r\n \")\"\r\n : i.Name + \"(N)\"\r\n : i.Name}\r\n
\r\n
{i.Remark}
\r\n \r\n \r\n
\r\n ))}\r\n \r\n \r\n Add new task\r\n \r\n \r\n \r\n
Other tasks
\r\n
\r\n );\r\n };\r\n\r\n permanentCell = (horse, ttype, rider) => {\r\n let trainings = this.permanentTrainings.filter(\r\n (t) => t.horseid == horse.id && t.type == ttype.id\r\n );\r\n if (trainings.length == 0) {\r\n return (\r\n \r\n this.addPermanentTraining(horse, ttype, this.dates[0])\r\n }\r\n useOnlyAddCallback={true}\r\n rider={rider}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n
\r\n {trainings.map((t) => (\r\n \r\n ))}\r\n
\r\n );\r\n };\r\n\r\n createRiderOrder = (riderId) => {\r\n this.state.ridersOrder[riderId] =\r\n Object.keys(this.state.ridersOrder).length + 1;\r\n return this.state.ridersOrder[riderId];\r\n };\r\n\r\n addPermanentTraining = (horse, type, date) => {\r\n DataGateActions.addTrainingForPermanentColumn(horse, type, date);\r\n window.training.refreshLayout();\r\n };\r\n\r\n onNewGeneralTaskClick = () => {\r\n let option = {\r\n date: this.props.date,\r\n };\r\n new GeneralTaskPopup().showPopup(option, null, () => {});\r\n };\r\n\r\n onGeneralTaskClick = (task) => {\r\n let options = {\r\n date: new Date(task.Time),\r\n };\r\n new GeneralTaskPopup().showPopup(options, task, () => {\r\n window.training.refresh();\r\n });\r\n };\r\n\r\n render() {\r\n const { filteredTrainings, date, showOnlyOwnHorses } = this.props;\r\n const { filteredHorses, showGeneralTasks } = this.state;\r\n let riderArray = [];\r\n riderArray.push({\r\n id: window.myid,\r\n name: window.lang.me,\r\n horses: [],\r\n });\r\n\r\n for (let i = 0; i < filteredHorses.length; i++) {\r\n let horse = filteredHorses[i];\r\n if (horse.trainer == null || horse.trainer == \"\") {\r\n riderArray[0].horses.push(horse);\r\n } else {\r\n let rider = riderArray.find((rider) => rider.id == horse.trainer);\r\n if (rider == null) {\r\n let riderData = window.DataStorage.allUsers.find(\r\n (t) => t.Id == horse.trainer\r\n );\r\n if (riderData != null) {\r\n riderArray.push({\r\n id: riderData.Id,\r\n name: riderData.Name,\r\n horses: [horse],\r\n });\r\n }\r\n } else {\r\n rider.horses.push(horse);\r\n }\r\n }\r\n }\r\n\r\n //filter by show rider settings\r\n this.state.ridersOrder = window.GlobalData.getItem(\r\n window.GlobalData.KEY_RIDERS_ORDER\r\n );\r\n if (this.state.ridersOrder == null) {\r\n this.state.ridersOrder = {};\r\n } else {\r\n this.state.ridersOrder = JSON.parse(this.state.ridersOrder);\r\n }\r\n if (\r\n window.Managers.ridersIsShowing == null ||\r\n Object.keys(window.Managers.ridersIsShowing).length == 0\r\n ) {\r\n let f = window.GlobalData.getItem(\r\n window.GlobalData.KEY_RIDERS_IS_SHOWING\r\n );\r\n if (f != null) {\r\n window.Managers.ridersIsShowing = JSON.parse(f);\r\n }\r\n }\r\n riderArray = riderArray.filter(\r\n (r) => window.Managers.ridersIsShowing[r.id] != 0\r\n );\r\n\r\n var ridersMass = new Array();\r\n for (var i = 0; i < riderArray.length; i++) {\r\n ridersMass.push(riderArray[i]);\r\n }\r\n if (showGeneralTasks == 1 && ridersMass.indexOf((i) => i.id == \"1\") == -1)\r\n ridersMass.push({ id: \"1\", name: \"Other tasks\", email: \"\" });\r\n for (var i = 0; i < ridersMass.length; i++) {\r\n var order = this.state.ridersOrder[ridersMass[i][\"id\"]];\r\n if (order == null) {\r\n order = this.createRiderOrder(ridersMass[i][\"id\"]);\r\n }\r\n ridersMass[i][\"orderC\"] = order;\r\n }\r\n\r\n if (filteredHorses.length) {\r\n for (let i = 0; i < this.props.filteredTrainings.length; i++) {\r\n if (\r\n !ridersMass.filter(\r\n (j) => j.id == this.props.filteredTrainings[i].trainer\r\n ).length &&\r\n filteredHorses.filter(\r\n (k) => k.id == this.props.filteredTrainings[i].horseid\r\n ).length\r\n ) {\r\n let currRider = this.props.filteredTrainings[i].trainer;\r\n let newRider = window.DataStorage.allUsers.find(\r\n (i) => i.Id == currRider\r\n );\r\n let riderOrder = this.state.ridersOrder[currRider];\r\n if (newRider)\r\n ridersMass.push({\r\n id: filteredTrainings[i].trainer,\r\n name: newRider.Name,\r\n horses: [],\r\n orderC: riderOrder,\r\n });\r\n }\r\n }\r\n }\r\n\r\n let selectedRiders = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.FILTER_RIDER)\r\n );\r\n if (selectedRiders[0] != 1) {\r\n let selectedRidersArr = [];\r\n for (let i in ridersMass)\r\n if (selectedRiders.includes(ridersMass[i].id))\r\n selectedRidersArr.push(ridersMass[i]);\r\n ridersMass = selectedRidersArr;\r\n }\r\n\r\n ridersMass.sort(function (first, second) {\r\n return first[\"orderC\"] - second[\"orderC\"];\r\n });\r\n\r\n this.dates = [];\r\n for (var i = 0; i < window.training.period; i++) {\r\n this.dates.push(window.training.startDate.addDays(i));\r\n }\r\n\r\n this.permanentTypes = [];\r\n this.filteredTrainings = this.props.filteredTrainings;\r\n if (this.dates.length == 1) {\r\n this.permanentTypes = window.DataStorage.trainTypes.filter(\r\n (tt) => tt.IsPermanent\r\n );\r\n const permanentTypeIds = this.permanentTypes.map((tt) => tt.id);\r\n if (this.permanentTypes.length != null) {\r\n this.filteredTrainings = this.props.filteredTrainings.filter(\r\n (t) => permanentTypeIds.indexOf(t.type) == -1\r\n );\r\n this.permanentTrainings = this.props.filteredTrainings.filter(\r\n (t) => permanentTypeIds.indexOf(t.type) != -1\r\n );\r\n }\r\n }\r\n\r\n let minBlockWidth = 180 + 60 + 4;\r\n if (this.props.showEquipment) {\r\n minBlockWidth += 100;\r\n }\r\n\r\n return (\r\n \r\n
\r\n {ridersMass.map((rider, rIndex) =>\r\n rider.id == \"1\" ? (\r\n } : {}\r\n }\r\n >\r\n {this.renderGeneralTaskTable()}\r\n \r\n ) : (\r\n \r\n this.onResizeStop(rIndex, d)\r\n }\r\n handleComponent={\r\n window.isTouchDevice() ? { right: } : {}\r\n }\r\n >\r\n {this.renderRiderTable(rider)}\r\n \r\n )\r\n )}\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport class ResizeIcon extends Component {\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ResizePanel from \"react-resize-panel\";\r\nimport { Resizable } from \"re-resizable\";\r\nimport \"./RiderView.css\";\r\nimport TrainingCellMap from \"../TrainingCellMap\";\r\nimport HorseCell from \"../HorseCell/HorseCell\";\r\nimport TrainingDay from \"../TrainingCell/TrainingDay\";\r\nimport { ResizeIcon } from \"./StaticRiderView\";\r\n\r\nexport default class RiderView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ridersOrder: [],\r\n };\r\n\r\n this.defaultWidth = window.GlobalData.getItem(\r\n window.GlobalData.RIDER_COLUMN_WIDTH\r\n );\r\n if (this.defaultWidth == null) {\r\n this.defaultWidth = [];\r\n for (let i = 0; i < 100; i++) this.defaultWidth[i] = 500;\r\n } else {\r\n this.defaultWidth = JSON.parse(this.defaultWidth);\r\n }\r\n }\r\n\r\n onResizeStop = (rIndex, delta) => {\r\n this.defaultWidth[rIndex] += delta.width;\r\n window.GlobalData.setItem(\r\n window.GlobalData.RIDER_COLUMN_WIDTH,\r\n JSON.stringify(this.defaultWidth)\r\n );\r\n };\r\n\r\n renderRiderTable = (rider) => {\r\n let trainingCellMap = new TrainingCellMap();\r\n let trainingArr = this.props.filteredTrainings.filter(\r\n (t) => t.trainer == rider.id\r\n );\r\n trainingCellMap.refreshMap([this.props.date.formatDesh()], trainingArr);\r\n\r\n let horseIdArr = trainingArr.map((t) => t.horseid);\r\n let horses = this.props.filteredHorses.filter(\r\n (h) => horseIdArr.indexOf(h.id) != -1\r\n );\r\n if (!this.props.showOnlyOwnHorses && rider.id == window.myid) {\r\n let horseIdsWithTrainings = this.props.filteredTrainings.map(\r\n (t) => t.horseid\r\n );\r\n let horsesWihoutTrainings = this.props.filteredHorses.filter(\r\n (h) => horseIdsWithTrainings.indexOf(h.id) == -1\r\n );\r\n horses = [...horses, ...horsesWihoutTrainings];\r\n }\r\n horses = trainingCellMap.sortHorsesBySelectedDate(\r\n horses,\r\n this.props.date.formatDesh(),\r\n (horse, orderDate) => trainingArr.filter((t) => t.horseid == horse.id)\r\n );\r\n\r\n let trainingTdWidth =\r\n Math.max(\r\n trainingCellMap.map[this.props.date.formatDesh()].columns.length,\r\n 1\r\n ) * 80;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {horses.map((horse) => (\r\n \r\n \r\n \r\n t.horseid == horse.id)}\r\n date={this.props.date}\r\n isSelectedDate={true}\r\n horse={horse}\r\n trainingCellMap={trainingCellMap}\r\n showRider={false}\r\n />\r\n \r\n \r\n ))}\r\n \r\n
{window.lang.horse}{rider.name}
\r\n \r\n
\r\n );\r\n };\r\n\r\n createRiderOrder = (riderId) => {\r\n this.state.ridersOrder[riderId] =\r\n Object.keys(this.state.ridersOrder).length + 1;\r\n return this.state.ridersOrder[riderId];\r\n };\r\n\r\n render() {\r\n const { filteredHorses, filteredTrainings, date, showOnlyOwnHorses } =\r\n this.props;\r\n let riderArray = [];\r\n riderArray.push({\r\n id: window.myid,\r\n name: window.lang.me,\r\n });\r\n if (!showOnlyOwnHorses) {\r\n for (let i = 0; i < filteredTrainings.length; i++) {\r\n let training = filteredTrainings[i];\r\n let rider = riderArray.find((rider) => rider.id == training.trainer);\r\n if (rider == null) {\r\n riderArray.push({\r\n id: training.trainer,\r\n name: training.trainername,\r\n });\r\n }\r\n }\r\n\r\n //filter by show rider settings\r\n this.state.ridersOrder = window.GlobalData.getItem(\r\n window.GlobalData.KEY_RIDERS_ORDER\r\n );\r\n if (this.state.ridersOrder == null) {\r\n this.state.ridersOrder = {};\r\n } else {\r\n this.state.ridersOrder = JSON.parse(this.state.ridersOrder);\r\n }\r\n if (\r\n window.Managers.ridersIsShowing == null ||\r\n Object.keys(window.Managers.ridersIsShowing).length == 0\r\n ) {\r\n let f = window.GlobalData.getItem(\r\n window.GlobalData.KEY_RIDERS_IS_SHOWING\r\n );\r\n if (f != null) {\r\n window.Managers.ridersIsShowing = JSON.parse(f);\r\n }\r\n }\r\n }\r\n riderArray = riderArray.filter(\r\n (r) => window.Managers.ridersIsShowing[r.id] != 0\r\n );\r\n var ridersMass = new Array();\r\n for (var i = 0; i < riderArray.length; i++) {\r\n ridersMass.push(riderArray[i]);\r\n }\r\n for (var i = 0; i < ridersMass.length; i++) {\r\n var order = this.state.ridersOrder[ridersMass[i][\"id\"]];\r\n if (order == null) {\r\n order = this.createRiderOrder(ridersMass[i][\"id\"]);\r\n }\r\n ridersMass[i][\"orderC\"] = order;\r\n }\r\n ridersMass.sort(function (first, second) {\r\n return first[\"orderC\"] - second[\"orderC\"];\r\n });\r\n\r\n return (\r\n \r\n
\r\n {ridersMass.map((rider, rIndex) => (\r\n \r\n this.onResizeStop(rIndex, d)\r\n }\r\n handleComponent={\r\n window.isTouchDevice() ? { right: } : {}\r\n }\r\n >\r\n {this.renderRiderTable(rider)}\r\n \r\n ))}\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Resizable } from \"re-resizable\";\r\nimport \"./Rider2RowsView.css\";\r\nimport TrainingCellMap from \"../TrainingCellMap\";\r\nimport HorseCell from \"../HorseCell/HorseCell\";\r\nimport TrainingDay from \"../TrainingCell/TrainingDay\";\r\n\r\nexport default class Rider2RowsView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ridersOrder: [],\r\n };\r\n }\r\n\r\n renderRiderTable = (rider) => {\r\n let trainingCellMap = new TrainingCellMap();\r\n let trainingArr = this.props.filteredTrainings.filter(\r\n (t) => t.trainer == rider.id\r\n );\r\n trainingCellMap.refreshMap([this.props.date.formatDesh()], trainingArr);\r\n\r\n let horseIdArr = trainingArr.map((t) => t.horseid);\r\n let horses = this.props.filteredHorses.filter(\r\n (h) => horseIdArr.indexOf(h.id) != -1\r\n );\r\n if (!this.props.showOnlyOwnHorses && rider.id == window.myid) {\r\n let horseIdsWithTrainings = this.props.filteredTrainings.map(\r\n (t) => t.horseid\r\n );\r\n let horsesWihoutTrainings = this.props.filteredHorses.filter(\r\n (h) => horseIdsWithTrainings.indexOf(h.id) == -1\r\n );\r\n horses = [...horses, ...horsesWihoutTrainings];\r\n }\r\n horses = trainingCellMap.sortHorsesBySelectedDate(\r\n horses,\r\n this.props.date.formatDesh(),\r\n (horse, orderDate) => trainingArr.filter((t) => t.horseid == horse.id)\r\n );\r\n\r\n let trainingTdWidth =\r\n Math.max(\r\n trainingCellMap.map[this.props.date.formatDesh()].columns.length,\r\n 1\r\n ) * 80;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {horses.map((horse) => (\r\n \r\n \r\n \r\n t.horseid == horse.id)}\r\n date={this.props.date}\r\n isSelectedDate={true}\r\n horse={horse}\r\n trainingCellMap={trainingCellMap}\r\n showRider={false}\r\n />\r\n \r\n \r\n ))}\r\n \r\n
{window.lang.horse}{rider.name}
\r\n \r\n
\r\n );\r\n };\r\n\r\n createRiderOrder = (riderId) => {\r\n this.state.ridersOrder[riderId] =\r\n Object.keys(this.state.ridersOrder).length + 1;\r\n return this.state.ridersOrder[riderId];\r\n };\r\n\r\n render() {\r\n const { filteredHorses, filteredTrainings, date, showOnlyOwnHorses } =\r\n this.props;\r\n let riderArray = [];\r\n riderArray.push({\r\n id: window.myid,\r\n name: window.lang.me,\r\n });\r\n if (!showOnlyOwnHorses) {\r\n for (let i = 0; i < filteredTrainings.length; i++) {\r\n let training = filteredTrainings[i];\r\n let rider = riderArray.find((rider) => rider.id == training.trainer);\r\n if (rider == null) {\r\n riderArray.push({\r\n id: training.trainer,\r\n name: training.trainername,\r\n });\r\n }\r\n }\r\n\r\n //filter by show rider settings\r\n this.state.ridersOrder = window.GlobalData.getItem(\r\n window.GlobalData.KEY_RIDERS_ORDER\r\n );\r\n if (this.state.ridersOrder == null) {\r\n this.state.ridersOrder = {};\r\n } else {\r\n this.state.ridersOrder = JSON.parse(this.state.ridersOrder);\r\n }\r\n if (\r\n window.Managers.ridersIsShowing == null ||\r\n Object.keys(window.Managers.ridersIsShowing).length == 0\r\n ) {\r\n let f = window.GlobalData.getItem(\r\n window.GlobalData.KEY_RIDERS_IS_SHOWING\r\n );\r\n if (f != null) {\r\n window.Managers.ridersIsShowing = JSON.parse(f);\r\n }\r\n }\r\n }\r\n riderArray = riderArray.filter(\r\n (r) => window.Managers.ridersIsShowing[r.id] != 0\r\n );\r\n var ridersMass = new Array();\r\n for (var i = 0; i < riderArray.length; i++) {\r\n ridersMass.push(riderArray[i]);\r\n }\r\n for (var i = 0; i < ridersMass.length; i++) {\r\n var order = this.state.ridersOrder[ridersMass[i][\"id\"]];\r\n if (order == null) {\r\n order = this.createRiderOrder(ridersMass[i][\"id\"]);\r\n }\r\n ridersMass[i][\"orderC\"] = order;\r\n }\r\n ridersMass.sort(function (first, second) {\r\n return first[\"orderC\"] - second[\"orderC\"];\r\n });\r\n\r\n return (\r\n \r\n
\r\n {ridersMass.map((rider, rIndex) => (\r\n \r\n {this.renderRiderTable(rider)}\r\n \r\n ))}\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport HorseCell from \"../HorseCell/HorseCell\";\r\n\r\nexport default class TimeSinceLastHA extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n horseDataArr: []\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.getLastDatesForTrainingTypes();\r\n }\r\n\r\n getLastDatesForTrainingTypes = () => {\r\n let haTypes = window.DataStorage.trainTypes.filter(t => t.shortname == 'HA').map(t => t.id);\r\n window.DataGate.getLastDatesForTrainingTypes(window.myid, haTypes, (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n this.makeHorseArr(data);\r\n }\r\n });\r\n }\r\n\r\n makeHorseArr = (data) => {\r\n let horseArr = [];\r\n this.props.filteredHorses.map(i => (\r\n horseArr.push({ horse: i, date: '' })\r\n ));\r\n data.filter(item => {\r\n let curr = horseArr.filter(i => item.HorseId == i.horse.id);\r\n if (!curr) {\r\n return true;\r\n } else {\r\n curr[0].date = item.Date;\r\n return false;\r\n }\r\n });\r\n horseArr.filter(i => {\r\n if (i.date) {\r\n i.date = Math.ceil((new Date(this.props.date) - new Date(i.date)) / 1000 / 60 / 60 / 24);\r\n return false;\r\n }\r\n });\r\n horseArr.sort((a, b) => {\r\n if (a.date == b.date) return 0;\r\n return a.date < b.date ? 1 : -1;\r\n });\r\n this.setState({\r\n horseDataArr: horseArr\r\n });\r\n }\r\n\r\n render() {\r\n const { filteredHorses } = this.props;\r\n const { horseDataArr } = this.state;\r\n let widthFC = 0;\r\n if (window.GlobalData.getItem(window.GlobalData.SHOW_HORSELOGO) == 1) {\r\n widthFC = window.isMobileDevice() ? 150 : 200;\r\n } else {\r\n widthFC = 200;\r\n }\r\n let widthCol2 = 200;\r\n let tableWidth = widthFC + widthCol2;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {horseDataArr.length ?\r\n horseDataArr.map(i =>\r\n \r\n \r\n \r\n )\r\n :\r\n filteredHorses.length ?\r\n filteredHorses.map(i =>\r\n \r\n \r\n \r\n )\r\n :\r\n <>\r\n }\r\n \r\n
\r\n {window.lang.horse}\r\n \r\n {window.lang.days}\r\n
\r\n \r\n \r\n {i.date}\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport \"./FieldAssignmentView.css\";\r\n\r\nimport ClickNHold from \"react-click-n-hold\";\r\nimport { TrainingCell } from \"../TrainingViews/TrainingCell/TrainingDay\";\r\n\r\nexport default function FieldAssignmentView({\r\n fieldAreas,\r\n filteredHorses,\r\n filteredTrainings,\r\n date,\r\n}) {\r\n const capitalizeAllWords = (str) =>\r\n str\r\n .split(\" \")\r\n .map((word) => word[0].toUpperCase() + word.substring(1))\r\n .join(\" \");\r\n\r\n const getHorse = (id) => filteredHorses.find((horse) => horse.id == id);\r\n const isField = (name) => {\r\n name = name.toLowerCase();\r\n\r\n if (!name) return false;\r\n return name == \"field\" || name == \"fold\" || name == \"feld\";\r\n };\r\n const returnCellContent = (field_area_id, field_id, time_id) => {\r\n let current_trainings = filteredTrainings.filter((training) => {\r\n if (!isField(training.name)) return false;\r\n\r\n if (\r\n training.FieldAreaId != field_area_id ||\r\n training.FieldId != field_id ||\r\n training.FieldAreaTimePeriodId != time_id\r\n )\r\n return false;\r\n\r\n return true;\r\n });\r\n\r\n let nrOfTasks = 1;\r\n for (let field_area of fieldAreas) {\r\n if (field_area.id == field_area_id) {\r\n for (let field of field_area.fields) {\r\n if (field.id == field_id) {\r\n nrOfTasks = field.maxNumberHorses;\r\n }\r\n }\r\n }\r\n }\r\n\r\n while (current_trainings.length < nrOfTasks) {\r\n current_trainings.push(null);\r\n }\r\n\r\n return (\r\n \r\n // handleDragStart(e, field_area_id, field_id, time_id)\r\n // }\r\n // onDrop={(e) => handleDrop(e, field_area_id, field_id, time_id)}\r\n // onDragOver={handleDragOver}\r\n >\r\n {current_trainings.map((current_training, index) => {\r\n if (current_training == null) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n };\r\n\r\n const renderFieldAreaTable = (fieldArea) => {\r\n if (fieldArea.fields.length == 0) {\r\n return No fields available ;\r\n }\r\n if (fieldArea.timePeriods.length == 0) {\r\n return No time periods available;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {fieldArea.timePeriods.map((timePeriod) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n {fieldArea.fields.map((field) => (\r\n \r\n {/* 1 + timePeriods.length td's */}\r\n \r\n {fieldArea.timePeriods.map((timePeriod) => {\r\n return returnCellContent(fieldArea.id, field.id, timePeriod.id);\r\n })}\r\n \r\n ))}\r\n \r\n
{capitalizeAllWords(window.lang.fieldName)}{timePeriod.period}
{field.name}
\r\n );\r\n };\r\n return (\r\n
\r\n {fieldAreas.map((fieldArea, index) => (\r\n \r\n

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

\r\n
\r\n {renderFieldAreaTable(fieldArea)}\r\n
\r\n \r\n ))}\r\n
\r\n );\r\n}\r\n","import { useEffect } from \"react\";\r\n\r\nconst useClickOutside = (ref, callback) => {\r\n useEffect(() => {\r\n const handleClickOutside = (event) => {\r\n if (ref.current && !ref.current.contains(event.target)) {\r\n callback();\r\n }\r\n };\r\n\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [ref, callback]);\r\n};\r\n\r\nexport default useClickOutside;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport \"./OtherTasksView.css\";\r\n\r\nimport ClickNHold from \"react-click-n-hold\";\r\nimport GeneralTaskPopup from \"../GeneralTask/GeneralTaskPopup\";\r\n\r\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\r\n\r\nimport useClickOutside from \"../Hooks/useClickOutside\";\r\nexport default function OtherTasksView({ date, generalTaskArr }) {\r\n const [generalTasksDaily, setGeneralTasksDaily] = useState([]);\r\n const [generalTasksWeekly, setGeneralTasksWeekly] = useState([]);\r\n const [generalTasksMonthly, setGeneralTasksMonthly] = useState([]);\r\n\r\n const [reorderMode, setReorderMode] = useState([false, false, false]);\r\n\r\n const [draggable, setDraggable] = useState(\r\n window.GlobalData.getItem(window.GlobalData.DRAG_DROP_TRAININGS) == 1\r\n );\r\n\r\n const [isDragging, setIsDragging] = useState(false);\r\n\r\n const ref = useRef();\r\n useClickOutside(ref, () => {\r\n let auxOrderMode = [...reorderMode];\r\n for (let index in auxOrderMode) {\r\n if (auxOrderMode[index]) {\r\n saveNewOrder(index + 1);\r\n }\r\n auxOrderMode[index] = false;\r\n }\r\n setReorderMode(auxOrderMode);\r\n });\r\n\r\n /**\r\n * Initialisation function\r\n * @description subscribes to the settings observables to be responsive to the changes in settings (drag and drop setting in this component)\r\n *\r\n */\r\n useEffect(() => {\r\n const globalDataChangeHandler = () => {\r\n setDraggable(\r\n window.GlobalData.getItem(window.GlobalData.DRAG_DROP_TRAININGS) == 1\r\n );\r\n };\r\n // subscribe\r\n window.GlobalData.subscribe(globalDataChangeHandler);\r\n // unsubscribe\r\n return () => {\r\n window.GlobalData.unsubscribe(globalDataChangeHandler);\r\n };\r\n }, []);\r\n\r\n const saveNewOrder = (type) => {\r\n let items = [...getGeneralTaskOfType(type)];\r\n const ids = items.map((task) => task.Id);\r\n window.DataGate.reorderGeneralTasks(ids, () => {});\r\n };\r\n\r\n const drawSortIcon = (index) => {\r\n const handleClick = () => {\r\n let auxOrderMode = [...reorderMode];\r\n if (auxOrderMode[index]) {\r\n saveNewOrder(index + 1);\r\n }\r\n auxOrderMode[index] = !auxOrderMode[index];\r\n setReorderMode(auxOrderMode);\r\n };\r\n if (reorderMode[index]) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n /**\r\n * A function that updates the tasks with respect of the local client order\r\n * @param {the type of tasks (daily, weekly, montly) = (1,2,3)} type\r\n */\r\n const updateWithRespectOfLocalOrder = (type) => {\r\n let newDailyTasks = generalTaskArr?.filter((task) => task.tasktype == type);\r\n if (reorderMode[type - 1]) {\r\n console.log(newDailyTasks);\r\n let curTasks = getGeneralTaskOfType(type);\r\n let res = getGeneralTaskOfType(type);\r\n for (let newDailyTask of newDailyTasks) {\r\n let foundIndex = curTasks.findIndex((x) => x.Id == newDailyTask.Id);\r\n if (foundIndex >= 0) {\r\n curTasks[foundIndex] = newDailyTask;\r\n } else {\r\n res.push(newDailyTask);\r\n }\r\n }\r\n setGeneralTasksOfType(res, type);\r\n } else {\r\n setGeneralTasksOfType(newDailyTasks, type);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n //keep order\r\n updateWithRespectOfLocalOrder(1);\r\n updateWithRespectOfLocalOrder(2);\r\n updateWithRespectOfLocalOrder(3);\r\n }, [generalTaskArr]);\r\n\r\n const onNewGeneralTaskClick = (taskType) => {\r\n let option = {\r\n date: date,\r\n taskType,\r\n };\r\n new GeneralTaskPopup().showPopup(option, null, () => {});\r\n };\r\n\r\n const reorder = (list, startIndex, endIndex) => {\r\n const result = Array.from(list);\r\n const [removed] = result.splice(startIndex, 1);\r\n result.splice(endIndex, 0, removed);\r\n\r\n return result;\r\n };\r\n\r\n const getGeneralTaskOfType = (type) => {\r\n if (type == 1) return generalTasksDaily;\r\n if (type == 2) return generalTasksWeekly;\r\n return generalTasksMonthly;\r\n };\r\n\r\n const setGeneralTasksOfType = (new_items, type) => {\r\n if (type == 1) return setGeneralTasksDaily(new_items);\r\n if (type == 2) return setGeneralTasksWeekly(new_items);\r\n return setGeneralTasksMonthly(new_items);\r\n };\r\n\r\n const onCellHoldCLick = (task) => {\r\n let task_aux = { ...task };\r\n task_aux.Color = task.Color == \"red\" ? \"green\" : \"red\";\r\n\r\n task_aux.Flag = \"Update\";\r\n task_aux[\"ConnectionId\"] = window.notification.connectionId;\r\n\r\n window.DataGate.insertOrUpdateGeneralTask(task_aux, (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.refresh({ showSpinner: false });\r\n }\r\n });\r\n };\r\n\r\n const onDragEnd = (result, type) => {\r\n // dropped outside the list\r\n if (!result.destination) {\r\n return;\r\n }\r\n\r\n const items = reorder(\r\n getGeneralTaskOfType(type),\r\n result.source.index,\r\n result.destination.index\r\n );\r\n\r\n const ids = items.map((task) => task.Id);\r\n\r\n console.log(getGeneralTaskOfType(type));\r\n console.log(result);\r\n\r\n window.DataGate.reorderGeneralTasks(ids, () => {});\r\n setIsDragging(false);\r\n setGeneralTasksOfType(items, type);\r\n };\r\n\r\n const move_task = (type, index, lower) => {\r\n let items = [...getGeneralTaskOfType(type)];\r\n if (index == 0 && lower) return;\r\n if (index == items.length - 1 && !lower) return;\r\n\r\n let newIndex = lower ? index - 1 : index + 1;\r\n\r\n // console.log(getGeneralTaskOfType(type));\r\n // console.log(items[index]);\r\n // console.log(items[newIndex]);\r\n\r\n let aux = items[index];\r\n items[index] = items[newIndex];\r\n items[newIndex] = aux;\r\n // const newItems = [items[index], items[newIndex]];\r\n const ids = items.map((task) => task.Id);\r\n\r\n // window.DataGate.reorderGeneralTasks(ids, () => {});\r\n setIsDragging(false);\r\n setGeneralTasksOfType(items, type);\r\n };\r\n\r\n const renderGeneralTaskTableDaily = () => {\r\n const currentTasks = generalTasksDaily;\r\n return (\r\n
\r\n \r\n \r\n \r\n Other tasks\r\n \r\n \r\n onDragEnd(result, 1)}\r\n onBeforeDragStart={() => setIsDragging(true)}\r\n >\r\n \r\n {(provided, snapshot) => (\r\n \r\n {currentTasks &&\r\n currentTasks.map((i, index) => (\r\n \r\n {(provided, snapshot) => (\r\n \r\n onGeneralTaskClick(i, 1)}\r\n >\r\n {\r\n onCellHoldCLick(i);\r\n }}\r\n >\r\n
\r\n
\r\n {i.TimeOfDay}\r\n
\r\n \r\n {window.DataStorage.allUsers.length\r\n ? i.TrainerId\r\n ? i.Name +\r\n \" (\" +\r\n window.getInitials(\r\n window.DataStorage.allUsers.find(\r\n (t) => t.Id == i.TrainerId\r\n ).Name\r\n ) +\r\n \")\"\r\n : i.Name + \"(N)\"\r\n : i.Name}\r\n \r\n
\r\n {i.Remark}\r\n
\r\n
\r\n \r\n \r\n {reorderMode[0] && (\r\n <>\r\n {\r\n move_task(1, index, true);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {\r\n move_task(1, index, false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n ))}\r\n {provided.placeholder}\r\n\r\n \r\n \r\n
\r\n onNewGeneralTaskClick(1)}>\r\n Add new task\r\n \r\n
\r\n {drawSortIcon(0)}\r\n
\r\n
\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n
\r\n );\r\n };\r\n const renderGeneralTaskTableWeekly = () => {\r\n const currentTasks = generalTasksWeekly;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n onDragEnd(result, 2)}\r\n onBeforeDragStart={() => setIsDragging(true)}\r\n >\r\n \r\n {(provided, snapshot) => (\r\n \r\n {currentTasks &&\r\n currentTasks.map((i, index) => (\r\n \r\n {(provided, snapshot) => (\r\n \r\n onGeneralTaskClick(i, 2)}\r\n >\r\n {\r\n onCellHoldCLick(i);\r\n }}\r\n >\r\n
\r\n
\r\n {i.TimeOfDay}\r\n
\r\n \r\n {window.DataStorage.allUsers.length\r\n ? i.TrainerId\r\n ? i.Name +\r\n \" (\" +\r\n window.getInitials(\r\n window.DataStorage.allUsers.find(\r\n (t) => t.Id == i.TrainerId\r\n ).Name\r\n ) +\r\n \")\"\r\n : i.Name + \"(N)\"\r\n : i.Name}\r\n \r\n
\r\n {i.Remark}\r\n
\r\n
\r\n \r\n \r\n {reorderMode[1] && (\r\n <>\r\n {\r\n move_task(2, index, true);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {\r\n move_task(2, index, false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n ))}\r\n {provided.placeholder}\r\n\r\n
\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
Weekly tasks
\r\n
\r\n onNewGeneralTaskClick(2)}>\r\n Add new task\r\n \r\n
\r\n {drawSortIcon(1)}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n const renderGeneralTaskTableMonthly = () => {\r\n const currentTasks = generalTasksMonthly;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n onDragEnd(result, 3)}\r\n onBeforeDragStart={() => setIsDragging(true)}\r\n >\r\n \r\n {(provided, snapshot) => (\r\n \r\n {currentTasks &&\r\n currentTasks.map((i, index) => (\r\n \r\n {(provided, snapshot) => (\r\n \r\n onGeneralTaskClick(i, 3)}\r\n >\r\n {\r\n onCellHoldCLick(i);\r\n }}\r\n >\r\n
\r\n
\r\n {i.TimeOfDay}\r\n
\r\n \r\n {window.DataStorage.allUsers.length\r\n ? i.TrainerId\r\n ? i.Name +\r\n \" (\" +\r\n window.getInitials(\r\n window.DataStorage.allUsers.find(\r\n (t) => t.Id == i.TrainerId\r\n ).Name\r\n ) +\r\n \")\"\r\n : i.Name + \"(N)\"\r\n : i.Name}\r\n \r\n
\r\n {i.Remark}\r\n
\r\n
\r\n \r\n \r\n {reorderMode[2] && (\r\n <>\r\n {\r\n move_task(3, index, true);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {\r\n move_task(3, index, false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n ))}\r\n {provided.placeholder}\r\n\r\n
\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
Monthly tasks
\r\n
\r\n onNewGeneralTaskClick(3)}>\r\n Add new task\r\n \r\n
\r\n {drawSortIcon(2)}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n const onGeneralTaskClick = (task, taskType) => {\r\n let options = {\r\n date: new Date(task.Time),\r\n };\r\n new GeneralTaskPopup().showPopup(options, task, () => {});\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {renderGeneralTaskTableDaily()}\r\n
\r\n
\r\n {renderGeneralTaskTableWeekly()}\r\n
\r\n
\r\n {renderGeneralTaskTableMonthly()}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport \"./OtherTasksViewLight.css\";\r\n\r\nimport ClickNHold from \"react-click-n-hold\";\r\nimport GeneralTaskPopup from \"../GeneralTask/GeneralTaskPopup\";\r\n\r\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\r\nimport OtherTasksSort from \"../SVGs/OtherTasksSort\";\r\n\r\nexport default function OtherTasksViewLight({ date, generalTaskArr }) {\r\n const [generalTasksDaily, setGeneralTasksDaily] = useState([]);\r\n const [generalTasksWeekly, setGeneralTasksWeekly] = useState([]);\r\n const [generalTasksMonthly, setGeneralTasksMonthly] = useState([]);\r\n\r\n useEffect(() => {\r\n setGeneralTasksDaily(generalTaskArr?.filter((task) => task.tasktype == 1));\r\n setGeneralTasksWeekly(generalTaskArr?.filter((task) => task.tasktype == 2));\r\n setGeneralTasksMonthly(\r\n generalTaskArr?.filter((task) => task.tasktype == 3)\r\n );\r\n }, [generalTaskArr]);\r\n\r\n const onCellHoldCLick = (task) => {\r\n let task_aux = { ...task };\r\n task_aux.Color = task.Color == \"red\" ? \"green\" : \"red\";\r\n\r\n task_aux.Flag = \"Update\";\r\n task_aux[\"ConnectionId\"] = window.notification.connectionId;\r\n\r\n window.DataGate.insertOrUpdateGeneralTask(task_aux, (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.refresh({ showSpinner: false });\r\n }\r\n });\r\n };\r\n\r\n const renderGeneralTaskTableDaily = () => {\r\n const currentTasks = generalTasksDaily;\r\n return (\r\n
\r\n \r\n \r\n \r\n Other tasks\r\n \r\n \r\n \r\n {currentTasks &&\r\n currentTasks.map((i, index) => (\r\n \r\n onGeneralTaskClick(i, 1)}\r\n >\r\n {\r\n onCellHoldCLick(i);\r\n }}\r\n >\r\n
\r\n
{i.TimeOfDay}
\r\n \r\n {window.DataStorage.allUsers.length\r\n ? i.TrainerId\r\n ? i.Name +\r\n \" (\" +\r\n window.getInitials(\r\n window.DataStorage.allUsers.find(\r\n (t) => t.Id == i.TrainerId\r\n ).Name\r\n ) +\r\n \")\"\r\n : i.Name + \"(N)\"\r\n : i.Name}\r\n \r\n
{i.Remark}
\r\n
\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n
\r\n );\r\n };\r\n const renderGeneralTaskTableWeekly = () => {\r\n const currentTasks = generalTasksWeekly;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentTasks &&\r\n currentTasks.map((i, index) => (\r\n \r\n onGeneralTaskClick(i, 2)}\r\n >\r\n {\r\n onCellHoldCLick(i);\r\n }}\r\n >\r\n
\r\n
{i.TimeOfDay}
\r\n \r\n {window.DataStorage.allUsers.length\r\n ? i.TrainerId\r\n ? i.Name +\r\n \" (\" +\r\n window.getInitials(\r\n window.DataStorage.allUsers.find(\r\n (t) => t.Id == i.TrainerId\r\n ).Name\r\n ) +\r\n \")\"\r\n : i.Name + \"(N)\"\r\n : i.Name}\r\n \r\n
{i.Remark}
\r\n
\r\n \r\n \r\n
\r\n ))}\r\n \r\n
Weekly tasks
\r\n
\r\n );\r\n };\r\n const renderGeneralTaskTableMonthly = () => {\r\n const currentTasks = generalTasksMonthly;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentTasks &&\r\n currentTasks.map((i, index) => (\r\n \r\n onGeneralTaskClick(i, 3)}\r\n >\r\n {\r\n onCellHoldCLick(i);\r\n }}\r\n >\r\n
\r\n
{i.TimeOfDay}
\r\n \r\n {window.DataStorage.allUsers.length\r\n ? i.TrainerId\r\n ? i.Name +\r\n \" (\" +\r\n window.getInitials(\r\n window.DataStorage.allUsers.find(\r\n (t) => t.Id == i.TrainerId\r\n ).Name\r\n ) +\r\n \")\"\r\n : i.Name + \"(N)\"\r\n : i.Name}\r\n \r\n
{i.Remark}
\r\n
\r\n \r\n \r\n
\r\n ))}\r\n \r\n
Monthly tasks
\r\n
\r\n );\r\n };\r\n\r\n const onGeneralTaskClick = (task, taskType) => {\r\n let options = {\r\n date: new Date(task.Time),\r\n simplified: true,\r\n };\r\n new GeneralTaskPopup().showPopup(options, task, () => {});\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {renderGeneralTaskTableDaily()}\r\n
\r\n
\r\n {renderGeneralTaskTableWeekly()}\r\n
\r\n
\r\n {renderGeneralTaskTableMonthly()}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport \"./FieldAndOtherTasks.css\";\r\nimport OtherTasksViewLight from \"../OtherTasksViewLight/OtherTasksViewLight\";\r\nimport FieldAssignmentView from \"../FieldAssignmentView/FieldAssignmentView\";\r\n\r\nexport default function FieldAndOtherTasks({\r\n date,\r\n generalTaskArr,\r\n filteredHorses,\r\n filteredTrainingsField,\r\n fieldAreas,\r\n}) {\r\n return (\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport WeekView from \"./WeekView/WeekView\";\r\nimport FeedView from \"./FeedView/FeedView\";\r\nimport RiderView from \"./RiderView/RiderView\";\r\nimport Rider2RowsView from \"./Rider2RowsView/Rider2RowsView\";\r\nimport TimeSinceLastHA from \"./TimeSinceLastHA/TimeSinceLastHA\";\r\nimport StaticRiderView from \"./RiderView/StaticRiderView\";\r\nimport FieldAssignmentView from \"../FieldAssignmentView/FieldAssignmentView\";\r\nimport OtherTasksView from \"../OtherTasksView/OtherTasksView\";\r\nimport OtherTasksViewLight from \"../OtherTasksViewLight/OtherTasksViewLight\";\r\nimport FieldAndOtherTasks from \"../FieldAndOtherTasks/FieldAndOtherTasks\";\r\n\r\nclass MainView extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.filteredHorses = [];\r\n this.filteredTrainings = [];\r\n this.filteredGeneralTaskArr = [];\r\n this.fieldAreas = [];\r\n }\r\n\r\n applyFilters = () => {\r\n let horseArr = [\r\n ...window.DataStorage.myHorseArray,\r\n ...window.DataStorage.notMyHorseArray,\r\n ];\r\n let trainingArray = window.DataStorage.addTrainingArr;\r\n console.log(trainingArray);\r\n let stablesArray = window.DataStorage.boxesAndStables;\r\n\r\n // fiter by type\r\n const horseType = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.SHOW_IN_TRAINING)\r\n );\r\n if (\r\n horseType == null ||\r\n horseType.length == 0 ||\r\n horseType[0] == \"1\" ||\r\n horseType[0] == \"101\"\r\n ) {\r\n //show all\r\n } else if (horseType[0] == \"2\") {\r\n //in training\r\n horseArr = horseArr.filter((h) => h.istraining == \"1\");\r\n } else if (horseType[0] == \"3\") {\r\n //own in training\r\n horseArr = horseArr.filter(\r\n (h) => h.istraining == \"1\" && h.userid == window.myid\r\n );\r\n } else {\r\n let horseTypeIds = horseType.map((i) => {\r\n let horseTypeArr = i.split(\",\");\r\n return horseTypeArr;\r\n });\r\n horseTypeIds = horseTypeIds.flat();\r\n horseArr = horseArr.filter(\r\n (h) => horseTypeIds.indexOf(h.HorseType) != -1\r\n );\r\n }\r\n\r\n // filter by stable\r\n const stableId = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.SHOW_IN_STABLE)\r\n );\r\n if (stableId[stableId.length - 1] == \"1\") {\r\n //show all\r\n } else {\r\n stablesArray = stablesArray.filter((i) => {\r\n let stIndex = stableId.indexOf(i.IdStable);\r\n return i.IdStable == stableId[stIndex];\r\n });\r\n horseArr = horseArr.filter((h) => {\r\n let stArr =\r\n window.inUseStables == \"Y\"\r\n ? stablesArray.filter((t) => t.IDBox == h.BoxName)\r\n : stablesArray.filter((t) => t.IdStable == h.StableId);\r\n return stArr.length != 0;\r\n });\r\n }\r\n\r\n if (\r\n this.props.mode != window.TrainingManager.riderStatic &&\r\n this.props.mode != window.TrainingManager.riderStaticAndEquipment &&\r\n this.props.mode != window.TrainingManager.riderStaticLight &&\r\n this.props.mode != window.TrainingManager.riderStaticAndEquipmentLight\r\n ) {\r\n // filter by rider\r\n const riderId = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.FILTER_RIDER)\r\n );\r\n if (riderId[riderId.length - 1] != \"1\") {\r\n trainingArray = trainingArray.filter((t) => {\r\n let rIndex = riderId.indexOf(t.trainer);\r\n return t.trainer == riderId[rIndex];\r\n });\r\n horseArr = horseArr.filter((h) => {\r\n let tArr = trainingArray.filter((t) => t.horseid == h.id);\r\n return tArr.length != 0;\r\n });\r\n }\r\n }\r\n\r\n // filter by label\r\n const labelId = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.FILTER_LABEL)\r\n );\r\n if (labelId[labelId.length - 1] != \"1\") {\r\n horseArr = horseArr.filter((h) => {\r\n let horseLabelArr = JSON.parse(h.LabelIds);\r\n return horseLabelArr\r\n ? horseLabelArr.map((j) => labelId.indexOf(j) != -1).includes(true)\r\n : false;\r\n });\r\n }\r\n\r\n horseArr = horseArr.sort(function (h1, h2) {\r\n return h1.name.toLowerCase() > h2.name.toLowerCase() ? 1 : -1;\r\n });\r\n this.filteredHorses = horseArr;\r\n this.filteredTrainings = trainingArray;\r\n };\r\n\r\n render() {\r\n this.applyFilters();\r\n console.log(this.props.mode);\r\n switch (this.props.mode) {\r\n case window.TrainingManager.otherTasks:\r\n if (window.DataStorage.addGeneralTaskArr)\r\n this.filteredGeneralTaskArr = window.DataStorage.addGeneralTaskArr;\r\n\r\n return (\r\n \r\n );\r\n case window.TrainingManager.otherTasksLight:\r\n if (window.DataStorage.addGeneralTaskArr)\r\n this.filteredGeneralTaskArr = window.DataStorage.addGeneralTaskArr;\r\n // .filter(\r\n // (t) => t.Time == otherTasksselectedDate\r\n // );\r\n return (\r\n \r\n );\r\n case window.TrainingManager.fieldAndOtherTasks:\r\n if (window.DataStorage.addGeneralTaskArr)\r\n this.filteredGeneralTaskArr = window.DataStorage.addGeneralTaskArr;\r\n\r\n this.fieldAreas = window.DataStorage.fieldAreas;\r\n let selectedDateFieldFieldAndOther =\r\n window.training.startDate.formatDesh();\r\n let filteredTrainingsFieldFieldAndOther = this.filteredTrainings.filter(\r\n (t) => t.starttime == selectedDateFieldFieldAndOther\r\n );\r\n\r\n return (\r\n \r\n );\r\n case window.TrainingManager.fieldAssignment:\r\n this.fieldAreas = window.DataStorage.fieldAreas;\r\n let selectedDateField = window.training.startDate.formatDesh();\r\n let filteredTrainingsField = this.filteredTrainings.filter(\r\n (t) => t.starttime == selectedDateField\r\n );\r\n return (\r\n \r\n );\r\n case window.TrainingManager.mode_table_2:\r\n case window.TrainingManager.mode_equipment:\r\n return (\r\n \r\n );\r\n case window.TrainingManager.mode_rider_2:\r\n case window.TrainingManager.mode_own_horses: {\r\n let selectedDate = window.training.startDate.formatDesh();\r\n let filteredTrainings = this.filteredTrainings.filter(\r\n (t) => t.starttime == selectedDate\r\n );\r\n return (\r\n \r\n );\r\n }\r\n case window.TrainingManager.riderStatic:\r\n case window.TrainingManager.riderStaticAndEquipment:\r\n case window.TrainingManager.riderStaticLight:\r\n case window.TrainingManager.riderStaticAndEquipmentLight: {\r\n let selectedDate = window.training.startDate.formatDesh();\r\n let filteredTrainings = this.filteredTrainings.filter(\r\n (t) => t.starttime == selectedDate\r\n );\r\n if (window.DataStorage.addGeneralTaskArr)\r\n this.filteredGeneralTaskArr =\r\n window.DataStorage.addGeneralTaskArr.filter(\r\n (t) => t.Time == selectedDate\r\n );\r\n return (\r\n \r\n );\r\n }\r\n case window.TrainingManager.mode_feed:\r\n return ;\r\n case window.TrainingManager.mode_rider2:\r\n let selectedDate = window.training.startDate.formatDesh();\r\n let filteredTrainings = this.filteredTrainings.filter(\r\n (t) => t.starttime == selectedDate\r\n );\r\n return (\r\n \r\n );\r\n case window.TrainingManager.timeSinceLastHA:\r\n return (\r\n \r\n );\r\n }\r\n\r\n return
;\r\n }\r\n}\r\n\r\nexport default MainView;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport WeekView from \"./WeekView/WeekView\";\r\nimport MainView from \"./MainView\";\r\n\r\nexport default class TrainingExtension {\r\n renderMainView(mode) {\r\n if (window.myid == null) {\r\n return;\r\n }\r\n if (window.DataStorage.trainTypes == null) {\r\n return;\r\n }\r\n window.$(\"#trainReactDiv\").show();\r\n window.$(\"#trainTableDiv, #trainRiderView, #notat-rider-column\").html(\"\");\r\n\r\n //console.log(\"mode: \" + mode);\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"trainReactDiv\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport \"./ToggleView.css\";\r\n\r\nexport default class ToggleView extends Component {\r\n render() {\r\n const checked = this.props.checked;\r\n if (checked) {\r\n return (\r\n \r\n
{window.lang.yes}
\r\n
\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n
\r\n
{window.lang.no}
\r\n \r\n );\r\n }\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport DataGateActions from \"../../DataGateActions\";\r\nimport \"./FarrierView.css\";\r\nimport ToggleView from \"../../Controls/ToggleView/ToggleView\";\r\nimport TrainingPopup from \"../../TrainingPopup/TrainingPopup\";\r\n\r\nclass FarrierView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n data: [],\r\n };\r\n\r\n this.reminderNames = [\r\n window.lang.reminder_No,\r\n window.lang.reminder_SameDay,\r\n window.lang.reminder_1_dayBefore,\r\n window.lang.reminder_2_dayBefore,\r\n window.lang.reminder_3_dayBefore,\r\n window.lang.reminder_4_dayBefore,\r\n window.lang.reminder_5_dayBefore,\r\n window.lang.reminder_6_dayBefore,\r\n window.lang.reminder_7_dayBefore,\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n this.loadData();\r\n window.training.onTrainingAddChangeCallback = () => {\r\n this.loadData();\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.curdate !== prevProps.curdate) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n loadData() {\r\n DataGateActions.getFarrierData((data) => {\r\n if (data != null) {\r\n this.setState({\r\n data: data,\r\n });\r\n }\r\n });\r\n }\r\n\r\n filterData() {\r\n let horseArr = [\r\n ...window.DataStorage.myHorseArray,\r\n ...window.DataStorage.notMyHorseArray,\r\n ];\r\n //fiter by type\r\n const horseType = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.SHOW_IN_TRAINING)\r\n );\r\n if (horseType == \"1\" || horseType == \"101\") {\r\n //show all\r\n } else if (horseType == \"2\") {\r\n //in training\r\n horseArr = horseArr.filter((h) => h.istraining == \"1\");\r\n } else if (horseType == \"3\") {\r\n //own in training\r\n horseArr = horseArr.filter(\r\n (h) => h.istraining == \"1\" && h.userid == window.myid\r\n );\r\n } else {\r\n let horseTypeIds = horseType.map((i) => {\r\n let horseTypeArr = i.split(\",\");\r\n return horseTypeArr;\r\n });\r\n horseTypeIds = horseTypeIds.flat();\r\n horseArr = horseArr.filter(\r\n (h) => horseTypeIds.indexOf(h.HorseType) != -1\r\n );\r\n }\r\n\r\n let horseIds = horseArr.map((h) => h.id);\r\n let data = this.state.data.filter((t) => horseIds.indexOf(t.HorseId) != -1);\r\n return data;\r\n }\r\n\r\n onEditClick = (item) => {\r\n window.db.getTrainers(item.HorseId, (data) => {\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == item.HorseId\r\n );\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse.userid\r\n );\r\n let currentTraining = trainingTypes.filter((i) => i.id == item.Type);\r\n let currentTrainer = data.filter((i) => i.id == item.Trainer);\r\n let options = {\r\n horseId: item.HorseId,\r\n trainingType: item.Type,\r\n date: Date.getNewDate(item.StartTime),\r\n trainerId: currentTrainer[0].id,\r\n trainerName: currentTrainer[0].name,\r\n };\r\n\r\n let newItem = {\r\n color: item.Color,\r\n duration: item.Duration,\r\n Evaluation: item.Evaluation,\r\n FarrierType: item.FarrierType,\r\n FarrierTypeName: item.FarrierTypeName,\r\n HasMultimedia: item.HasMultimedia,\r\n HorseId: item.HorseId,\r\n HorseName: item.HorseName,\r\n id: item.Id,\r\n isCanCopy: item.IsCanCopy,\r\n PaddockPeriod: item.PaddockPeriod,\r\n remark: item.Remark,\r\n ReminderType: item.ReminderType,\r\n StartTime: item.StartTime,\r\n status: item.Status,\r\n SyncTime: item.SyncTime,\r\n TimeOfDay: item.TimeOfDay,\r\n trainer: item.Trainer,\r\n Type: item.Type,\r\n U: item.U,\r\n VeterinarianType: item.VeterinarianType,\r\n VeterinarianVacType: item.VeterinarianVacType,\r\n name: currentTraining[0].name,\r\n shortname: currentTraining[0].shortname,\r\n trainername: currentTrainer[0].name,\r\n };\r\n\r\n let trainingPopup = new TrainingPopup();\r\n trainingPopup.showPopup(options, newItem, () => {\r\n window.HomePage.latestIconClick = \"homeIconFarrier\";\r\n window.HomePage.prototype.onFarrierMenuClick();\r\n });\r\n });\r\n };\r\n\r\n onAddClick = (isDone) => {\r\n let horse = window.DataStorage.getAllHorses()[0];\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse.userid\r\n );\r\n let farTraining = trainingTypes.filter((i) => i.IsFarrier == true);\r\n let date = new Date();\r\n if (!isDone) {\r\n let weeks = window.GlobalData.getItem(\r\n window.GlobalData.SETTINGS_FARRIER_WEEKS\r\n );\r\n if (weeks < 7) {\r\n date.setDate(\r\n date.getDate() + ((parseInt(weeks) + 1 + 7 - date.getDay()) % 7)\r\n );\r\n } else if (weeks > 7) {\r\n date = new Date().addDays(7 * (parseInt(weeks) - 4));\r\n }\r\n }\r\n let currentTrainerId = horse.trainer;\r\n if (!currentTrainerId)\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == window.myid\r\n );\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == currentTrainerId\r\n );\r\n let options = {\r\n trainingType: farTraining[0].id,\r\n date: date,\r\n isDone: isDone,\r\n trainerId: currentTrainer.Id,\r\n trainerName: currentTrainer.Name,\r\n };\r\n let trainingPopup = new TrainingPopup();\r\n trainingPopup.showPopup(options, null, () => {\r\n window.HomePage.latestIconClick = \"homeIconFarrier\";\r\n window.HomePage.prototype.onFarrierMenuClick();\r\n });\r\n };\r\n\r\n onDeleteClick = (item) => {\r\n let data = this.state.data.filter((t) => t.Id != item.Id);\r\n this.setState({\r\n data: data,\r\n });\r\n\r\n DataGateActions.deleteTraining(item.Id);\r\n window.DataStorage.deleteTrainingById(item.Id);\r\n window.training.refreshLayout();\r\n window.HomePage.latestIconClick = \"homeIconFarrier\";\r\n window.HomePage.prototype.onFarrierMenuClick();\r\n };\r\n\r\n onAddForHorseClick = (horseId) => {\r\n let horse = window.DataStorage.getAllHorses().filter(\r\n (i) => i.id == horseId\r\n );\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse[0].userid\r\n );\r\n let farTraining = trainingTypes.filter((i) => i.IsFarrier == true);\r\n let date = new Date();\r\n let farrWeek = window.GlobalData.getItem(\r\n window.GlobalData.SETTINGS_FARRIER_WEEKS + \"&\" + horseId\r\n );\r\n if (!farrWeek)\r\n farrWeek = window.GlobalData.getItem(\r\n window.GlobalData.SETTINGS_FARRIER_WEEKS\r\n );\r\n if (farrWeek < 7) {\r\n date.setDate(\r\n date.getDate() + ((parseInt(farrWeek) + 1 + 7 - date.getDay()) % 7)\r\n );\r\n } else if (farrWeek > 7) {\r\n date = new Date().addDays(7 * (parseInt(farrWeek) - 4));\r\n }\r\n let currentTrainerId = horse.trainer;\r\n if (!currentTrainerId)\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == window.myid\r\n );\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == currentTrainerId\r\n );\r\n let options = {\r\n trainingType: farTraining[0].id,\r\n date: date,\r\n isDone: false,\r\n horseId: horse[0].id,\r\n farrWeek: farrWeek,\r\n trainerId: currentTrainer.Id,\r\n trainerName: currentTrainer.Name,\r\n };\r\n let trainingPopup = new TrainingPopup();\r\n trainingPopup.showPopup(options, null, () => {\r\n window.HomePage.latestIconClick = \"homeIconFarrier\";\r\n window.HomePage.prototype.onFarrierMenuClick();\r\n });\r\n };\r\n\r\n onDoneToggle = (item) => {\r\n item.Color = item.Color == \"green\" ? \"red\" : \"green\";\r\n let data = [...this.state.data];\r\n let index = data.findIndex((t) => t.Id == item.Id);\r\n data[index] = item;\r\n this.setState({\r\n data: data,\r\n });\r\n\r\n window.DataGate.insertOrUpdateTrainings(item, function (code, data) {\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.refresh({ showSpinner: false });\r\n if (item.Color == \"green\") {\r\n let horse = window.DataStorage.getAllHorses().filter(\r\n (i) => i.id == item.HorseId\r\n );\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse[0].userid\r\n );\r\n let farTraining = trainingTypes.filter((i) => i.IsFarrier == true);\r\n let date = new Date();\r\n let weeks = window.GlobalData.getItem(\r\n window.GlobalData.SETTINGS_FARRIER_WEEKS\r\n );\r\n if (weeks < 7) {\r\n date.setDate(\r\n date.getDate() + ((parseInt(weeks) + 1 + 7 - date.getDay()) % 7)\r\n );\r\n } else if (weeks > 7) {\r\n date = new Date().addDays(7 * (parseInt(weeks) - 4));\r\n }\r\n let currentTrainerId = horse.trainer;\r\n if (!currentTrainerId)\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == window.myid\r\n );\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == currentTrainerId\r\n );\r\n let options = {\r\n trainingType: farTraining[0].id,\r\n date: date,\r\n horseId: horse[0].id,\r\n trainerId: currentTrainer.Id,\r\n trainerName: currentTrainer.Name,\r\n };\r\n console.log(item);\r\n console.log(options);\r\n // let trainingPopup = new TrainingPopup();\r\n // trainingPopup.showPopup(options, null, () => {\r\n // window.HomePage.latestIconClick = \"homeIconFarrier\";\r\n // window.HomePage.prototype.onFarrierMenuClick();\r\n // });\r\n }\r\n }\r\n });\r\n };\r\n\r\n getDaysLeft = (dateStr) => {\r\n return parseInt((new Date(dateStr) - new Date()) / (1000 * 60 * 60 * 24));\r\n };\r\n\r\n getTasksNotDone(data) {\r\n let arr = data.filter((t) => t.Color != \"green\");\r\n let tasksNotDone = [];\r\n arr.forEach((item) => {\r\n if (!tasksNotDone.find((t) => t.HorseId == item.HorseId)) {\r\n tasksNotDone.push(item);\r\n }\r\n });\r\n return tasksNotDone;\r\n }\r\n\r\n getTasksDone(data, tasksNotDone) {\r\n let arr = data\r\n .filter((t) => t.Color == \"green\")\r\n .sort((t1, t2) => {\r\n if (t1.StartTime < t2.StartTime) return 1;\r\n if (t1.StartTime > t2.StartTime) return -1;\r\n return 0;\r\n });\r\n let tasksDone = [];\r\n arr.forEach((item) => {\r\n if (\r\n !tasksDone.find((t) => t.HorseId == item.HorseId) &&\r\n !tasksNotDone.find((t) => t.HorseId == item.HorseId)\r\n ) {\r\n tasksDone.push(item);\r\n }\r\n });\r\n tasksDone = tasksDone.sort((t1, t2) => {\r\n if (t1.StartTime > t2.StartTime) return 1;\r\n if (t1.StartTime < t2.StartTime) return -1;\r\n return 0;\r\n });\r\n return tasksDone;\r\n }\r\n\r\n renderTable = (data, isDone) => {\r\n return (\r\n <>\r\n \r\n {window.lang.trained}\r\n {isDone ? window.lang.shoeDate : window.lang.planedFarrier}\r\n {window.lang.horse}\r\n Type\r\n Reg. nr\r\n Chipid\r\n {window.lang.shoeDaysSinceLast}\r\n {window.lang.shoeType}\r\n Notification\r\n {window.lang.remark}\r\n \r\n {isDone ? : <>}\r\n \r\n {data.map((item) => (\r\n \r\n \r\n this.onDoneToggle(item)}\r\n />\r\n \r\n {item.StartTime}\r\n {item.HorseName}\r\n {item.HorseType ? item.HorseType : \"None\"}\r\n {item.RFBid}\r\n {item.Chipid}\r\n {isDone ? -1 * this.getDaysLeft(item.StartTime) : \"\"}\r\n {item.FarrierTypeName}\r\n {this.reminderNames[item.ReminderType]}\r\n {item.Remark}\r\n \r\n this.onEditClick(item)}\r\n />\r\n this.onDeleteClick(item)}\r\n />\r\n \r\n {isDone ? (\r\n \r\n this.onAddForHorseClick(item.HorseId)}\r\n >\r\n {window.lang.planFarrier}\r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n ))}\r\n \r\n );\r\n };\r\n\r\n renderRemainingHorsesTable = (data) => {\r\n let horses = window.DataStorage.getAllHorses();\r\n let horsesArr = horses.filter(\r\n (e) => data.findIndex((i) => e.id == i.HorseId) === -1\r\n );\r\n horsesArr = horsesArr.sort((t1, t2) => {\r\n if (t1.name > t2.name) return 1;\r\n if (t1.name < t2.name) return -1;\r\n return 0;\r\n });\r\n return (\r\n <>\r\n \r\n {window.lang.horse}\r\n \r\n \r\n {horsesArr.length ? (\r\n horsesArr.map((i) => (\r\n \r\n {i.name}\r\n \r\n this.onAddForHorseClick(i.id)}\r\n >\r\n {window.lang.planFarrier}\r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n );\r\n };\r\n\r\n onMakePdfClick = () => {\r\n window.Spinner.show();\r\n let reportDataArr = [];\r\n let tasksNotDoneReportArr = [];\r\n tasksNotDoneReportArr.push([\r\n window.lang.shoeDate,\r\n window.lang.horse,\r\n \"Type\",\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.shoeDaysSinceLast,\r\n window.lang.shoeType,\r\n \"Notification\",\r\n window.lang.remark,\r\n ]);\r\n let tasksNotDone = this.getTasksNotDone(this.filterData());\r\n tasksNotDone.map((item) =>\r\n tasksNotDoneReportArr.push([\r\n item.StartTime,\r\n item.HorseName,\r\n item.HorseType ? item.HorseType : \"None\",\r\n item.RFBid,\r\n item.Chipid,\r\n \"\",\r\n item.FarrierTypeName,\r\n this.reminderNames[item.ReminderType],\r\n item.Remark,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"Tasks not done\",\r\n data: tasksNotDoneReportArr,\r\n });\r\n\r\n let tasksDoneReportArr = [];\r\n tasksDoneReportArr.push([\r\n window.lang.shoeDate,\r\n window.lang.horse,\r\n \"Type\",\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.shoeDaysSinceLast,\r\n window.lang.shoeType,\r\n \"Notification\",\r\n window.lang.remark,\r\n ]);\r\n let tasksDone = this.getTasksDone(this.filterData(), tasksNotDone);\r\n tasksDone.map((item) =>\r\n tasksDoneReportArr.push([\r\n item.StartTime,\r\n item.HorseName,\r\n item.HorseType ? item.HorseType : \"None\",\r\n item.RFBid,\r\n item.Chipid,\r\n -1 * this.getDaysLeft(item.StartTime),\r\n item.FarrierTypeName,\r\n this.reminderNames[item.ReminderType],\r\n item.Remark,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"Tasks done\",\r\n data: tasksDoneReportArr,\r\n });\r\n\r\n window.DataGate.makePdf(\r\n reportDataArr,\r\n \"Farrier report\",\r\n function (data, url) {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = url;\r\n a.target = \"_blank\";\r\n a.download = \"Report.pdf\";\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n onMakeXlsxClick = () => {\r\n window.Spinner.show();\r\n let reportDataArr = [];\r\n let tasksNotDoneReportArr = [];\r\n tasksNotDoneReportArr.push([\r\n window.lang.shoeDate,\r\n window.lang.horse,\r\n \"Type\",\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.shoeDaysSinceLast,\r\n window.lang.shoeType,\r\n \"Notification\",\r\n window.lang.remark,\r\n ]);\r\n let tasksNotDone = this.getTasksNotDone(this.filterData());\r\n tasksNotDone.map((item) =>\r\n tasksNotDoneReportArr.push([\r\n item.StartTime,\r\n item.HorseName,\r\n item.HorseType ? item.HorseType : \"None\",\r\n item.RFBid,\r\n item.Chipid,\r\n \"\",\r\n item.FarrierTypeName,\r\n this.reminderNames[item.ReminderType],\r\n item.Remark,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"Tasks not done\",\r\n data: tasksNotDoneReportArr,\r\n });\r\n\r\n let tasksDoneReportArr = [];\r\n tasksDoneReportArr.push([\r\n window.lang.shoeDate,\r\n window.lang.horse,\r\n \"Type\",\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.shoeDaysSinceLast,\r\n window.lang.shoeType,\r\n \"Notification\",\r\n window.lang.remark,\r\n ]);\r\n let tasksDone = this.getTasksDone(this.filterData(), tasksNotDone);\r\n tasksDone.map((item) =>\r\n tasksDoneReportArr.push([\r\n item.StartTime,\r\n item.HorseName,\r\n item.HorseType ? item.HorseType : \"None\",\r\n item.RFBid,\r\n item.Chipid,\r\n -1 * this.getDaysLeft(item.StartTime),\r\n item.FarrierTypeName,\r\n this.reminderNames[item.ReminderType],\r\n item.Remark,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"Tasks done\",\r\n data: tasksDoneReportArr,\r\n });\r\n window.DataGate.makeXlsx(\r\n reportDataArr,\r\n \"Farrier report\",\r\n function (data, url) {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = url;\r\n a.download = \"Report.xlsx\";\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n render() {\r\n const data = this.filterData();\r\n const tasksNotDone = this.getTasksNotDone(data);\r\n const tasksDone = this.getTasksDone(data, tasksNotDone);\r\n //console.log(data);\r\n\r\n return (\r\n
\r\n
\r\n this.onAddClick(true)}\r\n >\r\n {window.lang.shoeNewFarrier}\r\n \r\n this.onAddClick(false)}\r\n >\r\n {window.lang.planFarrier}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {this.renderTable(tasksNotDone, false)}\r\n {this.renderTable(tasksDone, true)}\r\n \r\n
\r\n

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

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

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

\r\n \r\n \r\n \r\n {window.lang.horse}\r\n \r\n \r\n {remainingHorses.length ? (\r\n remainingHorses.map((i) => (\r\n \r\n {i.name}\r\n \r\n \r\n this.onNewVaccinationForHorseButtonClick(i.id)\r\n }\r\n >\r\n {window.lang.newVaccination}\r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default VaccinationView;\r\n","import React, { Component } from \"react\";\r\nimport './TeethView.css';\r\n\r\nexport default class TeethView extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n teethData: []\r\n }\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n if (this.props != prevProps) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n window.Spinner.show();\r\n window.db.getTeethDataForUser(window.myid, (data) => {\r\n let teethData = [];\r\n if (data.length) {\r\n let teeth = [];\r\n data.filter(item => {\r\n let curr = teeth.find(i => item.horseid == i.horseid);\r\n if (!curr) {\r\n teeth.push(item);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n\r\n for (let i = 0; i < teeth.length; i++) {\r\n teethData.push({\r\n id: teeth[i].Id, horseId: teeth[i].horseid, horse: teeth[i].Name, RFBid: teeth[i].RFBid, bornIn: teeth[i].BirthYear,\r\n remarks: teeth[i].Remark, starttime: teeth[i].starttime\r\n });\r\n }\r\n\r\n teethData = teethData.sort(function (h1, h2) {\r\n return (h1.horse.toLowerCase() > h2.horse.toLowerCase()) ? 1 : -1;\r\n });\r\n\r\n this.setState({\r\n teethData: teethData\r\n }, window.Spinner.hide());\r\n }\r\n else\r\n window.Spinner.hide();\r\n });\r\n }\r\n\r\n render() {\r\n const { teethData } = this.state;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {teethData.length ?\r\n teethData.map(i =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : <>\r\n }\r\n \r\n
\r\n {window.lang.horse}\r\n \r\n Reg. nr\r\n \r\n {window.lang.bornIn}\r\n \r\n {window.lang.date}\r\n \r\n {window.lang.remark}\r\n
{i.horse}{i.RFBid}{i.bornIn}{i.starttime}{i.remarks}
\r\n
\r\n )\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport JSZipUtils from \"jszip-utils\";\r\nimport JSZip from \"jszip\";\r\nimport { Document, Page, pdfjs } from \"react-pdf\";\r\nimport SpinnerView from \"../Controls/Spinner/SpinnerView\";\r\nimport \"./ZipViewer.css\";\r\n\r\nclass ZipViewer extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n loading: false,\r\n isError: false,\r\n fileList: [],\r\n fullscreenImage: null,\r\n fullscreenVideo: null,\r\n pdfDocument: null,\r\n currentPdfPage: 1,\r\n pdfNumberOfPages: 1,\r\n };\r\n\r\n pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n this.pdfPageWidth = window.isMobileDevice()\r\n ? window.innerWidth - 40\r\n : Math.min(window.innerWidth - 40, 800);\r\n }\r\n\r\n componentDidMount() {\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n JSZipUtils.getBinaryContent(this.props.fileUrl, (err, data) => {\r\n if (err) {\r\n this.setState({ isError: true });\r\n return;\r\n }\r\n\r\n JSZip.loadAsync(data).then((zip) => {\r\n this.zip = zip;\r\n let fileList = [];\r\n zip.forEach(function (relativePath, file) {\r\n fileList.push(file);\r\n });\r\n this.setState({\r\n loading: false,\r\n fileList: fileList,\r\n });\r\n });\r\n });\r\n };\r\n\r\n onFileSelect = (file) => {\r\n this.zip\r\n .file(file.name)\r\n .async(\"blob\")\r\n .then((res) => {\r\n let url = URL.createObjectURL(res);\r\n let ext = file.name.split(\".\").pop().toLowerCase();\r\n if (\r\n ext == \"png\" ||\r\n ext == \"jpeg\" ||\r\n ext == \"jpg\" ||\r\n ext == \"gif\" ||\r\n ext == \"bmp\"\r\n ) {\r\n this.setState({\r\n fullscreenImage: url,\r\n });\r\n } else if (\r\n ext == \"mp4\" ||\r\n ext == \"mov\" ||\r\n ext == \"wmv\" ||\r\n ext == \"avi\"\r\n ) {\r\n this.setState({\r\n fullscreenVideo: url,\r\n });\r\n } else if (ext == \"pdf\") {\r\n this.setState({\r\n pdfDocument: url,\r\n });\r\n }\r\n });\r\n };\r\n\r\n hideFullscreen = () => {\r\n this.setState({\r\n fullscreenImage: null,\r\n fullscreenVideo: null,\r\n pdfDocument: null,\r\n });\r\n };\r\n\r\n onPdfDocumentLoadSuccess = (args) => {\r\n this.setState({\r\n pdfNumberOfPages: args.numPages,\r\n });\r\n };\r\n\r\n onCurrentPdfPageChange = (offset) => {\r\n const currentPdfPage = this.state.currentPdfPage + offset;\r\n if (currentPdfPage <= 0 || currentPdfPage > this.state.pdfNumberOfPages)\r\n return;\r\n\r\n this.setState({\r\n currentPdfPage: currentPdfPage,\r\n });\r\n };\r\n\r\n render() {\r\n const { fileList } = this.state;\r\n return (\r\n
\r\n {this.state.loading && (\r\n
\r\n \r\n
\r\n )}\r\n {this.state.isError && (\r\n
\r\n Error in loading data. Please try again.\r\n
\r\n )}\r\n {fileList.map((file, fIndex) => (\r\n this.onFileSelect(file)}\r\n >\r\n {file.name}\r\n \r\n
\r\n ))}\r\n {this.state.fullscreenImage && (\r\n
\r\n \r\n ;\r\n \r\n
\r\n )}\r\n {this.state.fullscreenVideo && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n {this.state.pdfDocument && (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n this.onCurrentPdfPageChange(-1)}\r\n />\r\n
\r\n {this.state.currentPdfPage}/{this.state.pdfNumberOfPages}\r\n
\r\n this.onCurrentPdfPageChange(1)}\r\n />\r\n
\r\n \r\n
\r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ZipViewer;\r\n","import React, { Component } from \"react\";\r\nimport \"./XrayView.css\";\r\nimport MultimediaHelper from \"./../../Multimedia/MultimediaHelper\";\r\nimport { Document, Page, pdfjs } from \"react-pdf\";\r\nimport ZipViewer from \"../../ZipViewer/ZipViewer\";\r\n\r\nexport default class XrayView extends Component {\r\n static DropboxToken =\r\n \"HqmkA9nKm0wAAAAAAADLWpj-stRJN_4JyfLxtRoZD-Rzpjyz9nnuI_CMbkRkOoSk\";\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n multiSelectMode: false,\r\n xrayData: [],\r\n dbxFullScreenItem: null,\r\n showFullScreenView: false,\r\n showFullScreenItemIndex: 0,\r\n showFullScreenLoading: false,\r\n dataIndex: 0,\r\n plusFileIndex: 0,\r\n showPdfDocument: null,\r\n currentPdfPage: 1,\r\n pdfNumberOfPages: 1,\r\n showZipViewer: null,\r\n };\r\n this.dropbox = new window.Dropbox.Dropbox({\r\n accessToken: XrayView.DropboxToken,\r\n });\r\n this.helper = new MultimediaHelper();\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n if (this.props != prevProps) {\r\n this.loadData();\r\n }\r\n };\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.Spinner.show();\r\n window.db.getXrayDataForUser(window.myid, (data) => {\r\n if (data.length) {\r\n data = data.sort(function (h1, h2) {\r\n return h1.Name.toLowerCase() >= h2.Name.toLowerCase() ? 1 : -1;\r\n });\r\n this.setState(\r\n {\r\n xrayData: data,\r\n },\r\n window.Spinner.hide()\r\n );\r\n for (let i = 0; i < data.length; i++) {\r\n if (data[i].Id != null) {\r\n this.path = `xray-${data[i].Id}`;\r\n // this.helper.handleCreateContainer(this.path).then(() => {\r\n this.helper.listBlobsWithProperties(this.path).then((response) => {\r\n if (response.length) {\r\n data[i].plusFiles = response.map((el) => {\r\n el.path_display = el.name;\r\n el.fullUrl = el.url;\r\n el.thumbUrl = el.url;\r\n el.imageUrl = el.url;\r\n el.type = MultimediaHelper.getTypeItem(el);\r\n return el;\r\n });\r\n console.log(data[i]);\r\n }\r\n this.setState({\r\n xrayData: data,\r\n });\r\n });\r\n }\r\n }\r\n } else window.Spinner.hide();\r\n });\r\n };\r\n\r\n toggleExtraButtons = () => {\r\n this.setState({\r\n multiSelectMode: !this.state.multiSelectMode,\r\n });\r\n };\r\n\r\n selectFile = (index, itemIndex) => {\r\n let xrayData = this.state.xrayData;\r\n xrayData[index].plusFiles[itemIndex].isSelected =\r\n !xrayData[index].plusFiles[itemIndex].isSelected;\r\n this.setState({\r\n xrayData: xrayData,\r\n });\r\n };\r\n\r\n onDownloadClick = () => {\r\n let plusFilesItems = JSON.parse(\r\n JSON.stringify(this.state.xrayData.filter((i) => i.plusFiles))\r\n );\r\n let selectedPlusFilesItems = plusFilesItems\r\n .map((j) => j.plusFiles)\r\n .flat()\r\n .filter((i) => i.isSelected);\r\n this.setState({\r\n multiSelectMode: false,\r\n });\r\n\r\n for (let i in selectedPlusFilesItems) {\r\n this.dropbox\r\n .filesDownload({ path: selectedPlusFilesItems[i].path_display })\r\n .then((response) => {\r\n const url = window.URL.createObjectURL(response.fileBlob);\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n link.setAttribute(\r\n \"download\",\r\n decodeURI(selectedPlusFilesItems[i].name)\r\n );\r\n document.body.appendChild(link);\r\n link.click();\r\n });\r\n }\r\n };\r\n\r\n showFullscreen = (index, itemIndex) => {\r\n let xrayData = this.state.xrayData;\r\n var item = xrayData[index].plusFiles[itemIndex];\r\n let response = item;\r\n try {\r\n let currentItem = response;\r\n let ext = currentItem.name.split(\".\").pop().toLowerCase();\r\n console.log(ext);\r\n if (\r\n ext == \"png\" ||\r\n ext == \"jpeg\" ||\r\n ext == \"jpg\" ||\r\n ext == \"gif\" ||\r\n ext == \"bmp\"\r\n ) {\r\n console.log(\"DA\");\r\n item.type = 1;\r\n item.fullUrl = response.url;\r\n\r\n this.setState({\r\n showFullScreenView: true,\r\n showFullScreenLoading: false,\r\n vetDataItemIndex: index,\r\n showFullScreenItemIndex: itemIndex,\r\n dbxFullScreenItem: item,\r\n });\r\n } else if (ext == \"mp4\" || ext == \"mov\" || ext == \"wmv\" || ext == \"avi\") {\r\n item.type = 2;\r\n item.fullUrl = response.url;\r\n this.setState({\r\n showFullScreenView: true,\r\n showFullScreenLoading: false,\r\n vetDataItemIndex: index,\r\n showFullScreenItemIndex: itemIndex,\r\n dbxFullScreenItem: item,\r\n });\r\n } else if (ext == \"pdf\") {\r\n this.setState({\r\n showPdfDocument: response.url,\r\n currentPdfPage: 1,\r\n pdfNumberOfPages: 1,\r\n dbxFullScreenItem: item,\r\n });\r\n } else if (ext == \"zip\") {\r\n this.setState({\r\n showZipViewer: response.url,\r\n });\r\n } else {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = response.url;\r\n a.target = \"_blank\";\r\n //a.download = 'Report.pdf';\r\n document.body.appendChild(a);\r\n a.click();\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n onPdfDocumentLoadSuccess = (args) => {\r\n this.setState({\r\n pdfNumberOfPages: args.numPages,\r\n });\r\n };\r\n\r\n onCurrentPdfPageChange = (offset) => {\r\n const currentPdfPage = this.state.currentPdfPage + offset;\r\n if (currentPdfPage <= 0 || currentPdfPage > this.state.pdfNumberOfPages)\r\n return;\r\n\r\n this.setState({\r\n currentPdfPage: currentPdfPage,\r\n });\r\n };\r\n\r\n hidePdfDocument = () => {\r\n this.setState({\r\n showPdfDocument: null,\r\n });\r\n };\r\n\r\n hideZipViewer = () => {\r\n this.setState({\r\n showZipViewer: null,\r\n });\r\n };\r\n\r\n renderFullscreenItem = () => {\r\n const item = this.state.dbxFullScreenItem;\r\n switch (item.type) {\r\n case 1:\r\n return (\r\n \r\n );\r\n case 2:\r\n return (\r\n \r\n );\r\n }\r\n return
;\r\n };\r\n\r\n hideFullscreen = () => {\r\n this.setState({\r\n showFullScreenView: false,\r\n });\r\n };\r\n\r\n render() {\r\n const { xrayData } = this.state;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!this.state.multiSelectMode ? (\r\n \r\n {window.lang.select}\r\n \r\n ) : (\r\n
\r\n \r\n \r\n {window.lang.cancel2}\r\n
\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {xrayData.length ? (\r\n xrayData.map((i, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
{window.lang.horse}Reg. nr{window.lang.bornIn}{window.lang.date}{window.lang.remark}X-ray
{i.Name}{i.RFBid}{i.BirthYear}{i.starttime}{i.Remark}\r\n
\r\n {i.plusFiles && (\r\n \r\n \r\n {i.plusFiles.map((file, fileIndex) => (\r\n \r\n \r\n \r\n {decodeURI(file.name)}\r\n \r\n this.showFullscreen(index, fileIndex)\r\n }\r\n />\r\n \r\n \r\n ))}\r\n \r\n
\r\n {this.state.multiSelectMode && (\r\n \r\n this.selectFile(index, fileIndex)\r\n }\r\n />\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n {this.state.showFullScreenView && (\r\n
\r\n {!this.state.showFullScreenLoading && this.renderFullscreenItem()}\r\n {window.multimediaMobileHelper.isActive && (\r\n \r\n )}\r\n \r\n
\r\n )}\r\n {this.state.showPdfDocument && (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n this.onCurrentPdfPageChange(-1)}\r\n />\r\n
\r\n {this.state.currentPdfPage}/{this.state.pdfNumberOfPages}\r\n
\r\n this.onCurrentPdfPageChange(1)}\r\n />\r\n
\r\n {window.multimediaMobileHelper.isActive && (\r\n \r\n )}\r\n \r\n
\r\n )}\r\n {this.state.showZipViewer && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport './DewormingView.css';\r\n\r\nexport default class DewormingView extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n dewormingData: []\r\n }\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n if (this.props != prevProps) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n window.Spinner.show();\r\n window.db.getDewormingDataForUser(window.myid, (data) => {\r\n let dewormingData = [];\r\n let dewormingDataWithNullNextDeworming = [];\r\n if (data.length) {\r\n let deworming = [];\r\n data.filter(item => {\r\n let curr = deworming.find(i => item.horseid == i.horseid);\r\n if (!curr) {\r\n deworming.push(item);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n\r\n for (let i = 0; i < deworming.length; i++) {\r\n let nextDewormingDate = '';\r\n if (deworming[i].NextDewormingPeriod != null) {\r\n switch (deworming[i].NextDewormingPeriod) {\r\n case '0':\r\n var date = new Date(JSON.parse(JSON.stringify(deworming[i].starttime)));\n date = new Date(date.setMonth(date.getMonth() + 1))\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n case '1':\r\n var date = new Date(JSON.parse(JSON.stringify(deworming[i].starttime)));\n date = new Date(date.setMonth(date.getMonth() + 3))\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n case '2':\r\n var date = new Date(JSON.parse(JSON.stringify(deworming[i].starttime)));\n date = new Date(date.setMonth(date.getMonth() + 6))\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n case '3':\r\n var date = new Date(JSON.parse(JSON.stringify(deworming[i].starttime)));\n date = new Date(date.setMonth(date.getMonth() + 12))\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n }\r\n dewormingData.push({\r\n id: deworming[i].Id, horseId: deworming[i].horseid, horse: deworming[i].Name, RFBid: deworming[i].RFBid, bornIn: deworming[i].BirthYear,\r\n remarks: deworming[i].Remark, starttime: deworming[i].starttime, nextDewormingDate: nextDewormingDate, dewormingTypeName: deworming[i].DewormingTypeName\r\n });\r\n }\r\n else {\r\n dewormingDataWithNullNextDeworming.push({\r\n id: deworming[i].Id, horseId: deworming[i].horseid, horse: deworming[i].Name, RFBid: deworming[i].RFBid, bornIn: deworming[i].BirthYear,\r\n remarks: deworming[i].Remark, starttime: deworming[i].starttime, nextDewormingDate: nextDewormingDate, dewormingTypeName: deworming[i].DewormingTypeName\r\n });\r\n }\r\n \r\n }\r\n dewormingData = dewormingData.sort(function (h1, h2) {\r\n return (h1.nextDewormingDate < h2.nextDewormingDate) ? -1 : 1;\r\n });\r\n\r\n dewormingData.push(...dewormingDataWithNullNextDeworming);\r\n this.setState({\r\n dewormingData: dewormingData\r\n }, window.Spinner.hide());\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const { dewormingData } = this.state;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dewormingData.length ?\r\n dewormingData.map(i =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n : <>\r\n }\r\n \r\n
\r\n {window.lang.date}\r\n \r\n {window.lang.nextDeworming}\r\n \r\n {window.lang.horse}\r\n \r\n Reg. nr\r\n \r\n {window.lang.bornIn}\r\n \r\n Deworming type\r\n \r\n {window.lang.remark}\r\n
{i.starttime}{i.nextDewormingDate}{i.horse}{i.RFBid}{i.bornIn}{i.dewormingTypeName}{i.remarks}
\r\n
\r\n )\r\n }\r\n}","import React, { Component } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport DatePicker from \"react-datepicker\";\r\nimport './VaccinationPopup.css';\r\n\r\nclass HerpesVaccinationPopupWindow extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n horseArr: [],\r\n currentHorseId: '',\r\n vaccinationTypes: [],\r\n date: '',\r\n nextVaccinationDate: '',\r\n currentVaccinationType: '',\r\n currentVaccinationId: '',\r\n currentHorseUserid: '',\r\n showHorseList: ''\r\n }\r\n }\r\n\r\n componentDidUpdate = () => {\r\n this.scrollToSelectedItems();\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n let horseArr = window.DataStorage.getAllHorses();\r\n horseArr = horseArr.sort((h1, h2) => (h1.name.toLowerCase() > h2.name.toLowerCase()) ? 1 : -1);\r\n let vaccinationTypes = window.DataStorage.herpesVaccinationTypes;\r\n let currentHorseId = '';\r\n let currentVaccinationType = '';\r\n let currentVaccinationId = '';\r\n\r\n if (!this.props.options.horseId)\r\n currentHorseId = horseArr[0].id;\r\n else\r\n currentHorseId = this.props.options.horseId;\r\n\r\n window.db.getHorse(currentHorseId, (horse) => {\r\n if (this.props.item) {\r\n currentVaccinationType = this.props.item.vtype;\r\n currentVaccinationId = this.props.item.id;\r\n } else {\r\n currentVaccinationType = this.props.options.vtype;\r\n }\r\n\r\n let date = new Date(JSON.parse(JSON.stringify(this.props.options.date)));\r\n let nextVaccinationDate = this.props.options.date;\r\n nextVaccinationDate.setMonth(nextVaccinationDate.getMonth() + currentVaccinationType.MaxMonth);\r\n nextVaccinationDate = nextVaccinationDate.addDays(currentVaccinationType.MaxDay);\r\n let showHorseList = this.props.options.showHorseList;\r\n this.setState({\r\n horseArr: horseArr,\r\n currentHorseId: currentHorseId,\r\n vaccinationTypes: vaccinationTypes,\r\n date: date,\r\n currentVaccinationType: currentVaccinationType,\r\n nextVaccinationDate: nextVaccinationDate.formatDesh(),\r\n currentVaccinationId: currentVaccinationId,\r\n currentHorseUserid: horse.userid,\r\n showHorseList: showHorseList\r\n });\r\n });\r\n }\r\n\r\n scrollToSelectedItems = () => {\r\n let selectedCollection = document.getElementsByClassName(\"ui-btn selectedListItem\");\r\n let selectedArr = [].slice.call(selectedCollection);\r\n if (selectedArr.length)\r\n selectedArr.map(i => i.scrollIntoView());\r\n }\r\n\r\n hide = () => {\r\n ReactDOM.unmountComponentAtNode(document.getElementById('vaccinationPopupReact'));\r\n }\r\n\r\n onCancelClick = () => {\r\n this.hide();\r\n }\r\n\r\n onHorseClick = (e) => {\r\n if (e.currentTarget.dataset.idf) {\r\n var horseid = e.currentTarget.dataset.idf;\r\n window.db.getHerpesVaccinationLatest(horseid, (rows) => {\r\n let nextTypeIndex = 0;\r\n if (rows.length != 0) {\r\n let lastItem = rows.item(0);\r\n nextTypeIndex = window.DataStorage.herpesVaccinationTypes[lastItem[\"vtype\"] - 1].NextIndex;\r\n }\r\n this.setState({\r\n currentHorseId: horseid,\r\n currentVaccinationType: window.DataStorage.herpesVaccinationTypes[nextTypeIndex]\r\n });\r\n });\r\n }\r\n }\r\n\r\n handleChange = (date) => {\r\n let nextVaccinationDate = new Date(JSON.parse(JSON.stringify(date)));\r\n nextVaccinationDate.setMonth(nextVaccinationDate.getMonth() + this.state.currentVaccinationType.MaxMonth);\r\n nextVaccinationDate = nextVaccinationDate.addDays(this.state.currentVaccinationType.MaxDay);\r\n this.setState({\r\n date: date,\r\n nextVaccinationDate: nextVaccinationDate.formatDesh()\r\n });\r\n };\r\n\r\n onVaccinationTypeChange = (e) => {\r\n let nextVaccinationDate = new Date(JSON.parse(JSON.stringify(this.state.date)));\r\n nextVaccinationDate.setMonth(nextVaccinationDate.getMonth() + this.state.vaccinationTypes[e.currentTarget.value].MaxMonth);\r\n nextVaccinationDate = nextVaccinationDate.addDays(this.state.vaccinationTypes[e.currentTarget.value].MaxDay);\r\n this.setState({\r\n currentVaccinationType: this.state.vaccinationTypes[e.currentTarget.value],\r\n nextVaccinationDate: nextVaccinationDate.formatDesh()\r\n });\r\n }\r\n\r\n onOkClick = (e) => {\r\n var Id = this.state.currentVaccinationId ? this.state.currentVaccinationId : Math.uuid();\r\n var item = {\r\n Id: Id,\r\n HorseId: this.state.currentHorseId,\r\n VType: parseInt(window.$(\"#vacAddTypeReact :selected\").val()) + 1,\r\n VDate: this.state.date.formatDesh(),\r\n U: 'u',\r\n SyncTime: -1\r\n };\r\n window.Spinner.show();\r\n window.db.insertOrUpdateHerpesVaccination(item, () => {\r\n this.hide();\r\n window.Spinner.hide();\r\n if (this.props.callback)\r\n this.props.callback();\r\n });\r\n }\r\n\r\n render() {\r\n const { horseArr, currentHorseId, vaccinationTypes, date, currentVaccinationType, nextVaccinationDate, showHorseList } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {showHorseList ?\r\n \r\n \r\n \r\n : <>\r\n }\r\n \r\n {showHorseList ?\r\n \r\n : <>\r\n }\r\n \r\n \r\n \r\n
{window.lang.horse}
\r\n
\r\n \r\n
\r\n
\r\n {vaccinationTypes.length ?\r\n \r\n :\r\n <>\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n dateFormat=\"yyyy-MM-dd\"\r\n selected={date}\r\n onChange={this.handleChange}\r\n />\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst InputForDesktop = (props) => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default class HerpesVaccinationPopup {\r\n showVaccinationPopup(options, item, callback) {\r\n if (options == null) {\r\n options = {};\r\n }\r\n if (options.date == null) {\r\n options.date = new Date();\r\n }\r\n if (options.showHorseList == null) {\r\n options.showHorseList = true;\r\n }\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('vaccinationPopupReact')\r\n )\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport \"./VaccinationView.css\";\r\nimport HerpesVaccinationPopup from \"./HerpesVaccinationPopup\";\r\n\r\nclass HerpesVaccinationView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n vaccinationData: [],\r\n remainingHorses: [],\r\n };\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n if (this.props != prevProps) {\r\n this.loadData();\r\n }\r\n };\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.db.getHerpesVaccinationDataForUser(window.myid, (data) => {\r\n let vaccinationData = [];\r\n if (data.length) {\r\n let vaccination = [];\r\n data.filter((item) => {\r\n let curr = vaccination.find((i) => item.horseid == i.horseid);\r\n\r\n if (!curr) {\r\n vaccination.push(item);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n\r\n for (let i in vaccination) {\r\n let item = vaccination[i];\r\n let type =\r\n window.DataStorage.herpesVaccinationTypes[item[\"vtype\"] - 1];\r\n let nextType =\r\n window.DataStorage.herpesVaccinationTypes[type.NextIndex];\r\n let minMonths = nextType.MinMonth;\r\n let maxMonths = nextType.MaxMonth;\r\n let minDays = nextType.MinDay;\r\n let maxDays = nextType.MaxDay;\r\n let lastDate = Date.getNewDate(item[\"vdate\"]);\r\n let minDate = new Date(lastDate);\r\n let maxDate = new Date(lastDate);\r\n\r\n minDate.setMonth(minDate.getMonth() + minMonths);\r\n minDate = minDate.addDays(minDays);\r\n maxDate.setMonth(maxDate.getMonth() + maxMonths);\r\n maxDate = maxDate.addDays(maxDays);\r\n let daysLeft = Date.daysBetween(maxDate, new Date());\r\n vaccinationData.push({\r\n id: vaccination[i].id,\r\n lastVaccination: lastDate.formatDesh(),\r\n nextVaccination: maxDate.formatDesh(),\r\n horse: vaccination[i].HorseName,\r\n daysLeft: daysLeft,\r\n type: type.Name,\r\n remarks: \"\",\r\n horseid: vaccination[i].horseid,\r\n vtype: type,\r\n HorseType: vaccination[i].HorseType,\r\n RFBid: vaccination[i].RFBid,\r\n Chipid: vaccination[i].Chipid,\r\n stable: vaccination[i].StableName ? vaccination[i].StableName : \"\",\r\n });\r\n }\r\n }\r\n let horses = window.DataStorage.getAllHorses();\r\n let remainingHorses = horses.filter(\r\n (e) => vaccinationData.findIndex((i) => e.id == i.horseid) === -1\r\n );\r\n remainingHorses = remainingHorses.sort((t1, t2) => {\r\n if (t1.name.toLowerCase() > t2.name.toLowerCase()) return 1;\r\n if (t1.name.toLowerCase() < t2.name.toLowerCase()) return -1;\r\n return 0;\r\n });\r\n this.setState({\r\n vaccinationData: vaccinationData,\r\n remainingHorses: remainingHorses,\r\n });\r\n });\r\n };\r\n\r\n onNewVaccinationButtonClick = () => {\r\n let horseArr = window.DataStorage.getAllHorses();\r\n horseArr = horseArr.sort((h1, h2) => (h1.name > h2.name ? 1 : -1));\r\n window.db.getHerpesVaccinationLatest(horseArr[0].id, (rows) => {\r\n let vtype = null;\r\n if (rows.length != 0) {\r\n var lastItem = rows.item(0);\r\n var nextTypeIndex =\r\n window.DataStorage.herpesVaccinationTypes[lastItem[\"vtype\"] - 1]\r\n .NextIndex;\r\n vtype = window.DataStorage.herpesVaccinationTypes[nextTypeIndex];\r\n } else {\r\n vtype = window.DataStorage.herpesVaccinationTypes[0];\r\n }\r\n let options = {\r\n horseId: horseArr[0].id,\r\n date: new Date(),\r\n vtype: vtype,\r\n };\r\n let vaccinationPopup = new HerpesVaccinationPopup();\r\n vaccinationPopup.showVaccinationPopup(options, null, () => {\r\n this.loadData();\r\n });\r\n });\r\n };\r\n\r\n onEditVaccinationButtonClick = (item) => {\r\n let options = {\r\n horseId: item.horseid,\r\n date: new Date(item.lastVaccination),\r\n };\r\n let vaccinationPopup = new HerpesVaccinationPopup();\r\n vaccinationPopup.showVaccinationPopup(options, item, () => {\r\n this.loadData();\r\n });\r\n };\r\n\r\n onDeleteButtonClick = (item) => {\r\n window.db.setHerpesVaccinationUpdate(item.id, \"d\", () => {\r\n this.loadData();\r\n });\r\n };\r\n\r\n onNewVaccinationForHorseButtonClick = (horseid) => {\r\n window.db.getHerpesVaccinationLatest(horseid, (rows) => {\r\n let vtype = null;\r\n if (rows.length != 0) {\r\n var lastItem = rows.item(0);\r\n var nextTypeIndex =\r\n window.DataStorage.herpesVaccinationTypes[lastItem[\"vtype\"] - 1]\r\n .NextIndex;\r\n vtype = window.DataStorage.herpesVaccinationTypes[nextTypeIndex];\r\n } else {\r\n vtype = window.DataStorage.herpesVaccinationTypes[0];\r\n }\r\n let options = {\r\n horseId: horseid,\r\n date: new Date(),\r\n vtype: vtype,\r\n };\r\n let vaccinationPopup = new HerpesVaccinationPopup();\r\n vaccinationPopup.showVaccinationPopup(options, null, () => {\r\n this.loadData();\r\n });\r\n });\r\n };\r\n\r\n onMakePdfClick = () => {\r\n window.Spinner.show();\r\n let reportDataArr = [];\r\n let tasksReportArr = [];\r\n tasksReportArr.push([\r\n \"Last Vaccination Date\",\r\n \"Next Vaccination Date\",\r\n window.lang.horse,\r\n \"Type\",\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.daysLeft,\r\n window.lang.vaccinationType,\r\n window.lang.stable,\r\n ]);\r\n let vaccData = this.state.vaccinationData;\r\n vaccData.map((i) =>\r\n tasksReportArr.push([\r\n i.lastVaccination,\r\n i.nextVaccination,\r\n i.horse,\r\n i.HorseType ? i.HorseType : \"None\",\r\n i.RFBid,\r\n i.Chipid,\r\n i.daysLeft,\r\n i.type,\r\n i.stable,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"\",\r\n data: tasksReportArr,\r\n });\r\n let remainingHorsesReportData = [];\r\n let remainingHorsesArr = [];\r\n remainingHorsesArr.push([window.lang.horse]);\r\n this.state.remainingHorses.map((i) => remainingHorsesArr.push([i.name]));\r\n remainingHorsesReportData.push({\r\n header: \"\",\r\n data: remainingHorsesArr,\r\n });\r\n\r\n window.DataGate.makeVaccinationReportPdf(\r\n reportDataArr,\r\n remainingHorsesReportData,\r\n \"Herpes Vaccination report\",\r\n function (data, url) {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = url;\r\n a.target = \"_blank\";\r\n a.download = \"Report.pdf\";\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n onMakeXlsxClick = () => {\r\n window.Spinner.show();\r\n let reportDataArr = [];\r\n let tasksReportArr = [];\r\n tasksReportArr.push([\r\n \"Last Vaccination Date\",\r\n \"Next Vaccination Date\",\r\n window.lang.horse,\r\n \"Type\",\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.daysLeft,\r\n window.lang.vaccinationType,\r\n window.lang.stable,\r\n ]);\r\n let vaccData = this.state.vaccinationData;\r\n vaccData.map((i) =>\r\n tasksReportArr.push([\r\n i.lastVaccination,\r\n i.nextVaccination,\r\n i.horse,\r\n i.HorseType ? i.HorseType : \"None\",\r\n i.RFBid,\r\n i.Chipid,\r\n i.daysLeft,\r\n i.type,\r\n i.stable,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"\",\r\n data: tasksReportArr,\r\n });\r\n\r\n window.DataGate.makeXlsx(\r\n reportDataArr,\r\n \"Herpes Vaccination report\",\r\n function (data, url) {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = url;\r\n a.download = \"Report.xlsx\";\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n render() {\r\n const vaccinationData = this.state.vaccinationData.sort(\r\n (a, b) => a.daysLeft - b.daysLeft\r\n );\r\n const { remainingHorses } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.newVaccination}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {vaccinationData.length ? (\r\n vaccinationData.map((i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 ? { color: \"black\" } : { color: \"red\" }\r\n }\r\n >\r\n {i.daysLeft}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
Last Vaccination DateNext Vaccination Date{window.lang.horse}TypeReg. nrChipid{window.lang.daysLeft}{window.lang.vaccinationType}{window.lang.remark}
{i.lastVaccination}{i.nextVaccination}{i.horse}{i.HorseType ? i.HorseType : \"None\"}{i.RFBid}{i.Chipid}{i.type}{i.remarks}\r\n this.onEditVaccinationButtonClick(i)}\r\n />\r\n this.onDeleteButtonClick(i)}\r\n />\r\n \r\n \r\n this.onNewVaccinationForHorseButtonClick(i.horseid)\r\n }\r\n >\r\n {window.lang.newVaccination}\r\n \r\n
\r\n

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

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

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

{window.lang.permissionForHorses}

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

{window.lang.permissionForTasks}

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

Permission for Reports

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

{window.lang.permissionForView}

\r\n \r\n \r\n \r\n \r\n \r\n {window.lang.permissionDeleteDay}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {window.lang.permissionCopyAllHorses}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class PermissionsPage {\r\n showPermissions(roleId) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"permissionsContentReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./RiderRole.css\";\r\nimport PermissionsPage from \"../RiderRole/PermissionsPage\";\r\n\r\nclass RiderRolePage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n newRole: \"\",\r\n rolesArr: [],\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.db.getRiderRoles(window.myid, (data) => {\r\n data = data.sort(this.sortRolesArr);\r\n this.setState({\r\n rolesArr: data,\r\n });\r\n });\r\n };\r\n\r\n sortRolesArr = (a, b) => {\r\n if (a.OrderC < b.OrderC) return -1;\r\n if (a.OrderC > b.OrderC) return 1;\r\n return 0;\r\n };\r\n\r\n onExitClick = () => {\r\n window.showPage(\"#sharingPage\");\r\n window.managers.extention.showSharingPage();\r\n };\r\n\r\n onNewRoleInputChange = (e) => {\r\n this.setState({\r\n newRole: e.target.value,\r\n });\r\n };\r\n\r\n onAddNewRoleClick = () => {\r\n window.Spinner.show();\r\n window.DataGate.createRiderRole(\r\n Math.uuid(),\r\n window.myid,\r\n this.state.newRole,\r\n () => {\r\n window.Spinner.hide();\r\n this.setState(\r\n {\r\n newRole: \"\",\r\n },\r\n this.loadData()\r\n );\r\n }\r\n );\r\n };\r\n\r\n onDeleteRoleClick = (e) => {\r\n window.Spinner.show();\r\n window.DataGate.deleteRiderRole(e.currentTarget.dataset.id, () => {\r\n window.Spinner.hide();\r\n this.loadData();\r\n });\r\n };\r\n\r\n onEditClick = (e) => {\r\n window.showPage(\"#permissionsPageReact\");\r\n let permissionsPage = new PermissionsPage();\r\n permissionsPage.showPermissions(e.currentTarget.dataset.id);\r\n };\r\n\r\n onOrderDownClick = (item, itemIndex) => {\r\n if (itemIndex >= this.state.rolesArr.length - 1) return;\r\n\r\n window.DataGate.swipeRiderRoleOrder(\r\n this.state.rolesArr[itemIndex].Id,\r\n this.state.rolesArr[itemIndex + 1].Id,\r\n () => {\r\n this.loadData();\r\n }\r\n );\r\n };\r\n\r\n onOrderUpClick = (item, itemIndex) => {\r\n if (itemIndex <= 0) return;\r\n\r\n window.DataGate.swipeRiderRoleOrder(\r\n this.state.rolesArr[itemIndex].Id,\r\n this.state.rolesArr[itemIndex - 1].Id,\r\n () => {\r\n this.loadData();\r\n }\r\n );\r\n };\r\n\r\n render() {\r\n const { newRole, rolesArr } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {rolesArr.length ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {rolesArr.map((item, itemIndex) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
NameEditDeleteOrder
{item.Name}\r\n \r\n Edit\r\n \r\n \r\n \r\n Delete\r\n \r\n \r\n this.onOrderDownClick(item, itemIndex)}\r\n />\r\n \r\n this.onOrderUpClick(item, itemIndex)}\r\n />\r\n
\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Add Role\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class RiderRole {\r\n showRiderRolePage() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"riderRolePageReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport ToggleView from \"../Controls/ToggleView/ToggleView\";\r\nimport \"./SharePage.css\";\r\n\r\nclass Share extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n riderId: \"\",\r\n currentEmails: \"\",\r\n shareEmails: [],\r\n autoShare: \"\",\r\n myHorsesArr: [],\r\n role: \"\",\r\n originalHorseList: [],\r\n };\r\n this.sharedUsersData = [];\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props != prevProps) {\r\n console.log(\"DADASD\");\r\n this.loadData();\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.Spinner.show();\r\n window.db.getAllUsersExceptId(window.myid, (data) => {\r\n window.db.getLocalSettingsById(window.myid, (dataSettings) => {\r\n console.log(\"__________________________--\");\r\n console.log(dataSettings);\r\n this.sharedUsersData = data;\r\n\r\n let autoShare = 0;\r\n let shareEmails = [];\r\n let riderId = \"\";\r\n let currentRiderRole = \"\";\r\n let currentEmail = \"\";\r\n let myHorses = window.DataStorage.myHorseArray;\r\n let myHorsesArr = [];\r\n let sharedHorsesArr = [];\r\n\r\n for (var i = 0; i < myHorses.length; i++) {\r\n myHorsesArr.push({ shared: 0, horseData: myHorses[i] });\r\n }\r\n\r\n for (var i = 0; i < data.length; i++) {\r\n shareEmails.push(data[i].email);\r\n }\r\n if (this.props.riderId) {\r\n riderId = this.props.riderId;\r\n window.Managers.shareAllHorsesUserId = riderId;\r\n if (dataSettings.length != 0) {\r\n if (\r\n dataSettings[0][\"ShareAllUsersId\"] != null &&\r\n dataSettings[0][\"ShareAllUsersId\"] != \"\"\r\n ) {\r\n window.Managers.shareAllHorsesUsersId = JSON.parse(\r\n dataSettings[0][\"ShareAllUsersId\"]\r\n );\r\n if (\r\n window.Managers.shareAllHorsesUsersId.indexOf(\r\n window.Managers.shareAllHorsesUserId\r\n ) != -1\r\n ) {\r\n autoShare = 1;\r\n } else {\r\n autoShare = 0;\r\n }\r\n }\r\n }\r\n window.db.getMyAndSharedHorses(riderId, (myHorses, shareData) => {\r\n sharedHorsesArr = shareData.map((i) => i.id);\r\n sharedHorsesArr.filter((item) => {\r\n let curr = myHorsesArr.filter((i) => item == i.horseData.id);\r\n if (!curr) {\r\n return true;\r\n } else {\r\n if (curr[0]) curr[0].shared = 1;\r\n return false;\r\n }\r\n });\r\n\r\n this.setState({\r\n myHorsesArr: myHorsesArr,\r\n originalHorseList: myHorsesArr.map((x) => x.shared),\r\n });\r\n });\r\n } else if (this.props.horseId) {\r\n let horse = myHorsesArr.find(\r\n (h) => h.horseData.id == this.props.horseId\r\n );\r\n if (horse != null) {\r\n horse.shared = 1;\r\n }\r\n }\r\n if (this.props.email) currentEmail = this.props.email + \";\";\r\n if (this.props.role) currentRiderRole = this.props.role;\r\n\r\n this.setState(\r\n {\r\n riderId: riderId,\r\n currentEmails: currentEmail,\r\n role: currentRiderRole,\r\n shareEmails: shareEmails,\r\n autoShare: autoShare,\r\n myHorsesArr: myHorsesArr,\r\n originalHorseList: myHorsesArr.map((x) => x.shared),\r\n },\r\n window.Spinner.hide()\r\n );\r\n });\r\n });\r\n };\r\n\r\n onEmailChange = (e) => {\r\n this.setState({\r\n currentEmails: e.target.value,\r\n });\r\n };\r\n\r\n onEmailInputClick = () => {\r\n window.$(\".emailsList\").css(\"display\", \"contents\");\r\n };\r\n\r\n onEmailClick = (e) => {\r\n let oldEmails = this.state.currentEmails;\r\n let newEmails = oldEmails + e.currentTarget.dataset.email + \";\";\r\n this.setState({\r\n currentEmails: newEmails,\r\n });\r\n\r\n const user = this.sharedUsersData.find(\r\n (u) => u.email == e.currentTarget.dataset.email\r\n );\r\n if (user) {\r\n window.Managers.shareAllHorsesUserId = user.id;\r\n }\r\n };\r\n\r\n onShareOtherHorseClick = () => {\r\n if (window.$(\".collapsible-content\").css(\"display\") === \"block\")\r\n window.$(\".collapsible-content\").css(\"display\", \"none\");\r\n else window.$(\".collapsible-content\").css(\"display\", \"block\");\r\n };\r\n\r\n onAutomaticallyShareAllHorsesClick = () => {\r\n var set = this.state.autoShare;\r\n if (window.Managers.shareAllHorsesUserId != undefined) {\r\n window.db.getLocalSettingsById(window.myid, (dataSettings) => {\r\n if (dataSettings.length != 0) {\r\n if (\r\n dataSettings[0][\"ShareAllUsersId\"] != null &&\r\n dataSettings[0][\"ShareAllUsersId\"] != \"\"\r\n ) {\r\n window.Managers.shareAllHorsesUsersId = JSON.parse(\r\n dataSettings[0][\"ShareAllUsersId\"]\r\n );\r\n } else {\r\n window.Managers.shareAllHorsesUsersId = [];\r\n }\r\n } else {\r\n window.Managers.shareAllHorsesUsersId = [];\r\n }\r\n if (set == \"0\") {\r\n if (\r\n window.Managers.shareAllHorsesUsersId.indexOf(\r\n window.Managers.shareAllHorsesUserId\r\n ) == -1\r\n ) {\r\n window.Managers.shareAllHorsesUsersId.push(\r\n window.Managers.shareAllHorsesUserId\r\n );\r\n window.db.updateLocalSettingsShareAllHorses(\r\n JSON.stringify(window.Managers.shareAllHorsesUsersId)\r\n );\r\n }\r\n let myHorsesArr = this.state.myHorsesArr;\r\n for (var i in myHorsesArr) myHorsesArr[i].shared = 1;\r\n this.setState({\r\n autoShare: 1,\r\n myHorsesArr: myHorsesArr,\r\n });\r\n } else {\r\n window.Managers.shareAllHorsesUsersId.splice(\r\n window.Managers.shareAllHorsesUsersId.indexOf(\r\n window.Managers.shareAllHorsesUserId\r\n ),\r\n 1\r\n );\r\n window.db.updateLocalSettingsShareAllHorses(\r\n JSON.stringify(window.Managers.shareAllHorsesUsersId)\r\n );\r\n this.setState({\r\n autoShare: 0,\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n onSelectAllClick = () => {\r\n let myHorsesArr = this.state.myHorsesArr;\r\n for (var i in myHorsesArr) myHorsesArr[i].shared = 1;\r\n this.setState({\r\n myHorsesArr: myHorsesArr,\r\n });\r\n };\r\n\r\n onHorseClick = (horseId) => {\r\n let myHorsesArrAux = [...this.state.myHorsesArr];\r\n let currentIndex = myHorsesArrAux.findIndex(\r\n (i) => i.horseData.id == horseId\r\n );\r\n myHorsesArrAux[currentIndex].shared = !myHorsesArrAux[currentIndex].shared;\r\n this.setState(\r\n {\r\n myHorsesArr: myHorsesArrAux,\r\n },\r\n () => {}\r\n );\r\n };\r\n\r\n onCancelClick = () => {\r\n window.showPage(\"#sharingPage\");\r\n window.managers.extention.showSharingPage();\r\n };\r\n\r\n onOkClick = () => {\r\n window.Spinner.show();\r\n\r\n let selectedForShareHorsesArr = this.state.myHorsesArr.filter(\r\n (i, index) => i.shared == 1 && this.state.originalHorseList[index] == 0\r\n );\r\n let horseIds = \"\";\r\n let notSelectedForShareHorsesArr = this.state.myHorsesArr.filter(\r\n (i, index) => i.shared == 0 && this.state.originalHorseList[index] == 1\r\n );\r\n\r\n if (\r\n notSelectedForShareHorsesArr.length == 0 &&\r\n selectedForShareHorsesArr.length == 0\r\n ) {\r\n window.Spinner.hide();\r\n setTimeout(() => {\r\n window.showPage(\"#sharingPage\");\r\n window.managers.extention.showSharingPage();\r\n }, 500);\r\n return;\r\n }\r\n\r\n let notSelectesHorseIds = \"\";\r\n\r\n for (var i in selectedForShareHorsesArr) {\r\n horseIds += selectedForShareHorsesArr[i].horseData.id + \";\";\r\n }\r\n for (var i in notSelectedForShareHorsesArr) {\r\n notSelectesHorseIds += notSelectedForShareHorsesArr[i].horseData.id + \";\";\r\n }\r\n window.DataGate.shareHorse(\r\n window.myid,\r\n this.state.currentEmails,\r\n horseIds,\r\n notSelectesHorseIds,\r\n \"w\",\r\n this.state.role != \"None\" ? this.state.role : undefined,\r\n (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n var dataObj = JSON.parse(data);\r\n if (dataObj[\"NotValidEmails\"].length == 0) {\r\n window.Spinner.hide();\r\n //var text = window.lang.horseShared.replace('{0}', dataObj[\"ValidEmails\"].join(\",\"));\r\n //window.navigator.notification.alert(text, null, 'Equestrians App');\r\n setTimeout(() => {\r\n window.showPage(\"#sharingPage\");\r\n window.managers.extention.showSharingPage();\r\n }, 500);\r\n } else {\r\n window.Spinner.hide();\r\n var text = window.lang.horseNotShared.replace(\r\n \"{0}\",\r\n dataObj[\"NotValidEmails\"].join(\",\")\r\n );\r\n window.navigator.notification.alert(text, null, \"Equestrians App\");\r\n }\r\n } else {\r\n window.Spinner.hide();\r\n window.navigator.notification.alert(\r\n window.lang.horseNotShared,\r\n null,\r\n \"Equestrians App\"\r\n );\r\n }\r\n }\r\n );\r\n };\r\n\r\n render() {\r\n const { currentEmails, shareEmails, autoShare, myHorsesArr } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.share}\r\n \r\n
\r\n
\r\n
{window.lang.shareWith}
\r\n
\r\n \r\n
\r\n
\r\n \r\n {shareEmails.length ? (\r\n shareEmails.map((currentElement, index) =>\r\n index == 0 ? (\r\n \r\n \r\n {currentElement}\r\n \r\n \r\n ) : index == shareEmails.length - 1 ? (\r\n \r\n \r\n {currentElement}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement}\r\n \r\n \r\n )\r\n )\r\n ) : (\r\n <>\r\n )}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {window.lang.shareOtherHorses}\r\n \r\n
\r\n \r\n {window.lang.selectAll}\r\n \r\n {myHorsesArr.length ? (\r\n \r\n \r\n {myHorsesArr.map((i) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n {i.horseData.name}\r\n \r\n {\r\n // console.log(i);\r\n this.onHorseClick(i.horseData.id);\r\n }}\r\n />\r\n
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class SharePage {\r\n showSharePage = (riderId, email, role, horseId) => {\r\n window.showPage(\"#sharePage\");\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"shareReact\")\r\n );\r\n };\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./SharePage.css\";\r\nimport SharePage from \"./SharePage\";\r\n\r\nclass CreateRiderView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n email: \"\",\r\n password: \"\",\r\n confirmPassword: \"\",\r\n name: \"\",\r\n phone: \"\",\r\n image: null,\r\n };\r\n }\r\n\r\n onCancelClick = () => {\r\n window.showPage(\"#sharingPage\");\r\n window.managers.extention.showSharingPage();\r\n };\r\n\r\n onInputChange = (e, propName) => {\r\n this.setState({\r\n [propName]: e.target.value,\r\n });\r\n };\r\n\r\n onImageClick = () => {\r\n window.getPhoto((imageData) => {\r\n this.setState({\r\n image: imageData,\r\n });\r\n });\r\n };\r\n\r\n onOkClick = () => {\r\n const { email, password, confirmPassword, name, phone, image } = this.state;\r\n if (email == null || email == \"\" || password == null || password == \"\") {\r\n window.navigator.notification.alert(\"Email and password are required\");\r\n return;\r\n }\r\n\r\n if (password != confirmPassword) {\r\n window.navigator.notification.alert(\r\n \"Password and confirm password should be the same\"\r\n );\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n let pswd = window.hex_md5(password);\r\n window.DataGate.register(\r\n email,\r\n pswd,\r\n null,\r\n name,\r\n image,\r\n \"\",\r\n \"\",\r\n \"\",\r\n \"\",\r\n phone,\r\n window.lang.getLangName(),\r\n true,\r\n (code, data) => {\r\n console.log(\"register code: \" + code, data);\r\n if (code == window.DataGate.CODE_OK) {\r\n const realMyId = window.myid;\r\n window.myid = data.userId;\r\n\r\n let signUp = new window.SignUp();\r\n signUp.gtypeVal = 0;\r\n signUp.createDefaultTypes();\r\n signUp.createDefaultHorseTypes();\r\n signUp.fillInitialValues();\r\n window.Spinner.show();\r\n window.DefaultValue.CreateDefaultStables(() => {\r\n window.Spinner.show();\r\n setTimeout(() => {\r\n window.myid = realMyId;\r\n window.Spinner.hide();\r\n\r\n //share with email\r\n var sharePage = new SharePage();\r\n window.showPage(\"#sharePage\");\r\n sharePage.showSharePage(data.userId, email, null);\r\n }, 2000);\r\n });\r\n } else if (code == window.DataGate.CODE_EMAIL_EXISTS) {\r\n window.navigator.notification.alert(window.lang.alertLoginExistsNew);\r\n window.Spinner.hide();\r\n } else {\r\n window.navigator.notification.alert(window.lang.alertLoginNotValid);\r\n window.Spinner.hide();\r\n }\r\n }\r\n );\r\n };\r\n\r\n render() {\r\n const { email, password, confirmPassword, name, phone, image } = this.state;\r\n return (\r\n \r\n
\r\n \r\n {window.lang.createNewRider}\r\n \r\n
\r\n \r\n
Email
\r\n
\r\n this.onInputChange(e, \"email\")}\r\n />\r\n
\r\n
{window.lang.password}
\r\n
\r\n this.onInputChange(e, \"password\")}\r\n />\r\n
\r\n
{window.lang.confirmPassword}
\r\n
\r\n this.onInputChange(e, \"confirmPassword\")}\r\n />\r\n
\r\n
{window.lang.name}
\r\n
\r\n this.onInputChange(e, \"name\")}\r\n />\r\n
\r\n
{window.lang.phone}
\r\n
\r\n this.onInputChange(e, \"phone\")}\r\n />\r\n
\r\n {image ? (\r\n \r\n ) : (\r\n \r\n {window.lang.image}\r\n \r\n )}\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default class CreateRiderPage {\r\n showPage() {\r\n window.showPage(\"#createRiderPage\");\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"createRiderPageReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component, useEffect, useState } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport RiderRole from \"../RiderRole/RiderRole\";\r\nimport SharePage from \"./SharePage\";\r\nimport \"./SharePage.css\";\r\nimport CreateRiderPage from \"./CreateRiderPage\";\r\nimport ToggleView from \"../Controls/ToggleView/ToggleView\";\r\n\r\nfunction ShareColumn(props) {\r\n const { i, myStables } = props;\r\n const [selectedStables, setSelectedStables] = useState(i.stablesShared);\r\n const [nonSelectedStables, setNonSelectedStables] = useState([]);\r\n\r\n useEffect(() => {\r\n setNonSelectedStables(\r\n myStables.filter((x) => !selectedStables.find((y) => y == x.Id))\r\n );\r\n }, [myStables, selectedStables]);\r\n\r\n const selectStable = (id) => {\r\n if (id == 0) return;\r\n if (id == -1) {\r\n const newStables = nonSelectedStables.map((x) => x.Id);\r\n window.Spinner.show();\r\n window.DataGate.shareStable(i.id, newStables, (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n let aux = [...selectedStables];\r\n aux.push(...newStables);\r\n setSelectedStables(aux);\r\n window.Spinner.hide();\r\n }\r\n });\r\n return;\r\n }\r\n window.Spinner.show();\r\n window.DataGate.shareStable(i.id, [id], (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n let aux = [...selectedStables];\r\n aux.push(id);\r\n setSelectedStables(aux);\r\n window.Spinner.hide();\r\n }\r\n });\r\n };\r\n const getItemFromId = (id) => myStables.find((x) => x.Id == id);\r\n\r\n const deselectStable = (target) => {\r\n window.Spinner.show();\r\n window.DataGate.DeleteShareStable(i.id, [target], (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n setSelectedStables([...selectedStables].filter((x) => x != target));\r\n window.Spinner.hide();\r\n }\r\n });\r\n };\r\n return (\r\n
\r\n
\r\n {selectedStables.map((stableId) => (\r\n deselectStable(stableId)}\r\n className=\"badge\"\r\n >\r\n \r\n \r\n \r\n {getItemFromId(stableId).StableName}\r\n \r\n ))}\r\n
\r\n\r\n {selectedStables.length < myStables.length && (\r\n {\r\n e.preventDefault();\r\n selectStable(e.target.value);\r\n }}\r\n >\r\n \r\n \r\n {nonSelectedStables.map((stable) => (\r\n \r\n ))}\r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\nclass SharingPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n myStables: [],\r\n shareArr: [],\r\n riderRoles: [],\r\n changeLicenseItem: null,\r\n changeResetPasswordItem: null,\r\n resetPasswordInputValue: \"\",\r\n resetPasswordRetypeInputValue: \"\",\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props != prevProps) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.Spinner.show();\r\n window.db.getRiderRoles(window.myid, (roles) => {\r\n window.DataGate.getShareWithData(async (code, responseData) => {\r\n console.log(responseData);\r\n const data = responseData.Item1;\r\n const stablesData = responseData.Item2;\r\n\r\n if (code != 1) {\r\n return;\r\n }\r\n console.log(data);\r\n // return;\r\n var dataArr = [];\r\n data.forEach((itemD) => {\r\n let curr = dataArr.find((i) => i.id == itemD.ShareWith);\r\n if (!curr) {\r\n let item = data.find(\r\n (i) => i.ShareWith == itemD.ShareWith && i.RoleId != null\r\n );\r\n if (!item) item = itemD;\r\n //find all stables\r\n let stablesOfUser = [];\r\n for (let x of stablesData) {\r\n if (x.ShareWith == itemD.ShareWith)\r\n stablesOfUser.push(x.StableId);\r\n }\r\n\r\n dataArr.push({\r\n name: item.Name,\r\n email: item.Email,\r\n id: item.ShareWith,\r\n currentRole: item.RoleId ? item.RoleId : \"None\",\r\n sender_id: item.sender_id || false,\r\n notAccepted: item.NotAccepted,\r\n createLicenseTo: item.CreateLicenseTo\r\n ? new Date(\r\n parseInt(\r\n item.CreateLicenseTo.replace(\"/Date(\", \"\").replace(\r\n \")/\",\r\n \"\"\r\n )\r\n )\r\n )\r\n : null,\r\n licenseExpire: new Date(item.licenseExpire * 1000),\r\n stablesShared: stablesOfUser,\r\n });\r\n }\r\n });\r\n roles.push({ Id: \"None\", Name: \"None\" });\r\n\r\n let stables = await window.db.getAllStablesAsync(window.myid);\r\n console.log(dataArr);\r\n this.setState(\r\n {\r\n myStables: stables,\r\n shareArr: dataArr,\r\n riderRoles: roles,\r\n },\r\n window.Spinner.hide()\r\n );\r\n });\r\n });\r\n };\r\n\r\n onRoleChange = (e) => {\r\n window.Spinner.show();\r\n window.DataGate.setRiderRole(\r\n e.currentTarget.dataset.id,\r\n window.myid,\r\n e.target.value,\r\n e.currentTarget.dataset.notaccepted,\r\n () => {\r\n this.loadData();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n onShareRoleButtonClick = () => {\r\n var riderRole = new RiderRole();\r\n window.showPage(\"#riderRolePage\");\r\n riderRole.showRiderRolePage();\r\n };\r\n\r\n onOpenShareButtonClick = (e) => {\r\n var sharePage = new SharePage();\r\n window.showPage(\"#sharePage\");\r\n sharePage.showSharePage(\r\n e.currentTarget.dataset.id,\r\n e.currentTarget.dataset.email,\r\n e.currentTarget.dataset.role\r\n );\r\n };\r\n\r\n onCreateRiderClick = () => {\r\n var createRider = new CreateRiderPage();\r\n createRider.showPage();\r\n };\r\n\r\n onDeleteButtonClick = (e) => {\r\n let id = e.currentTarget.dataset.id;\r\n let notaccepted = e.currentTarget.dataset.notaccepted;\r\n window.$(\"#sharingPopupDialog\").popup(\"open\");\r\n window.$(\"#sharingPopupDialogTitle\").html(window.lang.alertDeleteShare);\r\n window.$(\"#sharingDelete\").unbind(\"click\");\r\n window.$(\"#sharingDelete\").click(() => {\r\n if (notaccepted == 0) {\r\n window.db.setShareWithUpdate(window.myid, id, \"horseId\", \"d\");\r\n // }\r\n setTimeout(() => {\r\n window.showPage(\"#sharingPage\");\r\n window.managers.extention.showSharingPage();\r\n }, 500);\r\n } else {\r\n window.db.deleteNotAcceptedHorseByNotAccepted(id);\r\n setTimeout(() => {\r\n window.showPage(\"#sharingPage\");\r\n window.managers.extention.showSharingPage();\r\n }, 500);\r\n }\r\n window.db.getLocalSettingsById(window.myid, (dataSettings) => {\r\n if (dataSettings.length != 0) {\r\n if (\r\n dataSettings[0][\"ShareAllUsersId\"] != null &&\r\n dataSettings[0][\"ShareAllUsersId\"] != \"\"\r\n ) {\r\n window.Managers.shareAllHorsesUsersId = JSON.parse(\r\n dataSettings[0][\"ShareAllUsersId\"]\r\n );\r\n for (\r\n var i = 0;\r\n i < window.Managers.shareAllHorsesUsersId.length;\r\n i++\r\n ) {\r\n if (window.Managers.shareAllHorsesUsersId[i] == id) {\r\n window.Managers.shareAllHorsesUsersId.splice(i, 1);\r\n window.db.updateLocalSettingsShareAllHorses(\r\n JSON.stringify(window.Managers.shareAllHorsesUsersId)\r\n );\r\n }\r\n }\r\n }\r\n }\r\n });\r\n });\r\n window.$(\"#sharingDeleteCancel\").unbind(\"click\");\r\n window.$(\"#sharingDeleteCancel\").click(() => {\r\n window.$(\"#sharingPopupDialog\").popup(\"close\");\r\n });\r\n };\r\n\r\n onShareHorsesWithNewRiderClick = () => {\r\n var sharePage = new SharePage();\r\n window.showPage(\"#sharePage\");\r\n sharePage.showSharePage();\r\n };\r\n\r\n onOkClick = () => {\r\n window.showPage(\"#settingsPage\");\r\n window.$(\"#settingsPage\").css(\"min-height\", \"95%\");\r\n };\r\n\r\n onChangeLicenseDate = (item) => {\r\n this.setState({\r\n changeLicenseItem: { ...item },\r\n });\r\n };\r\n\r\n handleChangeLicenseDate = (date) => {\r\n this.setState({\r\n changeLicenseItem: {\r\n ...this.state.changeLicenseItem,\r\n licenseExpire: date,\r\n },\r\n });\r\n };\r\n\r\n saveChangeLicenseDate = () => {\r\n let arr = this.state.shareArr;\r\n let shareItem = arr.find(\r\n (item) => item.id == this.state.changeLicenseItem.id\r\n );\r\n shareItem.licenseExpire = this.state.changeLicenseItem.licenseExpire;\r\n this.setState({\r\n shareArr: arr,\r\n });\r\n this.closeChangeLicensePopup();\r\n window.Spinner.show();\r\n window.DataGate.changeCreateHorseLicenseDate(\r\n window.myid,\r\n shareItem.id,\r\n shareItem.licenseExpire,\r\n () => {\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n handleResetPassword = (item) => {\r\n this.setState({\r\n changeResetPasswordItem: item,\r\n resetPasswordInputValue: \"\",\r\n resetPasswordRetypeInputValue: \"\",\r\n });\r\n };\r\n\r\n resetPassword = () => {\r\n if (\r\n this.state.resetPasswordInputValue == \"\" ||\r\n this.state.resetPasswordRetypeInputValue == \"\"\r\n ) {\r\n alert(\"Passwords cannot be empty\");\r\n return;\r\n }\r\n if (\r\n this.state.resetPasswordInputValue !=\r\n this.state.resetPasswordRetypeInputValue\r\n ) {\r\n alert(\"Passwords do not match\");\r\n return;\r\n }\r\n\r\n //reset password\r\n window.DataGate.changePasswordForSharedUser(\r\n window.myid,\r\n this.state.changeResetPasswordItem.id,\r\n this.state.resetPasswordInputValue,\r\n (err) => {\r\n if (err) {\r\n alert(\"Something went wrong\");\r\n return;\r\n }\r\n alert(\"Password updated\");\r\n this.setState({ changeResetPasswordItem: null });\r\n }\r\n );\r\n };\r\n\r\n toggleShareOtherTasks = (id) => {\r\n let arr = [...this.state.shareArr];\r\n\r\n let shareItem = arr.find((item) => item.id == id);\r\n if (!shareItem) return;\r\n console.log(shareItem);\r\n\r\n window.DataGate.changeCreateHorseShareOtherTasks(shareItem.id, (data) => {\r\n if (data?.Data == \"0\") {\r\n shareItem.sender_id = shareItem.id;\r\n } else {\r\n shareItem.sender_id = false;\r\n }\r\n this.setState({ shareArr: arr });\r\n });\r\n };\r\n\r\n closeChangeLicensePopup = () => {\r\n this.setState({ changeLicenseItem: null });\r\n };\r\n\r\n render() {\r\n const { shareArr, riderRoles, changeLicenseItem } = this.state;\r\n var inches =\r\n Math.sqrt(\r\n Math.pow(window.screen.width, 2) + Math.pow(window.screen.height, 2)\r\n ) *\r\n (1 / window.inch.offsetWidth);\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.share}\r\n \r\n
\r\n
\r\n {{ inches } < 9 ||\r\n /Android/.test(navigator.userAgent) ||\r\n /iPhone/.test(navigator.userAgent) ? (\r\n
\r\n {shareArr.length ? (\r\n
\r\n {shareArr.map((i) => (\r\n
\r\n
\r\n {i.name + \" (\" + i.email + \")\"} -{\" \"}\r\n \r\n {!i.notAccepted ? \"Accepted\" : \"Not Accepted\"}\r\n \r\n
\r\n
\r\n {riderRoles.length ? (\r\n \r\n {riderRoles.map((j) => (\r\n \r\n ))}\r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n \r\n {window.lang.sharedHorses}\r\n \r\n
\r\n {/* @todo */}\r\n
\r\n \r\n {window.lang.sharedHorses}\r\n \r\n
\r\n
\r\n \r\n {window.lang.deleteL}\r\n \r\n
\r\n {i.licenseExpire && (\r\n
\r\n \r\n License to: {i.licenseExpire.formatDesh()}\r\n \r\n this.onChangeLicenseDate(i)}\r\n >\r\n {window.lang.edit}\r\n \r\n
\r\n )}\r\n {!i.notAccepted && (\r\n
\r\n this.handleResetPassword(i)}\r\n >\r\n {\"Reset password\"}\r\n \r\n
\r\n )}\r\n\r\n
\r\n
\r\n ))}\r\n
\r\n \r\n {\" \"}\r\n {window.lang.shareHorsesWithNewRider}{\" \"}\r\n \r\n \r\n {\" \"}\r\n Rider roles\r\n \r\n \r\n {window.lang.createNewRider}\r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n {\" \"}\r\n {window.lang.shareHorsesWithNewRider}{\" \"}\r\n \r\n \r\n {\" \"}\r\n Rider roles\r\n \r\n \r\n {window.lang.createNewRider}\r\n \r\n
\r\n )}\r\n
\r\n ) : (\r\n
\r\n {shareArr.length ? (\r\n
\r\n \r\n \r\n \r\n \r\n Role \r\n \r\n {window.lang.sharedHorses}\r\n \r\n {window.lang.deleteL}\r\n {window.lang.accepted}\r\n Share other tasks\r\n License\r\n Password\r\n \r\n \r\n \r\n {shareArr.map((i) => (\r\n \r\n {i.name + \" (\" + i.email + \")\"}\r\n \r\n {riderRoles.length ? (\r\n \r\n {riderRoles.map((j) => (\r\n \r\n ))}\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n
\r\n \r\n {window.lang.sharedHorses}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {window.lang.deleteL}\r\n \r\n
\r\n \r\n \r\n {!i.notAccepted ? \"Accepted\" : \"Not Accepted\"}\r\n \r\n \r\n {\r\n this.toggleShareOtherTasks(i.id);\r\n }}\r\n />\r\n {/* TODO */}\r\n \r\n \r\n {i.licenseExpire && (\r\n <>\r\n
{i.licenseExpire.formatDesh()}
\r\n this.onChangeLicenseDate(i)}\r\n >\r\n {window.lang.edit}\r\n \r\n \r\n )}\r\n \r\n \r\n {!i.notAccepted && (\r\n
\r\n this.handleResetPassword(i)}\r\n >\r\n {\"Reset password\"}\r\n \r\n
\r\n )}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\" \"}\r\n {window.lang.shareHorsesWithNewRider}{\" \"}\r\n \r\n \r\n \r\n {\" \"}\r\n Rider roles\r\n \r\n \r\n \r\n {window.lang.createNewRider}\r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n {\" \"}\r\n {window.lang.shareHorsesWithNewRider}{\" \"}\r\n \r\n \r\n {\" \"}\r\n Rider roles\r\n \r\n \r\n {window.lang.createNewRider}\r\n \r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n {changeLicenseItem && (\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n OK\r\n \r\n
\r\n )}\r\n\r\n {this.state.changeResetPasswordItem && (\r\n
\r\n this.setState({ changeResetPasswordItem: null })}\r\n />\r\n \r\n New password\r\n
\r\n
\r\n \r\n this.setState({\r\n resetPasswordInputValue: e.currentTarget.value,\r\n })\r\n }\r\n />\r\n
\r\n
\r\n
\r\n
\r\n Retype new password\r\n
\r\n
\r\n \r\n this.setState({\r\n resetPasswordRetypeInputValue: e.currentTarget.value,\r\n })\r\n }\r\n />\r\n
\r\n
\r\n
\r\n \r\n OK\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default class Sharing {\r\n showSharingPage = () => {\r\n ReactDOM.render(, document.getElementById(\"sharingReact\"));\r\n };\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\n\r\nimport \"./AutoCreateTaskPage.css\";\r\n\r\nclass AutoCreateTaskCompoment extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n userTimeZone: 0,\r\n timeZoneArray: [],\r\n weekDays: [],\r\n horseTypes: [],\r\n riderArray: [],\r\n trainingTypes: [],\r\n addData: {\r\n CreateWeekDay: 1,\r\n CreateTime: \"09:00\",\r\n CreateToDay: 1,\r\n HorseTypes: \"\",\r\n Rider: \"\",\r\n TrainingTypes: \"\",\r\n },\r\n createTaskArray: [],\r\n };\r\n }\r\n\r\n onBackClick = () => {\r\n window.onBack();\r\n };\r\n\r\n componentDidMount() {\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n let weekDays = window.lang.daysNames.map((d, i) => ({\r\n value: i,\r\n label: d,\r\n }));\r\n let s = weekDays.shift();\r\n weekDays.push(s);\r\n\r\n let hoseTypes = [\r\n {\r\n ID: \"\",\r\n Name: window.lang.selectAll,\r\n OwnerC: window.myid,\r\n },\r\n ...window.DataStorage.horseTypes.filter((t) => t.OwnerC == window.myid),\r\n ];\r\n\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (t) => t.owner == window.myid\r\n );\r\n\r\n this.setState({\r\n weekDays: weekDays,\r\n horseTypes: hoseTypes,\r\n trainingTypes: trainingTypes,\r\n addData: {\r\n ...this.state.addData,\r\n TrainingTypes: trainingTypes[0].id,\r\n },\r\n });\r\n\r\n window.db.getAllUsersExceptId(window.myid, (dataU) => {\r\n const riders = [\r\n { value: \"\", label: \"Horse follows rider\" },\r\n { value: window.myid, label: window.lang.me },\r\n ...dataU.map((t) => ({ value: t.id, label: t.name })),\r\n ];\r\n\r\n this.setState({\r\n riderArray: riders,\r\n });\r\n });\r\n\r\n window.$.getJSON(\"js/timeZone.json\", (json) => {\r\n var timezone = -(new Date().getTimezoneOffset() / 60);\r\n if (timezone != null) {\r\n this.setState({\r\n userTimeZone: timezone,\r\n timeZoneArray: json,\r\n });\r\n }\r\n });\r\n\r\n this.loadTaskData();\r\n };\r\n\r\n loadTaskData = () => {\r\n window.Spinner.show();\r\n window.db.getAutoCreateJobs(window.myid, (data) => {\r\n window.Spinner.hide();\r\n this.setState({\r\n createTaskArray: data,\r\n });\r\n });\r\n };\r\n\r\n onTimeZoneChange = (e) => {\r\n this.setState({\r\n userTimeZone: e.target.value,\r\n });\r\n window.db.setUserTimeZone(e.target.value, () => {});\r\n };\r\n\r\n onAddDataChange = (name, value) => {\r\n this.setState({\r\n addData: {\r\n ...this.state.addData,\r\n [name]: value,\r\n },\r\n });\r\n };\r\n\r\n onAddClick = () => {\r\n let data = {\r\n ...this.state.addData,\r\n UserId: window.myid,\r\n };\r\n window.Spinner.show();\r\n window.db.insertAutoCreateJob(data, () => {\r\n window.Spinner.hide();\r\n this.loadTaskData();\r\n });\r\n };\r\n\r\n onItemDataChange = (name, value, itemIndex) => {\r\n let createTaskArray = [...this.state.createTaskArray];\r\n createTaskArray[itemIndex] = {\r\n ...createTaskArray[itemIndex],\r\n [name]: value,\r\n };\r\n this.setState({\r\n createTaskArray: createTaskArray,\r\n });\r\n window.db.updateAutoCreateJob(createTaskArray[itemIndex], () => {});\r\n };\r\n\r\n onDeleteClick = (itemIndex) => {\r\n window.db.deleteAutoCreateJob(\r\n this.state.createTaskArray[itemIndex].Id,\r\n () => {}\r\n );\r\n this.setState({\r\n createTaskArray: this.state.createTaskArray.filter(\r\n (o, i) => i != itemIndex\r\n ),\r\n });\r\n };\r\n\r\n render() {\r\n const {\r\n userTimeZone,\r\n timeZoneArray,\r\n weekDays,\r\n horseTypes,\r\n riderArray,\r\n trainingTypes,\r\n addData,\r\n createTaskArray,\r\n } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {createTaskArray.map((item, itemIndex) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Time to make jobsTime to insert jobsTime of dayHorse typesRidersTraining typesAdd/Delete
\r\n \r\n this.onItemDataChange(\r\n \"CreateWeekDay\",\r\n e.target.value,\r\n itemIndex\r\n )\r\n }\r\n >\r\n {weekDays.map((day) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onItemDataChange(\r\n \"CreateToDay\",\r\n e.target.value,\r\n itemIndex\r\n )\r\n }\r\n >\r\n {weekDays.map((day) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onItemDataChange(\r\n \"CreateTime\",\r\n e.target.value,\r\n itemIndex\r\n )\r\n }\r\n />\r\n \r\n \r\n this.onItemDataChange(\r\n \"HorseTypes\",\r\n e.target.value,\r\n itemIndex\r\n )\r\n }\r\n >\r\n {horseTypes.map((item) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onItemDataChange(\r\n \"Rider\",\r\n e.target.value,\r\n itemIndex\r\n )\r\n }\r\n >\r\n {riderArray.map((item) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onItemDataChange(\r\n \"TrainingTypes\",\r\n e.target.value,\r\n itemIndex\r\n )\r\n }\r\n >\r\n {trainingTypes.map((item) => (\r\n \r\n ))}\r\n \r\n \r\n this.onDeleteClick(itemIndex)}\r\n >\r\n {window.lang.deleteL}\r\n \r\n
\r\n \r\n this.onAddDataChange(\"CreateWeekDay\", e.target.value)\r\n }\r\n >\r\n {weekDays.map((day) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onAddDataChange(\"CreateToDay\", e.target.value)\r\n }\r\n >\r\n {weekDays.map((day) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onAddDataChange(\"CreateTime\", e.target.value)\r\n }\r\n />\r\n \r\n \r\n this.onAddDataChange(\"HorseTypes\", e.target.value)\r\n }\r\n >\r\n {horseTypes.map((item) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onAddDataChange(\"Rider\", e.target.value)\r\n }\r\n >\r\n {riderArray.map((item) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onAddDataChange(\"TrainingTypes\", e.target.value)\r\n }\r\n >\r\n {trainingTypes.map((item) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n {window.lang.add}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class AutoCreateTaskPage {\r\n show() {\r\n window.showPage(\"#autoCreateTaskPage\");\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"autoCreateTaskReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport PriceReport from \"./PriceReport\";\r\n\r\nclass LogPriceReportPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n logData: [],\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props != prevProps) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.db.getLogPriceReportByUser(window.myid, (data) => {\r\n if (data.length) {\r\n let logData = [];\r\n for (let i in data) {\r\n let d = new Date();\r\n d.setTime(Date.parse(data[i][\"DateTime\"]));\r\n logData.push({\r\n Date: d.toLocaleString(),\r\n Email: data[i][\"Email\"],\r\n LogData: data[i][\"LogData\"],\r\n });\r\n }\r\n this.setState({\r\n logData: logData,\r\n });\r\n }\r\n });\r\n };\r\n\r\n onOkClick = () => {\r\n window.showPage(\"#showPriceReportPage\");\r\n let logPrice = new PriceReport();\r\n logPrice.showPriceReport();\r\n };\r\n\r\n render() {\r\n const { logData } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n Logs\r\n \r\n
\r\n
\r\n {logData.length ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {logData.map((i) => (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
DateTimeUserAction
{i.Date}{i.Email}{i.LogData}
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class LogPriceReport {\r\n showLogPriceReport() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"logPriceReportPageReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport ToggleView from \"../../Controls/ToggleView/ToggleView\";\r\nimport LogPriceReport from \"./LogPriceReport\";\r\nimport \"./PriceReport.css\";\r\n\r\nclass PriceReportPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n horseTypes: [],\r\n horsePriceReportData: [],\r\n addData: {\r\n Id: \"\",\r\n UserId: window.myid,\r\n HorseTypeId: 1,\r\n Price: \"\",\r\n },\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n window.db.getHorseTypePricesData(window.myid, (data) => {\r\n window.db.getHorseTypes(window.myid, (types) => {\r\n let typesMap = types.map((t) => ({ value: t.ID, label: t.Name }));\r\n let hTypes = [];\r\n typesMap.filter((item) => {\r\n let curr = hTypes.find((i) => i.label === item.label);\r\n if (!curr) {\r\n hTypes.push(item);\r\n return true;\r\n } else {\r\n curr.value += \",\" + item.value;\r\n return false;\r\n }\r\n });\r\n let horseTypes = [\r\n { value: 1, label: window.lang.showAllHorseTypes },\r\n ...hTypes,\r\n ];\r\n\r\n this.setState({\r\n horseTypes: horseTypes,\r\n horsePriceReportData: data,\r\n });\r\n });\r\n });\r\n };\r\n\r\n onItemDataChange = (name, value, id, updateServer) => {\r\n let horsePriceReportData = this.state.horsePriceReportData;\r\n let item = horsePriceReportData.find((i) => i.Id == id);\r\n item[name] = value;\r\n item.updateRequired = true;\r\n if (updateServer) {\r\n window.DataGate.updateHorseTypePriceData(item, () => {\r\n this.setState({\r\n horsePriceReportData: horsePriceReportData,\r\n });\r\n });\r\n } else {\r\n this.setState({\r\n horsePriceReportData: horsePriceReportData,\r\n });\r\n }\r\n };\r\n\r\n updateItemOnServer = (id) => {\r\n const item = this.state.horsePriceReportData.find((i) => i.Id == id);\r\n if (item.updateRequired) {\r\n window.DataGate.updateHorseTypePriceData(item, () => {\r\n item.updateRequired = false;\r\n this.setState({\r\n horsePriceReportData: this.state.horsePriceReportData,\r\n });\r\n });\r\n }\r\n };\r\n\r\n onDeleteClick = (itemIndex) => {\r\n window.DataGate.deleteHorseTypePriceData(\r\n this.state.horsePriceReportData[itemIndex],\r\n () => {\r\n this.loadData();\r\n }\r\n );\r\n };\r\n\r\n onAddDataHorseTypeChange = (e) => {\r\n this.setState({\r\n addData: {\r\n ...this.state.addData,\r\n HorseTypeId: e.target.value,\r\n },\r\n });\r\n };\r\n\r\n onAddDataPriceChange = (e) => {\r\n this.setState({\r\n addData: {\r\n ...this.state.addData,\r\n Price: e.target.value,\r\n },\r\n });\r\n };\r\n\r\n onAddClick = () => {\r\n if (\r\n this.state.horsePriceReportData.some(\r\n (i) => i.HorseTypeId == this.state.addData.HorseTypeId\r\n )\r\n ) {\r\n window.$(\"#itemExist\").text(\"Selected Horse Type already exist\");\r\n } else {\r\n window.$(\"#itemExist\").text(\"\");\r\n window.Spinner.show();\r\n window.DataGate.insertHorseTypePriceData(this.state.addData, () => {\r\n window.Spinner.hide();\r\n this.loadData();\r\n this.setState({\r\n addData: {\r\n Id: \"\",\r\n UserId: window.myid,\r\n HorseTypeId: 1,\r\n Price: \"\",\r\n },\r\n });\r\n });\r\n }\r\n };\r\n\r\n onLogButtonClick = () => {\r\n window.showPage(\"#logPriceReportPage\");\r\n let logPriceReport = new LogPriceReport();\r\n logPriceReport.showLogPriceReport();\r\n };\r\n\r\n onBackClick = () => {\r\n window.showPage(\"#settingsPage\");\r\n window.$(\"#settingsPage\").css(\"min-height\", \"95%\");\r\n };\r\n\r\n render() {\r\n const { horsePriceReportData, horseTypes, addData } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n Price Report\r\n \r\n
\r\n
\r\n {/*\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Use price report\r\n \r\n { }} />\r\n
*/}\r\n \r\n {\" \"}\r\n Log\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {horsePriceReportData.length ? (\r\n horsePriceReportData.map((i, itemIndex) => (\r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Horse TypePrice each monthsAdd/Delete
\r\n {\r\n this.onItemDataChange(\r\n \"HorseTypeId\",\r\n e.target.value,\r\n i.Id,\r\n true\r\n );\r\n }}\r\n >\r\n {horseTypes.length ? (\r\n horseTypes.map((j) => (\r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n {\r\n this.onItemDataChange(\r\n \"Price\",\r\n e.target.value,\r\n i.Id,\r\n false\r\n );\r\n }}\r\n onBlur={() => {\r\n this.updateItemOnServer(i.Id);\r\n }}\r\n />\r\n \r\n this.onDeleteClick(itemIndex)}\r\n >\r\n {window.lang.deleteL}\r\n \r\n
\r\n \r\n
\r\n \r\n {horseTypes.length ? (\r\n horseTypes.map((j) => (\r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {window.lang.add}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class PriceReport {\r\n showPriceReport() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"showPriceReportReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./DewormingTypes.css\";\r\n\r\nclass DewormingTypesPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n dewormingTypes: [],\r\n newType: \"\",\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.db.getUserDewormingType(window.myid, (data) => {\r\n this.setState({\r\n dewormingTypes: data,\r\n });\r\n });\r\n };\r\n\r\n onBackClick = () => {\r\n window.showPage(\"#settingsPage\");\r\n window.$(\"#settingsPage\").css(\"min-height\", \"95%\");\r\n };\r\n\r\n deleteDewormingType = (id) => {\r\n window.Spinner.show();\r\n window.db.deleteUserDewormingType(id, () => {\r\n this.loadData();\r\n window.Spinner.hide();\r\n });\r\n };\r\n\r\n onNewTypeInputChange = (e) => {\r\n this.setState({\r\n newType: e.target.value,\r\n });\r\n };\r\n\r\n onAddNewTypeClick = () => {\r\n if (this.state.newType == \"\") {\r\n window\r\n .$(\"#emptyDewormingTypeName\")\r\n .text(\"Deworming type title is required\");\r\n } else {\r\n window.Spinner.show();\r\n window.db.createUserDewormingType(\r\n Math.uuid(),\r\n window.myid,\r\n this.state.newType,\r\n () => {\r\n this.state.newType = \"\";\r\n this.loadData();\r\n window.Spinner.hide();\r\n }\r\n );\r\n }\r\n };\r\n\r\n render() {\r\n const { dewormingTypes, newType } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n Deworming types\r\n \r\n
\r\n
\r\n {\r\n \r\n \r\n \r\n \r\n \r\n \r\n {dewormingTypes.map((item, itemIndex) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
NameDelete
{item.Name}\r\n {\r\n this.deleteDewormingType(item.Id);\r\n }}\r\n >\r\n Delete\r\n \r\n
\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Add Type\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class DewormingTypes {\r\n showDewormingTypes() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"showDewormingTypestReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport ToggleView from \"../Controls/ToggleView/ToggleView\";\r\n\r\nimport \"./Report.css\";\r\n\r\nclass ReportSettingsPage extends Component {\r\n static AllReportsArr = [\r\n { value: 1, label: window.lang.vetReport },\r\n { value: 2, label: window.lang.farReport },\r\n { value: 3, label: window.lang.allHorsesAndTasksToday },\r\n { value: 4, label: window.lang.horse45days },\r\n { value: 5, label: window.lang.taskHorsesWithRemarks },\r\n { value: 6, label: window.lang.allHorsesByType },\r\n { value: 7, label: window.lang.stabletime },\r\n { value: 8, label: window.lang.allHorsesWithPrice },\r\n { value: 9, label: window.lang.allHorsesTodayWithNotes },\r\n { value: 10, label: window.lang.horse45daysRemarks },\r\n { value: 11, label: window.lang.allHorses45days },\r\n { value: 12, label: \"Horses with id and notats\" },\r\n { value: 13, label: window.lang.allVacinations },\r\n { value: 14, label: \"Horses with sales info\" },\r\n { value: 15, label: window.lang.ownerHorseType },\r\n { value: 16, label: window.lang.ownerHorse },\r\n { value: 17, label: window.lang.horseFollowsRider },\r\n { value: 18, label: window.lang.horseAge },\r\n { value: 19, label: window.lang.salesNotesHorse },\r\n { value: 20, label: window.lang.salesNotesHorseType },\r\n { value: 21, label: window.lang.trainingHistory },\r\n { value: 22, label: window.lang.vaccinationHorse },\r\n { value: 23, label: window.lang.vaccinationHorseType },\r\n { value: 24, label: window.lang.farrierHorse },\r\n { value: 25, label: window.lang.farrierHorseType },\r\n { value: 26, label: window.lang.vetHorse },\r\n { value: 27, label: window.lang.vetHorseType },\r\n { value: 28, label: window.lang.priceReport },\r\n { value: 29, label: \"All horses all data\" },\r\n { value: 30, label: \"This horse with remarks and workouts\" },\r\n { value: 31, label: \"Stable History Report\" },\r\n ];\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const settingsReportStr = window.GlobalData.getItem(\r\n window.GlobalData.SETTINGS_REPPORT\r\n );\r\n let settingsReport = [];\r\n if (settingsReportStr) {\r\n settingsReport = JSON.parse(settingsReportStr);\r\n }\r\n\r\n let needToSave = false;\r\n for (let i = 0; i < ReportSettingsPage.AllReportsArr.length; i++) {\r\n const cr = ReportSettingsPage.AllReportsArr[i];\r\n if (!settingsReport.find((r) => r.value == cr.value)) {\r\n needToSave = true;\r\n let orderIndex =\r\n settingsReport.length > 0\r\n ? Math.max(...settingsReport.map((r) => r.orderIndex)) + 1\r\n : 1;\r\n settingsReport.push({ ...cr, isVisible: true, orderIndex: orderIndex });\r\n }\r\n }\r\n if (needToSave) {\r\n window.GlobalData.setItem(\r\n window.GlobalData.SETTINGS_REPPORT,\r\n JSON.stringify(settingsReport)\r\n );\r\n }\r\n\r\n settingsReport = settingsReport.sort((a, b) => a.orderIndex - b.orderIndex);\r\n\r\n this.state = {\r\n settingsReport: settingsReport,\r\n };\r\n }\r\n\r\n onIsVisibleChange = (rItemIndex) => {\r\n const settingsReport = [...this.state.settingsReport];\r\n settingsReport[rItemIndex] = {\r\n ...settingsReport[rItemIndex],\r\n isVisible: !settingsReport[rItemIndex].isVisible,\r\n };\r\n this.setState({ settingsReport });\r\n };\r\n\r\n swapOrder = (rItemIndex1, rItemIndex2) => {\r\n if (\r\n rItemIndex1 < 0 ||\r\n rItemIndex2 < 0 ||\r\n rItemIndex1 >= this.state.settingsReport.length ||\r\n rItemIndex2 >= this.state.settingsReport.length\r\n )\r\n return;\r\n\r\n let settingsReport = [...this.state.settingsReport];\r\n const orderIndex1 = settingsReport[rItemIndex1].orderIndex;\r\n const orderIndex2 = settingsReport[rItemIndex2].orderIndex;\r\n settingsReport[rItemIndex1] = {\r\n ...settingsReport[rItemIndex1],\r\n orderIndex: orderIndex2,\r\n };\r\n settingsReport[rItemIndex2] = {\r\n ...settingsReport[rItemIndex2],\r\n orderIndex: orderIndex1,\r\n };\r\n settingsReport = settingsReport.sort((a, b) => a.orderIndex - b.orderIndex);\r\n this.setState({ settingsReport });\r\n };\r\n\r\n onBackClick = () => {\r\n window.GlobalData.setItem(\r\n window.GlobalData.SETTINGS_REPPORT,\r\n JSON.stringify(this.state.settingsReport)\r\n );\r\n window.onBack();\r\n };\r\n\r\n render() {\r\n const { settingsReport } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n \r\n Shown reports\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {settingsReport.map((rItem, rItemIndex) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
{window.lang.name}VIS rapports\r\n {window.lang.order}\r\n
{rItem.label}\r\n this.onIsVisibleChange(rItemIndex)}\r\n />\r\n \r\n this.swapOrder(rItemIndex, rItemIndex - 1)}\r\n />\r\n \r\n this.swapOrder(rItemIndex, rItemIndex + 1)}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class ReportSettings {\r\n show() {\r\n window.showPage(\"#showRepportPage\");\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"showRepportPage\")\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport \"./BasicButton.css\";\r\nexport default function BasicButton({ onClick, text, svgIcon }) {\r\n console.log(svgIcon);\r\n return (\r\n \r\n {svgIcon}\r\n {text}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nexport default function PaperPlaneIcon() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./Modal.css\";\r\nexport default function Modal({\r\n title,\r\n body,\r\n button1_text,\r\n button2_text,\r\n button1_callback,\r\n button2_callback,\r\n}) {\r\n return (\r\n
\r\n
\r\n

{title}

\r\n

{body}

\r\n
\r\n \r\n {button1_text}\r\n \r\n \r\n {button2_text}\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./Notification.css\";\r\n\r\nexport default function Notification({ text }) {\r\n return ;\r\n}\r\n","import React, { Component, useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport \"./SendSalesData.css\";\r\nimport ReactDOM from \"react-dom\";\r\nimport BasicButton from \"../Controls/Button/BasicButton\";\r\nimport PaperPlaneIcon from \"../Icons/PaperPlane\";\r\nimport ToggleView from \"../Controls/ToggleView/ToggleView\";\r\nimport HorseGallery from \"../Multimedia/HorseGallery\";\r\nimport MultimediaHelper from \"../Multimedia/MultimediaHelper\";\r\nimport Modal from \"../Modal/Modal\";\r\nimport Notification from \"../Notification/Notification\";\r\nimport { Directory, Filesystem } from \"@capacitor/filesystem\";\r\nimport { Share } from \"@capacitor/share\";\r\nimport { Capacitor } from \"@capacitor/core\";\r\nfunction SendSalesData({\r\n horse,\r\n display_gallery,\r\n display_notes,\r\n display_results,\r\n presentationMode,\r\n pedigreeText,\r\n}) {\r\n const getGender = (index) => {\r\n var genderText = \"\";\r\n if (index == 0) {\r\n genderText = \"\";\r\n } else if (index == 1) {\r\n genderText = window.lang.horseTypeMare;\r\n } else if (index == 2) {\r\n genderText = window.lang.horseTypeGelding;\r\n } else {\r\n genderText = window.lang.horseTypeStallion;\r\n }\r\n return genderText;\r\n };\r\n const horseLogo =\r\n horse.LogoFile != null && horse.LogoFile != \"\"\r\n ? window.DataGate.baseurl + horse.LogoFile\r\n : \"img/horselogo.png\";\r\n\r\n const [logoFile, setLogoFile] = useState(\"img/horselogo.png\");\r\n const [name, setName] = useState();\r\n useEffect(() => {\r\n if (!horse) {\r\n return;\r\n }\r\n\r\n if (horse.LogoFile != null)\r\n setLogoFile(window.DataGate.baseurl + horse.LogoFile);\r\n setName(horse.name);\r\n }, [horse]);\r\n\r\n const [sendData, setSendData] = useState(true);\r\n const [sendLink, setSendLink] = useState(true);\r\n\r\n const [shareItems, setShareItems] = useState(Array(3).fill(true));\r\n\r\n const [galleryPhotos, setGalleryPhotos] = useState([]);\r\n const [resultPhotos, setResultPhotos] = useState([]);\r\n const [notesPhotos, setNotesPhotos] = useState([]);\r\n\r\n const [showLinkModal, setShowLinkModal] = useState(false);\r\n const [presentationId, setPresentationId] = useState(\"\");\r\n\r\n const [showNotification, setShowNotification] = useState(false);\r\n\r\n const helper = new MultimediaHelper();\r\n const filesForGallery = async (items) => {\r\n helper.setCurrentSettings(\"Multimedia\", horse.id, horse.userid, null, null);\r\n\r\n return await helper.downloadAllItems(items);\r\n };\r\n\r\n const createPresentationLink = () => {\r\n window.DataGate.insertHorsePresentation(\r\n {\r\n user_id: \"\",\r\n horse_id: horse.id,\r\n display_gallery: shareItems[0],\r\n display_results: shareItems[1],\r\n display_notes: shareItems[2],\r\n },\r\n (code, data) => {\r\n if (code != 1) {\r\n alert(\"Something went wrong\");\r\n return;\r\n }\r\n if (Capacitor.getPlatform() === \"web\") {\r\n setPresentationId(data);\r\n setShowLinkModal(true);\r\n } else {\r\n const shareData = {\r\n title: `Sales data for ${horse.name}`,\r\n text: \"\",\r\n url: getFullLink(data),\r\n };\r\n if (!navigator.canShare(shareData)) {\r\n alert(\"Can't share data.\");\r\n return;\r\n }\r\n navigator.share(shareData);\r\n }\r\n }\r\n );\r\n };\r\n\r\n const sendSalesData = async () => {\r\n let images_to_share = [];\r\n\r\n if (shareItems[0]) images_to_share.push(...galleryPhotos);\r\n if (shareItems[1]) images_to_share.push(...resultPhotos);\r\n if (shareItems[2]) images_to_share.push(...notesPhotos);\r\n\r\n if (sendData) {\r\n if (images_to_share.length <= 30) {\r\n if (Capacitor.getPlatform() === \"web\") {\r\n createPresentationLink();\r\n return;\r\n }\r\n\r\n if (images_to_share.length == 0) return;\r\n helper.shareItems(images_to_share);\r\n\r\n return;\r\n } else {\r\n if (sendLink) createPresentationLink();\r\n }\r\n return;\r\n }\r\n\r\n if (sendLink) {\r\n createPresentationLink();\r\n }\r\n };\r\n\r\n const clickToggle = (index) => {\r\n let aux_state = [...shareItems];\r\n aux_state[index] = !aux_state[index];\r\n setShareItems(aux_state);\r\n };\r\n\r\n const drawCustomHeader = (title, index) => {\r\n if (presentationMode) {\r\n return (\r\n
\r\n
{title}
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
{title}
\r\n clickToggle(index)}\r\n />\r\n
\r\n );\r\n };\r\n\r\n const getFullLink = (presId) => {\r\n const currentPresentationId = presId || presentationId;\r\n // const url = \"http://localhost:3000\";\r\n const url = \"https://eqeapp.com/eqapp/index.aspx\";\r\n // const url = \"https://eqapp-test.azurewebsites.net/eqapp/index.aspx\";\r\n return url + \"#publicPresentationDataWindow?id=\" + currentPresentationId;\r\n };\r\n\r\n const renderLinkModalBody = () => {\r\n return (\r\n <>\r\n {getFullLink()}\r\n {\r\n setShowNotification(true);\r\n setTimeout(() => {\r\n setShowNotification(false);\r\n }, 5500);\r\n navigator.clipboard.writeText(getFullLink());\r\n }}\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n stroke=\"currentColor\"\r\n style={{ width: 20, paddingTop: 5 }}\r\n >\r\n \r\n \r\n \r\n );\r\n };\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n {horse.name}\r\n\r\n {pedigreeText && pedigreeText.trim().length > 1 && (\r\n \r\n {pedigreeText}\r\n \r\n )}\r\n \r\n {getGender(horse.Gender)}\r\n \r\n\r\n \r\n {horse.BirthYear}\r\n \r\n
\r\n
\r\n
\r\n {!presentationMode && (\r\n
\r\n }\r\n onClick={sendSalesData}\r\n />\r\n
\r\n setSendData(!sendData)}\r\n />\r\n Send data if possible\r\n
\r\n
\r\n setSendLink(!sendLink)}\r\n />\r\n Send link to presentation\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n {(!presentationMode || display_gallery) && (\r\n \r\n )}\r\n {(!presentationMode || display_results) && (\r\n \r\n )}\r\n {(!presentationMode || display_notes) && (\r\n \r\n )}\r\n
\r\n
\r\n {showLinkModal && (\r\n setShowLinkModal(false)}\r\n button1_callback={() => {\r\n const shareData = {\r\n title: `Sales data for ${horse.name}`,\r\n text: \"\",\r\n url: getFullLink(),\r\n };\r\n if (!navigator.canShare(shareData)) {\r\n alert(\"Can't share data.\");\r\n return;\r\n }\r\n navigator.share(shareData);\r\n }}\r\n />\r\n )}\r\n {showNotification && }\r\n
\r\n );\r\n}\r\n\r\nexport default class SendSalesDataHolder {\r\n createSendSalesData(horse) {\r\n window.db.getPedigreeByHorse(horse.id, (pedigreeArr) => {\r\n let pedigreeText = \"\";\r\n if (pedigreeArr.length != 0) {\r\n const pedigreeData = JSON.parse(pedigreeArr[0][\"PedigreeJsonText\"]);\r\n try {\r\n pedigreeText =\r\n pedigreeData.mather + \" / \" + pedigreeData.grmather_father;\r\n } catch (err) {}\r\n }\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"sendSalesDataPageReact\")\r\n );\r\n });\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"sendSalesDataPageReact\")\r\n );\r\n }\r\n}\r\n\r\nfunction NoHorseFoundView() {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n We couldn’t find what you are looking for\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport class PublicHorsePresentationHolder {\r\n getParameterByName(name, url = window.location.href) {\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return \"\";\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n }\r\n\r\n async createPublicPresentationData() {\r\n const link_id = this.getParameterByName(\"id\");\r\n\r\n const data = await fetch(\r\n window.DataGate.horsePresentationUrl +\r\n \"/GetHorsePresentation?link_id=\" +\r\n link_id\r\n ).then((r) => r.json());\r\n\r\n if (!data.DataObject.id) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"publicPresentationPageReact\")\r\n );\r\n return;\r\n }\r\n let horse = data.DataObject.horse_item;\r\n horse.name = horse.Name;\r\n horse.userid = data.DataObject.user_id;\r\n horse.id = horse.Id;\r\n horse.LogoFile = data.DataObject.logo_file;\r\n\r\n let pedigreeText = \"\";\r\n if (data.DataObject.pedigree_json) {\r\n let pedigreeData = JSON.parse(data.DataObject.pedigree_json);\r\n try {\r\n pedigreeText =\r\n pedigreeData.mather + \" / \" + pedigreeData.grmather_father;\r\n } catch (err) {}\r\n }\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"publicPresentationPageReact\")\r\n );\r\n }\r\n}\r\n","import React, { useState, use, useEffect } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./FieldManager.css\";\r\nimport Modal from \"../Modal/Modal\";\r\nfunction FieldManager() {\r\n /**\r\n * Type definitions:\r\n *\r\n * type Field {\r\n * id: String,\r\n * name: String,\r\n * maxNumberHorses: Integer\r\n * }\r\n *\r\n *\r\n * type TimePeriods {\r\n * id: String,\r\n period: String\r\n * }\r\n *\r\n *\r\n * type FieldArea {\r\n * id: String,\r\n * name: String,\r\n * fields: Field[],\r\n * timePeriods: TimePeriods[],\r\n * }\r\n */\r\n\r\n // {\r\n // id: \"1\",\r\n // name: \"Hingste fold\",\r\n // fields: [\r\n // {\r\n // id: \"1\",\r\n // name: \"H1\",\r\n // },\r\n // {\r\n // id: \"2\",\r\n // name: \"H2\",\r\n // },\r\n // {\r\n // id: \"3\",\r\n // name: \"H3\",\r\n // },\r\n // ],\r\n // time_periods: [\r\n // {\r\n // id: \"1\",\r\n // period: \"10-12\",\r\n // },\r\n // {\r\n // id: \"2\",\r\n // period: \"12-14\",\r\n // },\r\n // ],\r\n // },\r\n // ];\r\n const [fieldAreas, setFieldAreas] = useState([]);\r\n\r\n // MODALS\r\n const [showCreateFieldAreaModal, setShowCreateFieldAreaModal] =\r\n useState(false);\r\n\r\n const [showCreateFieldModal, setShowCreateFieldModal] = useState(false);\r\n\r\n const [showEditFieldModal, setShowEditFieldModal] = useState(false);\r\n const [showEditTimePeriodModal, setShowEditTimePeriodModal] = useState(false);\r\n\r\n const [showCreateTimeModal, setShowCreateTimeModal] = useState(false);\r\n\r\n const [showDeleteFieldModal, setShowDeleteFieldModal] = useState(false);\r\n const [showDeleteFieldAreaModal, setShowDeleteFieldAreaModal] =\r\n useState(false);\r\n\r\n const [showDeleteTimePeriodModal, setShowDeleteTimePeriodModal] =\r\n useState(false);\r\n\r\n // #SECTION Data creation\r\n const [currentWorkingFieldAreaId, setCurrentWorkingFieldAreaId] =\r\n useState(\"\");\r\n\r\n const [currentWorkingFieldId, setCurrentWorkingFieldId] = useState(\"\");\r\n const [currentWorkingTimePeriodId, setCurrentWorkingTimePeriodId] =\r\n useState(\"\");\r\n\r\n const [newFieldAreaName, setNewFieldAreaName] = useState(\"\");\r\n const [newFieldName, setNewFieldName] = useState(\"\");\r\n const [newFieldNumberOfHorses, setNewFieldNumberOfHorses] = useState(1);\r\n const [newTimePeriod, setNewTimePeriod] = useState(\"\");\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n // reset the value of the fields inside the model\r\n useEffect(() => {\r\n setNewFieldAreaName(\"\");\r\n setNewFieldName(\"\");\r\n setNewTimePeriod(\"\");\r\n setNewFieldNumberOfHorses(1);\r\n }, [showCreateFieldAreaModal, showCreateFieldModal, showCreateTimeModal]);\r\n\r\n const fetchData = () => {\r\n window.DataGate.getFieldAreas((code, data) => {\r\n if (data) setFieldAreas(data);\r\n });\r\n };\r\n useEffect(() => {\r\n fetchData();\r\n }, []);\r\n\r\n const move_field = (fields, index, field_area_index, higher) => {\r\n if (higher && index == 0) return;\r\n\r\n if (!higher && index == fields.length - 1) return;\r\n\r\n let secondIndex = higher ? index - 1 : index + 1;\r\n let firstFieldId = fields[index].id;\r\n let secondFieldId = fields[secondIndex].id;\r\n\r\n window.DataGate.moveField(\r\n {\r\n firstFieldId,\r\n secondFieldId,\r\n },\r\n (status, data) => {}\r\n );\r\n let aux = [...fields];\r\n\r\n let x = aux[index];\r\n aux[index] = fields[secondIndex];\r\n aux[secondIndex] = x;\r\n\r\n let aux2 = [...fieldAreas];\r\n aux2[field_area_index].fields = aux;\r\n setFieldAreas(aux2);\r\n };\r\n // #ENDSECTION\r\n const generateFieldAreaFieldTables = (field_area, field_area_index) => {\r\n if (field_area.fields.length == 0 && !field_area.is_editable) return;\r\n const firstColumnColSpan = field_area.is_editable ? 1 : 2;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {field_area.is_editable && }\r\n \r\n \r\n \r\n {field_area.fields.map((field, fieldIndex) => (\r\n \r\n \r\n
\r\n \r\n move_field(\r\n field_area.fields,\r\n fieldIndex,\r\n field_area_index,\r\n true\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n
\r\n\r\n \r\n move_field(\r\n field_area.fields,\r\n fieldIndex,\r\n field_area_index,\r\n false\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n {field.name}\r\n \r\n \r\n
\r\n {field_area.is_editable && (\r\n \r\n )}\r\n {field_area.is_editable && (\r\n \r\n )}\r\n \r\n ))}\r\n\r\n {field_area.is_editable && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n {window.lang.fieldName}\r\n \r\n {window.lang.numberOfHorses}\r\n
\r\n {field.maxNumberHorses}\r\n \r\n {\r\n setCurrentWorkingFieldAreaId(field_area.id);\r\n setCurrentWorkingFieldId(field.id);\r\n setShowDeleteFieldModal(true);\r\n }}\r\n >\r\n \r\n \r\n \r\n {\r\n setCurrentWorkingFieldAreaId(field_area.id);\r\n setCurrentWorkingFieldId(field.id);\r\n setNewFieldName(field.name);\r\n setNewFieldNumberOfHorses(field.maxNumberHorses);\r\n setShowEditFieldModal(true);\r\n }}\r\n >\r\n \r\n \r\n
\r\n {\r\n setCurrentWorkingFieldAreaId(field_area.id);\r\n setShowCreateFieldModal(true);\r\n }}\r\n >\r\n Add Field\r\n \r\n
\r\n );\r\n };\r\n\r\n const generateFieldAreaTimePeriodTables = (field_area) => {\r\n if (field_area.timePeriods.length == 0 && !field_area.is_editable) return;\r\n const firstColumnColSpan = field_area.is_editable ? 1 : 2;\r\n return (\r\n \r\n \r\n \r\n \r\n {field_area.is_editable && }\r\n \r\n \r\n \r\n {field_area.timePeriods.map((time_period) => (\r\n \r\n \r\n {time_period.period}\r\n \r\n {field_area.is_editable && (\r\n \r\n )}\r\n {field_area.is_editable && (\r\n \r\n )}\r\n \r\n ))}\r\n\r\n {field_area.is_editable && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n {window.lang.timePeriod}\r\n
\r\n {\r\n setCurrentWorkingFieldAreaId(field_area.id);\r\n setCurrentWorkingTimePeriodId(time_period.id);\r\n setShowDeleteTimePeriodModal(true);\r\n }}\r\n >\r\n \r\n \r\n \r\n {\r\n setCurrentWorkingFieldAreaId(field_area.id);\r\n setCurrentWorkingTimePeriodId(time_period.id);\r\n setNewTimePeriod(time_period.period);\r\n setShowEditTimePeriodModal(true);\r\n }}\r\n >\r\n \r\n \r\n
\r\n {\r\n setCurrentWorkingFieldAreaId(field_area.id);\r\n setShowCreateTimeModal(true);\r\n }}\r\n >\r\n Add Time Period\r\n \r\n
\r\n );\r\n };\r\n\r\n const renderCreateFieldDefaulModalBody = (ev_dispatcher, ev_value) => {\r\n return (\r\n <>\r\n ev_dispatcher(e.currentTarget.value)}\r\n placeholder={window.lang.name}\r\n className=\"field-manager--modal-text-input\"\r\n />\r\n \r\n );\r\n };\r\n\r\n const renderCreateFieldModalBody = (\r\n ev_dispatcher,\r\n ev_value,\r\n second_ev_dispatcher,\r\n second_ev_value\r\n ) => {\r\n return (\r\n
\r\n {window.lang.name}\r\n ev_dispatcher(e.currentTarget.value)}\r\n placeholder={window.lang.name}\r\n className=\"field-manager--modal-text-input\"\r\n />\r\n\r\n {window.lang.numberOfHorses}\r\n second_ev_dispatcher(e.currentTarget.value)}\r\n placeholder={window.lang.numberOfHorses}\r\n className=\"field-manager--modal-text-input\"\r\n />\r\n
\r\n );\r\n };\r\n\r\n const renderDeleteModalBody = () => {\r\n return {window.lang.wantDelete};\r\n };\r\n\r\n const createFieldArea = () => {\r\n if (newFieldAreaName == \"\") {\r\n alert(\"Please select a valid name for the field area\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n // create an area\r\n window.DataGate.addFieldArea(\r\n {\r\n name: newFieldAreaName,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n\r\n setShowCreateFieldAreaModal(false);\r\n };\r\n const createField = () => {\r\n if (newFieldName == \"\") {\r\n alert(\"Please select a valid name for the field\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n // create an area\r\n window.DataGate.addField(\r\n {\r\n name: newFieldName,\r\n numberOfHorses: newFieldNumberOfHorses,\r\n fieldAreaId: currentWorkingFieldAreaId,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n\r\n setShowCreateFieldModal(false);\r\n };\r\n const editField = () => {\r\n if (newFieldName == \"\") {\r\n alert(\"Please select a valid name for the field\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n // create an area\r\n window.DataGate.editField(\r\n {\r\n name: newFieldName,\r\n numberOfHorses: newFieldNumberOfHorses,\r\n fieldId: currentWorkingFieldId,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n\r\n setShowEditFieldModal(false);\r\n };\r\n\r\n const createTimePeriod = () => {\r\n if (newTimePeriod == \"\") {\r\n alert(\"Please select a valid time period text\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n // create an area\r\n window.DataGate.addFieldTimePeriod(\r\n {\r\n period: newTimePeriod,\r\n fieldAreaId: currentWorkingFieldAreaId,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n\r\n setShowCreateTimeModal(false);\r\n };\r\n\r\n const editFieldTimePeriod = () => {\r\n if (newTimePeriod == \"\") {\r\n alert(\"Please select a valid time period text\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n // create an area\r\n window.DataGate.editFieldTimePeriod(\r\n {\r\n period: newTimePeriod,\r\n timePeriodId: currentWorkingTimePeriodId,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n\r\n setShowEditTimePeriodModal(false);\r\n };\r\n\r\n const deleteFieldAreaItem = () => {\r\n window.Spinner.show();\r\n\r\n // delete field\r\n\r\n if (showDeleteFieldModal) {\r\n window.DataGate.deleteFieldFromAreaField(\r\n {\r\n id: currentWorkingFieldId,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n setShowDeleteFieldModal(false);\r\n return;\r\n }\r\n\r\n // delete time period\r\n if (showDeleteTimePeriodModal) {\r\n window.DataGate.deleteTimePeriodFromAreaField(\r\n {\r\n id: currentWorkingTimePeriodId,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n setShowDeleteTimePeriodModal(false);\r\n return;\r\n }\r\n\r\n // delete field area\r\n window.DataGate.deleteFieldArea(\r\n {\r\n id: currentWorkingFieldAreaId,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n setShowDeleteFieldAreaModal(false);\r\n };\r\n\r\n const renderDeleteTitle = () => {\r\n if (showDeleteFieldModal) return \"Delete field\";\r\n if (showDeleteTimePeriodModal) return \"Delete time period\";\r\n\r\n return \"Delete field area\";\r\n };\r\n\r\n const move_task = (index, higher) => {\r\n window.Spinner.show();\r\n\r\n if (isLoading) return;\r\n setIsLoading(true);\r\n let items = [...fieldAreas];\r\n if (index == 0 && higher) return;\r\n if (index == items.length - 1 && !higher) return;\r\n\r\n let newIndex = higher ? index - 1 : index + 1;\r\n let aux = items[index];\r\n items[index] = items[newIndex];\r\n items[newIndex] = aux;\r\n const ids = items.map((task) => task.id);\r\n window.DataGate.reorderFieldAreas(ids, () => {\r\n setFieldAreas(items);\r\n setIsLoading(false);\r\n window.Spinner.hide();\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n {fieldAreas &&\r\n fieldAreas.map((field_area, field_area_index) => (\r\n
\r\n
\r\n
move_task(field_area_index, true)}>\r\n \r\n \r\n \r\n
\r\n\r\n
move_task(field_area_index, false)}>\r\n \r\n \r\n \r\n
\r\n

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

\r\n {\r\n setCurrentWorkingFieldAreaId(field_area.id);\r\n setShowDeleteFieldAreaModal(true);\r\n }}\r\n className=\"tcDelButton--field-area\"\r\n />\r\n
\r\n\r\n
\r\n {generateFieldAreaFieldTables(field_area, field_area_index)}\r\n {generateFieldAreaTimePeriodTables(field_area)}\r\n
\r\n
\r\n ))}\r\n
\r\n setShowCreateFieldAreaModal(true)}\r\n >\r\n Add Field Area\r\n \r\n
\r\n\r\n {showCreateFieldAreaModal && (\r\n setShowCreateFieldAreaModal(false)}\r\n button1_callback={createFieldArea}\r\n />\r\n )}\r\n\r\n {showEditFieldModal && (\r\n setShowEditFieldModal(false)}\r\n button1_callback={editField}\r\n />\r\n )}\r\n {showCreateFieldModal && (\r\n setShowCreateFieldModal(false)}\r\n button1_callback={createField}\r\n />\r\n )}\r\n\r\n {showCreateTimeModal && (\r\n setShowCreateTimeModal(false)}\r\n button1_callback={createTimePeriod}\r\n />\r\n )}\r\n\r\n {showEditTimePeriodModal && (\r\n setShowEditTimePeriodModal(false)}\r\n button1_callback={editFieldTimePeriod}\r\n />\r\n )}\r\n\r\n {(showDeleteFieldModal ||\r\n showDeleteTimePeriodModal ||\r\n showDeleteFieldAreaModal) && (\r\n {\r\n setShowDeleteFieldModal(false);\r\n setShowDeleteTimePeriodModal(false);\r\n setShowDeleteFieldAreaModal(false);\r\n }}\r\n button1_callback={deleteFieldAreaItem}\r\n />\r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default class FieldManagerHolder {\r\n createFieldManager() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"fieldManagementPageReact\")\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\n\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport TrainingExtension from \"./TrainingViews/TrainingExtension\";\r\nimport HomePageExtention from \"./Home/HomePageExtention\";\r\nimport HorsePageExtention from \"./AddEditHorse/HorsePageExtention\";\r\nimport MultimediaMobileHelper from \"./Multimedia/MultimediaMobileHelper\";\r\nimport { SideMenuExtention } from \"./Menu/SideMenu\";\r\nimport Report from \"./Report/Report\";\r\nimport RiderRole from \"./RiderRole/RiderRole\";\r\nimport Sharing from \"./SharingPage/SharingPage\";\r\nimport TrainingPopup from \"./TrainingPopup/TrainingPopup\";\r\nimport SharePage from \"./SharingPage/SharePage\";\r\nimport AutoCreateTaskPage from \"./AutoCreateTask/AutoCreateTaskPage\";\r\nimport VaccinationPopup from \"./Home/VaccinationView/VaccinationPopup\";\r\nimport PriceReport from \"./Home/Settings/PriceReport\";\r\nimport DewormingTypes from \"./Home/Settings/DewormingTypes\";\r\nimport ReportSettings from \"./Report/ReportSettings\";\r\nimport MultimediaHelper from \"./Multimedia/MultimediaHelper\";\r\nimport SendSalesData from \"./SendSalesData/SendSalesData\";\r\nimport { PublicHorsePresentationHolder } from \"./SendSalesData/SendSalesData\";\r\nimport FieldManager from \"./FieldManager/FieldManager\";\r\n\r\nwindow.trainingExtension = new TrainingExtension();\r\nwindow.HomePage.extention = new HomePageExtention();\r\nwindow.Managers.extention = new HorsePageExtention();\r\nwindow.multimediaMobileHelper = new MultimediaMobileHelper();\r\n// window.multimediaHelper = new MultimediaHelper();\r\nwindow.TopMenu.Self.sidebarExtention = new SideMenuExtention();\r\nwindow.vetfartable.extention = new Report();\r\nwindow.sendSalesData = new SendSalesData();\r\nwindow.fieldManager = new FieldManager();\r\nwindow.showPublicPresentation = new PublicHorsePresentationHolder();\r\nwindow.window.managers = new RiderRole();\r\nwindow.managers.extention = new Sharing();\r\nwindow.TrainingPopup = TrainingPopup;\r\nwindow.SharePage = SharePage;\r\nwindow.AutoCreateTaskPage = AutoCreateTaskPage;\r\nwindow.VaccinationPage.extention = new VaccinationPopup();\r\nwindow.managers.priceReport = new PriceReport();\r\nwindow.managers.dewormingTypes = new DewormingTypes();\r\nwindow.managers.reportSettings = new ReportSettings();\r\n\r\n// ReactDOM.render(, document.getElementById(\"root\"));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}