{"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","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","media_path","dbxItem","finishCallback","getTypeItem","filesGetThumbnail","thumbUrl","shift","loadUploadQueue","startsWith","loadList","FOLDER_MULTIMEDIA","FOLDER_EXTRA_NOTES","noteOrTaskId","FOLDER_TASK","h","userid","FOLDER_GENERAL_TASK","_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","actual_image","fileSize","uploadFileWithProgress","addListener","info","removeAllListeners","success","parse","uploadFile","uri","targetPath","dbx","progress","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","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","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","isConcurrent","helper","multimediaHelper","loading","uploadDataArray","dataArray","generalTask","setCurrentSettings","setFinishCallback","onUploadedFile","setProgressCallback","onProgressFile","setRefreshCallback","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","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","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","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","setIsDragging","onDragEnd","destination","list","startIndex","endIndex","removed","reorder","getGeneralTaskOfType","source","ids","reorderGeneralTasks","new_items","setGeneralTasksOfType","flex","currentTasks","onBeforeDragStart","droppableId","provided","snapshot","droppableProps","innerRef","draggableId","draggableProps","dragHandleProps","placeholder","renderGeneralTaskTableDaily","renderGeneralTaskTableWeekly","renderGeneralTaskTableMonthly","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","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","aux","localeCompare","sortBy","sort_index","sortedBy","sortedIncreasing","age","pedigree","header_index","paddingRight","position","transform","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","disabled","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","version","fIndex","VeterinarianPage","getVeterinarianTrainingsByHorse","vetData","veterinarianData","multimedia","getVeterinarTypeName","onNewVetereinarianClick","newVetData","deleteTrainingCallBack","vetDataItemIndex","vetIndex","selectMultimedia","onShareFullscreenItem","dbxFullScreenItem","dataArr","currentItem","showZipViewer","hidePdfDocument","hideZipViewer","newVeterinar","number","MultimediaPage","logoSrc","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","shareAllHorsesUserId","shareAllHorsesUsersId","shareData","horseData","shared","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","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.4deb6c30.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\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.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) {\r\n this.uploadQueue.push(\r\n ...files.map((file) => {\r\n return { file, request_origin, 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 if (el.file.media_path) {\r\n // const tStat = await Filesystem.stat({\r\n // path: el.file.media_path,\r\n // });\r\n // if (!tStat) {\r\n // alert(\"Something went wrong when reading file\");\r\n // return;\r\n // }\r\n // alert(tStat);\r\n // fetch chunks and send them one by one.\r\n // const contents = await Filesystem.readFile({\r\n // path: el.file.media_path,\r\n // });\r\n // const data_blob = await fetch(\r\n // \"data:video/mp4;base64,\" + contents.data\r\n // ).then((r) => r.blob());\r\n // el.file.actual_image = new File([data_blob], el.file.fileName, {\r\n // type: el.file.mimeType,\r\n // });\r\n }\r\n // return;\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 /**\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 loadList = (request_origin, callback, type) => {\r\n this.loadCallback = callback;\r\n\r\n switch (type) {\r\n case `MultimediaHelper`.FOLDER_MULTIMEDIA:\r\n this.path = `/${MultimediaHelper.FOLDER_MULTIMEDIA}/${this.userId}/${this.horseId}`;\r\n break;\r\n case MultimediaHelper.FOLDER_EXTRA_NOTES:\r\n this.path = `/${this.type}/${this.horseId}/${this.noteOrTaskId}`;\r\n break;\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 this.path = `/${this.type}/${horse.userid}/${this.noteOrTaskId}`;\r\n break;\r\n case MultimediaHelper.FOLDER_GENERAL_TASK:\r\n this.path = `/${this.type}/${this.noteOrTaskId}`;\r\n break;\r\n default:\r\n this.path = `/${this.type}/${this.horseId}`;\r\n break;\r\n }\r\n\r\n this.dropbox\r\n .filesCreateFolder({\r\n path: this.path,\r\n autorename: false,\r\n })\r\n .then((response) => {\r\n 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.actual_image) {\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\r\n this.progressCallback(request_origin, file.name, 0);\r\n\r\n FileChunkReader.addListener(\"uploadComplete\", (info) => {\r\n FileChunkReader.removeAllListeners(\"uploadComplete\");\r\n\r\n if (!info || !info.success) {\r\n doneCallback(null, request_origin);\r\n return;\r\n }\r\n\r\n doneCallback(JSON.parse(info.response), request_origin);\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 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 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\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 } catch (error) {\r\n console.error(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 };\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 loadData = () => {\r\n if (this.props.isConcurrent) {\r\n this.helper = new MultimediaHelper();\r\n } else {\r\n this.helper = window.multimediaHelper;\r\n }\r\n this.setState({ loading: true, uploadDataArray: [], dataArray: [] });\r\n\r\n if (this.props.generalTask)\r\n this.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.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.helper.setFinishCallback(this.onUploadedFile);\r\n this.helper.setProgressCallback(this.onProgressFile);\r\n this.helper.setRefreshCallback(() => {\r\n this.setState({\r\n uploadDataArray: window.multimediaHelper\r\n .loadUploadQueue(document.location.href)\r\n .map((el) => el.file),\r\n });\r\n });\r\n\r\n this.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.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.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 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 console.log(files_to_upload);\r\n // add files to queue.\r\n this.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 console.log(files_to_upload);\r\n // add files to queue.\r\n this.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.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 onCancelUploading = (item, index) => {\r\n console.log(item.fileName);\r\n this.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.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.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.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.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.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.helper != null && this.state.showAddYoutube) {\r\n urlAddYoutubeFrame = this.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 return (\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 { setTimeOnFirstHold, training } = this.props;\r\n\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 \r\n \r\n
\r\n {window.lang.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 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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Other tasks{window.lang.trainerName}
\r\n
\r\n \r\n {generalTaskTypeArr &&\r\n generalTaskTypeArr.map((currentElement, index) =>\r\n index == 0 ? (\r\n currentElement.Id == currentGeneralTaskTypeId ? (\r\n \r\n \r\n
\r\n {currentElement.Name}\r\n\r\n
\r\n \r\n this.editGeneralTaskType(\r\n currentElement.Id\r\n )\r\n }\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n width=\"25px\"\r\n stroke=\"currentColor\"\r\n className=\"w-6 h-6\"\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n ) : (\r\n \r\n \r\n
\r\n {currentElement.Name}\r\n\r\n
\r\n \r\n this.editGeneralTaskType(\r\n currentElement.Id\r\n )\r\n }\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n width=\"25px\"\r\n stroke=\"currentColor\"\r\n className=\"w-6 h-6\"\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n ) : currentElement.Id ==\r\n currentGeneralTaskTypeId ? (\r\n \r\n \r\n
\r\n {currentElement.Name}\r\n\r\n
\r\n \r\n this.editGeneralTaskType(\r\n currentElement.Id\r\n )\r\n }\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n width=\"25px\"\r\n stroke=\"currentColor\"\r\n className=\"w-6 h-6\"\r\n >\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n ) : (\r\n \r\n \r\n
\r\n {currentElement.Name}\r\n\r\n
\r\n \r\n this.editGeneralTaskType(\r\n currentElement.Id\r\n )\r\n }\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n width=\"25px\"\r\n stroke=\"currentColor\"\r\n className=\"w-6 h-6\"\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n )}\r\n {generalTaskTypeArr.length ? (\r\n \r\n \r\n + Add new task to list\r\n \r\n \r\n ) : (\r\n \r\n \r\n + Add new task to list\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n \r\n {trainersArr &&\r\n trainersArr.map((currentElement, index) =>\r\n index == 0 ? (\r\n currentElement.userid == currentTrainerId ? (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n )\r\n ) : index == trainersArr.length - 1 ? (\r\n currentElement.userid == currentTrainerId ? (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n )\r\n ) : currentElement.userid == currentTrainerId ? (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n )\r\n )}\r\n \r\n
\r\n
\r\n \r\n {window.lang.addExtraTraining}\r\n \r\n \r\n \r\n {selectTime}\r\n \r\n
\r\n \r\n \r\n \r\n {window.lang.trained}\r\n \r\n \r\n
\r\n {window.lang.remark}\r\n \r\n
\r\n \r\n
\r\n \r\n )}\r\n {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 { v4 as uuid4 } from \"uuid\";\r\n\r\nimport ClickNHold from \"react-click-n-hold\";\r\nimport { TrainingCell } from \"../TrainingViews/TrainingCell/TrainingDay\";\r\nimport GeneralTaskPopup from \"../GeneralTask/GeneralTaskPopup\";\r\n\r\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\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 [isDragging, setIsDragging] = useState(false);\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 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 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
\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 )}\r\n \r\n ))}\r\n {provided.placeholder}\r\n\r\n \r\n onNewGeneralTaskClick(1)}\r\n >\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 };\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
\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 )}\r\n \r\n ))}\r\n {provided.placeholder}\r\n\r\n
\r\n onNewGeneralTaskClick(2)}\r\n >\r\n Add new task\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
Weekly tasks
\r\n
\r\n );\r\n };\r\n const renderGeneralTaskTableMonthly = () => {\r\n const currentTasks = generalTasksMonthly;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n 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
\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 )}\r\n \r\n ))}\r\n {provided.placeholder}\r\n\r\n
\r\n onNewGeneralTaskClick(3)}\r\n >\r\n Add new task\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
Monthly tasks
\r\n
\r\n );\r\n };\r\n\r\n const onGeneralTaskClick = (task, taskType) => {\r\n let options = {\r\n date: new Date(task.Time),\r\n };\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\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 let otherTasksselectedDate = window.training.startDate.formatDesh();\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 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(h => h.id == this.props.horseId);\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
\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 (dataSettings[0][\"ShareAllUsersId\"] != null && dataSettings[0][\"ShareAllUsersId\"] != \"\") {\r\n window.Managers.shareAllHorsesUsersId = JSON.parse(dataSettings[0][\"ShareAllUsersId\"]);\r\n if (window.Managers.shareAllHorsesUsersId.indexOf(window.Managers.shareAllHorsesUserId) != -1) {\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])\r\n 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(h => h.horseData.id == this.props.horseId);\r\n if (horse != null) {\r\n horse.shared = 1;\r\n }\r\n }\r\n if (this.props.email)\r\n currentEmail = this.props.email + ';';\r\n if (this.props.role)\r\n currentRiderRole = this.props.role;\r\n\r\n this.setState({\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 }, window.Spinner.hide());\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(u => u.email == e.currentTarget.dataset.email);\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\r\n 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 (dataSettings[0][\"ShareAllUsersId\"] != null && dataSettings[0][\"ShareAllUsersId\"] != \"\") {\r\n window.Managers.shareAllHorsesUsersId = JSON.parse(dataSettings[0][\"ShareAllUsersId\"]);\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 (window.Managers.shareAllHorsesUsersId.indexOf(window.Managers.shareAllHorsesUserId) == -1) {\r\n window.Managers.shareAllHorsesUsersId.push(window.Managers.shareAllHorsesUserId);\r\n window.db.updateLocalSettingsShareAllHorses(JSON.stringify(window.Managers.shareAllHorsesUsersId));\r\n }\r\n let myHorsesArr = this.state.myHorsesArr;\r\n for (var i in myHorsesArr)\r\n 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(window.Managers.shareAllHorsesUsersId.indexOf(window.Managers.shareAllHorsesUserId), 1);\r\n window.db.updateLocalSettingsShareAllHorses(JSON.stringify(window.Managers.shareAllHorsesUsersId));\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)\r\n 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(i => i.shared == 1);\r\n let horseIds = '';\r\n let notSelectedForShareHorsesArr = this.state.myHorsesArr.filter(i => i.shared == 0);\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(window.myid, this.state.currentEmails, horseIds, notSelectesHorseIds, 'w', this.state.role, (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 }\r\n else {\r\n window.Spinner.hide();\r\n var text = window.lang.horseNotShared.replace('{0}', dataObj[\"NotValidEmails\"].join(\",\"));\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(window.lang.horseNotShared, null, 'Equestrians App');\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 {currentElement}\r\n
  • \r\n :\r\n index == shareEmails.length - 1 ?\r\n
  • \r\n {currentElement}\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 {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
{i.horseData.name} 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\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}","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 } 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\nclass SharingPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\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, (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 console.log(item);\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 console.log(dataArr);\r\n\r\n this.setState(\r\n {\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 console.log(\r\n e.currentTarget.dataset.id,\r\n e.currentTarget.dataset.email,\r\n e.currentTarget.dataset.role\r\n );\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
\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 {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\r\n const blob = await fetch(\r\n \"https://cdn.glitch.com/f96f78ec-d35d-447b-acf4-86f2b3658491%2Fchuck.png?v=1618311092497\"\r\n ).then((r) => r.blob());\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\nwindow.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":""}