{"version":3,"sources":["serviceWorker.js","TrainingViews/HorseCell/HorseCell.js","TrainingViews/TrainingCellMap.js","TrainingPopup/CopyTaskPopupV2.js","TrainingPopup/ReminderSelectPopup.js","TrainingPopup/SelectTimePopup.js","TrainingPopup/TaskXrayPage.js","Multimedia/MultimediaMobileHelper.js","../../../src/index.ts","Multimedia/MultimediaHelper.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","OtherTasksView/OtherTasksView.jsx","OtherTasksViewLight/OtherTasksViewLight.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","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","ZipViewer/ZipViewer.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","TaskXrayPage","close","showPage","onFilesSeleted","arr","files","size","lastModifiedDate","file","uploadingFiles","setTimeout","startUploading","_uploadWthSingleRequest","arrayBuffer","progressCallback","path","encodeURI","dropbox","filesUpload","contents","then","response","catch","error","_deleteItem","callback","filesDelete","path_display","onSelectAll","entries","isSelected","onSelectItem","itemIndex","onDeleteClick","Spinner","show","deleteFunc","hide","downloadFiles","filesDownloadZip","url","URL","createObjectURL","fileBlob","link","createElement","href","setAttribute","body","appendChild","click","uploadingIndex","Dropbox","accessToken","DropboxToken","taskId","prevProps","filesCreateFolder","autorename","_getListFiles","filesListFolder","isUploading","_uploadNextFile","isUploaded","reader","FileReader","onload","result","readAsArrayBuffer","bytes","toFixed","maxWidth","src","padding","paddingTop","accept","multiple","htmlFor","float","defaultValue","getFilesSize","toLocaleString","decodeURI","client_modified","MultimediaMobileHelper","MultimediaIOS","webkit","messageHandlers","isActive","MultimediaAndroid","dataObj","postMessage","horses","JSON","stringify","userId","horseId","loadCallback","request_origin","fileName","imageItem","target_origin","uploadDoneCallback","imageUrl","uploadStartCallback","percent","uploadProgressCallback","uploadListCallback","nameNew","changeNameCallback","items","itemNames","count","totalCount","$","html","FileChunkReader","web","m","FileChunkReaderWeb","MultimediaHelper","startUploadQueueElements","a","uploadQueue","el","dbxItem","finishCallback","getTypeItem","filesGetThumbnail","thumbUrl","shift","loadUploadQueue","startsWith","getPath","FOLDER_MULTIMEDIA","FOLDER_EXTRA_NOTES","noteOrTaskId","FOLDER_TASK","h","userid","FOLDER_GENERAL_TASK","loadList","_getListFilesForMultimedia","multimediaPage","_getListFilesForTasks","FOLDER_NOTES","_getListFilesForNotes","b","_buildThumbs","getYoutubeMultimedia","youtubeData","TYPE_YOUTUBE","end","formatDesh","start","addDays","db","getTasksByHorseIdForMultimedia","taskArr","horseOwnerId","getNotesByHorse","notesArr","_checkAllThumbLoaded","_getYoutubeCode","Link","fullUrl","_loadThumb","pop","Promise","resolve","reject","getItemLink","filesGetTemporaryLink","_loadThubmAndUploadCallback","_setSoothProgress","new_progress","duration","file_path","fileSize","uploadFileWithProgress","actual_image","uploadFile","targetPath","progress","success","addListener","info","removeAllListeners","parse","uri","media_path","dbx","uploadFileChunk","cancelUploading","cancelIndex","f","splice","refreshUploadQueue","uploadYoutube","addYoutubeMultimedia","deleteItems","deleteCallback","itemsForDelete","deleteYoutubeMultimedia","Id","isDeleted","_checkItemsDelete","changeName","pathNew","lastIndexOf","filesMove","from_path","to_path","downloadItems","dowloadStep","_downloadItem","downloadAllItems","filesDownload","File","downloadUrl","downloadButton","innerText","hasImages","urisToShare","random","file_name","target_request","dbxPath","removeElementFromUploadQueue","isImage","fetch","res","blob","TYPE_IMAGE","TYPE_VIDEO","_","onloadend","readAsDataURL","item_index","file_blob","Filesystem","blobToBase64","Directory","Cache","directory","writeFile","Share","share","static_path","milliseconds","base64","mimeType","binaryStr","atob","Uint8Array","charCodeAt","Blob","multimediaMobileHelper","showFullScreen","downloadAndShareItems","ext","toLowerCase","TYPE_PDF","FOLDER_RESULT","FOLDER_OTHER","SpinnerView","PdfViewer","onPdfDocumentLoadSuccess","args","pdfNumberOfPages","numPages","onCurrentPdfPageChange","offset","currentPdfPage","showPdfDocument","pdfjs","GlobalWorkerOptions","workerSrc","pdfjsWorker","pdfPageWidth","isMobileDevice","innerWidth","min","height","onLoadSuccess","pageNumber","renderTextLayer","MediaTypeAlert","setShow","selectImages","selectVideos","HorseGallery","toggleExtraButtons","multiSelectMode","setOwnSettings","generalTask","helper","setCurrentSettings","setFinishCallback","onUploadedFile","setProgressCallback","onProgressFile","setRefreshCallback","uploadDataArray","loading","dataArray","setAuxiliarImageList","getItemName","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","thumbnail","at","thumbNailMediaResult","readFile","file_to_upload","onCancelUploading","onShowAddYoutube","showAddYoutube","addYoutubeLink","hideAddYoutube","onYoutubeLinkChange","onAddYoutubeLink","selectItem","onDownloadClick","onShareClick","shareItems","onImageChangeNameStart","changeNameMode","onImageNameNewChange","onImageChangeNameEnd","nameIsUpdated","itemChanged","renderFullscreenItem","controls","poster","frameborder","testUrl","selectUploadMediaType","platform","urlAddYoutubeFrame","showFullScreenLeft","showFullScreenRight","newVal","customHeader","title","showUploadButton","acceptPdf","showYoutube","select","slice","reverse","hideEditImages","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","options","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","status","currentSynctime","synctime","currentDewormingType","DewormingType","isDone","handleChange","onSaveClick","setItem","showWindow","isGroupSelected","saveTraining","updateCopyTraining","onDoneCallback","dewormingTypesPeriod","trainItem","period","tr","TrainingFlagAdd","refreshLayout","trainingRequestStart","insertOrUpdateTrainings","CODE_OK","trainingRequestEnd","showConnectionError","returnTrainingCallback","onExtraTrainingClick","oprionObj","TrainingPopup","showPopup","onDeleteTrainingClick","deleteTraining","deleteTrainingById","deleteTrainings","onShowMultimediaClick","css","image","unbind","bind","onBack","stopPropagation","onXrayClick","onCopyTaskClick","onCopyDone","onReminderSelectClick","showReminderPopup","currentTarget","idf","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","addExtraTraining","trained","copyTask","fieldArea","fieldName","field","timePeriod","time_period","marginRight","tShowSmileOnTask","data-id","border","borderRadius","nextDeworming","rows","showData","showXray","align","data-inset","data-autodividers","data-icon","data-idf","data-name","isVetPage","minWidth","InputForMobile","readOnly","backgroundColor","InputForDesktop","Footer","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","showHorseName","multipleOnSameColumn","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","forEach","updateFeedHeader","allfeeds","feed","onFeedBlur","feedHeader","Feed","insertOrUpdateFeed","onDataLoad","feedData","Array","from","Set","feedHeaders","getFeedData","NewGeneralTaskTypePopupWindow","edit_element","editGeneralTaskType","createGeneralTaskType","onGeneralTaskChange","NewGeneralTaskTypePopup","CopyGeneralTaskV2","currentFreqOptions","tasktype","months","addGeneralTaskArr","saveTask","CopyGeneralTasksGroup","addGeneralTask","GeneralTaskFlagAdd","insertOrUpdateGeneralTask","deleteGeneralTaskGroup","notification","connectionId","everyMonth","CopyGeneralTaskWindow","taskItem","DeleteUpdateGeneralTaskPopup","updateGeneralTask","deleteGeneralTaskById","userForId","UserForId","deleteGeneralTask","isForAllGroup","Flag","GeneralTaskFlagUpdate","insertOrUpdateGeneralTaskGroup","DeleteUpdateGeneralTaskPopupWindow","GeneralTaskPopupWindow","getGeneralTaskType","SELECT_MAIN_USER_STABLE","taskTypeArr","generalTaskTypeArr","loadFromProps","getSharedHorseWithTrainerList","trainersArray","none","me","currentTaskTime","currentGeneralTaskTypeId","currentTask","currentTaskName","currentTaskId","TrainerId","currentUserForId","Time","TaskNameId","currentGroupId","currentCopyDuration","currentDaysToCopy","getCurrentTask","TaskType","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","includes","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","ceil","horseDataArr","widthFC","tableWidth","maxHeight","overflowY","days","FieldAssignmentView","useState","setFieldAreas","useEffect","getFieldAreas","renderFieldAreaTable","word","toUpperCase","current_trainings","FieldAreaId","FieldId","FieldAreaTimePeriodId","nrOfTasks","field_area","maxNumberHorses","current_training","returnCellContent","OtherTasksView","generalTasksDaily","setGeneralTasksDaily","generalTasksWeekly","setGeneralTasksWeekly","generalTasksMonthly","setGeneralTasksMonthly","reorderMode","setReorderMode","DRAG_DROP_TRAININGS","draggable","setDraggable","setIsDragging","globalDataChangeHandler","subscribe","unsubscribe","drawSortIcon","handleClick","auxOrderMode","version","transform","ry","getGeneralTaskOfType","setGeneralTasksOfType","new_items","onCellHoldCLick","task_aux","onDragEnd","destination","list","startIndex","endIndex","removed","reorder","source","ids","reorderGeneralTasks","move_task","lower","newIndex","aux","flex","currentTasks","onBeforeDragStart","droppableId","provided","snapshot","droppableProps","innerRef","draggableId","disabled","draggableProps","dragHandleProps","placeholder","renderGeneralTaskTableDaily","renderGeneralTaskTableWeekly","renderGeneralTaskTableMonthly","OtherTasksViewLight","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","fieldAssignment","selectedDateField","filteredTrainingsField","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","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","String","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","XrayView","getXrayDataForUser","xrayData","plusFiles","selectFile","selectedPlusFilesItems","onViewDocumentClick","metadata","dataIndex","plusFileIndex","borderTopStyle","borderLeftStyle","borderRightStyle","flexWrap","fileIndex","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","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","TextNote","selectNote","noteIndex","saveCurrentText","updateNoteByHorse","note","updateNoteHorse","deleteNote","n","needDropboxUpdate","addNewNotesStart","isAddShow","addNoteTitle","onAddNoteTitleChange","addNewNotesFinish","noteNew","HeaderNote","IdHorse","IsPrice","OrderBy","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","ZipViewer","JSZipUtils","getBinaryContent","fileUrl","err","isError","JSZip","loadAsync","zip","fileList","relativePath","onFileSelect","async","fullscreenImage","fullscreenVideo","pdfDocument","fIndex","VeterinarianPage","getVeterinarianTrainingsByHorse","vetData","veterinarianData","multimedia","getVeterinarTypeName","onNewVetereinarianClick","newVetData","deleteTrainingCallBack","vetDataItemIndex","vetIndex","selectMultimedia","onShareFullscreenItem","dbxFullScreenItem","dataArr","currentItem","showZipViewer","hidePdfDocument","hideZipViewer","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","currentEmails","onEmailChange","onEmailInputClick","onEmailClick","newEmails","user","onShareOtherHorseClick","onAutomaticallyShareAllHorsesClick","set","updateLocalSettingsShareAllHorses","onSelectAllClick","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","SharingPage","roles","getShareWithData","itemD","ShareWith","RoleId","currentRole","sender_id","notAccepted","NotAccepted","createLicenseTo","CreateLicenseTo","licenseExpire","getAllStablesAsync","myStables","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","filesForGallery","createPresentationLink","insertHorsePresentation","user_id","horse_id","images_to_share","canShare","message","drawCustomHeader","aux_state","clickToggle","getFullLink","clipboard","writeText","SendSalesDataHolder","NoHorseFoundView","PublicHorsePresentationHolder","regex","RegExp","exec","decodeURIComponent","link_id","getParameterByName","horsePresentationUrl","DataObject","horse_item","logo_file","FieldManager","showCreateFieldAreaModal","setShowCreateFieldAreaModal","showCreateFieldModal","setShowCreateFieldModal","showCreateTimeModal","setShowCreateTimeModal","showDeleteFieldModal","setShowDeleteFieldModal","showDeleteFieldAreaModal","setShowDeleteFieldAreaModal","showDeleteTimePeriodModal","setShowDeleteTimePeriodModal","currentWorkingFieldAreaId","setCurrentWorkingFieldAreaId","currentWorkingFieldId","setCurrentWorkingFieldId","currentWorkingTimePeriodId","setCurrentWorkingTimePeriodId","newFieldAreaName","setNewFieldAreaName","newFieldName","setNewFieldName","newFieldNumberOfHorses","setNewFieldNumberOfHorses","newTimePeriod","setNewTimePeriod","ev_dispatcher","ev_value","second_ev_dispatcher","second_ev_value","renderCreateFieldDefaulModalBody","is_editable","firstColumnColSpan","numberOfHorses","generateFieldAreaFieldTables","generateFieldAreaTimePeriodTables","addFieldArea","addField","addFieldTimePeriod","wantDelete","deleteFieldFromAreaField","deleteTimePeriodFromAreaField","deleteFieldArea","FieldManagerHolder","trainingExtension","vetfartable","fieldManager","showPublicPresentation","reportSettings","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.e9a66486.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","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { set } from \"lodash\";\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\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.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 console.log(response);\r\n window.Spinner.hide();\r\n })\r\n .catch((error) => {\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 this.dropbox\r\n .filesUpload({ path: path, contents: file })\r\n .then(function (response) {\r\n doneCallback(response);\r\n })\r\n .catch(function (error) {\r\n console.error(error);\r\n doneCallback(null);\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.filter((item) => item.isSelected);\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 this.dropbox\r\n .filesDownloadZip({ path: this.path })\r\n .then((response) => {\r\n window.Spinner.hide();\r\n\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(\"download\", \"files.zip\");\r\n document.body.appendChild(link);\r\n link.click();\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.client_modified}
\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 { registerPlugin } from '@capacitor/core';\n\nimport type { FileChunkReaderPlugin } from './definitions';\n\nconst FileChunkReader = registerPlugin(\n 'FileChunkReader',\n {\n web: () => import('./web').then(m => new m.FileChunkReaderWeb()),\n },\n);\n\nexport * from './definitions';\nexport { FileChunkReader };\n","import { Directory, Filesystem } from \"@capacitor/filesystem\";\r\nimport MultimediaMobileHelper from \"./MultimediaMobileHelper\";\r\nimport { Share } from \"@capacitor/share\";\r\nimport { files } from \"jszip\";\r\nimport { FileChunkReader } from \"capacitor-file-chunk-reader\";\r\nimport { random } from \"lodash\";\r\nimport { Capacitor } from \"@capacitor/core\";\r\nexport default class MultimediaHelper {\r\n static DropboxToken =\r\n \"HqmkA9nKm0wAAAAAAADLWpj-stRJN_4JyfLxtRoZD-Rzpjyz9nnuI_CMbkRkOoSk\";\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 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\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 dbxItem.type = MultimediaHelper.getTypeItem(dbxItem);\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 this.removeElementFromUploadQueue(file_name, target_request);\r\n this.finishCallback(target_request, file_name, dbxItem);\r\n })\r\n .catch((error) => {\r\n dbxItem.thumbUrl = \"\";\r\n\r\n this.removeElementFromUploadQueue(file_name, target_request);\r\n this.finishCallback(target_request, file_name, dbxItem);\r\n });\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 shareItems(items) {\r\n this.urisToShare = [];\r\n\r\n for (let item_index in items) {\r\n const item = items[item_index];\r\n this.dropbox\r\n .filesDownload({\r\n path: item.path_display,\r\n })\r\n .then(async (response) => {\r\n let file_blob = response.fileBlob;\r\n\r\n const file = await Filesystem.writeFile({\r\n data: await this.blobToBase64(file_blob),\r\n directory: Directory.Cache,\r\n path: item.name,\r\n });\r\n\r\n this.urisToShare.push(file.uri);\r\n\r\n if (this.urisToShare.length == items.length) {\r\n Share.share({ files: this.urisToShare });\r\n }\r\n });\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 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 (dbxItem) => {\r\n if (dbxItem == null) {\r\n this.finishCallback(el.file.fileName, null);\r\n } else {\r\n dbxItem.type = MultimediaHelper.getTypeItem(dbxItem);\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 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.userId}/${this.horseId}`;\r\n case MultimediaHelper.FOLDER_EXTRA_NOTES:\r\n return `/${this.type}/${this.horseId}/${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\r\n this.path = this.getPath(type);\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 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\r\n _getListFiles = () => {\r\n this.dropbox\r\n .filesListFolder({ path: this.path })\r\n .then((response) => {\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 this.dropbox\r\n .filesListFolder({ path: this.path })\r\n .then((response) => {\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 = 8 * 1024 * 1024; // 8MB chunk size\r\n if (file.fileSize > maxBlob) {\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 if (Capacitor.getPlatform() == \"web\") {\r\n FileChunkReader.uploadFile({\r\n file: file.actual_image,\r\n accessToken:\r\n \"HqmkA9nKm0wAAAAAAADLWpj-stRJN_4JyfLxtRoZD-Rzpjyz9nnuI_CMbkRkOoSk\",\r\n targetPath: path,\r\n progressCallback: (progress) => {},\r\n doneCallback: (success, response) => {\r\n if (success) {\r\n doneCallback(response.result, 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(\"uploadComplete\", (info) => {\r\n FileChunkReader.removeAllListeners(\"uploadComplete\");\r\n if (info.success) {\r\n doneCallback(JSON.parse(info.response), request_origin);\r\n } else {\r\n console.error(\"Upload failed\");\r\n }\r\n });\r\n FileChunkReader.uploadFile({\r\n uri: file.media_path,\r\n accessToken:\r\n \"HqmkA9nKm0wAAAAAAADLWpj-stRJN_4JyfLxtRoZD-Rzpjyz9nnuI_CMbkRkOoSk\",\r\n targetPath: path,\r\n });\r\n }\r\n } else {\r\n FileChunkReader.addListener(\"uploadProgress\", (info) => {\r\n this.progressCallback(request_origin, file.fileName, info.progress);\r\n });\r\n\r\n FileChunkReader.addListener(\"uploadComplete\", (info) => {\r\n FileChunkReader.removeAllListeners(\"uploadProgress\");\r\n FileChunkReader.removeAllListeners(\"uploadComplete\");\r\n if (info.success) {\r\n doneCallback(JSON.parse(info.response), request_origin);\r\n } else {\r\n console.error(\"Upload failed\");\r\n }\r\n });\r\n FileChunkReader.uploadFile({\r\n uri: file.media_path,\r\n accessToken:\r\n \"HqmkA9nKm0wAAAAAAADLWpj-stRJN_4JyfLxtRoZD-Rzpjyz9nnuI_CMbkRkOoSk\",\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 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.uploadFileChunk({\r\n file: file.actual_image,\r\n accessToken:\r\n \"HqmkA9nKm0wAAAAAAADLWpj-stRJN_4JyfLxtRoZD-Rzpjyz9nnuI_CMbkRkOoSk\",\r\n targetPath: path,\r\n progressCallback: (progress) => {\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 if (success) {\r\n doneCallback(response.result, 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 if (info.success) {\r\n doneCallback(JSON.parse(info.response), request_origin);\r\n } else {\r\n console.error(\"Upload failed\");\r\n }\r\n });\r\n FileChunkReader.uploadFileChunk({\r\n uri: file.media_path,\r\n fileSize: fileSize,\r\n accessToken:\r\n \"HqmkA9nKm0wAAAAAAADLWpj-stRJN_4JyfLxtRoZD-Rzpjyz9nnuI_CMbkRkOoSk\",\r\n targetPath: path,\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 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 = (item, nameNew, callback) => {\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.userId}/${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\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() ? window.innerWidth - 40 : 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
{this.state.currentPdfPage}/{this.state.pdfNumberOfPages}
\r\n this.onCurrentPdfPageChange(1)} />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PdfViewer;","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\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 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 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 // 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) {\r\n this.state.helper.downloadItems(items, () => {});\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\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 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(\r\n dataArray[index],\r\n dataArray[index].name,\r\n (itemChanged) => {\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\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 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 {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 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 };\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 console.log(ridersOrder);\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 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 } 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 currentTrainingName: currentTraining[0].name,\r\n currentTrainingShortname: currentTraining[0].shortname,\r\n currentColor: color,\r\n });\r\n }\r\n };\r\n\r\n handleChange = (date) => {\r\n this.setState({\r\n date: date,\r\n 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 console.log(\"update group for task: \" + this.props.item.id);\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) => name == \"Field\" || name == \"Fold\" || name == \"Feld\";\r\n\r\n saveTraining = (onDoneCallback) => {\r\n // if (\r\n // this.isField(this.state.currentTrainingName) &&\r\n // this.state.currentColor == \"red\"\r\n // ) {\r\n\r\n // if (\r\n // this.state.selectedFieldAreaIndex < 0 ||\r\n // this.state.selectedFieldIndex < 0 ||\r\n // this.state.selectedFieldTimePeriodIndex < 0\r\n // ) {\r\n // alert(\"Please select a valid field and time for this training\");\r\n // return;\r\n // }\r\n // }\r\n\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 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 //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 let nextHorseOwnerId = this.state.horseNameArr.find(\r\n (horse) => horse.id == e.currentTarget.dataset.idf\r\n ).userid;\r\n let prevHorseOwnerId = this.state.horseNameArr.find(\r\n (horse) => horse.id == this.state.currentHorseId\r\n ).userid;\r\n\r\n if (nextHorseOwnerId != prevHorseOwnerId)\r\n this.loadFieldAreas(\r\n e.currentTarget.dataset.idf,\r\n this.state.currentTrainingName\r\n );\r\n\r\n let currentTrainerId = this.state.horseNameArr.find(\r\n (horse) => horse.id == e.currentTarget.dataset.idf\r\n ).trainer;\r\n\r\n if (!currentTrainerId) currentTrainerId = window.myid;\r\n\r\n if (e.currentTarget.dataset.idf) {\r\n this.setState({\r\n currentHorseId: e.currentTarget.dataset.idf,\r\n trainingTypesArr: this.trainingTypesForHorse(\r\n e.currentTarget.dataset.idf\r\n ),\r\n currentTrainerId: currentTrainerId,\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 currentHorseId: e.target.value,\r\n trainingTypesArr: this.trainingTypesForHorse(e.target.value),\r\n currentTrainerId: currentTrainerId,\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 //console.log(currentTimeOfDay);\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 \r\n {window.lang.addExtraTraining}\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 \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.props.options.isVetPage && (\r\n \r\n {window.lang.addExtraTraining}\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 {this.state.showReminderPopup && (\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 {props.showData.showXray && (\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\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 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 // set time\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) => name == \"Field\" || name == \"Fold\" || name == \"Feld\";\r\n render() {\r\n const { training, column, horse, date, showRider, rider, showHorseName } =\r\n this.props;\r\n if (training == null) {\r\n return (\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 \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","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 {currentElement.Name}\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 {window.lang.horse}\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 ==\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 ) : 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}\r\n {type.name}\r\n {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","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 filteredHorses,\r\n filteredTrainings,\r\n date,\r\n}) {\r\n const [fieldAreas, setFieldAreas] = useState([]);\r\n\r\n useEffect(() => {\r\n window.DataGate.getFieldAreas((code, data) => {\r\n console.log(data);\r\n if (data) setFieldAreas(data);\r\n });\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) => 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 return (\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 {\" \"}\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 React, { useEffect, 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\nimport OtherTasksSort from \"../SVGs/OtherTasksSort\";\r\n\r\nexport default function OtherTasksView({ date, generalTaskArr }) {\r\n const [fieldAreas, setFieldAreas] = useState([]);\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 /**\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 () => window.GlobalData.unsubscribe(globalDataChangeHandler);\r\n }, []);\r\n\r\n const drawSortIcon = (index) => {\r\n const handleClick = () => {\r\n let auxOrderMode = [...reorderMode];\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 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 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 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 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.reorderGeneralTasks(ids, () => {});\r\n setIsDragging(false);\r\n setGeneralTasksOfType(items, type);\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 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 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 onNewGeneralTaskClick(1)}>\r\n Add new task\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 \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
\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 \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
\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, { 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\n\r\nclass MainView extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.filteredHorses = [];\r\n this.filteredTrainings = [];\r\n this.filteredGeneralTaskArr = [];\r\n this.fieldAreas = [];\r\n }\r\n\r\n applyFilters = () => {\r\n let horseArr = [\r\n ...window.DataStorage.myHorseArray,\r\n ...window.DataStorage.notMyHorseArray,\r\n ];\r\n let trainingArray = window.DataStorage.addTrainingArr;\r\n let stablesArray = window.DataStorage.boxesAndStables;\r\n\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\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 // .filter(\r\n // (t) => t.Time == otherTasksselectedDate\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.fieldAssignment:\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\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}","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 [\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 = [...window.DataStorage.myHorseArray, ...window.DataStorage.notMyHorseArray];\r\n //fiter by type\r\n const horseType = JSON.parse(window.GlobalData.getItem(window.GlobalData.SHOW_IN_TRAINING));\r\n if (horseType == \"1\" || horseType == \"101\") { //show all\r\n } else if (horseType == \"2\") { //in training\r\n horseArr = horseArr.filter(h => h.istraining == \"1\");\r\n } else if (horseType == \"3\") { //own in training\r\n horseArr = horseArr.filter(h => h.istraining == \"1\" && h.userid == window.myid);\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(h => horseTypeIds.indexOf(h.HorseType) != -1);\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(h => h.id == item.HorseId);\r\n let trainingTypes = window.DataStorage.trainTypes.filter(i => i.owner == horse.userid);\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, duration: item.Duration, Evaluation: item.Evaluation, FarrierType: item.FarrierType, FarrierTypeName: item.FarrierTypeName, HasMultimedia: item.HasMultimedia, HorseId: item.HorseId,\r\n HorseName: item.HorseName, id: item.Id, isCanCopy: item.IsCanCopy, PaddockPeriod: item.PaddockPeriod, remark: item.Remark, ReminderType: item.ReminderType, StartTime: item.StartTime, status: item.Status,\r\n SyncTime: item.SyncTime, TimeOfDay: item.TimeOfDay, trainer: item.Trainer, Type: item.Type, U: item.U, VeterinarianType: item.VeterinarianType, VeterinarianVacType: item.VeterinarianVacType,\r\n name: currentTraining[0].name, shortname: currentTraining[0].shortname, 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(i => i.owner == horse.userid);\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(window.GlobalData.SETTINGS_FARRIER_WEEKS);\r\n if (weeks < 7) {\r\n date.setDate(date.getDate() + ((parseInt(weeks) + 1) + 7 - date.getDay()) % 7);\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(i => i.Id == window.myid);\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(i => i.Id == currentTrainerId);\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(i => i.id == horseId);\r\n let trainingTypes = window.DataStorage.trainTypes.filter(i => i.owner == horse[0].userid);\r\n let farTraining = trainingTypes.filter(i => i.IsFarrier == true);\r\n let date = new Date();\r\n let farrWeek = window.GlobalData.getItem(window.GlobalData.SETTINGS_FARRIER_WEEKS + '&' + horseId);\r\n if (!farrWeek)\r\n farrWeek = window.GlobalData.getItem(window.GlobalData.SETTINGS_FARRIER_WEEKS);\r\n if (farrWeek < 7) {\r\n date.setDate(date.getDate() + ((parseInt(farrWeek) + 1) + 7 - date.getDay()) % 7);\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(i => i.Id == window.myid);\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(i => i.Id == currentTrainerId);\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(i => i.id == item.HorseId);\r\n let trainingTypes = window.DataStorage.trainTypes.filter(i => i.owner == horse[0].userid);\r\n let farTraining = trainingTypes.filter(i => i.IsFarrier == true);\r\n let date = new Date();\r\n let weeks = window.GlobalData.getItem(window.GlobalData.SETTINGS_FARRIER_WEEKS);\r\n if (weeks < 7) {\r\n date.setDate(date.getDate() + ((parseInt(weeks) + 1) + 7 - date.getDay()) % 7);\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(i => i.Id == window.myid);\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(i => i.Id == currentTrainerId);\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 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.filter(t => t.Color == \"green\")\r\n .sort((t1, t2) => {\r\n if (t1.StartTime < t2.StartTime)\r\n return 1;\r\n if (t1.StartTime > t2.StartTime)\r\n return -1;\r\n return 0;\r\n });\r\n let tasksDone = [];\r\n arr.forEach(item => {\r\n if (!tasksDone.find(t => t.HorseId == item.HorseId) && !tasksNotDone.find(t => t.HorseId == item.HorseId)) {\r\n tasksDone.push(item);\r\n }\r\n });\r\n tasksDone = tasksDone.sort((t1, t2) => {\r\n if (t1.StartTime > t2.StartTime)\r\n return 1;\r\n if (t1.StartTime < t2.StartTime)\r\n 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 {\r\n data.map((item) => (\r\n \r\n \r\n this.onDoneToggle(item)} />\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 this.onDeleteClick(item)} />\r\n \r\n {isDone ?\r\n \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(e => data.findIndex(i => e.id == i.HorseId) === -1);\r\n horsesArr = horsesArr.sort((t1, t2) => {\r\n if (t1.name > t2.name)\r\n return 1;\r\n if (t1.name < t2.name)\r\n 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 \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([window.lang.shoeDate, window.lang.horse, \"Type\", \"Reg. nr\", \"Chipid\",\r\n window.lang.shoeDaysSinceLast, window.lang.shoeType, \"Notification\", window.lang.remark]);\r\n let tasksNotDone = this.getTasksNotDone(this.filterData());\r\n tasksNotDone.map(item => tasksNotDoneReportArr.push([item.StartTime, item.HorseName, item.HorseType ? item.HorseType : \"None\", item.RFBid, item.Chipid,\r\n '', item.FarrierTypeName, this.reminderNames[item.ReminderType], item.Remark]));\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([window.lang.shoeDate, window.lang.horse, \"Type\", \"Reg. nr\", \"Chipid\",\r\n window.lang.shoeDaysSinceLast, window.lang.shoeType, \"Notification\", window.lang.remark]);\r\n let tasksDone = this.getTasksDone(this.filterData(), tasksNotDone);\r\n tasksDone.map(item => tasksDoneReportArr.push([item.StartTime, item.HorseName, item.HorseType ? item.HorseType : \"None\", item.RFBid, item.Chipid,\r\n -1 * this.getDaysLeft(item.StartTime), item.FarrierTypeName, this.reminderNames[item.ReminderType], item.Remark]));\r\n reportDataArr.push({\r\n header: 'Tasks done',\r\n data: tasksDoneReportArr\r\n });\r\n\r\n window.DataGate.makePdf(reportDataArr, \"Farrier report\", function (data, url) {\r\n const a = document.createElement('a');\r\n a.style.display = 'none';\r\n a.href = url;\r\n a.target = '_blank';\r\n a.download = 'Report.pdf';\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n });\r\n }\r\n\r\n onMakeXlsxClick = () => {\r\n window.Spinner.show();\r\n let reportDataArr = [];\r\n let tasksNotDoneReportArr = [];\r\n tasksNotDoneReportArr.push([window.lang.shoeDate, window.lang.horse, \"Type\", \"Reg. nr\", \"Chipid\",\r\n window.lang.shoeDaysSinceLast, window.lang.shoeType, \"Notification\", window.lang.remark]);\r\n let tasksNotDone = this.getTasksNotDone(this.filterData());\r\n tasksNotDone.map(item => tasksNotDoneReportArr.push([item.StartTime, item.HorseName, item.HorseType ? item.HorseType : \"None\", item.RFBid, item.Chipid,\r\n '', item.FarrierTypeName, this.reminderNames[item.ReminderType], item.Remark]));\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([window.lang.shoeDate, window.lang.horse, \"Type\", \"Reg. nr\", \"Chipid\",\r\n window.lang.shoeDaysSinceLast, window.lang.shoeType, \"Notification\", window.lang.remark]);\r\n let tasksDone = this.getTasksDone(this.filterData(), tasksNotDone);\r\n tasksDone.map(item => tasksDoneReportArr.push([item.StartTime, item.HorseName, item.HorseType ? item.HorseType : \"None\", item.RFBid, item.Chipid,\r\n -1 * this.getDaysLeft(item.StartTime), item.FarrierTypeName, this.reminderNames[item.ReminderType], item.Remark]));\r\n reportDataArr.push({\r\n header: 'Tasks done',\r\n data: tasksDoneReportArr\r\n });\r\n window.DataGate.makeXlsx(reportDataArr, \"Farrier report\", 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 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 \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

{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\n\r\nexport default FarrierView;","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 \"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 \"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 \"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 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
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 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 './XrayView.css';\r\nimport MultimediaHelper from \"./../../Multimedia/MultimediaHelper\";\r\n\r\nexport default class XrayView extends Component {\r\n static DropboxToken = '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 showFullScreenView: false,\r\n showFullScreenLoading: false,\r\n dataIndex: 0,\r\n plusFileIndex: 0\r\n }\r\n this.dropbox = new window.Dropbox.Dropbox({ accessToken: XrayView.DropboxToken });\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 xrayData: data\r\n }, window.Spinner.hide());\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.dropbox.filesListFolder({ path: this.path })\r\n .then((response) => {\r\n if (response.entries.length) {\r\n data[i].plusFiles = response.entries;\r\n }\r\n this.setState({\r\n xrayData: data\r\n });\r\n })\r\n .catch((error) => {\r\n });\r\n }\r\n }\r\n } else\r\n 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 = !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(JSON.stringify(this.state.xrayData.filter(i => i.plusFiles)));\r\n let selectedPlusFilesItems = plusFilesItems.map(j => j.plusFiles).flat().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.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('download', decodeURI(selectedPlusFilesItems[i].name));\r\n document.body.appendChild(link);\r\n link.click();\r\n })\r\n }\r\n }\r\n\r\n onViewDocumentClick = (index, itemIndex) => {\r\n let xrayData = this.state.xrayData;\r\n var item = xrayData[index].plusFiles[itemIndex];\r\n this.dropbox.filesGetTemporaryLink({ path: item.path_display })\r\n .then((response) => {\r\n let currentItem = response.metadata;\r\n let ext = currentItem.path_display.split('.').pop().toLowerCase();\r\n if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\r\n item.type = 1;\r\n item.fullUrl = response.link;\r\n this.setState({\r\n xrayData: xrayData,\r\n showFullScreenView: true,\r\n showFullScreenLoading: false,\r\n dataIndex: index,\r\n plusFileIndex: itemIndex\r\n })\r\n } else if (ext == \"mp4\" || ext == \"mov\" || ext == \"wmv\" || ext == \"avi\") {\r\n item.type = 2;\r\n item.fullUrl = response.link;\r\n this.setState({\r\n xrayData: xrayData,\r\n showFullScreenView: true,\r\n showFullScreenLoading: false,\r\n dataIndex: index,\r\n plusFileIndex: itemIndex\r\n })\r\n } else {\r\n const a = document.createElement('a');\r\n a.style.display = 'none';\r\n a.href = response.link;\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 })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n\r\n renderFullscreenItem = () => {\r\n const item = this.state.xrayData[this.state.dataIndex].plusFiles[this.state.plusFileIndex];\r\n switch (item.type) {\r\n case 1:\r\n return ;\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 \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 {!this.state.multiSelectMode ?\r\n
{window.lang.select}
\r\n :\r\n
\r\n \r\n
{window.lang.cancel2}
\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 \r\n X-ray\r\n
{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 \r\n ))\r\n }\r\n \r\n
\r\n {this.state.multiSelectMode &&\r\n this.selectFile(index, fileIndex)} />\r\n }\r\n \r\n {decodeURI(file.name)}\r\n this.onViewDocumentClick(index, fileIndex)} />\r\n
\r\n }\r\n
\r\n
\r\n {this.state.showFullScreenView &&\r\n
\r\n {!this.state.showFullScreenLoading &&\r\n this.renderFullscreenItem()\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 = window.DataStorage.herpesVaccinationTypes[item[\"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(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, lastVaccination: lastDate.formatDesh(), nextVaccination: maxDate.formatDesh(), horse: vaccination[i].HorseName,\r\n daysLeft: daysLeft, type: type.Name, remarks: '', horseid: vaccination[i].horseid, vtype: type, HorseType: vaccination[i].HorseType,\r\n RFBid: vaccination[i].RFBid, Chipid: vaccination[i].Chipid, 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(e => vaccinationData.findIndex(i => e.id == i.horseid) === -1);\r\n remainingHorses = remainingHorses.sort((t1, t2) => {\r\n if (t1.name.toLowerCase() > t2.name.toLowerCase())\r\n return 1;\r\n if (t1.name.toLowerCase() < t2.name.toLowerCase())\r\n 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 = window.DataStorage.herpesVaccinationTypes[lastItem[\"vtype\"] - 1].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, () => { this.loadData() });\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, () => { this.loadData() });\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 = window.DataStorage.herpesVaccinationTypes[lastItem[\"vtype\"] - 1].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, () => { this.loadData() });\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([\"Last Vaccination Date\", \"Next Vaccination Date\", window.lang.horse, \"Type\", \"Reg. nr\",\r\n \"Chipid\", window.lang.daysLeft, window.lang.vaccinationType, window.lang.stable]);\r\n let vaccData = this.state.vaccinationData;\r\n vaccData.map(i => tasksReportArr.push([i.lastVaccination, i.nextVaccination, i.horse, i.HorseType ? i.HorseType : \"None\",\r\n i.RFBid, i.Chipid, i.daysLeft, i.type, i.stable]));\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(reportDataArr, remainingHorsesReportData, \"Herpes Vaccination report\", function (data, url) {\r\n const a = document.createElement('a');\r\n a.style.display = 'none';\r\n a.href = url;\r\n a.target = '_blank';\r\n a.download = 'Report.pdf';\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n });\r\n }\r\n\r\n onMakeXlsxClick = () => {\r\n window.Spinner.show();\r\n let reportDataArr = [];\r\n let tasksReportArr = [];\r\n tasksReportArr.push([\"Last Vaccination Date\", \"Next Vaccination Date\", window.lang.horse, \"Type\", \"Reg. nr\",\r\n \"Chipid\", window.lang.daysLeft, window.lang.vaccinationType, window.lang.stable]);\r\n let vaccData = this.state.vaccinationData;\r\n vaccData.map(i => tasksReportArr.push([i.lastVaccination, i.nextVaccination, i.horse, i.HorseType ? i.HorseType : \"None\",\r\n i.RFBid, i.Chipid, i.daysLeft, i.type, i.stable]));\r\n reportDataArr.push({\r\n header: '',\r\n data: tasksReportArr\r\n });\r\n\r\n window.DataGate.makeXlsx(reportDataArr, \"Herpes Vaccination report\", 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 render() {\r\n const vaccinationData = this.state.vaccinationData.sort((a, b) => a.daysLeft - b.daysLeft);\r\n const { remainingHorses } = 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 {vaccinationData.length ?\r\n vaccinationData.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 :\r\n <>\r\n }\r\n \r\n
\r\n Last Vaccination Date\r\n \r\n Next Vaccination Date\r\n \r\n {window.lang.horse}\r\n \r\n Type\r\n \r\n Reg. nr\r\n \r\n Chipid\r\n \r\n {window.lang.daysLeft}\r\n \r\n {window.lang.vaccinationType}\r\n \r\n {window.lang.remark}\r\n \r\n \r\n
\r\n {i.lastVaccination}\r\n \r\n {i.nextVaccination}\r\n \r\n {i.horse}\r\n \r\n {i.HorseType ? i.HorseType : \"None\"}\r\n \r\n {i.RFBid}\r\n \r\n {i.Chipid}\r\n 0 ? { color: 'black' } : { color: 'red' }}>\r\n {i.daysLeft}\r\n \r\n {i.type}\r\n \r\n {i.remarks}\r\n \r\n this.onEditVaccinationButtonClick(i)} />\r\n this.onDeleteButtonClick(i)} />\r\n \r\n \r\n
\r\n

{window.lang.remainingHorsesVacc}

\r\n \r\n \r\n \r\n \r\n \r\n \r\n {remainingHorses.length ?\r\n remainingHorses.map(i =>\r\n \r\n \r\n \r\n \r\n )\r\n : <>\r\n }\r\n \r\n
{window.lang.horse}
{i.name}\r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default HerpesVaccinationView","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(h => h.id == props.horseId);\r\n this.userOwnerId = this.horse.userid;\r\n this.state = {\r\n hasChanges: false,\r\n name: this.horse.name,\r\n imageUrl: this.horse.LogoFile != null ? window.DataGate.baseurl + this.horse.LogoFile : \"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(this.horse.DepartureDate).formatDesh(),\r\n height: this.horse.Height,\r\n stableBoxId: 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: 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 == \"\")\r\n 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 = 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 = GlobalData.getItem(GlobalData.SHOW_HORSE_FOLLOWS_RIDER) == 1;\r\n }\r\n\r\n componentDidMount() {\r\n window.$(\"#addHorsePageContent\").trigger(\"create\");\r\n if (window.DataStorage.boxesAndStables == null || window.DataStorage.boxesAndStables.length == 0) {\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(h => h.id == this.props.horseId);\r\n if (horse && horse.userid != window.myid) {\r\n let horseOwner = window.DataStorage.allUsers.find(i => i.Id == horse.userid);\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(j => j.Id == horseLabelIdArr[i]);\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 => ({ value: t.Id, label: t.Label }))\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\r\n if (this.state.hasChanges) {\r\n if (this.state.name.length == 0) {\r\n navigator.notification.alert(window.lang.enterDataAndPushPutton, null, 'Equestrians App');\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 = this.props.horseId != -1 ? this.horse.userid : this.userOwnerId;\r\n let defaultUserTypes = this.props.horseId != -1 ? this.horse.defaultusertypes : this.userOwnerId;\r\n let vacprogramm = this.props.horseId != -1 ? this.horse.vacprogramm : 1;\r\n let selectedLabels = JSON.stringify(this.state.selectedLabels.map(i => i.value));\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(this.state.imageUrl.indexOf(\"base64,\") + 7);\r\n }\r\n\r\n DataGateActions.insertOrUpdateHorse(horseObj, logo, this.props.horseId == -1, () => {\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(i => i.IDBox == boxIdOld).InUse = \"N\";\r\n }\r\n if (boxIdNew != null && boxIdNew != \"\") {\r\n window.db.updateBoxInUseById(boxIdNew, \"Y\");\r\n window.DataStorage.boxesAndStables.find(i => i.IDBox == boxIdNew).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.getDate().toString().padStart(2, '0')}-${dt.getFullYear().toString().padStart(4, '0')} ${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().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 = 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.getDate().toString().padStart(2, '0')}-${dt.getFullYear().toString().padStart(4, '0')} ${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().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 if (this.state.isvisible == 0 && window.Training.hiddenHorses.indexOf(this.props.horseId) == -1) {\r\n window.Training.hiddenHorses.push(this.props.horseId);\r\n }\r\n else if (this.state.isvisible == 1 && window.Training.hiddenHorses.indexOf(this.props.horseId) != -1) {\r\n window.Training.hiddenHorses.splice(window.Training.hiddenHorses.indexOf(this.props.horseId), 1);\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 if (window.inUseStables == 'Y') {\r\n let userId = this.horse ? this.horse.userid : this.userOwnerId;\r\n let resultboxes = boxes.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 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({ key: selectedBox.IDBox, value: (selectedBox.StableName + \" \" + selectedBox.BoxName) });\r\n }\r\n }\r\n return resultboxes;\r\n } else {\r\n let userId = this.horse ? this.horse.userid : this.userOwnerId;\r\n let stables = boxes.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(JSON.stringify(this.state.selectedLabels));\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(newId, newValue[newValue.length - 1].label, window.myid, () => {\r\n });\r\n window.DataStorage.horseLabels.push({ Id: newId, Label: newValue[newValue.length - 1].label, UserId: window.myid });\r\n } else {\r\n window.DataGate.createHorseLabels(newId, newValue[newValue.length - 1].label, this.horse.userid, () => {\r\n });\r\n }\r\n labelsArr.push({ value: newId, label: newValue[newValue.length - 1].label });\r\n selectedLabelsArr.push({ value: newId, label: newValue[newValue.length - 1].label }); \r\n window.TopMenu.Self.sidebarExtention.refreshSideMenu();\r\n break;\r\n case 'select-option':\r\n selectedLabelsArr.push({ value: newValue[newValue.length - 1].value, label: newValue[newValue.length - 1].label });\r\n break;\r\n case 'remove-value':\r\n selectedLabelsArr = selectedLabelsArr.filter(i => i.value != actionMeta.removedValue.value);\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 { name, bornIn, regNr, imageUrl, arriveDate, departureDate, height,\r\n stableBoxId, gender, horseType, colorId, trainer, istraining, isvisible, chipid, trainersArr, labels, selectedLabels } = this.state;\r\n\r\n const stableArr = [{ key: '', value: window.lang.none }, ...this.getStableList()];\r\n const genderArr = window.DataStorage.getHorseGenderArr().map((g, i) => ({ key: i, value: g }));\r\n\r\n let horseTypeArr = window.DataStorage.horseTypes.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.filter(t => t.UserID == this.userOwnerId)\r\n .map(t => ({ key: t.Id, value: t.ColorName }));\r\n colorArr = [{ key: '020b69ff-6210-41a9-82b0-122091bf88a0', value: window.lang.none }, ...colorArr];\r\n return (\r\n
\r\n
\r\n this.props.onEditBack()} />\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 {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
\r\n }\r\n {this.isShowGender &&\r\n
\r\n
{window.lang.gender}
\r\n \r\n
\r\n }\r\n {this.isShowType &&\r\n
\r\n
{window.lang.type}
\r\n \r\n
\r\n }\r\n {this.isShowColor &&\r\n
\r\n
{window.lang.color}
\r\n \r\n
\r\n }\r\n {this.isShowHorseFollowsRider &&\r\n
\r\n
{window.lang.horseFollowsRider}
\r\n \r\n
\r\n }\r\n {this.isShowInTraining &&\r\n
\r\n
{window.lang.showInTraining}
\r\n this.onToggleClick(\"istraining\")} checked={istraining == \"1\"} />\r\n
\r\n }\r\n {this.isShowIsVisible &&\r\n
\r\n
{window.lang.isVisible}
\r\n this.onToggleClick(\"isvisible\")} checked={isvisible == \"1\"} />\r\n
\r\n }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.horseId != -1 && this.horse.userid == window.myid &&\r\n \r\n }\r\n {this.props.horseId != -1 && this.horse.userid == window.myid &&\r\n (this.horse.u == 'u' ?\r\n \r\n :\r\n <>\r\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 HorseEditPage;","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(h => h.id == horseId);\r\n\r\n return (\r\n
\r\n
\r\n this.onSaveClick()} />\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{window.lang.parents}{window.lang.grandparents}{window.lang.greatGrandparents}
\r\n
{window.lang.stallion}
\r\n \r\n
\r\n
{window.lang.stallion}
\r\n \r\n
\r\n
{window.lang.stallion}
\r\n \r\n
\r\n
{window.lang.mare}
\r\n \r\n
\r\n
{window.lang.mare}
\r\n \r\n
\r\n
{window.lang.stallion}
\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 \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.mare}
\r\n \r\n
\r\n
{window.lang.stallion}
\r\n \r\n
\r\n
{window.lang.stallion}
\r\n \r\n
\r\n
{window.lang.mare}
\r\n \r\n
\r\n
{window.lang.mare}
\r\n \r\n
\r\n
{window.lang.stallion}
\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\nexport default PedigreePage;","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 (paperOwner != null && paperOwner[0].PaperOwner != null && paperOwner[0].PaperOwner != '') {\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(item.Id, item.Name, item.Company, item.Address, item.City, item.Country, item.Phone, item.Email, () => {\r\n window.Spinner.hide();\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(item.Id, item.Name, item.Company, item.Address, item.City, item.Country, item.Phone, item.Email, () => {\r\n window.Spinner.hide();\r\n });\r\n } else {\r\n navigator.notification.confirm(\"Please, enter Owner's Name\", function (buttonIndex) {\r\n }, 'Equestrians App', 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.filter(o => o.isSelected).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(h => h.id == horseId);\r\n\r\n const selectedOwners = this.state.owners.filter(o => o.isSelected);\r\n\r\n const options = this.state.owners.map(o => ({ value: o.Id, label: o.Name }));\r\n const values = this.state.owners.filter(o => o.isSelected).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
{horse.name}
\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
Company
\r\n this.onInputChange(e, item)}\r\n disabled={!item.isEdit} />\r\n
\r\n
Address
\r\n this.onInputChange(e, item)}\r\n disabled={!item.isEdit} />\r\n
\r\n
City
\r\n this.onInputChange(e, item)}\r\n disabled={!item.isEdit} />\r\n
\r\n
Country
\r\n this.onInputChange(e, item)}\r\n disabled={!item.isEdit} />\r\n
\r\n
Phone
\r\n this.onInputChange(e, item)}\r\n disabled={!item.isEdit} />\r\n
\r\n
Email
\r\n this.onInputChange(e, item)}\r\n disabled={!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\nexport default OwnerInfoPage;","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(h => h.id == this.props.horseId);\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) { //save main note\r\n if (this.state.isChanged) {\r\n window.Spinner.show();\r\n window.db.updateNoteByHorse(this.props.horseId, this.state.mainNote, () => {\r\n let horse = window.DataStorage.getAllHorses().find(h => h.id == this.props.horseId);\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 } else {\r\n if (callback) callback();\r\n }\r\n } else { //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(\"Do you want delete note?\", (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 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(noteNew.Id, noteNew.IdHorse, noteNew.HeaderNote, noteNew.IsPrice, noteNew.OrderBy, () => {\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 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(h => h.id == horseId);\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 \r\n ))}\r\n {!isAddShow ?\r\n \r\n :\r\n <>\r\n \r\n \r\n \r\n }\r\n
\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;","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(h => h.id == horseId);\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({ 'Date': d.toLocaleString(), 'Email': data[i]['Email'] ? data[i]['Email'] : 'Updated by server', 'LogData': data[i]['LogData'] });\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
DateTimeUserAction
{i.Date}{i.Email}{i.LogData}
\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}","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(h => h.id == this.props.horseId);\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 { value: 'Købt erhverv uden brugtmoms', label: 'Købt erhverv uden brugtmoms' },\r\n { value: 'Købt erhverv brugtvognsordning', label: 'Købt erhverv brugtvognsordning' },\r\n { value: 'Købt privat(ikke cvr nr)', label: 'Købt privat(ikke cvr nr)' }\r\n ];\r\n let index = horseTypeData.findIndex(i => i.HorseTypeId == horse.HorseType);\r\n if (priceData.length) {\r\n let priceForPotentialDate = 0;\r\n let costPriceActual = priceData[0].PurchasePrice + priceData[0].CostPriceAccumulated;\r\n if (index != -1) {\r\n let parseDay = this.parseDateStartDay(priceData[0].PotentialDate).formatDesh();\r\n let monthDifference = new Date(parseDay).getMonth() - new Date().getMonth() + (12 * (new Date(parseDay).getFullYear() - new Date().getFullYear()));\r\n if (monthDifference < 0)\r\n monthDifference = 0;\r\n priceForPotentialDate = costPriceActual + (monthDifference * horseTypeData[index].Price);\r\n var showPriceData = true;\r\n var horseTypePrice = horseTypeData[index].Price;\r\n }\r\n else {\r\n priceForPotentialDate = costPriceActual;\r\n var showPriceData = false;\r\n var horseTypePrice = 0;\r\n }\r\n var price = 'Salgspris: ' + priceData[0].SellingPrice.toString().replace('.', ',').replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, '.') + '\\n'\r\n + 'Moms: ' + priceData[0].VAT + '\\n'\r\n + 'Vurdering aktuelt: ' + priceData[0].CurrentAssessment.toString().replace('.', ',').replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, '.') + '\\n'\r\n + 'Kostpris aktuel: ' + costPriceActual.toString().replace('.', ',').replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, '.') + '\\n'\r\n + 'Potentiel vurdering: ' + priceData[0].PotentialAssessment.toString().replace('.', ',').replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, '.') + '\\n'\r\n + '\\n' + priceData[0].Notes;\r\n var costPriceData = 'Indkøbspris: ' + priceData[0].PurchasePrice.toString().replace('.', ',').replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, '.') + '\\n\\n'\r\n + 'Kostpris aktuel: ' + costPriceActual.toString().replace('.', ',').replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, '.') + '\\n'\r\n + 'Vurdering aktuelt: ' + priceData[0].CurrentAssessment.toString().replace('.', ',').replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, '.') + '\\n'\r\n + 'Vurderingsdato: ' + priceData[0].ValuationDate + '\\n'\r\n + 'Kostpris fremskreven: ' + priceForPotentialDate.toString().replace('.', ',').replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, '.') + '\\n'\r\n + 'Potentiel vurdering: ' + priceData[0].PotentialAssessment.toString().replace('.', ',').replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, '.') + '\\n'\r\n + 'Potentiel dato: ' + 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(priceData[0].ValuationDate).formatDesh(),\r\n Remark: priceData[0].Remark,\r\n PotentialAssessment: priceData[0].PotentialAssessment,\r\n PotentialDate: this.parseDateStartDay(priceData[0].PotentialDate).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)\r\n var showPriceData = true;\r\n else\r\n 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 = 'Salgspris: \\n Moms: \\n'\r\n + 'Vurdering aktuelt: \\n Kostpris aktuel: \\n'\r\n + 'Potentiel vurdering: \\n';\r\n var costPriceData = '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 == \"\")\r\n 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)\r\n 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(h => h.id == this.props.horseId);\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)\r\n callback();\r\n });\r\n } else {\r\n if (callback)\r\n callback();\r\n }\r\n }\r\n if (callback)\r\n callback();\r\n }\r\n\r\n deleteNote = (note) => {\r\n navigator.notification.confirm(\"Do you want delete note?\", (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 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(noteNew.Id, noteNew.IdHorse, noteNew.HeaderNote, noteNew.IsPrice, noteNew.OrderBy, () => {\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 onSaveClick = () => {\r\n if (this.state.showPriceData)\r\n 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(firstDefaultNote.Id, firstDefaultNote.IdHorse, firstDefaultNote.HeaderNote, firstDefaultNote.IsPrice, firstDefaultNote.OrderBy, () => {\r\n this.setState({\r\n notes: [...this.state.notes, firstDefaultNote],\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(secondDefaultNote.Id, secondDefaultNote.IdHorse, secondDefaultNote.HeaderNote, secondDefaultNote.IsPrice, secondDefaultNote.OrderBy, () => {\r\n this.setState({\r\n notes: [...this.state.notes, secondDefaultNote],\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)\r\n return;\r\n\r\n let inputData = JSON.parse(JSON.stringify(this.state.inputData));\r\n inputData.ValuationDate = !isNaN(inputData.ValuationDate) ? new Date().formatDeshStartDay() : new Date(inputData.ValuationDate).formatDeshStartDay();\r\n inputData.PotentialDate = !isNaN(inputData.PotentialDate) ? new Date().formatDeshStartDay() : new Date(inputData.PotentialDate).formatDeshStartDay();\r\n inputData.SellingPrice = inputData.SellingPrice ? parseFloat(inputData.SellingPrice.toString().replace(',', '.')) : 0;\r\n inputData.PurchasePrice = inputData.PurchasePrice ? parseFloat(inputData.PurchasePrice.toString().replace(',', '.')) : 0;\r\n inputData.CurrentAssessment = inputData.CurrentAssessment ? parseFloat(inputData.CurrentAssessment.toString().replace(',', '.')) : 0;\r\n inputData.PotentialAssessment = inputData.PotentialAssessment ? parseFloat(inputData.PotentialAssessment.toString().replace(',', '.')) : 0;\r\n inputData.CostPriceActual = inputData.CostPriceActual ? parseFloat(inputData.CostPriceActual.toString().replace(',', '.')) : 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 ? parseFloat(inputData.CostPriceAccumulated.toString().replace(',', '.')) : 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)\r\n 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)\r\n 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(h => h.id == horseId);\r\n const { notes, selectedNoteIndex, isAddShow, inputData, selectedInput, selectedPrice, priceData, selectedCostPrice, costPriceData, showPriceData, vatArr } = this.state;\r\n let noteText = '';\r\n if (notes) {\r\n if (notes.length) {\r\n if (notes[0].TextNote)\r\n noteText = notes[0].TextNote;\r\n else\r\n 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\r\n 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 \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 : <>\r\n }\r\n {showPriceData ?\r\n \r\n : <>\r\n }\r\n {showPriceData ?\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 {shareArr.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 Salgspris\r\n
\r\n {\r\n this.onInputDataChange('SellingPrice', e.target.value.toString().replaceAll(/\\./g, ''))\r\n }} />\r\n
\r\n Indkøbspris\r\n
\r\n {inputData.PurchasePrice && this.state.inputDataReadOnly ?\r\n \r\n :\r\n {\r\n this.onInputDataChange('PurchasePrice', e.target.value.toString().replaceAll(/\\./g, ''))\r\n }} />\r\n }\r\n
\r\n Accumulered kostpris\r\n
\r\n {inputData.CostPriceAccumulated && this.state.inputDataReadOnly ?\r\n \r\n :\r\n {\r\n this.onInputDataChange('CostPriceAccumulated', e.target.value.toString().replaceAll(/\\./g, ''))\r\n }} />\r\n }\r\n
\r\n Moms\r\n
\r\n {inputData.VAT ?\r\n vatArr.length ?\r\n \r\n : <>\r\n :\r\n vatArr.length ?\r\n \r\n : <>\r\n }\r\n
\r\n Vurdering aktuelt\r\n
\r\n {\r\n this.onInputDataChange('CurrentAssessment', e.target.value.toString().replaceAll(/\\./g, ''))\r\n }} />\r\n
\r\n Vurderingsdato\r\n
\r\n { this.onInputDataChange('ValuationDate', e.target.value) }} />\r\n
\r\n Bemærkning\r\n
\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default ResultsPage;","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 = this.state.equipment != null ? this.state.equipment : '';\r\n window.DataStorage.getAllHorses().find(h => h.id == this.props.horseId).Equipment = equipmentStr;\r\n window.db.updateEquipmentByHorse(this.props.horseId, equipmentStr);\r\n if (callback)\r\n 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(h => h.id == this.props.horseId);\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.equipment}\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\nexport default EquipmentPage;","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, vdate: lastDate.formatDesh(), nextVaccination: maxDate.formatDesh(), type: type.Name, horseid: data[i].horseid, 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, () => { this.loadData() });\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(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.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 = 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, () => { this.loadData() });\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(h => h.id == this.props.horseId);\r\n\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.vaccination}\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 {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\r\n \r\n {window.lang.date}\r\n \r\n {window.lang.nextVaccinationShort}\r\n \r\n \r\n
\r\n {currentElement.type}\r\n \r\n {currentElement.vdate}\r\n \r\n {index == vaccinationData.length - 1 ? currentElement.nextVaccination : ''}\r\n \r\n this.onEditClick(currentElement)} />\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 \r\n
\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default VaccinationPage","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 [\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(h => h.id == this.props.horseId);\r\n this.getFarrierTypes((horse.userid), (fTrainingTypes) => {\r\n this.farrierTrainingTypes = fTrainingTypes;\r\n window.db.getFarrierTrainingsByHorse(this.props.horseId, window.myid, (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 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({ \"UserId\": userId, \"Name\": window.lang.shoeType1, \"OrderC\": 1 }, () => {\r\n window.db.insertFarrierType({ \"UserId\": userId, \"Name\": window.lang.shoeType2, \"OrderC\": 2 }, () => {\r\n window.db.insertFarrierType({ \"UserId\": userId, \"Name\": window.lang.shoeType3, \"OrderC\": 3 }, () => {\r\n window.db.insertFarrierType({ \"UserId\": userId, \"Name\": window.lang.shoeType4, \"OrderC\": 4 }, () => {\r\n callback();\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(i => i.owner == this.state.horse.userid);\r\n let farTraining = trainingTypes.filter(i => i.IsFarrier == true);\r\n var date = new Date();\r\n if (!isDone)\r\n date = new Date(date.setDate(date.getDate() + 35));\r\n let currentTrainerId = window.DataStorage.getAllHorses().find(i => i.id == this.state.horse.id).trainer;\r\n if (!currentTrainerId)\r\n var currentTrainer = window.DataStorage.allUsers.find(i => i.Id == window.myid);\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(i => i.Id == currentTrainerId);\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(d => d.id == item.id);\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(d => d.id == id);\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(i => i.Id == trainingItem.trainer);\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(h => h.id == this.props.horseId);\r\n\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.shoes}\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 \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
Done {window.lang.planedFarrier}{window.lang.shoeType}Notification{window.lang.remark}
\r\n this.onDoneToggle(i)} />\r\n \r\n {i.starttime}\r\n \r\n {this.getFarrierTypeName(i.FarrierType)}\r\n \r\n {this.reminderNames[i.ReminderType]}\r\n \r\n {i.remark}\r\n \r\n this.onEditButtonClick(i.id)} />\r\n this.onDeleteButtonClick(i.id)} />\r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default FarrierPage","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(h => h.id == this.props.horseId);\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.teeth}\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 {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}\r\n \r\n {window.lang.teethNextVisit}\r\n
{Date.reformatToDMY(i.TDateFirst)}{Date.reformatToDMY(i.TDateSecond)}
\r\n \r\n \r\n \r\n \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 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\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(\"\", (data) => {\r\n //this.setState({\r\n // veterinarianData: vetData\r\n //}, window.Spinner.hide());\r\n\r\n this.path = `/Xray/${vetData[i].id}`;\r\n this.dropbox\r\n .filesListFolder({ path: this.path })\r\n .then((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.entries.length) {\r\n plusFiles = [...plusFiles, ...response.entries];\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 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 //let multimediaItems = JSON.parse(JSON.stringify(this.state.veterinarianData.filter(i => i.multimedia.length)));\r\n //let selectedMultimediaItems = multimediaItems.map(j => j.multimedia).flat().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 //if (selectedMultimediaItems.length != 0) {\r\n // this.helper.downloadItems(selectedMultimediaItems, () => {\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 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 currentItem = response.metadata;\r\n let ext = currentItem.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 item.type = 1;\r\n item.fullUrl = response.link;\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 (\r\n ext == \"mp4\" ||\r\n ext == \"mov\" ||\r\n ext == \"wmv\" ||\r\n ext == \"avi\"\r\n ) {\r\n item.type = 2;\r\n item.fullUrl = response.link;\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.link,\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.link,\r\n });\r\n } else {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = response.link;\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 })\r\n .catch(function (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 = 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, () => { this.loadData() });\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 = window.DataStorage.herpesVaccinationTypes[lastItem[\"vtype\"] - 1].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, () => { this.loadData() });\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(h => h.id == this.props.horseId);\r\n\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.herpesVaccination}\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 {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\r\n \r\n {window.lang.date}\r\n \r\n {window.lang.nextVaccinationShort}\r\n \r\n \r\n
\r\n {currentElement.type}\r\n \r\n {currentElement.vdate}\r\n \r\n {index == vaccinationData.length - 1 ? currentElement.nextVaccination : ''}\r\n \r\n this.onEditClick(currentElement)} />\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 \r\n
\r\n {/**/}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default HerpesVaccinationPage","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 ? this.setState({ hOpenHorse: 0 }) : this.setState({ hOpenHorse: 1 })\r\n }\r\n\r\n onHSeeVETClick = () => {\r\n this.state.hSeeVET ? this.setState({ hSeeVET: 0 }) : this.setState({ hSeeVET: 1 })\r\n }\r\n\r\n onHWriteClick = () => {\r\n this.state.hWrite ? this.setState({ hWrite: 0 }) : this.setState({ hWrite: 1 })\r\n }\r\n\r\n onHSeePriceInReportClick = () => {\r\n this.state.hSeePriceInReport ? this.setState({ hSeePriceInReport: 0 }) : this.setState({ hSeePriceInReport: 1 })\r\n }\r\n\r\n onTShowSmileOnTaskClick = () => {\r\n this.state.tShowSmileOnTask ? this.setState({ tShowSmileOnTask: 0 }) : this.setState({ tShowSmileOnTask: 1 })\r\n }\r\n\r\n onRSeeHorseDataClick = () => {\r\n this.state.rSeeHorseData ? this.setState({ rSeeHorseData: 0 }) : this.setState({ rSeeHorseData: 1 })\r\n }\r\n\r\n onVDeleteDayClick = () => {\r\n this.state.vDeleteDay ? this.setState({ vDeleteDay: 0 }) : this.setState({ vDeleteDay: 1 })\r\n }\r\n\r\n onVCopyAllHorsesClick = () => {\r\n this.state.vCopyAllHorses ? this.setState({ vCopyAllHorses: 0 }) : this.setState({ vCopyAllHorses: 1 })\r\n }\r\n\r\n onOKClick = () => {\r\n const { roleId, hOpenHorse, hSeeVET, hWrite, hSeePriceInReport, tShowSmileOnTask, rSeeHorseData, vDeleteDay, vCopyAllHorses, hCreateOnMyAccount } = this.state;\r\n window.Spinner.show();\r\n window.DataGate.editRiderRole(roleId, hOpenHorse, hSeeVET, hWrite, hSeePriceInReport, tShowSmileOnTask, rSeeHorseData, vDeleteDay, vCopyAllHorses, hCreateOnMyAccount, () => {\r\n window.Spinner.hide();\r\n this.onCancelClick();\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 { dataArr, OrderC, hOpenHorse, hSeeVET, hWrite, hSeePriceInReport, tShowSmileOnTask, rSeeHorseData, vDeleteDay, vCopyAllHorses, hCreateOnMyAccount } = 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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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.permissionForHorses}\r\n

\r\n
\r\n {window.lang.permissionCreateHorseOnMyAccount}\r\n \r\n this.onToggleChange(\"hCreateOnMyAccount\")} />\r\n
\r\n {window.lang.permissionOpenHorse}\r\n \r\n \r\n
\r\n {window.lang.permissionSeeVET}\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 {window.lang.permissionWrite}\r\n \r\n \r\n
\r\n

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

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

Permission for Reports

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

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

\r\n
\r\n {window.lang.permissionDeleteDay}\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\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}","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)\r\n return -1;\r\n if (a.OrderC > b.OrderC)\r\n 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(Math.uuid(), window.myid, this.state.newRole, () => {\r\n window.Spinner.hide();\r\n this.setState({\r\n newRole: ''\r\n }, this.loadData());\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)\r\n return;\r\n\r\n window.DataGate.swipeRiderRoleOrder(this.state.rolesArr[itemIndex].Id, this.state.rolesArr[itemIndex + 1].Id, () => {\r\n this.loadData();\r\n });\r\n }\r\n\r\n onOrderUpClick = (item, itemIndex) => {\r\n if (itemIndex <= 0)\r\n return;\r\n\r\n window.DataGate.swipeRiderRoleOrder(this.state.rolesArr[itemIndex].Id, this.state.rolesArr[itemIndex - 1].Id, () => {\r\n this.loadData();\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
NameEditDeleteOrder
\r\n {item.Name}\r\n \r\n \r\n \r\n \r\n \r\n this.onOrderDownClick(item, itemIndex)} />\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
\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}","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 };\r\n this.sharedUsersData = [];\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.getAllUsersExceptId(window.myid, (data) => {\r\n window.db.getLocalSettingsById(window.myid, (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 });\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 },\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 myHorsesArr = this.state.myHorsesArr;\r\n let currentIndex = myHorsesArr.findIndex((i) => i.horseData.id == horseId);\r\n myHorsesArr[currentIndex].shared = !myHorsesArr[currentIndex].shared;\r\n this.setState({\r\n myHorsesArr: myHorsesArr,\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 let selectedForShareHorsesArr = this.state.myHorsesArr.filter(\r\n (i) => i.shared == 1\r\n );\r\n let horseIds = \"\";\r\n let notSelectedForShareHorsesArr = this.state.myHorsesArr.filter(\r\n (i) => i.shared == 0\r\n );\r\n let notSelectesHorseIds = \"\";\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,\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 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\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([]);\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 console.log(myStables.map((x) => x.Id));\r\n setSelectedStables(myStables.map((x) => x.Id));\r\n return;\r\n }\r\n let aux = [...selectedStables];\r\n aux.push(id);\r\n console.log(aux);\r\n setSelectedStables(aux);\r\n };\r\n const getItemFromId = (id) => myStables.find((x) => x.Id == id);\r\n\r\n const deselectStable = (target) => {\r\n setSelectedStables([...selectedStables].filter((x) => x != target));\r\n };\r\n return (\r\n
\r\n
\r\n {selectedStables.map((stableId) => (\r\n deselectStable(stableId)} className=\"badge\">\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.db.getShareWithData(window.myid, async (data) => {\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 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 });\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 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.getMyAndSharedHorses(id, (myHorses, shareData) => {\r\n var horseId;\r\n for (var i = 0; i < shareData.length; i++) {\r\n horseId = shareData.item(i)[\"id\"];\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 });\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 {\" \"}\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
Role \r\n {window.lang.sharedHorses}\r\n {window.lang.deleteL}{window.lang.accepted}Share other tasksLicensePassword
{i.name + \" (\" + i.email + \")\"}\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
\r\n {/* */}\r\n \r\n
\r\n \r\n {\" \"}\r\n {window.lang.deleteL}\r\n \r\n
\r\n
\r\n {!i.notAccepted ? \"Accepted\" : \"Not Accepted\"}\r\n \r\n {\r\n this.toggleShareOtherTasks(i.id);\r\n }}\r\n />\r\n {/* TODO */}\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 {!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 {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\r\n loadData = () => {\r\n let weekDays = window.lang.daysNames.map((d, i) => ({ value: i, label: d }));\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 let trainingTypes = window.DataStorage.trainTypes.filter(t => t.owner == window.myid);\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 this.setState({\r\n riderArray: riders\r\n });\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(this.state.createTaskArray[itemIndex].Id, () => { });\r\n this.setState({\r\n createTaskArray: this.state.createTaskArray.filter((o, i) => i != itemIndex)\r\n });\r\n }\r\n\r\n render() {\r\n const { userTimeZone, timeZoneArray, weekDays, horseTypes, riderArray, trainingTypes, addData, createTaskArray } = 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 this.onItemDataChange('CreateWeekDay', e.target.value, itemIndex)}\r\n >\r\n {weekDays.map(day => (\r\n \r\n ))}\r\n \r\n \r\n this.onItemDataChange('CreateToDay', e.target.value, itemIndex)}\r\n >\r\n {weekDays.map(day => (\r\n \r\n ))}\r\n \r\n \r\n this.onItemDataChange(\"CreateTime\", e.target.value, itemIndex)} />\r\n \r\n this.onItemDataChange('HorseTypes', e.target.value, itemIndex)}\r\n >\r\n {horseTypes.map(item => (\r\n \r\n ))}\r\n \r\n \r\n this.onItemDataChange('Rider', e.target.value, itemIndex)}\r\n >\r\n {riderArray.map(item => (\r\n \r\n ))}\r\n \r\n \r\n this.onItemDataChange('TrainingTypes', e.target.value, itemIndex)}\r\n >\r\n {trainingTypes.map(item => (\r\n \r\n ))}\r\n \r\n \r\n \r\n
\r\n this.onAddDataChange('CreateWeekDay', e.target.value)}\r\n >\r\n {weekDays.map(day => (\r\n \r\n ))}\r\n \r\n \r\n this.onAddDataChange('CreateToDay', e.target.value)}\r\n >\r\n {weekDays.map(day => (\r\n \r\n ))}\r\n \r\n \r\n this.onAddDataChange(\"CreateTime\", e.target.value)} />\r\n \r\n this.onAddDataChange('HorseTypes', e.target.value)}\r\n >\r\n {horseTypes.map(item => (\r\n \r\n ))}\r\n \r\n \r\n this.onAddDataChange('Rider', e.target.value)}\r\n >\r\n {riderArray.map(item => (\r\n \r\n ))}\r\n \r\n \r\n this.onAddDataChange('TrainingTypes', e.target.value)}\r\n >\r\n {trainingTypes.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\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}","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({ 'Date': d.toLocaleString(), 'Email': data[i]['Email'], 'LogData': data[i]['LogData'] });\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
DateTimeUserAction
{i.Date}{i.Email}{i.LogData}
\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}","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(this.state.horsePriceReportData[itemIndex], () => {\r\n this.loadData();\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 (this.state.horsePriceReportData.some(i => i.HorseTypeId == this.state.addData.HorseTypeId)) {\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 \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 Horse Type\r\n \r\n Price each months\r\n \r\n Add/Delete\r\n
\r\n \r\n \r\n { this.onItemDataChange('Price', e.target.value, i.Id, false) }}\r\n onBlur={() => { this.updateItemOnServer(i.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\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}","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.$('#emptyDewormingTypeName').text('Deworming type title is required');\r\n } else {\r\n window.Spinner.show();\r\n window.db.createUserDewormingType(Math.uuid(), window.myid, this.state.newType, () => {\r\n this.state.newType = '';\r\n this.loadData();\r\n window.Spinner.hide();\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 {dewormingTypes.map((item, itemIndex) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
NameDelete
\r\n {item.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 \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}","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\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 constructor(props) {\r\n super(props);\r\n\r\n const settingsReportStr = window.GlobalData.getItem(window.GlobalData.SETTINGS_REPPORT);\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 = settingsReport.length > 0 ? Math.max(...settingsReport.map(r => r.orderIndex)) + 1 : 1;\r\n settingsReport.push({ ...cr, isVisible: true, orderIndex: orderIndex });\r\n }\r\n } \r\n if (needToSave) {\r\n window.GlobalData.setItem(window.GlobalData.SETTINGS_REPPORT, JSON.stringify(settingsReport));\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 (rItemIndex1 < 0 || rItemIndex2 < 0\r\n || rItemIndex1 >= this.state.settingsReport.length || rItemIndex2 >= this.state.settingsReport.length)\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(window.GlobalData.SETTINGS_REPPORT, JSON.stringify(this.state.settingsReport));\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{window.lang.order}
{rItem.label}\r\n this.onIsVisibleChange(rItemIndex)} />\r\n this.swapOrder(rItemIndex, rItemIndex - 1)} /> this.swapOrder(rItemIndex, rItemIndex + 1)} />
\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}","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\nfunction SendSalesData({\r\n horse,\r\n display_gallery,\r\n display_notes,\r\n display_results,\r\n presentationMode,\r\n}) {\r\n const getGender = (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 const horseLogo =\r\n horse.LogoFile != null\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 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 setPresentationId(data);\r\n setShowLinkModal(true);\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 (images_to_share.length == 0) return;\r\n\r\n if (sendData) {\r\n // try to send dat\r\n if (images_to_share.length <= 30) {\r\n const files = await filesForGallery(images_to_share);\r\n const shareData = {\r\n title: `Sales data for ${horse.name}`,\r\n text: \"\",\r\n url: \"\",\r\n files: files,\r\n };\r\n try {\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 } catch (err) {\r\n console.log(err.name, err.message);\r\n }\r\n\r\n return;\r\n } else {\r\n if (sendLink) createPresentationLink();\r\n }\r\n return;\r\n }\r\n\r\n if (sendLink) {\r\n createPresentationLink();\r\n }\r\n };\r\n\r\n const clickToggle = (index) => {\r\n let aux_state = [...shareItems];\r\n aux_state[index] = !aux_state[index];\r\n setShareItems(aux_state);\r\n };\r\n\r\n const drawCustomHeader = (title, index) => {\r\n if (presentationMode) {\r\n return (\r\n
\r\n
{title}
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
{title}
\r\n clickToggle(index)}\r\n />\r\n
\r\n );\r\n };\r\n\r\n const getFullLink = () => {\r\n const url = \"https://eqapp-test.azurewebsites.net/eqapp/index.aspx\";\r\n return url + \"#publicPresentationDataWindow?id=\" + presentationId;\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 {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 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 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 [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 // 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 console.log(code);\r\n console.log(data);\r\n if (data) setFieldAreas(data);\r\n });\r\n };\r\n useEffect(() => {\r\n fetchData();\r\n }, []);\r\n\r\n // #ENDSECTION\r\n const generateFieldAreaFieldTables = (field_area) => {\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) => (\r\n \r\n \r\n {field.name}\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 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 \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 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\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 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 return (\r\n <>\r\n
\r\n
\r\n {fieldAreas &&\r\n fieldAreas.map((field_area) => (\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)}\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 {showCreateFieldAreaModal && (\r\n setShowCreateFieldAreaModal(false)}\r\n button1_callback={createFieldArea}\r\n />\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 {(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":""}