{"version":3,"sources":["GlobalState.js","Setting/CBSBenzerAdalar.js","Application/GMapLatLang.js","Dashboard/AddressBook.js","Eimza/EImzaListem.js","User/MessagePanel.js","User/UserComData.js","Application/InlineFilePanel.js","Application/DWGCompare.js","Application/FilesPanel.js","Application/SendNotificationPanel.js","Application/Sharing.js","Eimza/EimzaOnaylarimMobil.js","Eimza/EimzaOnaylarim.js","Header/NavBarProfileComponent.js","Header/TopHeader.js","Dashboard/edevletlogo.png","User/ForgotPassword.js","User/TwoStep..js","Setting/MevkiSetting.js","Setting/CBSMahalleMatching.js","Setting/CBSMahalleSetting.js","Setting/CBSAdaSorgula.js","Setting/SettingIdariMahalle.js","Application/EventPanel.js","Application/ApplicationPrint.js","Application/AppMainData.js","Application/TarifeMapping.js","Application/TarifeMappingList.js","Application/SablonHavalePanel.js","Application/HavaleYetkiliciPanel.js","Application/BasvuruKabulPanel.js","Application/OnayYetkilisiPanel.js","Application/RevisionReqPanel.js","Application/DenetimPaneli.js","Application/Application.js","Header/VTable.js","Statistic/AppMonthStatistic.js","Header/MessageMenu.js","MAKS/MaksGorevli.js","MAKS/MaksProje.js","MAKS/MaksDuvardolgu.js","MAKS/MaksDoseme.js","MAKS/MaksOrtakAlan.js","MAKS/MaksIcmesu.js","MAKS/MaksAtiksu.js","MAKS/MaksMuhtelifGelir.js","MAKS/MaksYapiDenetim.js","MAKS/MaksBagimsizBolum.js","MAKS/Maksisitma.js","MAKS/MaksisitmaYakit.js","MAKS/MaksSuTemin.js","MAKS/MaksSuYakit.js","MAKS/MaksTesisat.js","MAKS/MaksTasiyici.js","MAKS/MAKSAdres.js","MAKS/MAKS.js","MAKS/MaksList.js","Application/Apply6.js","Application/Apply5.js","Application/Apply4.js","Application/Apply3.js","Application/Apply2.js","Application/Apply1.js","Application/UserStatisticCard.js","Application/UserAppCard.js","Header/textlogo.png","Header/textlogowh.png","Dashboard/Dashboard.js","Dashboard/KurumLogo.js","Application/SearchAppTKGM.js","Application/ApplicationList.js","Eimza/EImzaMenu.js","Setting/FileSettingDetaile.js","Setting/FileSettingList.js","Setting/SablonMappingPanel.js","Setting/EkranSetting.js","Setting/MevzuaatSetting.js","Setting/BasvuruAlaniDetail.js","Setting/BasvuruAlanlariSetting.js","Setting/CommunicationSetting.js","Setting/GeneralSettingPanel.js","Setting/UserTypePanel.js","Setting/SureclerPanel.js","Setting/SettingUserFile.js","Setting/RegisterSettingPanel.js","Setting/DuyuruSetting.js","Setting/HelpSettingPanel.js","Setting/ReportSetting.js","Setting/SettingRoles.js","Application/AllApplicationList.js","Setting/HavaleSablonSetting.js","Application/IadeListesi.js","Application/SharedApplicationList.js","User/UserList.js","Setting/AppGroupSetting.js","Application/DelayedApplications.js","Application/TakipEdilenler.js","Statistic/SurecSta.js","Statistic/PersonelPerfSta.js","Statistic/TmamlanmaStat.js","Statistic/Report.js","Statistic/StatisticPanel.js","Dashboard/HelpVideoPanel.js","Dashboard/HelpPanel.js","Setting/SablonFileSetting.js","Setting/FileGroupsSetting.js","Setting/EimzaNameSetting.js","Setting/AppTypeGroupSetting.js","Setting/MakaleSetting.js","Setting/SampleFormSetting.js","Dashboard/MevzuatPanel.js","Application/DeletedAppList.js","Application/ArchivedAppList.js","Application/RemovedFiles.js","Setting/BasvuruTipleriDetail.js","Setting/BasvuruTipleriList.js","Setting/TarifeCetveliSetting.js","Setting/TarifeDetail.js","Setting/TarifeSetting.js","Setting/AllEvents.js","Header/CommonSideBar.js","Setting/CBSMahalleLocal.js","Application/KadastralVeri.js","Header/100yıl.png","Dashboard/qr.png","pics/edevlet_eimza.png","Header/eimzaerror1.png","Header/eimzaerror2.jpg","Header/eimzaerror3.jpg","Header/eimzaerror4.jpg","Header/dwg.png","Eimza/EImza.js","Eimza/EImzaList.js","User/UserPermConstants.js","Dashboard/Statistic.js","Dashboard/ToDoList.js","Dashboard/DuyuruPanel.js","Dashboard/Home.js","Header/logo2.png","Dashboard/logobig.jpeg","Application/PDFView.js","User/UserLabel.js","App.js","reportWebVitals.js","index.js","Application/ApplicationAuthorPanel.js","Application/ApplicationListCardView.js","Application/NotePanel.js","Eimza/EImzaTekrar.js","Application/SharedUsersPanel.js","Eimza/EImzaDetails.js","User/UploadFile.js","User/UserStatistics.js","User/UserPersonelData.js","User/UserMeslekData.js","User/DenetimPermissionPanel.js","User/ListAppTypePermission.js","User/KabulAppTypePermission.js","User/UserTypeData.js","User/UserDynamicData.js","User/UserEventsPanel.js","User/UserDetails.js","User/Register3.js","User/Register2.js","User/Register1.js","Setting/CBSADAMatching.js","Setting/MahalleSetting.js","Setting/AdaSetting.js","Setting/CBSAdaSetting.js","User/UserWorkLoad.js","User/UserUploadFilePanel.js","User/UserFilePanel.js","Application/AppCard.js","User/Register.js","User/Login.js","Dashboard/loading.gif","Application/Vekalet.js"],"names":["window","Swal","chartColors","myglobal","createGlobalState","role","userName","userData","loginfromedevlet","token","globalData","archivedAppList","archivedAppDate","useGlobalState","capitalizeWords","str","length","split","map","word","specialChars","replace","char","charAt","toUpperCase","slice","join","changeTurkceToEnglis","s","replaceAll","ajaxFail","response","showAlert","console","log","statusText","text","then","value","showErrorMessage","status","logout","cutString","n","substr","isEmpty","x","trim","passFild","rec","colname","appfieldlist","basvuruTipi","field","find","name","includes","getBolean","v","String","toLowerCase","ex","passFilter","filter","username","userKabulListPerms","result","conds","dynamicSoru","appDataObject","i","currentCondition","and","c","some","localeCompare","parseInt","toString","getappdata","id","callback","fetch","method","headers","body","JSON","stringify","async","ok","json","app","removeTurkce","removeTurkcLow","toUpperCaseTurkce","toLowerCaseTurkce","calcBusinessDays","dDate1","dDate2","BusinessDays","iWeeks","iDateDiff","iAdjust","toDateString","t","iWeekday1","getDay","iWeekday2","Math","floor","getTime","getDenetimSure","apptypelist","appData","message","denetimid","denetimID","havaleDate","mappingDate","basvuruDurumu","UserPermConstants","d","deadline","deliverdate","Date","deliverDate","h","sonDuzeltmeTarihi","sonduzeltme","nw","now","diffDays","isNaN","_jsxs","className","style","children","fvisible","sabitsorulistData","applicationdata","r","visible","fdisabled","enable","fzorunlu","zorunlu","title","fire","confirmButtonText","confirmButtonColor","icon","showSuccessMessage","action","showConfirmMessage","confirmButton","rejectButton","showDenyButton","denyButtonText","denyButtonColor","isConfirmed","showInfoMessage","sortByKey","array","key","sort","a","b","y","setVisible","vis","elem","document","getElementById","hidden","sendpost","url","spinnerid","successCalBack","failCallback","sendget","location","href","exception","exportExcel","tableId","downloadlink","table","rows","Array","prototype","call","display","thead","querySelector","csv","headerRow","querySelectorAll","headerText","innerText","push","row","cols","cells","j","cellText","csvContent","blob","Blob","type","URL","createObjectURL","levenshtein","matrix","min","max","cookie","forEach","toUTCString","localStorage","setItem","resp","maskStringWithStar","firstTwo","lastTwo","repeat","setHtmlTag","fild","innerHTML","getHtmlTag","getObjectFromArray","data","keyValue","Object","f","isImage","filename","endsWith","isVideo","calculateDateDifference","date1","date2","parsedDate1","parsedDate2","Error","setHours","differenceInDays","abs","CBSBenzerAdalar","props","listData","setListData","useState","surecList","setSurecList","useEffect","fetchSurecList","fetchList","getSurecName","element","ada","e","getDurumName","_jsx","tapukimlikno","adano","parselno","tapumahalleref","durum","tabledata","parsels","overflow","apprec","coordinates","onClick","open","mahalle","basvuruYapan","renderAppTable","applications","GMapLatLang","polygon","gdata","setGData","googlemapkey","setGoogleMapKey","script","fetchGeneralData","getgooglemapkey","google","initMap","mymapscript","createElement","src","defer","appendChild","onload","myLatlng","lat","lng","genlem","parseFloat","gboylem","z","gzoom","maps","Map","zoom","center","Coords","bounds","LatLngBounds","ct","latlang","Number","lg","extend","getCenter","setLatLang","Polygon","paths","strokeColor","strokeOpacity","strokeWeight","fillColor","fillOpacity","setMap","fitBounds","input","setAttribute","searchBox","places","SearchBox","controls","ControlPosition","TOP_LEFT","addListener","setBounds","getBounds","markers","getPlaces","marker","place","geometry","size","Size","origin","Point","anchor","scaledSize","Marker","position","viewport","union","infoWindow","InfoWindow","content","mapsMouseEvent","close","latLng","setContent","toJSON","changeComponent","Application","backButton","ApplicationList","minHeight","AddressBook","setRole","userlist","setUserlist","updateRecord","event","target","checked","reccount","getUserList","this","setState","filterColumn","cl","$","eq","val","indexOf","toggle","renderTable","width","placeholder","onChange","idx","height","defaultValue","family","userType","firma","tel","email","isim","soyisim","submitUpdateRecord","alert","removeRecord","listTable","color","maxWidth","onKeyUp","keywords","rowtext","cc","t1","index","EImzaListem","eimzalist","setEimzalist","sortDirection","setSortDirection","setuserData","sortField","selectedImzaList","getEimzaList","myCompare","av","bv","imza","sortList","fildname","temp","all","parse","iadeNedeni","imzaid","transactionUUID","fetchEimzaListem","class","for","popup","topluimzala","maxHeight","userFileId","disabled","addToImzaList","arsaSahibi","fikra","tarih","surecname","downloadAction","müellifKullanıcıAdı","eimza","fetchAuthers","MessagePanel","useLocation","messages","setMsg","activemessage","setActiveMsg","showall","setShowAll","me","sidebartags","unreadmessages","opened","homecounter","deleteMessage","m","markmessagesopen","msg","messageList","cursor","sendDate","sender","receiver","appID","UserComData","userdata","setUserData","confirmed","handleInputChange","handleBildirimTercihChange","bildirimTercihleri","defaultChecked","sendMessage","sendEmail","sendSMS","htmlFor","telConfirmed","pattern","maxLength","sendSms","confirmSMS","k","prompt","user","code","_objectSpread","emailConfirmed","confirmEmail","showCode","edveletConfirmed","_Fragment","preventDefault","checkValidity","InlineFilePanel","setuserName","uploadedFiles","setuploadedFiles","fileNameList","setfileNameList","fileType","setfileType","showIfModal","setShowIfModal","plot","setPlot","olcek","setOlcek","setWidth","setHeight","renk","setRenk","setZoom","ofset","setOfset","unit","setUnit","printer","setPrinter","selectRef","useRef","sharingType","getFileType","typeId","typeName","Name","kontrolorDosyasi","surecSonu","canDelete","sonDuzeltmeTalebiTarihi","getEimzaMenu","filerec","imzaRec","source","FilesPanel","showAll","setActivePanel","removed","imzatarih","appId","classList","contains","remove","add","rapp","relatedApps","download","EImzaTekrar","VizeKontrol","PDFView","Eimza","EImzaDetails","isVisivble","kontrolorList","getImzaButton","button","caption","buttonbox","EImzaList","targetFile","imzala","gettextColor","readers","showDeletedFiles","showAllFileState","showHidden","kontrolorDosyaYetki","getVisibleState","removedBy","removedDate","toLocaleLowerCase","securityToken","setParentFileList","restorefile","archived","removefile","changeHideState","tabIndex","background","Creatable","required","ref","options","label","isClearable","formatCreateLabel","noOptionsMessage","selected","DWGCompare","files","dwgs","setDwgs","getlist","f1","f2","file1id","file1typeName","file1caption","file2id","file2typeName","file2caption","compareDate","rowDelete","setFiles","setshowDeletedFiles","fileTypes","setfileTypes","setUploadedFiles","basvurutipi","eksikzorunlu","zorunluimza","sablonlistData","setSabolnListData","setshowAllFileState","fetchSabolnFileList","fetchFiles","isZorunluForThisApp","filelist","filenamelist","filetypes","Id","BasvuruTipi","item","typeids","unshift","typeLess","handleSelectedFile","filetyp","fileSize","FileType","selectedFiles","file","test","formData","FormData","append","TypeID","axios","post","res","catch","err","SendFiles","lastgurup","generaterow","hidderState","grupname","aciklama","click","accept","eksikdosyatespit","uploadedfiles","eksikdiv","zorunluEimza","eksikeimzadiv","fileName","require","default","textbox","closest","SendNotificationPanel","setData","Sharing","useroptions","setOptions","state","protocol","host","copyToClipboard","copyText","select","setSelectionRange","navigator","clipboard","writeText","SharedUsersPanel","EimzaOnaylarimMobil","imzalayan","topluImzaList","operationId","phoneNumber","operators","selectedOperator","selectedSignatureType","saved_eimza","cname","ca","decodeURIComponent","substring","getCookie","operid","uuidv4","randomValues","Uint8Array","crypto","getRandomValues","TopluMobilSign","startsWith","mobileSignRequest","operator","signatureType","citizenshipNo","tc","appid","eimzaId","progress","showMessage","mobileSignResponse","mobileSignResult","isSuccess","error","opener","getFingerResponse","fingerPrint","opr","MobileSign","targetEimza","EimzaOnaylarim","page","colors","fullsize","Width","Height","objectFit","fitsize","selectedSertificate","setSelectedSertificate","appDownloadURL","appDownloadURLMAC","workingUrl","localURL","setloaclURL","scale","setScale","certificates","setCertificates","getSignerAppVersionsResult","signerAppResetResult","refreshTimer","refreshCount","errorbox","guncelnecekEimza","setGuncelnecekEimza","scrollTo","GetSignerAppVersions","isFinancialSeal","programGunceldegil","showWarningMessage","disableImzabutton","LocalSignerPing","useHttps","useLocalhost","axiosResponse","get","timeout","signerAppPingResult","undefined","TryToConnect","LocalSignerReset","programYok","signerAppWindowsUrl","signerAppMacUrl","clearInterval","signerAppStatus","counter","desiredVersion","signerAppPlatform","signerAppWindowsVersion","signerAppMacVersion","sertlist","list","checkTC","signerAppDllVersion","showImzayaHzair","takiliEimzaYok","finally","TopluSign","pin","certificate","createStateOnOnaylarimApiRequest","imzalayanId","validTo","createStateOnOnaylarimApiResponse","createStateOnOnaylarimApiResult","signStepTwoRequest","keyId","keyID","keySecret","pkcsLibrary","slot","signStepTwoResponse","signStepTwoResult","finishSignRequest","signedData","finishSignResponse","imageLoaded","imgset","node","addEventListener","backgroundColor","fontSize","textAlign","personFullname","Sign","finishSignResult","backgroundImage","concat","backgroundRepeat","backgroundSize","backgroundPosition","onLoad","onError","iz","tabindex","NavBarProfileComponent","setUser","profilepic","alt","Link","to","UserDetails","Home","TopHeader","showPanel","ForgotPassword","logindata","UserName","Password","changeLoginButton","activepannel","setActivepannel","onSubmit","TwoStep","searchParams","setSearchParams","useSearchParams","channel","Buffer","from","AES","encrypt","setToken","MevkiSetting","postdata","Add","handleFile","UploadFile","spinner","setSumbitResult","filelabel","KadastralVeri","CBSMahalleMatching","cbsListData","setCBSListData","cbsLocalListData","setCBSLocalListData","listtype","setListType","mergedset","fetchCBSList","fetchCBSLocalList","filterCBS","t2","filterMahalle","cbs","tapumahallead","recs","koordinat","mlistData","mergedList","cbslocal","mahal","mahalleid","matchRecords","MahalleSetting","addall","removeall","ids","CBSMahalleSetting","popoverTriggerEl","bootstrap","Popover","ret","refreshList","CBSAdaSorgula","array10","tapucinsaciklama","tapuzeminref","tapualan","sendRecord","CBSAdaSetting","cbsdata","raktif","rpasif","cql_filter","SettingIdariMahalle","EventPanel","events","setEvents","scolors","rendertolist","groupedEvents","eventDate","tab","comment","para","panel","each","ApplicationPrint","appTypes","appGrupList","setappGrupList","setFileTypeData","React","createRef","setUserdata","allDynamicFilds","setAllDynamicFilds","apptype","fetchAppGrupList","fetchFileList","getFileName","fname","ft","toPdfJSPDF","doc","jsPDF","setFont","setFontSize","cloneNode","colElems","firstChild","getElementsByClassName","parentNode","html","autoPaging","windowWidth","margin","pdf","save","ReactToPdf","appDynamicData","targetRef","_ref2","toPdf","belediyeName","ciktiTitle","getAppGrupName","g","grup","grp","basvuruTarihi","kabulSureci","kabulEdilmeTarihi","mevkiAktif","mevki","tasinamazSahibiAktif","arsaSahibiTC","arsaSahibiTel","printable","yasalUyari","kvkk","basvuruSahibi","basvuruSahibiTC","basvuruSahibiTel","AppMainData","surebg","suretxt","mappedusers","setMappedUsers","setGlobalData","AdaList","setAdaList","MevkiList","setMevkiList","MahalleList","setMahalleList","mahalleCoordinates","setMahalleCoordinates","kontroller","setkontroller","harcFileList","setHarcFileList","arsaSahibiTemp","apptypeList","setAppTypeList","appType","zorunloBosBirakma","disablesabitsorular","disabledinamiksorular","disableaddresarea","appdynamicdata","vekaletenBasvuru","vekilTC","vekilTel","vekilName","fetchAppDynamicFieldList","fetchMappedUsers","fetchUserData","fetchHarcFiles","fetchCoordinates","param","fetchAdaList","query","contentType","opt","selectedIndex","fetchMahalleList","changed","handleDynamicChange","isReadOnly","isVisible","gizli","dynamicFields","dangerouslySetInnerHTML","__html","reqired","initValue","Multiselect","disablePreSelectedValues","emptyRecordMsg","isObject","onSelect","selectedList","changedItem","clist","onRemove","selectedValues","onInput","scrollHeight","readOnly","updateCount","updateTextAreasHeight","textareas","getElementsByTagName","selectedFile","locModal","vekaletDosyaname","googlemap","notfilled","names","newapp","ucret","paymentLink","refreshParent","adaAktif","enlem","boylam","songonderim","pre","Completed","getDuzeltmeKalanSure","denetimlist","activeDenetim","sira","duzeltmeDeadline","surecTamamlanmaTarihi","showCompact","initModal","btnclosedown","tasinamazSahibiZorunlu","mahalleAktif","autoComplete","onKeyPress","which","onBlur","adaZorunlu","idariMahalleAktif","idariMahalle","idariMahalleZorunlu","sokakAktif","sokak","sokakZorunlu","noAktif","no","noZorunlu","TarifeMappingList","tarifeMapping","tarifeCetveli","sorular","mappedTarifeList","setMappedTarifeList","tarife","formatWithDots","numberString","total","setTotal","tarifemappingsil","formul","soru","tip","addNewTarifeRow","mappingid","mapper","allSelectElements","sil","tarifeList","setTarifeList","setTarifeCetveli","pageTotal","fetchTarifeCetveliList","tarifeid","fetchMappedTarifeList","tarifelist","addNewTarif","newmapping","TarifeMapping","SablonHavalePanel","denetimList","setDenetimList","setKontrolorList","fetchKontrollers","gnerateHavaleMappingNames","mapping","getMappingName","sire","getAttribute","td","attr","removeAttr","sablonName","fetchMapping","apply","HavaleYetkiliciPanel","mappingdata","RefreshCounter","basvuruTipiAdimlari","setBasvuruTipiAdimlari","userwork","setUserWork","userwithperms","setUserwithperms","relatedControlors","setRelatedControlors","setDenetimlist","minSira","maxSira","getWorkLoadList","maxCount","minCount","userstat","duzeltme","kontrol","fetchDenetimList","fetchUsersWithPermision","updateuserprojectmapping","basvurutipiid","isadimi","getUserName","uname","Family","dt","innerWidth","appret","setTimeout","sebeb","iadeNotu","denetimId","isAdimi","refreshPanel","Started","func1","gericek","UserStatistics","relatedapps","rids","BasvuruKabulPanel","warningList","checkNote","NotePanel","panelid","appgerigonder","appucretiste","harc","misid","odemekontrol","uploadHarcDosya","apputahakukyap","apponayla","eimzagonder","removeFile","appiade","iadeneden","OnayYetkilisiPanel","setUserName","saveApp","note","iadeEden","appkntorlgeri","RevisionReq","mappingRec","myusername","setmyusername","ischecked","setCommentAfterStart","lastDuzeltmeNo","duzletmeNo","colspan","onKontrol","printbutton","_ref","UserLabel","setNameFamily","duzeltmeDurum","maxlength","mappingId","DenetimPaneli","setApptypeList","setRec","setusername","mission","setMission","commentAfterStart","havaleEdilecekKisiler","scroll","fetchMappedUsersToRelatedApps","getApp","kontrolubaslat","completed","started","duzeltmeiste","ForwardToOtherUser","req","duzeltmeSayi","getDenetimUpdateCount","duzeltmeKotasıDoldumu","duzeltmeIste","sendRevision","mapperName","mapperFamily","Message","mapperUserName","RevisionReqPanel","itemname","kname","kfamily","dlist","displayValue","avoidHighlightFirstOption","removedItem","hidePlaceholder","disable","showControlButtons","onmobile","setOnMobile","backPage","setBackPage","setsabitsorulistData","following","setFollowing","denetimpaenls","setDenetimPaenls","activePanel","setRelatedapps","setSharingType","isFollower","getRelatedApps","getDenetimList","operationPanel","getmypermissionsonproject","makeBold","changeFollow","targeturl","submitApp","mahalleZorunlu","eimzab1","getControllorColor","getControllorDurumText","gonder","isVisibleForUser","muellifAktif","ApplicationAuthorPanel","MaksList","VTable","showRowNumber","rowClick","col","hrefid","AppMonthStatistic","records","setRecords","yil","setYil","years","setYears","appTypeGroups","setappTypeGroups","setappTypes","selectedappTypeGroup","setselectedAppTypeGroup","selectedappType","setSelectedappType","fetchAppTypeGrupList","sp","charts","load","packages","setOnLoadCallback","getAppTypes","sortablelist","obj","ay","toplam","ReactDOM","render","generateTable","populateProjectData","shift","reduce","Set","date","year","dataarray","aylar","drawChart","visualization","arrayToDataTable","AreaChart","draw","chartArea","lineWidth","curveType","legend","vAxis","minValue","gridlines","minorGridlines","animation","duration","easing","MessageMenu","msglist","setMessages","getMessageList","menutxt","MAKSGorevli","maksrec","setMaksRec","takiplist","setTakiplist","getDefult","maksBasvuruId","gorevliTip","regDate","ad","soyad","unvan","MaksProje","adres","autocomplete","bagimsizbolkimlikno","projeOnayKonuKod","acikAdres","projeOnayKonuDiger","onayTarih","bagimsizBolumKimlikNo","odaSicilNo","MaksDuvardolgu","duvarDolguKod","kayitNo","diger","MaksDoseme","dosemeKod","MaksOrtakAlan","getName","ortakAlanKod","MaksIcmesu","icmeSuKod","MaksAtiksu","atikSuKod","MaksMuhtelifGelir","mahiyetKod","makbuzNo","makbuzTarih","tutar","MaksYapiDenetim","yapiDenetimTurKod","tcKimlikNo","yapiDenetimTurDiger","MaksBagimsizBolum","getKullanımName","yapilanIslem","bagimsizDurum","icKapiNo","yuzolcum","arsaPay","arsaPayda","bagimsizBolumTip","binaKimlikNo","brutYuzolcum","katNo","kullanimAmac","numaratajKimlikNo","tadilataKonuOlsunMu","tapuBagimsizBolumNo","Maksisitma","isitmaSistemKod","MaksisitmaYakit","isitmaYakitKod","MaksSuTemin","suTeminKod","MaksSuYakit","suYakitKod","MaksTesisat","tesisatKod","MaksTasiyici","tasiyiciKod","MAKSAdres","boxid","adressId","bagimsizBolumId","bid","handleIlChange","requestType","parentId","ilce","Ad","handleIlceChange","handleMahalleChange","yol","handleYolChange","handleBinaChange","handleBagimsizChange","AcikAdres","saveAdres","MAKS","MaksApp","maksMahalleList","setmaksMahalleList","maksAdresList","setMaksAdresList","yollist","setYols","numarajlist","setNumaratjList","selectedAdres","setSelectedAdres","fetchMaksMahalle","senToMAKS","mainbuttons","recid","Oku","bultenno","Onayla","yapiBelgeAdres_MahalleAdi","yapiBelgeAdres_MahalleKimlikNo","yapiBelgeAdres_DisKapiNo","yapiBelge_YapiDenetimTabi","yapiSahip_BagimsizBolumKimlikNo","yapiSahip_AcikAdres","YambisSorgula","yapiMuteahhit_BagimsizBolumKimlikNo","yapiMuteahhit_AcikAdres","SantiyeSefiSorgula","santiyeSef_BagimsizBolumKimlikNo","santiyeSef_Adres","yapiOzellik_ParselDisiOtopark","MaksGorevli","yapiBelgeDigerHusus_IlkYapiKullanmaIzinBelge","makslist","setMaksList","showTable","handleSelectChange","yapiBelge_YapiBelgeTipKod","yapiBelge_YapiBelgeTipName","ruhsat_RuhsatVerilisAmacKod","ruhsat_RuhsatVerilisAmacName","yols","yolad","kimlikno","kapino","mahalletanitimkod","tanitimkodu","numarataj","yapikimlikno","yapiBelgeAdres_BagimsizBolumNo","yapiBelgeYapi_YapiKimlikNo","yapiBelgeAdres_BagimsizBolumKimlikNo","yapiBelgeAdres_NumaratajKimlikNo","yapiBelgeAdres_CsbmTanitimKod","yapiBelgeAdres_MahalleTanitimKod","bagimsizbolumno","bultenNo","Apply6","Apply5","FilePanel","Apply4","back","selectedAppType","eksiksiz","Apply3","fetchSabitSoruList","Apply2","showalert","fetchMevkiList","fetchIdariMahalleList","mahaleId","mevkiId","Apply1","setIdariMahalle","setApp","mahalid","mevkiid","mspin","mevkiZorunlu","appTypeOptions","setappTypeOptions","hide","check1","check2","apptypesingrup","active","Select","option","applyKVKK","applyKVKKFile","applyAgrement","applyAgrementFile","UserStatisticCard","istats","Statistic","onDragOver","onDrop","onDragEnter","onDragLeave","userid","toFixed","ApplicationListCardView","Component","constructor","super","userDenetimPermissions","myCompareBasvuruTipi","s1","s2","sa","sb","applist","appsauthorlist","müellif","muellifType","userApps","getcontrollerlist","kontrolor","kontrolorNameFamily","tümKontrolorler","findRowCount","sab","userapps","havale","mysablons","kabulPerms","selectedDenetim","getKontrolorName","allowDrop","drop","dataTransfer","getData","currentHolder","currentMappingID","ctrlKey","getdenetimpermsraw","getUserApps","getApplicationList","mapusertoproject","droppedAppId","droppedUser","colnames","bind","generateOpenList","renderToCards","getSablon","filterTable","handleSablonChange","handleDenetimChange","generateAyYil","bordercolors","droppedUserName","componentDidMount","fetchkabullistperm","forTableView","getItem","colNames","denetimperms","notremoved","currentUser","istatistic","Toplam","diffTime","ceil","Sonay","Sonyil","users","appglist","filteredUserApps","pass","Kontrol_Ediliyor","Sirada_Bekliyor","Duzeltme_Bekleniyor","renderToGroupCards","seldenetimlist","restb","tablegdata","grec","AppCard","kontrolUserName","selectedSablonIndex","userdenetimlist","Dashboard","showSideBar","setshowSideBar","searchAda","decrypted","decrypt","enc","Utf8","userfilenamelist","match","RegExp","Login","telemailconfirmed","eksik","ekseik","UserFilePanel","refreshFiles","mainpanelclass","sidemenuclass","CommonSideBar","setComponent","KurumLogo","SearchAppTKGM","adaList","setAdaeList","selectedAda","setSelectedAda","getCBSADA","matchedCbsId","setApplist","showArchived","setShowArchived","spinnerClass","setSpinnerClass","appGroups","setAppGroups","setAppfieldlist","devamstat","setDevamstat","setFilter","mysablonlist","setMysablonlist","setColnames","setuserKabulListPerms","getAppGroupList","fetchappfieldlist","stopSpinner","startSpinner","oa","ob","myCompareRev","slist","forListView","fillAuthoresAndControllers","tümKontrolorlerUserNames","muellifCount","totallContolorCount","activeContolorCount","allmuelliflist","persons","mdata","sablonlist","denetimName","getcurrentFilters","root","keywordElem","keyword","getSortedList","sf","hashtable","deleteApp","removeComment","reduceTotalNames","num","parts","appState","generateColumnHeader","renderToList","devamarray","filters","appDData","stopPropagation","verticalAlign","applyFilter","showArchiveList","show","noarch","handleGroupChange","EImzaMenu","setEimzaList","bekleyeneimza","FileSettingDetaile","fileNames","setfileNames","fileGurups","setFileGrupList","typeOptions","setTypeOptions","zoptions","setZOptions","setrol","roles","setRoles","fetchGrupList","fetchRoles","on","regex","fromCharCode","charCode","similarItemSelect","mus","creatorUserName","crerateTime","gurupid","FileSettingList","showWindow","windowElement","inputText","matchedItems","similarity","rect","getBoundingClientRect","left","top","bottom","ms","current","resetSelectedValues","getFileGrupName","gurup","SablonMappingPanel","rolList","setRolList","sablons","multiselectRef","fetchSablonMapping","fetchRoleList","sablonSelect","Sil","updatemapping","userId","selectedItem","addMapping","UserId","getSelectedItems","SablonName","values","EkranSetting","setPostData","colorset","fetchSablonList","fetchFieldList","op","ClearFilter","AddFilter","andor","oper","filtervalue","myfilter","AddArtan","filterColSelect","AddAzalan","clearSort","removeSablon","MevzuaatSetting","selectedRecord","getHelpList","ReactQuill","theme","postDate","updateMevzuuat","BasvuruAlaniDetail","appRec","basvuruTurleri","denetims","multiselectRefNew","multiselectRefNewRole","BasvuruAlanlariSetting","mytable","setbasvuruTurleri","getdenetimlist","CommunicationSetting","changeAktifPanel","submitUpdateSMS","apikey","sifre","userCode","accountId","serviseAddress","apiKey","fetchSMSSetting","password","smtpPort","smtpServer","networkUserName","tls","onMouseDown","sendTestSMS","submitUpdateEmail","sendTestEmail","GeneralSettingPanel","duplicateList","setDuplicateList","showPopup","onMouseUp","popupMessage","popupMessageFile","registerKVKK","registerKVKKFile","registerAgrement","registerAgrementFile","showRevisionNoteAfterSend","twoStepSMS","twoStepEmail","setGeneralData","fetchduplicate","overflowY","border","padding","UserTypePanel","SureclerPanel","stage","createTime","additional","SettingUserFile","multiselectRef2","onSelect1","onRemove1","onSelect2","onRemove2","RegisterSettingPanel","DuyuruSetting","HelpSettingPanel","fetchUserTypeList","ReportSetting","baseRow","removeReport","SettingRoles","setAciklamaData","setpostdata","popover","setpopover","getyetkiaciklamalist","dataset","bsContent","getAciklama","yetki","handleCheckBoxChange","perms","is","hasperm","p","takip","defaultrole","AllApplicationList","showremoved","setShowremoved","refreshButton","setAppRemovedState","isremoved","HavaleSablonSetting","basvuruTipleri","setBasvuruTipleri","kontrolorListForSelectTask","setKontrolorListForSelectTask","isAdimlari","setIsAdimlari","selectableIsAdimlari","setselectableIsAdimlari","setMapping","fetchIsAdimlariList","isadimlar","getDenetimName","recalculateSira","sortedArray","missingNumbers","stringToMapping","mappingToString","amp","map2","SaveSablon","update","Reset","IadeListesi","fetchlist","getapp","SharedApplicationList","view","showApplication","UserList","denetimPermList","setDenetimPermList","roleList","setroleList","showKaraliste","setShowKaraListe","getdenetimperms","u","yetkiler","getRoleName","karaliste","confirm","Navigate","leftpanelitems","UserWorkLoad","Register","AppGroupSetting","setSurecData","DelayedApplications","getColorIdx","gecikme","verilesure","getVerilenSure","TakipEdilenler","fetchTakipList","SurecSta","setReccount","totalrec","childElementCount","startDate","endDate","dataarray1","cidx","filteredData","hAxis","slantedTextAngle","textStyle","baselineColor","annotations","stem","alwaysOutside","auraColor","chart","ColumnChart","PersonelPerfSta","setAppType","refcounter","setRefcount","setUserApps","setStartDate","setEndDate","selectedPersons","setSelectedPersons","filterPersons","checkboxes","checkedIds","checkbox","Kullanıcı","Biten","Devam","Sırada","basvurutipleri","sortedBasvuruTipleri","biten","devam","bekleyen","ortalama","namefamily","unmountComponentAtNode","generateReport","TmamlanmaStat","appGurupType","setAppGurupType","chartType","setChartType","appTypeList","setappTypeList","basvurutipistat","mevkistat","mahallestat","indexname","keys","toplamBasvuru","gunOrtalama","ayOrtalama","drawChartSingleCol","mydata","nodata","apptypesInGrurup","ilkBasvuruTamamlandi","Report","downloadUrl","setDownloadUrl","tableData","report","columns","columnSet","StatisticPanel","reports","setReports","BasvuruAdetStat","HelpVideoPanel","helpRec","setHelpRec","HelpPanel","resize","makaleList","setMakaleList","formList","setFormList","myuserName","fetchMakaleList","fetchSampleFormList","helplistTable","sampleformTable","makalelistTable","userTypes","mylist","lastIndexOf","renderMakaleTable","filname","FileSettingPanel","readonly","FileGroupsSetting","savedenetim","EimzaNameSetting","ekleyen","gerial","uuid","AppTypeGroupSetting","MakaleSetting","SampleFormSetting","MevzuatPanel","getFileIcon","mevzuatTable","DeletedAppList","delete_comment","ArchivedAppList","RemovedFiles","setFilelist","getFileList","removeRecs","BasvuruTipleriDetail","setbasvuruTipi","showIsAdimlari","setShowIsAdimlari","BasvuruTipleriList","stringSimilarity","compareTwoStrings","hizliArsiv","onaysureci","ruhsatsureci","paralelBasvuru","muellifZorunlu","precondition","addBasvuruTipiisAdimi","rec2","removeBasvuruTipiisAdimi","userDenetimPerms","setuserDenetimPerms","setUserList","getbasvurutipiadiımlari","fetchUserList","w","fullName","closeOnSelect","DenetimId","renderIsAdimiTable","TarifeCetveliSetting","nitelik","deger","low","high","TarifeDetail","setTarife","formulaParts","setFormulaParts","selectedPart","setSelectedPart","finalFormula","setFinalFormula","setSelectedOperator","conditionLeft","conditionRight","ifTrueValue","ifFalseValue","conditionOperator","lastElementType","setLastElementType","handleAddKey","resetCombos","resetIfModal","addSoru","soruadi","sorutipi","sorudegeri","newsoru","renderDropdown","setValue","newtarife","TarifeSetting","renderSorularTable","splice","soruSil","constant","handleAddConstant","handleAddOperator","handleSavePart","currentPart","prev","part","handleAddToFinalFormula","formulaUpdate","handleSaveIfStatement","ifStatement","AllEvents","items","currentPage","setCurrentPage","sendRequest","cp","start","end","Pagination","totalCount","pageSize","onPageChange","totalPages","pageNumbers","_","whiteSpace","handlePageChange","tags","UserAppCard","SablonFileSetting","BasvuruAlanlariuSetting","Register1","AppTypePanel","DocumentSetting","CBSMAhalleLocal","info","setInfo","getcbsinfo","AdaSetting","EImza","setEimza","imzalayanlist","setimzalayanlist","showImzaciList","getimzalistesi","doremove","fetcheimzatasks","rejectEimza","rejectText","getImzaButtons","rejected","rejecttext","seteimzaremovestatus","imzaiptal","minsira","MAX_SAFE_INTEGER","eimzaTextPos","success","veriGirisindenSonraIndirme","veriGirisTarihi","rejectedBy","updateEimza","basvuruCiktisi","imzaType","rol","vizeKontrolTur","siraTarih","imzalayabilenler","setImzalayabilenler","eimzatasklist","setEimzatasklist","showFromAllApps","setShowFromAllApps","eimzaNameList","setEimzaNameList","getvakaletdurums","getyeniimzalistesi","fetchEimzaNameList","getimzalayabilenler","vekils","vekil","maxRepeat","refreshIntervalId","setInterval","animate","scrollTop","offset","addClass","submiteimzadata","posrdata","adaylar","showNamesOnPDF","buton","new_element","selectedRol","Rol","roldindex","siras","imazalayan","eimzaid","adayEkle","imzalistesi","iz2","adaySil","startNewEimza","fr","FileReader","serviceProvider","providerselect","imzatur","imzaturelem","surecName","surecisim","basvuruDurmu","readAsDataURL","onloadend","evt","ez","adaylariKopyala","Gorebildigi_Basvurulari_Editleme","Yeni_Basvuru_Yapabilme","Yeni_Basvuruda_Zorunlu_Alanlari_Bos_Birakabilme","Adres_Defterini_Gorme","Adres_Defterini_Duzenleme","Kontrolor_Istatistiklerini_Gorme","Proje_Istatistiklerini_Gorme","Muellif_Istatistiklerini_Gorme","Mekansal_Istatistikleri_Gorme","Zamansal_Istatistikleri_Gorme","Anlik_Istatistikleri_Gorme","Yonetmelik_Yukleme","Basvuru_Formu","Basvuru_Liste","Ekran_Yonetimi","Dosyalar","Dosya_Yukleme","Dosya_Gizleme","Dosya_Degistirme_Silme","Surecler","Kullaniciyla_Kart_Paylasimi","Link_ile_Kart_Paylasimi","Manuel_Bildirim_Gonderme","Yeni_Kullanici_Kaydetme","Yeni_Kullanici_Kaydinda_Zorunlu_Alanlari_Bos_Birakabilme","Kullanici_Listesini_Gorme_Profil_Bilgilerini","Kullanici_Bilgilerini_Editleme_Roller_Denetim_Yetkileri_Haric","Kullanici_Denetim_Yetkilerini_Editleme","Kullanici_Silme","Basvuru_Silme","Kullanici_Tipleri","Kullanici_Kayit_Formu","Kullanici_Rolleri","Is_Yuku","Kullnici_Kara_Liste","Duyuru_Yonetimi","Tarife_Yonetimi","Tarife_Gorme","Tarife_Duzenleme","Kurum_Bilgileri","Pop_Up_Yonetimi","Yardim_Ekranlari","Gizli_Alanlari_Gorme","Gizli_Basvuru_Gorme","Basvurudan_Sonra_Sabit_Editleme","Basvurudan_Sonra_Dinamik_Editleme","Sifre_Degistirme","Tum_Geciken_Basvurular","Basvuru_Vekili_Update","Dosyalari_Eimzaya_Acima","Basvuru_Onaylama","Eksiklik_Girme","Havale_Yapma","Ruhsat_Onaylama","Imzaya_Açma","Imza_Silme","Imza_Veri_Girisi","Imza_Vize_Kontrol","Imza_Yerlestirme","Imza_Guncelleme","Imza_Sertifikali","Basvuru_Onaylama_Kontrolorden_Sonraki_Biti_Onayi","Ruhsat_Kesme","Iade_Basvuruyu_Gonderme","Vekalet_Onay","Kontrolor_Dosyasi_Yukleme","Ilgili_Basvurulari_Gorme","Kalan_Sure_Gorme","Kadastral_Ayarlar","Edevletsiz_Basvuru","EImzali_Gonderme","Sabitlenen_Profil_Degistirme","MAKS_Veri_Girisi","Gizli_Aktiviteleri_Gorme","Basvuru_Arsiv","Basvuru_Arsiv_Cikar","Eimza_Geri_Alma","DWG_Karsilastirma","Surec_Sonu_Dosya_Indirme","Basvuru_Durumu_Taslak","Basvuru_Durumu_Onay_Bekliyor","Basvuru_Durumu_Havale_Bekliyor","Basvuru_Durumu_Kontrol_Sirada_Bekliyor","Basvuru_Durumu_Kontrol_Ediliyor","Basvuru_Durumu_Duzeltme_Bekleniyor","Basvuru_Durumu_Kontrol_Tamamlandi","Basvuru_Durumu_Onay_Verildi","Basvuru_Durumu_Ruhsat_Verildi","Basvuru_Durumu_Iade_Edildi","Basvuru_Durumu_Ucret_Bekleniyor","Basvuru_Durumu_Tahakkuk_Bekleniyor","Basvuru_Durumu_EIMZA_Bekleniyor","Basvuru_Durumu_GeriGonderildi","Basvuru_Durumu_Harc_Odeme_Kontrolu_Bekliyor","EIMZA_IPTAL","EIMZA_BEKLENIYOR","BASKA_BASVURU_GONDERME","HARC_DOSYALARI","sureslist","ftitle","titleTextStyle","is3D","targetc","PieChart","sureclist","dataarray2","Aktif","Tamamlanan","ToDoList","duyurucount","changeSize","taskName","DuyuruPanel","disablePopup","stat","todo","Calendar","duyuru","numPages","setNumPages","draggedObjectList","setDraggedObjectList","pageNumber","setPageNumber","detectedPos","detectedPosObject","placeObjectsOnPic","updateWidthHeight","clientWidth","offsetWidth","myid","textobj","clientHeight","drag","grabX","clientX","grabY","clientY","dragid","DraggedObject","div","parentElement","droppableDiv","activepaneldiv","scleft","scrollLeft","sctop","dragWidth","dragHeight","offsetLeft","offsetTop","zIndex","fontsize","font","dragleave","enter","updateBoxfont","paftaRuhsatTarih","paftaRuhsatOnayKod","kot","bend","madde","xloc","yloc","draggable","div0","updatefont","submitEimzaVisualSetting","onDragStart","getUnwknownItems","boxWidth","myuser","picSize","getuserinfo","showUserName","App","process","Router","Routes","Route","path","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","StrictMode","waiting","muelliflist","setTabledata","previousAppAuthors","setPreviousAppAuthors","userTypeList","setUserTypeList","setVekils","fetchPreviousAppsAuthers","addAuthor","newlist","vekiller","ulist","gecicimuellif","gecicisure","getuser","myself","Vekalet","setDevamStat","showgroups","generateGroupList","tumu","notes","setNotes","fetchNotes","iadeTarihi","vizekontrolValue","setvizekontrolValue","mappingID","shareduserList","setSharedUserList","fetchSharedUsers","compactList","sharedBy","sharingDate","addSharing","getValue","updateeimza","hasloc","getloc","x_text","ev","y_text","w_text","h_text","font_size","x_qr","y_qr","scale_qr","yapiBelgeOnay","yapiBelgeNo","yapiOnayKod","ruhsatOnayTarih","ruhsatNo","ruhsatTarih","ruhsatOnayKod","yikimRuhsatOnayTarihi","yikimRuhsatNo","yikimRuhsatGecerlilikTarihi","yikimOnayKod","yananFormOnayTarih","yananFormNo","yananOnayKod","teslimtarihi","selectedfile","loadspin1","setfile","bars","Bar","convertOptions","UserPersonelData","birthdate","UserMeslekData","meslek","pozisyonu","firmaKonumu","firmaWebSitesi","DenetimPermissionPanel","setdenetimList","denetim","ListAppTypePermission","selectedids","KabulAppTypePermission","UserTypeData","multiselectUserTypeRef","rolelist","setRollist","opts","sabitImzaci","hideEvents","pasif","karalistesure","filds","setDynamicFields","dynamicdata","dynamicData","getFieldList","writeDynamicDataToObject","UserEventsPanel","ddata","pic","updatePassword","mevcut","new1","new2","myString","hasChar","sifrepanel","twoStep","UserTipData","UserDynamicData","Register3","captcha","setCaptcha","fetchgetcaptcha","grecaptcha","getResponse","Register2","zorunlo","edevletlogin","CBSADAMatching","matchresult","setMAtchResult","fetchCbsList","nums","removenotmatched","addnotmatched","taskpart","claclassNamess","count","removeAda","renderAdaTable","renderCBSTable","getMahalleName","mahalleId","karaListeTarih","searchKeyword","setSearchKeyWord","recivedRecCount","len","random","searchSimilarAdas","strtType","EventSource","onmessage","insertRow","trowcount","deleteRow","cell0","insertCell","cell1","cell2","cell3","cell4","onopen","onerror","updateTime","sk","workload","setWorkLoad","params","changeTab","renderToListMuellif","renderToListKontrolor","rowCount","UserUploadFilePanel","setFileType","uploadspinner","extns","idxx","handleTypeChange","getOptions","o","tag","setUserNAme","getAppTypeName","dragCount","id1","setDragImage","appdata","RegisterUser","overedvelet","setOveredevlet","registeroveredevlet","user_d","verify","klavuzlink","setklavuzlink","login","fontFamily","VersionData","version","setFileName","authorMappingID","vekilUserName","muvekkilTC","muvekkilName","muvekkilFamily","approved"],"mappings":"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","file":"static/js/main.628a8f49.chunk.js","sourcesContent":["import { createGlobalState } from 'react-hooks-global-state';\r\nimport * as UserPermConstants from './User/UserPermConstants';\r\nimport Swal from 'sweetalert2';\r\n\r\nwindow.Swal = Swal;\r\nexport const chartColors = ['#E63E3E', '#D7A8DB', '#8E81DC', '#507EEA', '#0057C2', '#2F95C1', '#2E4C6D', '#396EB0', '#E69080', '#2E4C6D', '#396EB0', '#DADDFC',]\r\nexport const chartTextColors = ['#E5BC00', '#01E044', '#00A5DB', '#EAE100', '#3DC100', '#00B8DB', '#7008DB', '#DB2800', '#59A3DC']\r\n\r\nexport const myGlobalState = {\r\n    role: \"\",\r\n    userName: \"\",\r\n    userData: null,\r\n    loginfromedevlet: false,\r\n    token: \"\",\r\n    globalData: null,\r\n    archivedAppList: [],\r\n    archivedAppDate: \" \"\r\n};\r\nvar myglobal = createGlobalState(myGlobalState);\r\n\r\nexport const { useGlobalState } = myglobal\r\n\r\n\r\nexport const capitalizeWords = (str) => {\r\n    if (str == null || str.length == 0 || str == \"\")\r\n        return str;\r\n    // split the string into words\r\n    const words = str.split(' ');\r\n\r\n    // iterate over each word\r\n    const capitalizedWords = words.map((word) => {\r\n        // handle Turkish special characters\r\n        const specialChars = { ' i': ' İ', ' ı': ' I', ' ğ': ' Ğ' };\r\n        word = word.replace(/([ i I ı ğ])/g, (char) => specialChars[char] || char);\r\n\r\n        // capitalize the first letter of the word\r\n        return word.charAt(0).toUpperCase() + word.slice(1);\r\n    });\r\n\r\n    // join the capitalized words back into a string\r\n    return capitalizedWords.join(' ');\r\n}\r\n\r\n\r\nexport const changeTurkceToEnglis = (s) => {\r\n    if (s == null) return \"\";\r\n    return s.replaceAll(\"ş\", \"s\").replaceAll(\"Ş\", \"S\").replaceAll(\"ı\", \"i\")\r\n        .replaceAll(\"İ\", \"I\").replaceAll(\"ğ\", \"g\").replaceAll(\"Ğ\", \"G\").replaceAll(\"ü\", \"u\").replaceAll(\"Ü\", \"U\")\r\n        .replaceAll(\"ç\", \"c\").replaceAll(\"Ç\", \"C\").replaceAll(\"Ö\", \"O\").replaceAll(\"ö\", \"o\")\r\n}\r\n\r\nexport const ajaxFail = (response, showAlert) => {\r\n    console.log(response.statusText)\r\n    response.text().then(value => {\r\n        console.log(value)\r\n        if (showAlert == true)\r\n            showErrorMessage(value);\r\n\r\n    })\r\n    if (response.status == 401) {\r\n        logout();\r\n    }\r\n}\r\n\r\nexport const cutString = (s, n) => {\r\n    if (s == null)\r\n        return \"\";\r\n    if (s.length <= n)\r\n        return s;\r\n    return s.substr(0, n) + \"...\";\r\n}\r\n\r\nexport const isEmpty = (x) => {\r\n    return x == null || x.length == 0 || (x.trim!=null && x.trim().length==0)\r\n}\r\n\r\n\r\n\r\nconst passFild = (rec, colname, appfieldlist) => {\r\n    if (colname == null || rec == null || rec.basvuruTipi == null)\r\n        return true;\r\n    var field = appfieldlist.find(x => x.name == colname);\r\n    if (field.basvuruTipi == null || field.basvuruTipi.length == 0)\r\n        return true;\r\n    if (field.basvuruTipi.includes(rec.basvuruTipi))\r\n        return true;\r\n    return false;\r\n}\r\n\r\n\r\nexport const getBolean = (v) => {\r\n    try {\r\n        if (v == null)\r\n            return false;\r\n        if (v == true || String(v).toLowerCase() == \"true\") {\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n    catch (ex) {\r\n        return false;\r\n    }\r\n    return false;\r\n}\r\n\r\n\r\n\r\nexport const passFilter = (rec, filter, username, userKabulListPerms, appfieldlist) => {\r\n    try {\r\n\r\n        if (filter == null || filter.length == 0) return true;\r\n        var result = false;\r\n        var conds = filter.split(\",\");\r\n        if (conds == null) return true;\r\n\r\n        var dynamicSoru = rec.appDataObject;\r\n\r\n        for (var i = 0; i < conds.length; i++) {\r\n            var currentCondition = conds[i].trim();\r\n            var and = currentCondition.includes(\"AND\") || conds.length == 1;\r\n            and = and || (i == 0 && conds.length > 1 && conds[1].trim().includes(\"AND\"));\r\n            currentCondition = currentCondition.replaceAll(\"AND\", \"\");\r\n            currentCondition = currentCondition.replaceAll(\"OR\", \"\");\r\n            if (currentCondition.includes('>')) {\r\n                var c = currentCondition.split(\">\");\r\n                var colname = c[0].trim();\r\n\r\n\r\n                var value = c[1].trim().split(\";\");\r\n                if (rec[colname] != null) {\r\n                    if (typeof rec[colname] == 'string' || rec[colname] instanceof String) {\r\n                        if (!value.some(v => rec[colname].localeCompare(v) >= 0)) {\r\n                            if (and == true)\r\n                                return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n                    else if (!value.some(v => rec[colname] > v)) {\r\n                        if (and == true) return false;\r\n                    }\r\n                    else result = true;\r\n                }\r\n                else {\r\n                    if (dynamicSoru != null) {\r\n                        if (!passFild(rec, colname, appfieldlist))\r\n                            return false;\r\n\r\n                        if (dynamicSoru[colname] == null || !value.some(v => parseInt(dynamicSoru[colname]) > parseInt(v))) {\r\n                            if (and == true) return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n                    else\r\n                        if (and == true) return false;\r\n                }\r\n            }\r\n            if (currentCondition.includes('<')) {\r\n                var c = currentCondition.split(\"<\");\r\n                var colname = c[0].trim();\r\n\r\n                var value = c[1].trim().split(\";\");\r\n                if (rec[colname] != null) {\r\n\r\n                    if (typeof rec[colname] == 'string' || rec[colname] instanceof String) {\r\n                        if (!value.some(v => rec[colname].localeCompare(v) <= 0)) {\r\n                            if (and == true)\r\n                                return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n                    else if (!value.some(v => parseInt(rec[colname]) < parseInt(v))) {\r\n                        if (and == true) return false;\r\n                    }\r\n                    else result = true;\r\n                }\r\n                else {\r\n                    if (dynamicSoru != null) {\r\n                        if (!passFild(rec, colname, appfieldlist))\r\n                            return false;\r\n                        if (dynamicSoru[colname] == null || !value.some(v => parseInt(dynamicSoru[colname].value) < parseInt(v))) {\r\n                            if (and == true) return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n                    else\r\n                        if (and == true) return false;\r\n                }\r\n\r\n            }\r\n            if (currentCondition.includes('=') == true && currentCondition.includes(\"!=\") == false) {\r\n                var c = currentCondition.split(\"=\");\r\n                var colname = c[0].trim();\r\n\r\n                var value = \"\";\r\n\r\n                if (colname == \"kontrolor\" || colname == \"müellifKullanıcıAdı\" || colname == \"basvuruYapan\") value = [username];  //if knorolor value is empty set it to username\r\n                if (colname == \"basvuruTipi\") {\r\n                    value = userKabulListPerms   //if basvuruTipi value is empty set it to userkabullist\r\n                    if (value == null || value.length == 0)\r\n                        value = [rec[colname]];\r\n                }\r\n                if (c.length > 1 && c[1] != null && c[1].length > 0) {\r\n                    value = c[1].trim().split(\";\");\r\n                }\r\n\r\n\r\n\r\n                if (rec[colname] != null) { //kontrolor field may have more than one kontrolor user name\r\n                    if (!value.some(v => (rec[colname] == v\r\n                        || ((colname == \"kontrolor\" || colname == \"müellifKullanıcıAdı\") && rec[colname].includes(v))))) {\r\n                        if (and == true) return false;\r\n                    }\r\n                    else result = true;\r\n                }\r\n                else {\r\n                    if (dynamicSoru != null) {\r\n                        if (!passFild(rec, colname, appfieldlist))\r\n                            return false;\r\n                        if (value.some(v => v == false) && dynamicSoru[colname] == null) {\r\n                            result = true;\r\n                        }\r\n                        else if (dynamicSoru[colname] == null || !value.some(v => dynamicSoru[colname] == v || dynamicSoru[colname].value == v || String(dynamicSoru[colname].value).toLowerCase() == String(v).toLowerCase())) {\r\n                            if (and == true) return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n                    else\r\n                        if (and == true) return false;\r\n                }\r\n            }\r\n            if (currentCondition.includes('!=')) {\r\n                var c = currentCondition.split(\"!=\");\r\n                var colname = c[0].trim();\r\n\r\n                var value = \"\";\r\n                if (colname == \"kontrolor\" || colname == \"müellifKullanıcıAdı\" || colname == \"basvuruYapan\") value = [username];\r\n                if (c.length > 1 && c[1] != null && c[1].length > 0) {\r\n                    value = c[1].trim().split(\";\");\r\n                }\r\n                if (rec[colname] != null) {\r\n                    if (!value.some(v => rec[colname] != v)) {\r\n                        if (and == true) return false;\r\n                    }\r\n                    else result = true;\r\n                }\r\n                else {\r\n                    if (dynamicSoru != null) {\r\n                        if (!passFild(rec, colname, appfieldlist))\r\n                            return false;\r\n                        if (dynamicSoru[colname] == null || !value.some(v => parseInt(dynamicSoru[colname].value) == parseInt(v))) {\r\n                            if (and == true) return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n                    else\r\n                        if (and == true) return false;\r\n                }\r\n            }\r\n            if (currentCondition.includes('ISNOTNULL')) {\r\n                var c = currentCondition.split(\"ISNOTNULL\");\r\n                var colname = c[0].trim();\r\n\r\n\r\n                if (rec[colname] == null) {\r\n                    if (dynamicSoru != null) {\r\n                        if (dynamicSoru[colname] == null) {\r\n                            if (and == true) return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n                    else\r\n                        if (and == true) return false;\r\n                }\r\n            }\r\n            if (currentCondition.includes('ISNULL')) {\r\n                var c = currentCondition.split(\"ISNULL\");\r\n                var colname = c[0].trim();\r\n                if (!passFild(rec, colname, appfieldlist))\r\n                    return false;\r\n                if (isEmpty(rec[colname])) {\r\n                    if (isEmpty(dynamicSoru) == false) {\r\n                        if (!passFild(rec, colname, appfieldlist))\r\n                            return false;\r\n                        if (isEmpty(dynamicSoru[colname]) == false) {\r\n                            if (and == true) return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n                    else result = true;\r\n                }\r\n                else return false;\r\n            }\r\n            if (currentCondition.includes('LIKE') && !currentCondition.includes('NOTLIKE')) {\r\n                var c = currentCondition.split(\"LIKE\");\r\n                var colname = c[0].trim();\r\n                value = [username]\r\n                if (c.length > 1 && c[1] != null && c[1].length > 0) {\r\n                    value = c[1].trim().split(\";\");\r\n                }\r\n                else {\r\n                    if (colname == \"tümKontrolorler\")\r\n                        colname = \"tümKontrolorlerUserNames\"; //tümKontrolorler ler boş seçilirse isim soyisim yerine kullanıcı adıyla aratılacak\r\n                }\r\n\r\n\r\n                if (rec[colname] != null && rec[colname].toString().length>0) {\r\n                    if (!value.some(v => rec[colname].toString().includes(v))) {\r\n                        if (and == true) return false;\r\n                    }\r\n                    else result = true;\r\n                }\r\n                else {\r\n                    if (dynamicSoru != null) {\r\n                        if (!passFild(rec, colname, appfieldlist))\r\n                            return false;\r\n                        if (dynamicSoru[colname] == null || !value.some(v => dynamicSoru[colname].value.toString().includes(v))) {\r\n                            if (and == true) return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n                    else\r\n                        if (and == true) return false;\r\n                }\r\n            }\r\n\r\n            if (currentCondition.includes('NOTLIKE')) {\r\n                var c = currentCondition.split(\"NOTLIKE\");\r\n                var colname = c[0].trim();\r\n\r\n                var value = c[1].trim().split(\";\");\r\n                if (rec[colname] != null) {\r\n                    if (value.some(v => rec[colname].toString().includes(v))) {\r\n                        if (and == true) return false;\r\n                    }\r\n                    else result = true;\r\n                }\r\n                else {\r\n                    if (dynamicSoru != null) {\r\n                        if (!passFild(rec, colname, appfieldlist))\r\n                            return false;\r\n                        if (dynamicSoru[colname] != null && value.some(v => dynamicSoru[colname].value.toString().includes(v))) {\r\n                            if (and == true) return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n\r\n                }\r\n            }\r\n\r\n\r\n        }\r\n\r\n        return result;\r\n    }\r\n    catch (ex) {\r\n\r\n    }\r\n    return false;\r\n}\r\n\r\n\r\n\r\n//-----------------------------------------------------------------------\r\n\r\n\r\n\r\nexport const getappdata = (id, callback) => {\r\n    fetch(\"getapp\", {\r\n        method: 'POST',\r\n        headers: {\r\n            'Accept': 'application/json',\r\n            'Content-Type': 'application/json'\r\n        },\r\n        body: JSON.stringify(id)\r\n    }).then(async response => {\r\n        if (!response.ok) {\r\n            ajaxFail(response);\r\n        }\r\n        else {\r\n            response.json().then(async app => {\r\n                callback(app);\r\n            });\r\n\r\n        }\r\n    });\r\n}\r\n\r\n\r\n\r\nexport const checkSpecialChars = (id, callback) => {\r\n    fetch(\"getapp\", {\r\n        method: 'POST',\r\n        headers: {\r\n            'Accept': 'application/json',\r\n            'Content-Type': 'application/json'\r\n        },\r\n        body: JSON.stringify(id)\r\n    }).then(async response => {\r\n        if (!response.ok) {\r\n            ajaxFail(response);\r\n        }\r\n        else {\r\n            response.json().then(async app => {\r\n                callback(app);\r\n            });\r\n\r\n        }\r\n    });\r\n}\r\n\r\nexport const removeTurkce = (s) => {\r\n    if (s == null)\r\n        return \"\";\r\n    return s.replaceAll('ı', 'i').replaceAll('ç', 'c').replaceAll('ş', 's').replaceAll('ü', 'u').replaceAll('ö', 'o')\r\n        .replaceAll('ğ', 'g').replaceAll(\"İ\", \"I\").replaceAll(\"Ğ\", \"G\")\r\n        .replaceAll('Ö', 'O').replaceAll(\"Ü\", \"U\").replaceAll(\"Ç\", \"C\").replaceAll(\"Ş\", \"S\");\r\n}\r\n\r\nexport const removeTurkcLow = (s) => {\r\n    if (s == null)\r\n        return \"\";\r\n    return s.replaceAll('ı', 'i').replaceAll('ç', 'c').replaceAll('ş', 's').replaceAll('ü', 'u').replaceAll('ö', 'o')\r\n        .replaceAll('ğ', 'g').replaceAll(\"İ\", \"i\").replaceAll(\"I\", \"i\").replaceAll(\"Ğ\", \"g\")\r\n        .replaceAll('Ö', 'o').replaceAll(\"Ü\", \"u\").replaceAll(\"Ç\", \"c\").replaceAll(\"Ş\", \"s\").toLowerCase();\r\n}\r\n\r\nexport const toUpperCaseTurkce = (s) => {\r\n    if (s == null)\r\n        return \"\";\r\n    return s.replaceAll('i', 'İ').replaceAll('ç', 'Ç').replaceAll('ş', 'Ş').replaceAll('ü', 'Ü').replaceAll('ö', 'Ö')\r\n        .replaceAll('ğ', 'Ğ').replaceAll(\"ı\", \"I\").toUpperCase();\r\n}\r\n\r\nexport const toLowerCaseTurkce = (s) => {\r\n    if (s == null)\r\n        return \"\";\r\n    return s.replaceAll('İ', 'i').replaceAll('Ç', 'ç').replaceAll('Ş', 'ş').replaceAll('Ü', 'ü').replaceAll('Ö', 'ö')\r\n        .replaceAll('Ğ', 'ğ').replaceAll(\"I\", \"ı\").toLowerCase();\r\n}\r\n\r\n\r\nconst BusinessDays = (dDate1, dDate2) => { // input given as Date objects\r\n    var iWeeks, iDateDiff, iAdjust = 0;\r\n\r\n    if (dDate2.toDateString() == dDate1.toDateString())\r\n        return 0;\r\n\r\n    if (dDate2 < dDate1) {\r\n        var t = dDate1;\r\n        dDate1 = dDate2;\r\n        dDate2 = t;\r\n    }\r\n    var iWeekday1 = dDate1.getDay(); // day of week\r\n    var iWeekday2 = dDate2.getDay();\r\n    iWeekday1 = (iWeekday1 == 0) ? 7 : iWeekday1; // change Sunday from 0 to 7\r\n    iWeekday2 = (iWeekday2 == 0) ? 7 : iWeekday2;\r\n    if ((iWeekday1 > 5) && (iWeekday2 > 5)) iAdjust = 1; // adjustment if both days on weekend\r\n    iWeekday1 = (iWeekday1 > 5) ? 5 : iWeekday1; // only count weekdays\r\n    iWeekday2 = (iWeekday2 > 5) ? 5 : iWeekday2;\r\n\r\n    // calculate differnece in weeks (1000mS * 60sec * 60min * 24hrs * 7 days = 604800000)\r\n    iWeeks = Math.floor((dDate2.getTime() - dDate1.getTime()) / 604800000)\r\n\r\n    if (iWeekday1 < iWeekday2) { //Equal to makes it reduce 5 days\r\n        iDateDiff = (iWeeks * 5) + (iWeekday2 - iWeekday1)\r\n    } else {\r\n        iDateDiff = ((iWeeks + 1) * 5) - (iWeekday1 - iWeekday2)\r\n    }\r\n\r\n    iDateDiff -= iAdjust // take into account both days on weekend\r\n\r\n    return iDateDiff; // add 1 because dates are inclusive\r\n}\r\n\r\nexport const calcBusinessDays = (dDate1, dDate2) => { // input given as Date objects\r\n    return BusinessDays(dDate1, dDate2);\r\n}\r\n\r\n\r\n\r\nexport const getDenetimSure = (rec, apptypelist, appData, message) => {\r\n\r\n    if (rec == null || apptypelist.length == 0)\r\n        return \"\";\r\n    const surebg = [\"#c9f7f5\", \"#e1f0ff\", \"#fff4de\", \"#ffe2e5\"]\r\n    const suretxt = [\"text-info\", \"text-primary\", \"text-warning\", \"text-danger\"]\r\n\r\n    var denetimid = rec.denetimID;\r\n    var havaleDate = rec.mappingDate;\r\n\r\n\r\n    if (appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Kontrol_Ediliyor\r\n        && appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Kontrol_Sirada_Bekliyor) return \"\";\r\n\r\n    var d = apptypelist.find(x => x.id == denetimid);\r\n    if (d == null) return \"\";\r\n\r\n    d = d.deadline;\r\n    if (d == null) return \"\";\r\n\r\n    var deliverdate = havaleDate.split(\" \")[0].replaceAll(\".\", \"-\") + \" 12:00:00\"\r\n    havaleDate = new Date(havaleDate.split(\" \")[0].replaceAll(\".\", \"-\") + \" 12:00:00\");\r\n\r\n    if (isEmpty(rec.deliverDate) == false)\r\n        deliverdate = rec.deliverDate.split(\" \")[0].replaceAll(\".\", \"-\") + \" 12:00:00\";\r\n    var h = new Date(deliverdate);\r\n    if (h < havaleDate)\r\n        h = havaleDate;\r\n    if (isEmpty(appData.sonDuzeltmeTarihi) == false && appData.sonDuzeltmeTarihi.includes(\" \")) {\r\n        var sonduzeltme = new Date(appData.sonDuzeltmeTarihi.split(\" \")[0].replaceAll(\".\", \"-\") + \" 12:00:00\");\r\n        if (h < sonduzeltme)\r\n            h = sonduzeltme;\r\n    }\r\n    var nw = new Date(Date.now());\r\n    var diffDays = d - calcBusinessDays(nw, h)\r\n    if (isNaN(diffDays)) {\r\n        return \"dd:\" + diffDays + \"  d:\" + rec.deliverDate + \" h:\" + h.toDateString() + \"  now:\" + nw.toDateString();\r\n    }\r\n    var i = diffDays > d * 2 / 3 ? 0 : diffDays > d / 3 ? 1 : diffDays > 0 ? 2 : 3;\r\n    return <div className={\" p-2 text-center fw-bold rounded-2 \" + suretxt[i]} style={{ \"background-color\": surebg[i], \"border-radius\": 3 }}>{message} {diffDays}</div>\r\n}\r\n\r\n\r\n\r\nexport const fvisible = (name, sabitsorulistData, applicationdata) => {\r\n    if (sabitsorulistData == null) return \"\";\r\n    var r = sabitsorulistData.filter(x => x.name == name && (x.basvuruTipi == null || x.basvuruTipi.includes(applicationdata.basvuruTipi)));\r\n    if (r.length == 0) return true;\r\n    return r[0].visible == false || r[0].visible == null;\r\n}\r\nexport const fdisabled = (name, sabitsorulistData, applicationdata) => {\r\n    if (sabitsorulistData == null) return \"\";\r\n    var r = sabitsorulistData.filter(x => x.name == name && (x.basvuruTipi == null || x.basvuruTipi.includes(applicationdata.basvuruTipi)));\r\n    if (r.length == 0) return false;\r\n    return r[0].enable == true;\r\n}\r\nexport const fzorunlu = (name, sabitsorulistData, applicationdata) => {\r\n    if (sabitsorulistData == null) return \"\";\r\n    var r = sabitsorulistData.filter(x => x.name == name && (x.basvuruTipi == null || x.basvuruTipi.includes(applicationdata.basvuruTipi)));\r\n    if (r.length == 0) return \"*\";\r\n    if (r[0].zorunlu == true)\r\n        return \"\"\r\n    return \"*\";\r\n}\r\n\r\n\r\n\r\nexport const showErrorMessage = (title, text) => {\r\n    window.Swal.fire({\r\n        title: title,\r\n        text: text,\r\n        confirmButtonText: \"Tamam\",\r\n        confirmButtonColor: \"#0d6efd\",\r\n        icon: 'error',\r\n    }).then((result) => {\r\n    })\r\n}\r\n\r\nexport const showSuccessMessage = (title, text, action) => {\r\n    window.Swal.fire({\r\n        title: title,\r\n        text: text,\r\n        confirmButtonText: \"Tamam\",\r\n        confirmButtonColor: \"#0d6efd\",\r\n        icon: 'success',\r\n    }).then((result) => {\r\n        if (action)\r\n            action();\r\n    })\r\n}\r\n\r\n\r\n\r\nexport const showConfirmMessage = (title, text, confirmButton, rejectButton, action) => {\r\n    window.Swal.fire({\r\n        title: title,\r\n        text: text,\r\n        showDenyButton: true, confirmButtonText: confirmButton, confirmButtonColor: \"#dc3545\", denyButtonText: rejectButton, denyButtonColor: \"#0d6efd\",\r\n        icon: 'question',\r\n    }).then((result) => {\r\n        if (result.isConfirmed) {\r\n            action();\r\n        }\r\n    })\r\n}\r\n\r\nexport const showInfoMessage = (title, text, confirmButton, rejectButton, action) => {\r\n    window.Swal.fire({\r\n        title: title,\r\n        text: text,\r\n        showDenyButton: rejectButton != null, confirmButtonText: confirmButton, confirmButtonColor: \"#dc3545\", denyButtonText: rejectButton, denyButtonColor: \"#0d6efd\",\r\n        icon: 'info',\r\n    }).then((result) => {\r\n        if (result.isConfirmed && action != null) {\r\n            action();\r\n        }\r\n    })\r\n}\r\n\r\n\r\nexport const sortByKey = (array, key) => {\r\n    return array.sort(function (a, b) {\r\n        var x = a[key];\r\n        var y = b[key];\r\n        if (x == null && y == null) return 0;\r\n        if (x == null) return 1;\r\n        if (y == null) return -1;\r\n        return ((x < y) ? -1 : ((x > y) ? 1 : 0));\r\n    });\r\n}\r\n\r\n\r\n\r\nexport const setVisible = (id, vis) => {\r\n    var elem = document.getElementById(id);\r\n    if (elem != null)\r\n        elem.hidden = !vis;\r\n}\r\n\r\n\r\nexport const sendpost = (url, body, spinnerid, successCalBack, failCallback) => {\r\n    setVisible(spinnerid, true);\r\n    fetch(url, {\r\n        method: 'POST',\r\n        headers: {\r\n            'Accept': 'application/json',\r\n            'Content-Type': 'application/json'\r\n        },\r\n        body: body != null ? JSON.stringify(body) : \"\"\r\n    }).then(async response => {\r\n        setVisible(spinnerid, false);\r\n        if (!response.ok) {\r\n            if (failCallback != null)\r\n                failCallback(response);\r\n            else\r\n                response.text().then(x => showErrorMessage(response.status + \" - \" + response.statusText, x));\r\n        }\r\n        else {\r\n            if (successCalBack != null)\r\n                successCalBack(response);\r\n        }\r\n    });\r\n}\r\n\r\n\r\nexport const sendget = (url, spinnerid, successCalBack, failCallback) => {\r\n    try {\r\n        setVisible(spinnerid, true);\r\n        fetch(url, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            setVisible(spinnerid, false);\r\n            if (!response.ok) {\r\n                if (failCallback != null)\r\n                    failCallback(response);\r\n                else {\r\n                    if (response.status == 401)\r\n                        window.location.href = \"/\";\r\n                    else\r\n                        response.text().then(x => showErrorMessage(response.status + \" - \" + response.statusText, x));\r\n                }\r\n            }\r\n            else {\r\n                if (successCalBack != null)\r\n                    successCalBack(response);\r\n            }\r\n        });\r\n    } catch (exception) {\r\n        showErrorMessage(exception, \"\")\r\n    }\r\n}\r\n\r\n\r\n//const swalWithBootstrapButtons = window.Swal.mixin({\r\n//    customClass: {\r\n//        confirmButton: 'ms-2 btn btn-success',\r\n//        cancelButton: 'btn btn-danger'\r\n//    },\r\n//    buttonsStyling: false\r\n//})\r\n\r\n//swalWithBootstrapButtons.fire({\r\n//    title: 'Emin misin',\r\n//    text: \"Bu işlem geri döndürülemez\",\r\n//    icon: 'warning',\r\n//    showCancelButton: true,\r\n//    confirmButtonText: 'Evet, Sil',\r\n//    cancelButtonText: 'Hayır, İptal Et',\r\n//    reverseButtons: true\r\n//}).then((result) => {\r\n//    if (result.isConfirmed) {\r\n//        swalWithBootstrapButtons.fire(\r\n//            'Onaylandı',\r\n//            'Kayıt silme işlemi yapıldı',\r\n//            'success'\r\n//        )\r\n//    }\r\n//})\r\n\r\nexport const exportExcel = (tableId, downloadlink) => {\r\n    var table = document.getElementById(tableId);\r\n    var rows = Array.prototype.slice.call(table.rows).filter(x => x.style.display != \"none\");\r\n    var thead = table.querySelector('thead');\r\n    var csv = [];\r\n\r\n    if (thead) {\r\n        var headerRow = [];\r\n        var headers = thead.querySelectorAll('th');\r\n\r\n        for (var i = 0; i < headers.length ; i++) {\r\n            var headerText = headers[i].innerText.trim();\r\n            headerText = headerText.replaceAll(/\"/g, '\"\"');\r\n            headerText = headerText.replaceAll(\",\", \" \");\r\n            headerText = headerText.replaceAll(\"\\n\", \" \");\r\n            headerRow.push(headerText);\r\n        }\r\n\r\n        csv.push(headerRow.join(\",\"));\r\n    }\r\n\r\n\r\n    for (var i = 0; i < rows.length; i++) {\r\n\r\n        var row = [], cols = rows[i].cells;\r\n\r\n        for (var j = 0; j < cols.length ; j++) {\r\n            var cellText = cols[j].innerText;\r\n            cellText = cellText.replaceAll(/\"/g, '\"\"');\r\n            cellText = cellText.replaceAll(\",\", \" \");\r\n            cellText = cellText.replaceAll(\"\\n\", \" \");\r\n            row.push(cellText);\r\n        }\r\n\r\n        csv.push(row.join(\",\"));\r\n    }\r\n    //let csvContent = \"data:text/csv;charset=utf-8,\\uFEFF\";\r\n\r\n    let csvContent = csv.join(\"\\r\\n\");\r\n\r\n    // var encodedUri = encodeURI(csvContent);\r\n    // window.open(encodedUri);\r\n    var bom = \"\\uFEFF\";\r\n    var blob = new Blob([bom + csvContent], { type: 'text/csv;charset=utf-8;' });\r\n    var a = document.getElementById(\"downloadlink\")\r\n    a.href = URL.createObjectURL(blob);\r\n    console.log(a.href)\r\n}\r\n\r\n\r\nexport const jaccardSimilarity = (a, b) => {\r\n    const setA = new Set(a);\r\n    const setB = new Set(b);\r\n\r\n    const intersection = new Set([...setA].filter(x => setB.has(x)));\r\n    const union = new Set([...setA, ...setB]);\r\n\r\n    return intersection.size / Math.max(a.length, b.length);\r\n}\r\n\r\nexport const levenshtein = (a, b) => {\r\n    const matrix = [];\r\n    let i, j;\r\n\r\n    for (i = 0; i <= b.length; i++) {\r\n        matrix[i] = [i];\r\n    }\r\n\r\n    for (j = 0; j <= a.length; j++) {\r\n        matrix[0][j] = j;\r\n    }\r\n\r\n    for (i = 1; i <= b.length; i++) {\r\n        for (j = 1; j <= a.length; j++) {\r\n            if (b.charAt(i - 1) === a.charAt(j - 1)) {\r\n                matrix[i][j] = matrix[i - 1][j - 1];\r\n            } else {\r\n                matrix[i][j] = Math.min(\r\n                    matrix[i - 1][j - 1] + 1, // substitution\r\n                    matrix[i][j - 1] + 1,     // insertion\r\n                    matrix[i - 1][j] + 1      // deletion\r\n                );\r\n            }\r\n        }\r\n    }\r\n\r\n    return 1 - (matrix[b.length][a.length] / Math.max(a.length, b.length));\r\n}\r\n\r\n\r\n\r\nexport const logout = () => {\r\n    document.cookie.split(\"; \").forEach(function (c) { document.cookie = c.replace(/^ +/, \"\").replace(/=.*/, \"=;expires=\" + new Date().toUTCString() + \";path=/\"); });\r\n    window.localStorage.setItem('Token', '');\r\n    sendget(\"logout\", \"\", (resp) => {\r\n        window.location.href = \"/\";\r\n    });\r\n\r\n\r\n\r\n}\r\n\r\nexport const maskStringWithStar = (str) => {\r\n    if (isEmpty(str))\r\n        return \"\";\r\n    if (str.length <= 4) {\r\n        return str; // No masking if the string is too short\r\n    }\r\n\r\n    const firstTwo = str.slice(0, 2);\r\n    const lastTwo = str.slice(-2);\r\n    const masked = '*'.repeat(str.length - 4);\r\n\r\n    return firstTwo+masked+lastTwo;\r\n}\r\n\r\nexport const setHtmlTag = (id, value, fild) => {\r\n    var c = document.getElementById(id);\r\n    if (c != null) {\r\n        if (fild == null)\r\n            c.innerHTML = value;\r\n        else\r\n            c[fild] = value;\r\n        return true;\r\n    }\r\n    return false;\r\n}\r\nexport const getHtmlTag = (id, fild) => {\r\n    var c = document.getElementById(id);\r\n    if (c != null) {\r\n        return c[fild];\r\n    }\r\n    return null;\r\n}\r\n\r\nexport const getObjectFromArray = (data, id, keyValue) => {\r\n    if (data == null || data.length == 0)\r\n        return new Object();\r\n    var f = data.find(x => x[id] == keyValue);\r\n    if (f != null)\r\n        return f;\r\n    return new Object();\r\n\r\n}\r\n\r\n\r\nexport const isImage = (filename) => {\r\n    if (filename.endsWith(\".jpg\") || filename.endsWith(\".jpeg\") || filename.endsWith(\".png\") || filename.endsWith(\".gif\")\r\n        || filename.endsWith(\".bmp\") || filename.endsWith(\".tiff\") || filename.endsWith(\".tif\") || filename.endsWith(\".webp\")\r\n        || filename.endsWith(\".heic\") || filename.endsWith(\".arw\") || filename.endsWith(\".cr2\") || filename.endsWith(\".nef\")\r\n        || filename.endsWith(\".svg\") || filename.endsWith(\".eps\") || filename.endsWith(\".ai\"))\r\n        return true;\r\n    return false;\r\n}\r\n\r\nexport const isVideo = (filename) => {\r\n    if (filename.endsWith(\".ogm\") || filename.endsWith(\".wmv\") || filename.endsWith(\".mpg\") || filename.endsWith(\".webm\")\r\n        || filename.endsWith(\".ogv\") || filename.endsWith(\".mov\") || filename.endsWith(\".asx\") || filename.endsWith(\".mpeg\")\r\n        || filename.endsWith(\".mp4\") || filename.endsWith(\".m4v\") || filename.endsWith(\".avi\") )\r\n        return true;\r\n    return false;\r\n}\r\n\r\n\r\nexport const calculateDateDifference = (date1,date2) => {\r\n    try {\r\n        const parsedDate1 = new Date(date1.split(\" \")[0]);\r\n        const parsedDate2 = date2;\r\n\r\n        if (isNaN(parsedDate1) || isNaN(parsedDate2)) {\r\n            throw new Error(\"Invalid date format.\");\r\n        }\r\n        parsedDate1.setHours(0, 0, 0, 0);\r\n        parsedDate2.setHours(0, 0, 0, 0);\r\n\r\n        const differenceInMs = parsedDate1 - parsedDate2;\r\n\r\n        // Convert milliseconds to days\r\n        const differenceInDays = differenceInMs / (1000 * 60 * 60 * 24);\r\n\r\n        return Math.abs(Math.floor(differenceInDays)); // Return the absolute difference in whole days\r\n    }\r\n    catch (ex) {\r\n        return ex;\r\n    }\r\n}","import React, { useState, useEffect } from 'react';\r\nimport KadastralVeri from '../Application/KadastralVeri.js';\r\nimport $ from 'jquery';\r\nimport { ajaxFail, cutString, isEmpty, sendpost, setHtmlTag, toUpperCaseTurkce } from '../GlobalState.js';\r\nimport CBSADAMatching from './CBSADAMatching.js';\r\nimport CBSAdaSorgula from './CBSAdaSorgula.js';\r\nimport bootstrap from 'bootstrap/dist/js/bootstrap.min.js'\r\nimport { Tarife_Cetveli } from '../User/UserPermConstants.js';\r\n\r\nexport default function CBSBenzerAdalar(props) {\r\n    const [listData, setListData] = useState([]);\r\n    const [surecList, setSurecList] = useState([]);\r\n\r\n\r\n    useEffect(() => {\r\n        fetchSurecList();\r\n    }, [])\r\n\r\n\r\n    useEffect(() => {\r\n       // setHtmlTag(\"parseltable\", \"\");\r\n        //setHtmlTag(\"apptable\", \"\");\r\n        fetchList();\r\n\r\n    }, [props])\r\n\r\n\r\n\r\n    const fetchSurecList = () => {\r\n\r\n        fetch(\"sureclist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setSurecList(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    const getSurecName = (i) => {\r\n\r\n        var r = surecList.find(element => element.id == i);\r\n        if (r == null) return i;\r\n        return r.name;\r\n    }\r\n\r\n    const fetchList = () => {\r\n        sendpost(\"getbenzeradalar\", props.ada, \"spinner\", (response) => {\r\n            try {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n            catch (e) {\r\n                setListData([]);\r\n            }\r\n            \r\n        },)\r\n    }\r\n   \r\n\r\n\r\n    const getDurumName = (d) => {\r\n        if (d == 0) return \"Bilinmiyor\";\r\n        if (d == 1) return \"Taslak\";\r\n        if (d == 2) return \"Pasif\";\r\n        if (d == 3) return \"Aktif\";\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        if (tabledata == null)\r\n            return \"\";\r\n        var mytable =\r\n            <div className=\"table-responsive  mainpagescroll table-sm \">\r\n                <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light\">\r\n                        <tr>\r\n                            <th className=\"text-start\" style={{ \"width\": \"10%\", overflow: \"hidden\" }}>ID</th>\r\n                            <th className=\"text-start\" >Mahalle</th>\r\n                            <th className=\"text-start\" >Ada/Parsel No</th>\r\n                            <th className=\"text-start\" >Durum</th>\r\n                            <th className=\"text-start\" >Koordinat</th>\r\n                           \r\n                        </tr>\r\n                    </thead>\r\n                    <tbody id=\"myTable\">\r\n                        {tabledata.map(apprec =>\r\n                            <tr style={{ \"height\": \"15px\" }}>\r\n                                <td >{apprec.tapukimlikno}</td>\r\n                                {/* <td title={apprec.tapucinsaciklama}  >{apprec.tapucinsaciklama}</td>*/}\r\n                                {/*<td >{apprec.tapuzeminref}</td>*/}\r\n                                <td >{apprec.tapumahalleref}</td>\r\n                                {/* <td >{apprec.tapualan}</td>*/}\r\n                                <td >{apprec.adano}/{apprec.parselno}</td>\r\n                                {/* <td >{apprec.durum + \"( \" + getDurumName(apprec.durum) + \")\"}</td>*/}\r\n                                <td >{getDurumName(apprec.durum)}</td>\r\n                                <td >{cutString(apprec.coordinates, 100)}</td>\r\n                            </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    const renderAppTable = (tabledata) => {\r\n        if (tabledata == null)\r\n            return \"\";\r\n\r\n        var mytable =\r\n            <div className=\"table-responsive  mainpagescroll table-sm \">\r\n                <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light\">\r\n                        <tr>\r\n                            <th className=\"text-start\" style={{ \"width\": \"10%\", overflow: \"hidden\" }}>ID</th>\r\n                            <th className=\"text-start\" >Mahalle</th>\r\n                            <th className=\"text-start\" >Ada/Parsel</th>\r\n                            <th className=\"text-start\" >Başvuru Tipi</th>\r\n                            <th className=\"text-start\" >Basvuru Yapan</th>\r\n                            <th className=\"text-start\" >Basvuru Durumu</th>\r\n                            <th className=\"text-start\" ></th>\r\n\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody id=\"myTable\">\r\n                        {tabledata.map(apprec =>\r\n                            <tr style={{ \"height\": \"15px\" }} role=\"button\" className=\"v-hover\" onClick={() => {\r\n                                var popup = window.open(\"/\");\r\n                                popup.appData = apprec;}}>\r\n                                <td >{apprec.id}</td>\r\n                                <td >{apprec.mahalle}</td>\r\n                                <td >{apprec.adano}{apprec.ada}</td>\r\n                                <td >{apprec.basvuruTipi}</td>\r\n                                <td >{apprec.basvuruYapan}</td>\r\n                                <td >{getSurecName(apprec.basvuruDurumu)}</td>\r\n\r\n\r\n                            </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"p-2\">\r\n           \r\n            <div className=\"row \" >\r\n                <div className=\"col-6 \"  >\r\n                    <h5>İlgili Ada Parseller</h5>\r\n                </div>\r\n                <div className=\"col-6 text-end\"  >\r\n                 <div className=\"spinner-border spinner-border-sm\" id=\"spinner\" hidden></div>   \r\n                </div>\r\n            </div>\r\n\r\n\r\n            <div className=\"row \" >\r\n                <div className=\"col-3 \"  >\r\n                    Tapu kimlik no: {props.ada.tapukimlikno}\r\n                </div>\r\n                <div className=\"col-3 \"  >\r\n                   Ada-Parsel: {props.ada.adano}/{props.ada.parselno} \r\n                </div>\r\n                <div className=\"col-3 \"  >\r\n                    Mahalle Ref: {props.ada.tapumahalleref}\r\n                </div>\r\n                <div className=\"col-3 \"  >\r\n                    Durum: {getDurumName(props.ada.durum)}\r\n                </div>\r\n            </div>\r\n\r\n           \r\n            <div className=\"row\" >\r\n                <div className=\"col-12\" id=\"parseltable\" key={listData }>\r\n                    {renderTable(listData.parsels)}\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row mt-5\">\r\n                <div className=\"col-12\"  >\r\n                    <h5>Başvurular</h5>\r\n                </div>\r\n                <div className=\"col-12\" id=\"apptable\" key={listData}>\r\n                    {renderAppTable(listData.applications)}\r\n                </div>\r\n            </div>\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty } from '../GlobalState.js';\r\nimport Application from './Application.js';\r\nimport ApplicationList from './ApplicationList.js';\r\n\r\n\r\nexport default function GMapLatLang(props) {\r\n    var appData = props.appData;\r\n    var polygon = props.polygon;\r\n    var [gdata, setGData] = useState(null);\r\n    const [googlemapkey, setGoogleMapKey] = useState(null);\r\n    var script = null;\r\n\r\n    useEffect(() => {\r\n        fetchGeneralData();\r\n        getgooglemapkey();\r\n    }, [])\r\n\r\n    useEffect(() => {\r\n        if (window.google!=null)\r\n        initMap();\r\n    }, [props.polygon])\r\n\r\n    const getgooglemapkey = () => {\r\n        fetch(\"getgooglemapkey\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.text().then(async data => {\r\n                    setGoogleMapKey(data.replaceAll('\"', \"\"));\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const fetchGeneralData = () => {\r\n        fetch(\"getgeneraldata\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setGData(data);\r\n\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n   \r\n    var mymapscript = document.getElementById(\"mymapscript\");\r\n    try {\r\n        if (gdata != null && script == null && document.getElementById(\"googlemapscript\") == null && isEmpty(googlemapkey) == false) {\r\n\r\n            script = document.createElement(\"script\");\r\n            script.id = \"googlemapscript\"\r\n            script.src = \"https://maps.googleapis.com/maps/api/js?key=\" + googlemapkey + \"&callback=initAutocomplete&libraries=places&v=weekly\";\r\n            script.async = true;\r\n            script.defer = true;\r\n            mymapscript.appendChild(script);\r\n            script.onload = () => {\r\n                initMap();\r\n            }\r\n        }\r\n    } catch (ex) {\r\n        console.log(ex);\r\n    }\r\n\r\n    const initMap = () => {\r\n        try {\r\n            var myLatlng = { lat: 38.389, lng: 27.146 };\r\n\r\n            if (gdata != null && gdata.genlem != null && isNaN(gdata.genlem) == false) {\r\n                myLatlng.lat = parseFloat(gdata.genlem);\r\n            }\r\n            if (gdata != null && gdata.gboylem != null && isNaN(gdata.genlem) == false) {\r\n                myLatlng.lng = parseFloat(gdata.gboylem);\r\n            }\r\n            var z = 7;\r\n            if (gdata != null && gdata.gzoom != null) {\r\n                z = parseInt(gdata.gzoom)\r\n            }\r\n            if (window.google == null || window.google.maps == null)\r\n                return;\r\n            var map = new window.google.maps.Map(document.getElementById(\"map\"), {\r\n                zoom: z,\r\n                center: myLatlng,\r\n\r\n            });\r\n            var Coords = [];\r\n\r\n            if (isEmpty(polygon) == false) {\r\n                var bounds = new window.google.maps.LatLngBounds();\r\n                var ct = polygon.replaceAll(\"'\", \"\").replaceAll('\"', '').split(\" \");\r\n                for (var i = 0; i < ct.length; i++) {\r\n                    var latlang = ct[i].split(\",\");\r\n                    if (isNaN(Number(latlang[0])) == false && isNaN(Number(latlang[1])) == false) {\r\n                        var lg = { lng: Number(latlang[0]), lat: Number(latlang[1]) };\r\n                        Coords.push(lg)\r\n                        bounds.extend(lg);\r\n                    }\r\n                }\r\n\r\n                myLatlng = bounds.getCenter();\r\n                if (props.setLatLang != null)\r\n                    props.setLatLang(myLatlng)\r\n                map.zoom = 12;\r\n                const bermudaTriangle = new window.google.maps.Polygon({\r\n                    paths: Coords,\r\n                    strokeColor: \"#FF0000\",\r\n                    strokeOpacity: 0.8,\r\n                    strokeWeight: 2,\r\n                    fillColor: \"#FF0000\",\r\n                    fillOpacity: 0.35,\r\n                });\r\n                bermudaTriangle.setMap(map);\r\n                map.fitBounds(bounds);\r\n            }\r\n\r\n            // Create the search box and link it to the UI element.\r\n            // const input = document.getElementById(\"mapsearch\") ;\r\n            var input = document.createElement(\"INPUT\");\r\n            input.setAttribute(\"type\", \"text\");\r\n            input.setAttribute(\"placeholder\", \"Ara\");\r\n            input.setAttribute(\"class\", \"form-control form-control-sm w-50 mt-2\");\r\n            const searchBox = new window.google.maps.places.SearchBox(input);\r\n\r\n            map.controls[window.google.maps.ControlPosition.TOP_LEFT].push(input);\r\n\r\n            // Bias the SearchBox results towards current map's viewport.\r\n            map.addListener(\"bounds_changed\", () => {\r\n                searchBox.setBounds(map.getBounds());\r\n            });\r\n\r\n            let markers: window.google.maps.Marker[] = [];\r\n\r\n            // Listen for the event fired when the user selects a prediction and retrieve\r\n            // more details for that place.\r\n            searchBox.addListener(\"places_changed\", () => {\r\n                const places = searchBox.getPlaces();\r\n\r\n                if (places.length == 0) {\r\n                    return;\r\n                }\r\n\r\n                // Clear out the old markers.\r\n                markers.forEach((marker) => {\r\n                    marker.setMap(null);\r\n                });\r\n                markers = [];\r\n\r\n                // For each place, get the icon, name and location.\r\n                const bounds = new window.google.maps.LatLngBounds();\r\n\r\n                places.forEach((place) => {\r\n                    if (!place.geometry || !place.geometry.location) {\r\n                        console.log(\"Returned place contains no geometry\");\r\n                        return;\r\n                    }\r\n\r\n                    const icon = {\r\n                        url: place.icon,\r\n                        size: new window.google.maps.Size(71, 71),\r\n                        origin: new window.google.maps.Point(0, 0),\r\n                        anchor: new window.google.maps.Point(17, 34),\r\n                        scaledSize: new window.google.maps.Size(25, 25),\r\n                    };\r\n\r\n                    // Create a marker for each place.\r\n                    markers.push(\r\n                        new window.google.maps.Marker({\r\n                            map,\r\n                            icon,\r\n                            title: place.name,\r\n                            position: place.geometry.location,\r\n                        })\r\n                    );\r\n\r\n                    if (place.geometry.viewport) {\r\n                        // Only geocodes have viewport.\r\n                        bounds.union(place.geometry.viewport);\r\n                    } else {\r\n                        bounds.extend(place.geometry.location);\r\n                    }\r\n                });\r\n                map.fitBounds(bounds);\r\n            });\r\n\r\n\r\n\r\n\r\n\r\n            let infoWindow = null;\r\n\r\n            // Create the initial InfoWindow.\r\n            if (props.polygon == null) {\r\n                infoWindow = new window.google.maps.InfoWindow({\r\n                    content: \"Enlem,Boylam için teıklayınız\",\r\n                    position: myLatlng,\r\n                });\r\n                infoWindow.open(map);\r\n            }\r\n\r\n            //\r\n\r\n            // Configure the click listener.\r\n            map.addListener(\"click\", (mapsMouseEvent) => {\r\n                // Close the current InfoWindow.\r\n                if (infoWindow != null)\r\n                    infoWindow.close();\r\n\r\n                // Create a new InfoWindow.\r\n                infoWindow = new window.google.maps.InfoWindow({\r\n                    position: mapsMouseEvent.latLng,\r\n                });\r\n                infoWindow.setContent(\r\n                    JSON.stringify(mapsMouseEvent.latLng.toJSON(), null, 2)\r\n                );\r\n                infoWindow.open(map);\r\n\r\n                if (props.setLatLang != null)\r\n                    props.setLatLang(mapsMouseEvent.latLng)\r\n                else if (appData) {\r\n                    appData[\"enlem\"] = mapsMouseEvent.latLng.lat();\r\n                    appData[\"boylam\"] = mapsMouseEvent.latLng.lng();\r\n                }\r\n\r\n            });\r\n        }\r\n        catch (ex) {\r\n            console.log(ex);\r\n        }\r\n    }\r\n\r\n\r\n\r\n\r\n    return <div className=\"p-0 rounded-3 h-100 w-100 \">\r\n        <div id=\"mymapscript\"></div>\r\n        {props.changeComponent && <div className=\"text-end m-2\">\r\n            <button className=\"btn btn-sm btn-primary rounded m-1\" onClick={() => { props.changeComponent(< Application key={props.appData.id} appData={props.appData} changeComponent={props.changeComponent} backButton={< ApplicationList changeComponent={props.changeComponent} />}/>) }}> <i className=\"fa fa-arrow-circle-left pe-1\"></i> Geri Don</button>\r\n\r\n        </div>}\r\n\r\n\r\n        <div id=\"map\" className=\"rounded-3 w-100 h-100\" style={{ minHeight:props.changeComponent!=null?600:100 }}>\r\n\r\n        </div>\r\n\r\n    </div>\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useGlobalState } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport { removeTurkcLow } from '../GlobalState.js';\r\n\r\n\r\nexport default function AddressBook(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState([]);\r\n    const colors = [\"#fff8dd\", \"#e8fff3\", \"#fff5f8\", \"#f8f5ff\"]\r\n    const bordercolors = [\"#50cc88\", \"#009cf7\", \"#ffc800\", \"#f1416d\"]\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userlist, setUserlist] = useState([]);\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n    var reccount = listData.length + userlist.length;\r\n\r\n    const removeRecord = (id) => {\r\n        fetch(\"removefromaddressbook\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getUserList = () => {\r\n        fetch(\"userlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n                this.setState({ status: response.statusText })\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    var ulist = [];\r\n                    //for (var i = 0; i < data.length; i++)\r\n                    //    ulist.push(\"<option value=\" + i + \">\" + data[i].name + \" \" + data[i].family + \"</option>\");\r\n                    //document.getElementById(\"userlist\").innerHTML = ulist;\r\n                    //document.getElementById(\"userlist\").selectedIndex = -1;\r\n                    setUserlist(data)\r\n                });\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const submitUpdateRecord = (rec) => {\r\n\r\n        fetch(\"updateaddressbook\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                alert(\"Güncelleme Başarıyla Tamamlanmştır\")\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchList = () => {\r\n\r\n        fetch(\"getaddresslist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const Add = () => {\r\n        fetch(\"addtoaddressbook\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                document.getElementById(\"isim\").value = \"\";\r\n                document.getElementById(\"soyisim\").value = \"\";\r\n                document.getElementById(\"tel\").value = \"\";\r\n                document.getElementById(\"email\").value = \"\";\r\n                document.getElementById(\"userType\").value = \"\";\r\n                fetchList();\r\n\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n    const filterTable = (event) => {\r\n        const target = event.target;\r\n        const value = removeTurkcLow(target.value).toLowerCase();\r\n        var keywords = value.split(\" \");\r\n\r\n        $(\"#myTable tr\").filter(function () {\r\n            var rowtext = \"\";\r\n            var cc=$(this).children().length;\r\n            for (var c = 0; c < cc; c++) \r\n                if ($(this).children().eq(c + 2).children(\":first\").val() != null) {\r\n                    rowtext += $(this).children().eq(c + 2).children(\":first\").val() + \" \";\r\n            }\r\n            var t1 = removeTurkcLow(rowtext);\r\n\r\n            for (let index = 0; index < keywords.length; ++index) {\r\n                if (t1.indexOf(keywords[index]) == -1) {\r\n                    return $(this).toggle(false);\r\n                }\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n\r\n    }\r\n\r\n   /* const filterTable = (event) => {\r\n        const target = event.target;\r\n        const value = removeTurkcLow(target.value).toLowerCase();\r\n        var cl = [\"name\", \"family\", \"userTypef\", \"firmaf\", \"telefon\", \"emailf\", \"idf\"]\r\n        $(\"#myTable tr\").filter(function () {\r\n            for (var c = 0; c < cl.length; c++) {\r\n                if ($(this).children().eq(c + 2).children(\":first\").val() != null) {\r\n                    var t1 = removeTurkcLow($(this).children().eq(c + 2).children(\":first\").val()).toLowerCase();\r\n                    if (t1.indexOf(value) != -1)\r\n                        return $(this).toggle(true);\r\n                }\r\n\r\n            }\r\n            return $(this).toggle(false);\r\n        });\r\n    }*/\r\n\r\n    const AddFromUsers = () => {\r\n        var idx = document.getElementById(\"userlist\").value;\r\n        var rec = userlist[idx]\r\n        fetch(\"addtoaddressbook\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({ isim: rec.name, soyisim: rec.family, tel: rec.tel, email: rec.email, userType: rec.userType })\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                document.getElementById(\"isim\").value = \"\";\r\n                document.getElementById(\"soyisim\").value = \"\";\r\n                document.getElementById(\"tel\").value = \"\";\r\n                document.getElementById(\"email\").value = \"\";\r\n                document.getElementById(\"userType\").value = \"\";\r\n                fetchList();\r\n\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n    const filterColumn = (event) => {\r\n        const target = event.target;\r\n        const value = target.value.toLowerCase();\r\n        var cl = [\"name\", \"family\", \"userTypef\", \"firmaf\", \"telefon\", \"emailf\", \"idf\"]\r\n        $(\"#myTable tr\").filter(function () {\r\n            for (var c = 0; c < cl.length; c++) {\r\n                if (document.getElementById(cl[c]).value != null && document.getElementById(cl[c]).value.length > 0)\r\n                    if ($(this).children().eq(c + 1).children(\":first\").val() != null) {\r\n                        if (removeTurkcLow($(this).children().eq(c + 1).children(\":first\").val()).toLowerCase().indexOf(removeTurkcLow(document.getElementById(cl[c]).value).toLowerCase()) == -1)\r\n                            return $(this).toggle(false);\r\n\r\n                    }\r\n\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n\r\n        var mytable = <div>\r\n            <div className=\"row rounded-3 m-1 \">\r\n                {/*{role != null && role.indexOf(UserPermConstants.Adres_Defterini_Duzenleme) > -1 &&*/}\r\n                {/*    <div className=\"col-12 pt-2 pb-2 bg-light rounded-3 border-white border-end border-5\" >*/}\r\n                {/*        <h6>Manuel kayıt ekle</h6>*/}\r\n                {/*        <div className=\"row mb-4\">*/}\r\n                {/*            <div className=\"col-md-2 col-12 \" >*/}\r\n                {/*                <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"İsim\" id=\"isim\" name=\"isim\" onChange={handleInputChange} defaultValue=\"\" />*/}\r\n                {/*            </div>*/}\r\n                {/*            <div className=\"col-md-2 col-12  \" >*/}\r\n                {/*                <input type=\"text\" className=\"form-control form-control-sm \" placeholder=\"Soyisim\" id=\"soyisim\" name=\"soyisim\" onChange={handleInputChange} defaultValue=\"\" />*/}\r\n                {/*            </div>*/}\r\n                {/*            <div className=\"col-md-2 col-12  \" >*/}\r\n                {/*                <input type=\"text\" className=\"form-control form-control-sm \" placeholder=\"Tel\" id=\"tel\" name=\"tel\" onChange={handleInputChange} defaultValue=\"\" />*/}\r\n                {/*            </div>*/}\r\n\r\n                {/*            <div className=\"col-md-2 col-12 \" >*/}\r\n                {/*                <input type=\"text\" className=\"form-control form-control-sm \" placeholder=\"Email\" id=\"email\" name=\"email\" onChange={handleInputChange} defaultValue=\"\" />*/}\r\n                {/*            </div>*/}\r\n                {/*            <div className=\"col-md-2 col-12 \" >*/}\r\n                {/*                <input type=\"text\" className=\"form-control form-control-sm \" placeholder=\"kullanıcı Tipi\" id=\"userType\" name=\"userType\" onChange={handleInputChange} defaultValue=\"\" />*/}\r\n                {/*            </div>*/}\r\n\r\n                {/*            <div className=\"col-md-2 col-12 \">  <button onClick={Add} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">Ekle</button></div>*/}\r\n                {/*        </div>*/}\r\n                {/*    </div>}*/}\r\n            </div>\r\n            <div style={{ \"overflow-x\": \"auto\" }}>\r\n                <table className='table table-vdstriped  table-sm' >\r\n                    <thead className=\"text-center\">\r\n                        <tr >\r\n                            <th width=\"20px\"></th>\r\n                           {/* <th width=\"20px\"></th>*/}\r\n\r\n                            <th ><input type=\"text\" className=\"form-control form-control-sm \" id=\"name\" name=\"name\" placeholder=\"İsim\" onChange={filterColumn} /></th>\r\n                            <th ><input type=\"text\" className=\"form-control form-control-sm \" id=\"family\" name=\"family\" placeholder=\"Soyisim\" onChange={filterColumn} />    </th>\r\n                            <th ><input type=\"text\" className=\"form-control form-control-sm \" id=\"userTypef\" name=\"userType\" placeholder=\"Kullanıcı Tipi \" onChange={filterColumn} />  </th>\r\n                            <th ><input type=\"text\" className=\"form-control form-control-sm \" id=\"firmaf\" name=\"firma\" placeholder=\"Firma \" onChange={filterColumn} />  </th>\r\n\r\n                            <th ><input type=\"text\" className=\"form-control form-control-sm \" id=\"telefon\" name=\"tel\" placeholder=\"Tel\" onChange={filterColumn} />     </th>\r\n                            <th ><input type=\"text\" className=\"form-control form-control-sm \" id=\"emailf\" name=\"email\" placeholder=\"Email\" onChange={filterColumn} />     </th>\r\n                            <th ><input type=\"text\" className=\"form-control form-control-sm \" id=\"idf\" name=\"id\" placeholder=\"Kullanıcı Kodu \" onChange={filterColumn} />  </th>\r\n                            <th ></th>\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody id=\"myTable\">\r\n                        {userlist.map((apprec, idx) =>\r\n                            <tr key={apprec.id} className=\"border-bottom\" height=\"50px\">\r\n\r\n                                <td width=\"20px\">\r\n                                    {idx}\r\n                                </td>\r\n                                {/*<td>*/}\r\n                                {/*    <img className=\"rounded-circle\" style={{ width: \"32px\", height: \"32px\" }} src={\"/getuserpic?user=\" + apprec.userName} />*/}\r\n\r\n                                {/*</td>*/}\r\n\r\n                                <td  >\r\n                                    <input type=\"text\" className=\"form-control form-control-sm border-0\" style={{ \"background-color\": \"transparent\" }} name=\"name\" defaultValue={apprec.name} onChange={(e) => updateRecord(apprec, e)} />\r\n                                </td>\r\n                                <td  >\r\n                                    <input type=\"text\" className=\"form-control form-control-sm border-0\" style={{ \"background-color\": \"transparent\" }} name=\"family\" defaultValue={apprec.family} onChange={(e) => updateRecord(apprec, e)} />\r\n                                </td>\r\n                                <td  >\r\n                                    <input type=\"text\" className=\"form-control form-control-sm border-0\" style={{ \"background-color\": \"transparent\" }} name=\"userType\" defaultValue={apprec.userType} onChange={(e) => updateRecord(apprec, e)} />\r\n                                </td>\r\n\r\n                                <td  >\r\n                                    <input type=\"text\" className=\"form-control form-control-sm border-0\" style={{ \"background-color\": \"transparent\" }} name=\"firma\" defaultValue={apprec.firma} onChange={(e) => updateRecord(apprec, e)} />\r\n                                </td>\r\n                                <td  >\r\n                                    <input type=\"text\" className=\"form-control form-control-sm border-0\" style={{ \"background-color\": \"transparent\" }} name=\"tel\" defaultValue={apprec.tel} onChange={(e) => updateRecord(apprec, e)} />\r\n                                </td>\r\n                                <td  >\r\n                                    <input type=\"text\" className=\"form-control form-control-sm border-0\" style={{ \"background-color\": \"transparent\" }} name=\"email\" defaultValue={apprec.email} onChange={(e) => updateRecord(apprec, e)} />\r\n                                </td>\r\n                                <td  >\r\n                                    <input type=\"text\" className=\"form-control form-control-sm border-0\" style={{ \"background-color\": \"transparent\" }} name=\"id\" defaultValue={apprec.id} onChange={(e) => updateRecord(apprec, e)} />\r\n                                </td>\r\n                                <td ></td>\r\n                            </tr>\r\n                        )}\r\n\r\n\r\n\r\n                        {tabledata.map((apprec, idx) =>\r\n                            < tr key={apprec.id} height=\"40px\" className=\"border-bottom\">\r\n                                <td width=\"20px\">\r\n                                    {idx + userlist.length}\r\n                                </td>\r\n                                <td>\r\n                                </td>\r\n                                <td>\r\n                                    <input type=\"text\" className=\"form-control form-control-sm border-0\" style={{ \"background-color\": \"transparent\" }} name=\"isim\" defaultValue={apprec.isim} onChange={(e) => updateRecord(apprec, e)} />\r\n                                </td>\r\n                                <td >\r\n                                    <input type=\"text\" className=\"form-control form-control-sm border-0\" style={{ \"background-color\": \"transparent\" }} name=\"soyisim\" defaultValue={apprec.soyisim} onChange={(e) => updateRecord(apprec, e)} />\r\n                                </td>\r\n                                <td >\r\n                                    <input type=\"text\" className=\"form-control form-control-sm border-0\" style={{ \"background-color\": \"transparent\" }} name=\"tel\" defaultValue={apprec.tel} onChange={(e) => updateRecord(apprec, e)} />\r\n                                </td>\r\n                                <td  >\r\n                                    <input type=\"text\" className=\"form-control form-control-sm border-0\" style={{ \"background-color\": \"transparent\" }} name=\"email\" defaultValue={apprec.email} onChange={(e) => updateRecord(apprec, e)} />\r\n                                </td>\r\n                                <td  >\r\n                                    <input type=\"text\" className=\"form-control form-control-sm border-0\" style={{ \"background-color\": \"transparent\" }} name=\"userType\" defaultValue={apprec.userType} onChange={(e) => updateRecord(apprec, e)} />\r\n                                </td>\r\n\r\n                                <td  >\r\n                                </td>\r\n                                <td  >\r\n                                </td>\r\n                                <td style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }}>\r\n                                    <button onClick={() => submitUpdateRecord(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Güncelle</button>&nbsp;\r\n                                    <button onClick={() => removeRecord(apprec.id)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button>\r\n                                </td>\r\n                            </tr>\r\n                        )}\r\n                    </tbody >\r\n                </table>\r\n            </div>\r\n        </div>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n        getUserList();\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div >\r\n            <div className=\"row\">\r\n                <div className=\"col-7\">\r\n                    <h4 style={{ \"text-shadow\": \"0px 0px 1px grey\", color: \"#0098db\" }}>Adres Defteri</h4>\r\n                </div>\r\n                <div className=\"col-5 justify-content-end align-items-end text-end text-secondary\"><b>{reccount}</b> kayıt</div>\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\"col-12 text-center d-flex justify-content-center mb-2\">\r\n\r\n                    <input style={{ maxWidth: \"400px\" }} className=\"form-control form-control-sm\" id=\"genelarama\" type=\"text\" placeholder=\"Arama\" onKeyUp={filterTable} />\r\n\r\n                </div>\r\n            </div>\r\n\r\n            {listTable}\r\n\r\n        </div >\r\n\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, useGlobalState } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\n\r\n\r\nexport default function EImzaListem(props) {\r\n\r\n    const [eimzalist, setEimzalist] = useState([]);\r\n    const [sortDirection, setSortDirection] = useState({ \"transactionUUID\": 1 });\r\n    const [userData, setuserData] = useGlobalState('userData');\r\n    var sortField = null;\r\n\r\n    var selectedImzaList = []\r\n    useEffect(() => {\r\n        getEimzaList(0);\r\n    }, [])\r\n\r\n\r\n    const myCompare = (a, b) => {\r\n        if (sortField == null)\r\n            sortField = \"transactionUUID\"\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n\r\n        if (av == null && a.imza != null) {\r\n            av = a.imza[sortField];\r\n        }\r\n        if (bv == null && b.imza != null) {\r\n            bv = b.imza[sortField];\r\n        }\r\n        if (av == null && bv == null)\r\n            return 0;\r\n        if (av == null && bv != null)\r\n            return -1 * sortDirection[sortField];\r\n        if (av != null && bv == null)\r\n            return 1 * sortDirection[sortField];\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * sortDirection[sortField];\r\n\r\n        if (av < bv) {\r\n            return -1 * sortDirection[sortField];\r\n        }\r\n        if (av > bv) {\r\n            return 1 * sortDirection[sortField];\r\n        }\r\n        return 0;\r\n    }\r\n\r\n\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == -1) {\r\n            sortDirection[sortField] = 1;\r\n        }\r\n        else {\r\n            sortDirection[sortField] = -1;\r\n        }\r\n\r\n        var temp = [...eimzalist]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setEimzalist(temp);\r\n    }\r\n\r\n    const fetchAuthers = (apprec) => {\r\n       \r\n        fetch(\"appauthorlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(apprec)\r\n        }).then(async response => {\r\n\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    data = JSON.parse(data)\r\n                    if (data != null)\r\n                        apprec.müellifKullanıcıAdı = data.map(x => x.userName + \" \").join();\r\n\r\n                    var popup = window.open(\"/\");\r\n                    popup.appData = apprec;\r\n                    popup.eimza = apprec.imza;\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const topluimzala = (apprec) => {\r\n        var popup = window.open(\"/\");\r\n        popup.selectedImzaList = selectedImzaList;\r\n        popup.userData = userData;\r\n    }\r\n\r\n\r\n\r\n    const getEimzaList = (all) => {\r\n        var url = \"getmyeimzalist?all=0\";\r\n        if (all != null)\r\n            url = \"getmyeimzalist?all=\" + all;\r\n\r\n        fetch(url, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n\r\n            else {\r\n                response.json().then(async data => {\r\n                    if (data != null) {\r\n                        data.forEach(r => { r.imza = JSON.parse(r.iadeNedeni); r.imzaid = r.imza.id; });\r\n                    }\r\n                    data.sort(myCompare)\r\n                    setEimzalist(data);\r\n                    var z = document.getElementById(\"eimzalistemcount\");\r\n                    if (z != null)\r\n                        z.innerHTML = data.filter(r => r.imza.transactionUUID == \" imzam bekleniyor\").length;\r\n                });\r\n            }\r\n        });\r\n    }\r\n    window.fetchEimzaListem = getEimzaList;\r\n\r\n    const showAll = event => {\r\n        if (event.target.checked == true) {\r\n            getEimzaList(1);\r\n        }\r\n        else {\r\n            getEimzaList(0);\r\n        }\r\n    }\r\n    const hepsiniSec = event => {\r\n        if (event.target.checked == true) {\r\n            eimzalist.forEach(x => {\r\n                var c = document.getElementById(\"check\" + x.imza.userFileId)\r\n                if (c) {\r\n                    c.checked = true;\r\n                    selectedImzaList.push(x);\r\n                }\r\n            })\r\n        }\r\n        else {\r\n            selectedImzaList = [];\r\n            eimzalist.forEach(x => {\r\n                var c = document.getElementById(\"check\" + x.imza.userFileId)\r\n                if (c) {\r\n                    c.checked = false;\r\n                   \r\n                }\r\n            })\r\n        }\r\n        document.getElementById(\"topluimza\").disabled = selectedImzaList.length == 0;\r\n    }\r\n\r\n\r\n\r\n    const filterTable = event => {\r\n        const target = event.target;\r\n        const value = target.value.toLowerCase();\r\n        $(\"#myTable tr\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n            for (let index = 0; index < keywords.length; ++index)\r\n                if ($(this).text().toLowerCase().indexOf(keywords[index]) == -1)\r\n                    return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n    const addToImzaList = (event, rec) => {\r\n        if (event.target.checked == true)\r\n            selectedImzaList.push(rec);\r\n        else\r\n            selectedImzaList = selectedImzaList.filter(x => x.imza.userFileId != rec.imza.userFileId);\r\n        document.getElementById(\"topluimza\").disabled = selectedImzaList.length == 0;\r\n\r\n    }\r\n\r\n\r\n    return <div className=\"align-items-center justify-content-center\" >\r\n        <div className=\"row\">\r\n            <div className=\"col-4\">\r\n                <div class=\"form-check form-switch\">\r\n                    <input class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"flexSwitchCheckDefault\" onClick={showAll} />\r\n                    <label class=\"form-check-label\" for=\"flexSwitchCheckDefault\">Süreci Tamamlanan İmzaları da Göster</label>\r\n                </div>\r\n            </div>\r\n            <div className=\"col-4\">\r\n                <input className=\"form-control w-100\" id=\"myInput\" type=\"text\" placeholder=\"Arama...\" onKeyUp={filterTable} />\r\n            </div>\r\n            <div className=\"col-4 text-end\">\r\n                <button className=\"btn btn-sm btn-primary text-end \" id=\"topluimza\" onClick={() => { topluimzala(selectedImzaList); }}>Seçilenleri İmzala</button>\r\n            </div>\r\n        </div>\r\n        <div className=\"overflow-auto\" style={{ maxHeight: 600 }}>\r\n\r\n            <table className='table table-vdstriped table-sm' aria-labelledby=\"tabelLabel\">\r\n                <thead>\r\n                    <tr >\r\n                        <th>\r\n                            <input class=\"form-check-input\" type=\"checkbox\" onClick={hepsiniSec} />\r\n                        </th>\r\n                        <th>\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"imzaid\")} > Eimza-Id </button>\r\n                            </div>\r\n                        </th>\r\n\r\n                        <th>\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"id\")} > Id </button>\r\n                            </div>\r\n                        </th>\r\n                        <th>\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"ada\")} > Ada/Parsel </button>\r\n                            </div>\r\n                        </th>\r\n                        <th>\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"arsaSahibi\")} > Taşınmaz Sahibi </button>\r\n                            </div>\r\n                        </th>\r\n                        <th>\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"temp\")} > Eimzayı Açan </button>\r\n                            </div>\r\n                        </th>\r\n\r\n                        <th>\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"fikra\")} > Kullanıcı Tipi </button>\r\n                            </div>\r\n                        </th>\r\n\r\n                        <th>\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"basvuruTipi\")} > Başvuru Tipi </button>\r\n                            </div>\r\n                        </th>\r\n\r\n                        {/*<th>*/}\r\n                        {/*    <div>*/}\r\n                        {/*        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"basvuruTarihi\")} > Başvuru Tarihi </button>*/}\r\n                        {/*    </div>*/}\r\n                        {/*</th>*/}\r\n\r\n                        <th>\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"tarih\")} > Açılma Tarihi </button>\r\n                            </div>\r\n                        </th>\r\n\r\n                        <th>\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"surecname\")} > İsmi </button>\r\n                            </div>\r\n                        </th>\r\n\r\n                        <th>\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"transactionUUID\")} > Durumu </button>\r\n                            </div>\r\n                        </th>\r\n                        <th>\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"downloadAction\")} > İmza Tarihi </button>\r\n                            </div>\r\n                        </th>\r\n\r\n                    </tr>\r\n                </thead>\r\n\r\n\r\n                <tbody id=\"myTable\">\r\n                    {eimzalist.map(apprec => <tr >\r\n                        <td >{\r\n                            apprec.imza.transactionUUID == \" imzam bekleniyor\" &&\r\n                            <input class=\"form-check-input\" type=\"checkbox\" onClick={(e) => addToImzaList(e, apprec)} id={\"check\" + apprec.imza.userFileId} />\r\n                        }\r\n\r\n                        </td>\r\n                        <td >\r\n                            {apprec.imzaid}\r\n                        </td>\r\n                        <td >\r\n                            {apprec.id}\r\n                        </td>\r\n                        <td >\r\n                            {apprec.ada}\r\n                        </td>\r\n                        <td >\r\n                            {apprec.arsaSahibi}\r\n                        </td>\r\n                        <td >\r\n                            {apprec.temp}\r\n                        </td>\r\n                        {/*<td >*/}\r\n                        {/*    {apprec.basvuruYapan}*/}\r\n                        {/*</td>*/}\r\n                        <td >\r\n                            {apprec.imza.fikra}\r\n                        </td>\r\n                        <td >\r\n                            {apprec.basvuruTipi}\r\n                        </td>\r\n                        <td >\r\n                            {apprec.imza.tarih}\r\n                        </td>\r\n                        <td >\r\n                            {apprec.imza.surecname}\r\n                        </td>\r\n                        <td className={apprec.imza.transactionUUID == \"imzalandı\" ? \"text-success\" : apprec.imza.transactionUUID == \" imzam bekleniyor\" ? \"text-primary fw-bold\" : apprec.imza.transactionUUID == \"sırası bekleniyor\" ? \"text-warning\" : \"\"}>\r\n                            {apprec.imza.transactionUUID}\r\n                        </td>\r\n                        <td >\r\n                            {apprec.imza.downloadAction}\r\n                        </td>\r\n                        <td style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }}>\r\n                            <a href=\"#\" onClick={() => { fetchAuthers(apprec); }} className=\" text-decoration-none \"><i className=\"fa fa-edit align-middle\" style={{ \"font-size\": \"24px\" }}></i></a>\r\n                        </td>\r\n                    </tr>\r\n                    )}\r\n                </tbody>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom'\r\nimport $ from 'jquery';\r\nimport Application from \"../Application/Application.js\"\r\nimport ApplicationList from \"../Application/ApplicationList.js\"\r\nimport { showErrorMessage, ajaxFail } from '../GlobalState.js';\r\n\r\nexport default function MessagePanel(props) {\r\n    let location = useLocation();\r\n    const [messages, setMsg] = useState(props.messages);\r\n    const [activemessage, setActiveMsg] = useState(null);\r\n    const [showall, setShowAll] = useState(true);\r\n    var height = props.height != null? props.height: \"80vh\";\r\n    const me = <ApplicationList changeComponent={props.changeComponent} />\r\n\r\n\r\n    const getMessageList = () => {\r\n        fetch(\"getmymessages\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setMsg(data);\r\n                    if (data.length > 0) {\r\n                        setActiveMsg(data[0])\r\n                    }\r\n                });\r\n            }\r\n\r\n        });\r\n    }\r\n\r\n\r\n    useEffect(() => {\r\n        getMessageList();\r\n    }, [])\r\n\r\n    const getapp = (id) => {\r\n        fetch(\"getapp\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data,\"\");\r\n                 });\r\n                \r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    props.changeComponent(<Application appData={data} changeComponent={props.changeComponent} backButton={me} />)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    var sidebartags = [];\r\n    sidebartags.push(<a className=\"d-block  p-2 m-2  rounded-3  text-decoration-none\" href=\"javascript:void(0)\" onClick={() => setShowAll(true)}>Tum Mesajlar</a>);\r\n    sidebartags.push(<a className=\"d-block  p-2 m-2  rounded-3  text-decoration-none\" href=\"javascript:void(0)\" onClick={() => setShowAll(false)}>Okunmamış Mesajlar</a>);\r\n\r\n    var cc = 0;\r\n    var unreadmessages = document.getElementById(\"unreadmessagecount\");\r\n    if (unreadmessages != null) {\r\n        if (messages != null) {\r\n            for (let i = 0; i < messages.length; i++)\r\n                if (messages[i] != null && messages[i].opened != true)\r\n                    cc++;\r\n            unreadmessages.innerHTML = cc;\r\n            var homecounter = document.getElementById(\"yenibildirim\");\r\n            if (homecounter != null) {\r\n                homecounter.innerHTML = \" Yeni Bildirm: \" + cc;\r\n            }\r\n        }\r\n    }\r\n\r\n    \r\n\r\n\r\n\r\n    const deleteMessage = m => {\r\n        fetch(\"deletemessage\", {\r\n            method: 'POST',\r\n            headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n            body: JSON.stringify(m.id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setMsg(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const markmessagesopen = (msg) => {\r\n        fetch(\"markmessagesopen\", {\r\n            method: 'POST',\r\n            headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n            body: JSON.stringify(msg)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setMsg(data);\r\n                    \r\n                });\r\n            }\r\n        });\r\n        return true;\r\n    }\r\n\r\n    const filterTable = event => {\r\n        const target = event.target;\r\n        const value = target.value.toLowerCase();\r\n        $(\"#myTable tr\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n            for (let index = 0; index < keywords.length; ++index)\r\n                if ($(this).text().toLowerCase().indexOf(keywords[index]) == -1)\r\n                    return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n\r\n    var messageList =\r\n        <div className=\"mt-1 \" >\r\n            <div className=\"mb-1  \">\r\n                <input className=\"form-control form-control-sm \" id=\"myInput\" type=\"text\" placeholder=\"Arama...\" onKeyUp={filterTable} />\r\n            </div>\r\n            <div className=\"overflow-auto vdscrollbar\" style={{ maxHeight: height }}>\r\n            \r\n            <table className='table  table-sm'>\r\n                    <tbody id=\"myTable\">\r\n                        {messages.map(m => (showall == true || m.opened != true) ?\r\n                            <tr key={m.id} className={(activemessage!=null&& m.id == activemessage.id)?\"text-white bg-primary\":\"\"} style={{ cursor: \"pointer\" }}\r\n                            onClick={() => {\r\n                                setActiveMsg(m); markmessagesopen(m);\r\n                            }}>\r\n                        <td width=\"90%\">\r\n                            <span style={{ \"font-size\": \"12px\" }} >{m.sendDate}</span><br />\r\n                            \r\n                                {m.opened == true ? m.title : <span className=\"fw-bold\">\r\n                                    {m.title} <span id=\"unreadmessagecount\" class=\"badge rounded-pill bg-success\" >yeni</span></span>}\r\n                            </td>\r\n                        <td width=\"10%\"> <a className=\"text-decoration-none\" onClick={() => deleteMessage(m)} href=\"javascript:void(0)\">\r\n                            <i class=\"fa fa-trash\" ></i>\r\n                        </a>\r\n                            </td>\r\n                        </tr>:null\r\n                    )}\r\n                </tbody>\r\n                </table>\r\n            </div>\r\n        </div>\r\n\r\n\r\n\r\n\r\n\r\n    return <div className=\"rounded-3  p-2 pe-4 border border-secondary \" >\r\n        <div >\r\n            \r\n                <div className=\"row \">\r\n                    <div className=\"col-12\">\r\n                        <a href=\"#\" className=\"text-decoration-none me-3\" onClick={() => { deleteMessage({ id: -1 }) }}> Tümünü Sil</a>\r\n                        <a href=\"#\" className=\"text-decoration-none\" onClick={() => { markmessagesopen({id:-1}) }}> Tümünü Okundu Yap</a>\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-1\">\r\n                    <div className=\"col-4\">\r\n                        {messageList}\r\n                    </div>\r\n                <div className=\"col-8 p-2 rounded-3 border\">\r\n\r\n                    {activemessage!=null && <div className=\"m-2\">\r\n                        <div className=\"row\">\r\n                            <div className=\"col float-start\"><b>{activemessage.title}</b></div>\r\n                            <div className=\"col float-end text-end\">{activemessage.sendDate}</div>\r\n                        </div>\r\n                        <div className=\"row mt-1\">\r\n                            <div className=\"col float-start\"><img src={\"/getuserpic?user=\" + activemessage.sender} id=\"profileimage\" style={{ width: \"32px\" }} className=\"rounded-pill p-0 m-0\" /> {activemessage.receiver} ({activemessage.sender})</div>\r\n\r\n                            {activemessage.appID != null && <div className=\"col float-end text-end\">\r\n                                <button type=\"button\" className=\"btn btn-primary  btn-sm\" onClick={() => { getapp(activemessage.appID) }}>Başvuruya Git</button>\r\n                            </div>}\r\n                        </div>\r\n\r\n                        <div className=\"mt-3\" style={{ \"white-space\": \"pre-line\" }}>{activemessage.body}</div>\r\n                    </div>}\r\n\r\n                        \r\n                    </div>\r\n             \r\n                </div>\r\n        </div>\r\n    </div>\r\n\r\n\r\n\r\n\r\n\r\n}\r\n\r\n\r\n","import { useLocation } from 'react-router-dom'\r\nimport React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showErrorMessage, showSuccessMessage, useGlobalState } from '../GlobalState.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\n\r\n\r\nexport default function UserComData(props) {\r\n    const [userdata, setUserData] = useState(props.userdata);\r\n    const confirmed = props.confirmed;\r\n    const [role, setRole] = useGlobalState('role');\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target.name;\r\n        const value = event.target.type === 'checkbox' ? event.target.checked : event.target.value;\r\n        userdata[target] = value;\r\n        document.getElementById(\"telkodgonder\").disabled = true;\r\n        document.getElementById(\"telkodgir\").disabled = true;\r\n        document.getElementById(\"emailkodgonder\").disabled = true;\r\n        document.getElementById(\"emailkodgir\").disabled = true;\r\n    }\r\n\r\n    const handleBildirimTercihChange = (event) => {\r\n        const target = event.target.name;\r\n        if (userdata.bildirimTercihleri == null)\r\n            userdata.bildirimTercihleri = \"\";\r\n\r\n        userdata.bildirimTercihleri = userdata.bildirimTercihleri.trim();\r\n\r\n        if (event.target.checked == true && userdata.bildirimTercihleri.includes(target) == false)\r\n            userdata.bildirimTercihleri = target + \" \" + userdata.bildirimTercihleri.trim();\r\n        if (event.target.checked == false && userdata.bildirimTercihleri.includes(target) == true)\r\n            userdata.bildirimTercihleri = userdata.bildirimTercihleri.replace(target, \"\").trim();\r\n    }\r\n\r\n\r\n\r\n    const sendEmail = () => {\r\n        fetch(\"sendverificationemail\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(userdata.userName)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Doğrulama Kodu E-Posta Adresinize Gönderilmiştir.\")\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const confirmEmail = () => {\r\n        var k = prompt(\"Lütfen Doğrulama Kodunuzu Girin\");\r\n        if (k == null || k.length == 0) return;\r\n        fetch(\"confirmEmail\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({ user: userdata.userName, code: k })\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                showErrorMessage(response.statusText + \" Doğrulama Başarısız\")\r\n            }\r\n            else {\r\n                showSuccessMessage(\"E-Posta  Adresiniz Başarıyla Doğrulanmıştır\");\r\n\r\n                if (confirmed != null) {\r\n                    confirmed({ ...userdata, emailConfirmed: true });\r\n                }\r\n                else\r\n                    setUserData({ ...userdata, emailConfirmed: true });\r\n            }\r\n        });\r\n    }\r\n\r\n    const confirmSMS = () => {\r\n        var k = prompt(\"Lütfen Doğrulama Kodunuzu Girin\");\r\n        if (k == null || k.length == 0) return;\r\n        fetch(\"confirmSMS\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({ user: userdata.userName, code: k })\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                showErrorMessage(response.statusText + \" Doğrulama Başarısız\")\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Telefon Numaranız Başarıyla Doğrulanmıştır\");\r\n                setUserData({ ...userdata, telConfirmed: true });\r\n                if (props.confirmed != null) {\r\n                    props.confirmed({ ...userdata, telConfirmed: true });\r\n                }\r\n                else\r\n                    setUserData({ ...userdata, telConfirmed: true });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const sendSms = () => {\r\n\r\n        var tel = document.getElementById(\"Tel\").value;\r\n        if (tel == null || tel.length == 0) {\r\n            showErrorMessage(\"Telefon numarası  boş olamaz\")\r\n            return;\r\n        }\r\n        var message = \"CODE|\" + tel + \"|\" + userdata.userName+\"|\";\r\n\r\n        fetch(\"sendsms\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(message)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n                response.text().then(value => {\r\n                    showErrorMessage(\" Bir hata oluştu. \" + value)\r\n                })\r\n                \r\n            }\r\n            else {\r\n                showSuccessMessage(\"Doğrulama Kodu Telefon Numaranıza Göderilmiştir. \");\r\n            }\r\n        });\r\n    }\r\n\r\n    const onSubmit = (e) => {\r\n        e.preventDefault();\r\n\r\n        var input = document.getElementById(\"email\")\r\n        if (input != null && input.checkValidity() == false) {\r\n            showErrorMessage(\"Email Adresi Hatalı\");\r\n            return;\r\n        }\r\n        input = document.getElementById(\"Tel\")\r\n        if (input != null && (input.checkValidity() == false || isEmpty(input.value))) {\r\n            showErrorMessage(\"Telefon Numarası Hatalı\");\r\n            return;\r\n        }\r\n\r\n        fetch(\"updateuser\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(userdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response,true)\r\n            }\r\n            else {\r\n                response.text().then(value => {\r\n                })\r\n                showSuccessMessage(\"Kullanıcı Bilgileri Güncellenmiştir. \");\r\n                document.getElementById(\"telkodgonder\").disabled = false;\r\n                document.getElementById(\"telkodgir\").disabled = false;\r\n                document.getElementById(\"emailkodgonder\").disabled = false;\r\n                document.getElementById(\"emailkodgir\").disabled = false;\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    return <div >\r\n\r\n        <div className=\"col-12\">\r\n            <label className=\"form-label me-5\">İletişim Tercihleri</label>\r\n            <div className=\"form-check form-check-inline\">\r\n                <input className=\"form-check-input\" type=\"checkbox\" name=\"sendMessage\" id=\"sendMessage\" defaultChecked={userdata && userdata.sendMessage} onChange={handleInputChange} />\r\n                <label className=\"form-check-label\" for=\"sendMessage\">\r\n                    Mesajlarım\r\n                </label>\r\n            </div>\r\n            <div className=\"form-check form-check-inline\">\r\n                <input className=\"form-check-input\" type=\"checkbox\" name=\"sendEmail\" id=\"sendEmail\" defaultChecked={userdata && userdata.sendEmail} onChange={handleInputChange} />\r\n                <label className=\"form-check-label\" for=\"sendEmail\">\r\n                    Email\r\n                </label>\r\n            </div>\r\n            <div className=\"form-check form-check-inline\">\r\n                <input className=\"form-check-input\" type=\"checkbox\" name=\"sendSMS\" id=\"sendSMS\" defaultChecked={userdata && userdata.sendSMS} onChange={handleInputChange} />\r\n                <label className=\"form-check-label\" for=\"sendSMS\">\r\n                    SMS\r\n                </label>\r\n            </div>\r\n\r\n        </div>\r\n\r\n        <div className=\"row mb-1 mt-2\">\r\n            <div className='col-4' >\r\n                <label htmlFor=\"Tel\" className=\"form-label m-0\">GSM No {userdata.telConfirmed != true && <span class=\"text-danger\"> (Doğrulunmamış)</span>}</label>\r\n            </div>\r\n            <div className='col-4' >\r\n                <input type=\"text\" pattern=\"[5-5]{1}[0-9]{2}[0-9]{7}\" maxLength=\"10\" placeholder=\"5__ ___ ____\" className=\"form-control\" id=\"Tel\" name=\"tel\"  onChange={handleInputChange} defaultValue={userdata.tel} />\r\n            </div>\r\n            <div className='col-4' >\r\n                <button type=\"button\" id=\"telkodgonder\" className=\"btn  btn-primary btn-sm me-1\" onClick={() => { sendSms() }}>\r\n                    Kod Gönder\r\n                </button>\r\n                <button type=\"button\" id=\"telkodgir\" className=\"btn  btn-primary btn-sm\" onClick={() => { confirmSMS() }}>\r\n                    Doğrula\r\n                </button>\r\n            </div>\r\n        </div>\r\n        <div className=\"row  mt-3\">\r\n            <div className='col-4' >\r\n                <label htmlFor=\"Tel\" className=\"form-label m-0\">Email {userdata.emailConfirmed != true && <span class=\"text-danger\"> (Doğrulunmamış)</span>}</label>\r\n\r\n            </div>\r\n            <div className='col-4' >\r\n                <input type=\"email\" pattern=\"[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2, 4}$\" maxLength=\"50\" className=\"form-control\" id=\"email\" placeholder=\"email\" name=\"email\"  onChange={handleInputChange} defaultValue={userdata.email} />\r\n            </div>\r\n            <div className='col-4' >\r\n                <button type=\"button\" id=\"emailkodgonder\" className=\"btn  btn-primary btn-sm me-1\" onClick={() => { sendEmail() }}>\r\n                    Kod Gönder\r\n                </button>\r\n                <button type=\"button\" id=\"emailkodgir\" className=\"btn  btn-primary btn-sm\" onClick={() => { confirmEmail() }}>\r\n                    Doğrula\r\n                </button>\r\n            </div>\r\n\r\n        </div>\r\n        {props.showCode != false && <div className=\"row mt-3\">\r\n            <div className=\"col-4\">\r\n                <label htmlFor=\"id\" className=\"form-label\">Kullanıcı Kodu</label>\r\n            </div>\r\n            <div className=\"col-4\">\r\n                <input type=\"text\" className=\"form-control form-control-sm\" id=\"id\" placeholder=\"\" name=\"id\" onChange={handleInputChange} defaultValue={userdata.id} />\r\n            </div>\r\n        </div>}\r\n\r\n        <div className=\"row mt-5 pt-3 bg-light\">\r\n\r\n            <div className='col-12  text-primary' >\r\n                Bildirim Tercihleri\r\n            </div>\r\n        </div>\r\n\r\n        <div className=\"row  bg-light pt-2 \">\r\n            <div className='col-4' >\r\n                <input className=\"form-check-input\" type=\"checkbox\" name=\"Kabul\" defaultChecked={userdata && userdata.bildirimTercihleri && userdata.bildirimTercihleri.includes(\"Kabul\")} onChange={handleBildirimTercihChange} /> Başvuru Kabul Süreci\r\n            </div>\r\n            <div className='col-4' >\r\n                <input className=\"form-check-input\" type=\"checkbox\" name=\"Havale\" defaultChecked={userdata && userdata.bildirimTercihleri && userdata.bildirimTercihleri.includes(\"Havale\")} onChange={handleBildirimTercihChange} /> Havale Süreci\r\n            </div>\r\n            <div className='col-4' >\r\n                <input className=\"form-check-input\" type=\"checkbox\" name=\"Düzeltme\" defaultChecked={userdata && userdata.bildirimTercihleri && userdata.bildirimTercihleri.includes(\"Düzeltme\")} onChange={handleBildirimTercihChange} /> Düzeltme Süreci\r\n            </div>\r\n        </div>\r\n        <div className=\"row bg-light pt-3\">\r\n            <div className='col-4' >\r\n                <input className=\"form-check-input\" type=\"checkbox\" name=\"Onay\" defaultChecked={userdata && userdata.bildirimTercihleri && userdata.bildirimTercihleri.includes(\"Onay\")} onChange={handleBildirimTercihChange} /> Onay Süreci\r\n            </div>\r\n            <div className='col-4' >\r\n                <input className=\"form-check-input\" type=\"checkbox\" name=\"Güncelleme\" defaultChecked={userdata && userdata.bildirimTercihleri && userdata.bildirimTercihleri.includes(\"Güncelleme\")} onChange={handleBildirimTercihChange} /> Başvuru Güncelleme Süreci\r\n            </div>\r\n            <div className='col-4' >\r\n                <input className=\"form-check-input\" type=\"checkbox\" name=\"EİmzaBaşlama\" defaultChecked={userdata && userdata.bildirimTercihleri && userdata.bildirimTercihleri.includes(\"EİmzaBaşlama\")} onChange={handleBildirimTercihChange} /> E-İmza Süreci Başlatıldığında\r\n            </div>\r\n        </div>\r\n        <div className=\"row mb-5 bg-light pt-3 pb-4\">\r\n            <div className='col-4' >\r\n                <input className=\"form-check-input\" type=\"checkbox\" name=\"EİmzaSira\" defaultChecked={userdata && userdata.bildirimTercihleri && userdata.bildirimTercihleri.includes(\"EİmzaSira\")} onChange={handleBildirimTercihChange} /> E-İmza Atma Sırası Geldiğinde\r\n            </div>\r\n            <div className='col-4' >\r\n                <input className=\"form-check-input\" type=\"checkbox\" name=\"EİmzaTamamlanma\" defaultChecked={userdata && userdata.bildirimTercihleri && userdata.bildirimTercihleri.includes(\"EİmzaTamamlanma\")} onChange={handleBildirimTercihChange} /> E-İmza Süreci Tamamlanınca\r\n            </div>\r\n        </div>\r\n\r\n\r\n\r\n\r\n        <div className=\"row mb-4 mt-2\">\r\n            <div className='col-6' >\r\n                <input className=\"form-check-input\" type=\"checkbox\" name=\"eimza\" id=\"eimza\" defaultChecked={userdata!=null && userdata.eimza==true} onChange={handleInputChange} />  E-İmza Kullanabilirim\r\n            </div>\r\n        </div>\r\n\r\n\r\n        <div className=\"row mb-4 mt-2\">\r\n            <div className='col-4' >\r\n                <input disabled={role.indexOf(UserPermConstants.Sabitlenen_Profil_Degistirme) == -1} name=\"edveletConfirmed\" id=\"edveletConfirmed\"  className=\"form-check-input\" type=\"checkbox\" defaultChecked={userdata != null && userdata.edveletConfirmed == true} onChange={handleInputChange} />  {userdata != null && userdata.edveletConfirmed == true ? <span className=\"text-success\">E-Devlet Girişi Onaylanmıştır</span> : <span className=\"text-danger\">E-Devlet Girişi Yapılmamıştır</span>}\r\n            </div>\r\n            {role.indexOf(UserPermConstants.Kullanici_Listesini_Gorme_Profil_Bilgilerini) > -1 && <>\r\n\r\n                <div className='col-4' >\r\n                    <input className=\"form-check-input\" type=\"checkbox\" name=\"emailConfirmed\" id=\"emailConfirmed\" defaultChecked={userdata && userdata.emailConfirmed == true} onChange={handleInputChange} />  Email Doğrulama\r\n                </div>\r\n                <div className='col-4' >\r\n                    <input className=\"form-check-input\" type=\"checkbox\" name=\"telConfirmed\" id=\"telConfirmed\" defaultChecked={userdata && userdata.telConfirmed} onChange={handleInputChange} /> GSM Doğrulama\r\n                </div></>}\r\n        </div>\r\n\r\n\r\n        <button type=\"button\" onClick={onSubmit} className=\"btn btn-primary btn-sm mt-4\">Güncelle</button>\r\n\r\n    </div>\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { isEmpty, sendpost, showConfirmMessage, showInfoMessage, showErrorMessage, useGlobalState, getHtmlTag } from '../GlobalState.js';\r\nimport FilesPanel from \"./FilesPanel.js\";\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport EImzaList from '../Eimza/EImzaList.js';\r\nimport EImzaTekrar from '../Eimza/EImzaTekrar.js';\r\nimport PDFView from './PDFView.js';\r\nimport EImzaDetails from '../Eimza/EImzaDetails.js';\r\nimport Creatable from 'react-select/creatable'\r\nimport { useRef } from \"react\";\r\n\r\nexport default function InlineFilePanel(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userName, setuserName] = useGlobalState('userName');\r\n    const [uploadedFiles, setuploadedFiles] = useState(props.uploadedFiles);\r\n    const [fileNameList, setfileNameList] = useState(props.fileNameList);\r\n    const [fileType, setfileType] = useState(props.fileType);\r\n    const [showIfModal, setShowIfModal] = useState(null);\r\n    const [plot, setPlot] = useState(\"Extents\");\r\n    const [olcek, setOlcek] = useState(\"1:50\");\r\n    const [width, setWidth] = useState(\"\");\r\n    const [height, setHeight] = useState(\"\");\r\n    const [renk, setRenk] = useState(\"\");\r\n    const [zoom, setZoom] = useState(\"\");\r\n    const [ofset, setOfset] = useState(\"\");\r\n    const [unit, setUnit] = useState(\"\");\r\n\r\n    const [printer, setPrinter] = useState(\"\");\r\n    const selectRef = useRef();\r\n\r\n\r\n    const pdfWindoModes = [\"Extents\", \"Display\", \"Limits\", \"View\", \"Window\"]\r\n    var appData = props.appData;\r\n\r\n    var sharingDeadline = \"\";\r\n    var sharingType = \"\";\r\n    if (appData != null && isEmpty(appData.temp) == false && appData.temp.includes(\"#\")) {\r\n        sharingDeadline = appData.temp.split(\"#\")[0];\r\n        sharingType = appData.temp.split(\"#\")[1];\r\n    }\r\n\r\n\r\n\r\n    const getFileType = (rec) => {\r\n        if (fileNameList == null) return rec.typeId;\r\n        for (var i = 0; i < fileNameList.length; i++)\r\n            if (fileNameList[i].id == rec.typeId) {\r\n                rec.typeName = fileNameList[i].Name;\r\n                rec.kontrolorDosyasi = fileNameList[i].kontrolorDosyasi;\r\n                rec.surecSonu = fileNameList[i].surecSonu;\r\n                return fileNameList[i].Name;\r\n            }\r\n        return rec.typeId;\r\n    }\r\n\r\n\r\n\r\n\r\n    const canDelete = (rec) => {\r\n        if (rec.kontrolorDosyasi == true && role.indexOf(UserPermConstants.Kontrolor_Dosyasi_Yukleme) == -1)\r\n            return false;\r\n\r\n        if (role != null && role.indexOf(UserPermConstants.Dosya_Degistirme_Silme) > -1)\r\n            return true;\r\n\r\n        if (appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Taslak\r\n            || appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Duzeltme_Bekleniyor) {\r\n            if (isEmpty(appData.sonDuzeltmeTalebiTarihi) || rec.tarih >= appData.sonDuzeltmeTalebiTarihi) {\r\n                return true;\r\n            }\r\n        }\r\n\r\n        return false;\r\n    }\r\n\r\n\r\n\r\n    const changeHideState = (rec) => {\r\n        if (rec.hidden == true)\r\n            rec.hidden = false\r\n        else\r\n            rec.hidden = true;\r\n\r\n        fetch(\"updatefile\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                props.setParentFileList(uploadedFiles.filter(x => x.id > 0));  //just to maake new array\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const getEimzaMenu = (filerec) => {\r\n\r\n        var e = filerec.imzaRec;\r\n        if (e == null)\r\n            return \"\";\r\n        var source = <FilesPanel appData={appData} showAll={true} setActivePanel={props.setActivePanel} />\r\n        var ret = <div className=\"dropdown d-inline-block ms-1 \" >\r\n            <button title={(e.removed != true && e.imzatarih == null) ? \"E-İmza Sürecinde\" : \"E-İmzalı\"} className={\"btn btn-sm dropdown-toggle p-0 ps-1 pe-1 \" + ((e.removed != true && e.imzatarih == null) ? \"btn-warning\" : \"btn-primary\")} type=\"button\" id=\"dropdownMenuButton1\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n                E-İmza\r\n            </button>\r\n            <ul class=\"dropdown-menu shadow\" aria-labelledby=\"dropdownMenuButton1\">\r\n                {e.imzatarih != UserPermConstants.EIMZA_IPTAL && e.removed != true && <>\r\n                    {<li>\r\n                        <button className={\"dropdown-item \" + (appData.id == e.appId ? \"text-primary\" : \"text-warning\")} onClick={() => {\r\n                            var btns = document.getElementById(\"buttonsbox\").querySelectorAll(\".btn\");\r\n                            btns.forEach(x => { if (x.classList.contains(\"btn-link\") == false) { x.classList.remove(\"btn-primary\"); x.classList.add(\"text-muted\") } })\r\n\r\n                            var b = document.getElementById(\"EimzaButton\");\r\n                            if (b != null) {\r\n                                b.classList.remove(\"text-muted\")\r\n                                b.classList.add(\"btn-primary\")\r\n                            }\r\n                            /* document.getElementById(\"activepaneldiv\").scrollTo(0, 0)*/\r\n                            /* props.setActivePanel(< EImzaList appData={props.appData} targetEimza={e} setActivePanel={props.setActivePanel} />)*/\r\n                            if (appData.id == e.appId) {\r\n                                var popup = window.open(\"/\");\r\n                                popup.appData = props.appData;\r\n                                popup.eimza = e;\r\n                            }\r\n                            else {\r\n                                var rapp = appData.relatedApps.find(a => a.id == e.appId)\r\n                                if (rapp == null) {\r\n                                    showErrorMessage(e.appId + \" numaralı başvuru bulunamadı.\")\r\n                                }\r\n                                else {\r\n                                    var popup = window.open(\"/\");\r\n                                    popup.appData = rapp;\r\n                                    popup.eimza = e;\r\n                                }\r\n\r\n                            }\r\n\r\n                            // popup.postMessage(\"The user is 'bob' and the password is 'secret'\", \"*\")\r\n                            // window.setTimeout(()=>popup.postMessage(\"The user is 'bob' and the password is 'secret'\", \"*\"),2000);\r\n                        }}>\r\n                            <i class=\" fa fa-edit\" style={{ \"font-size\": \"18px\" }} aria-hidden=\"true\"></i> E-İmza Kaydına Git</button>\r\n\r\n                    </li>}\r\n                    <li>\r\n\r\n                        {isEmpty(e.imzatarih) == false && <a className=\"dropdown-item text-success \" href={'getimzalidosya?eimzaid=' + e.id} download=\"eimza.pdf\"><i className=\"fa fa-cloud-download\" style={{ \"font-size\": \"18px\" }}></i> İmzalı Dosya İndir </a>}\r\n\r\n                    </li>\r\n                    {/*(role.indexOf(UserPermConstants.Imza_Guncelleme) > -1 || userName == filerec.userName) &&*/ <li>\r\n                        {/*<button className=\"dropdown-item \" data-bs-toggle=\"modal\" data-bs-target={\"#eimzaGuncellModal\"+e.id} onMouseDown={() => { if (imzalayanlist.length == 0) { showErrorMessage(\"Eimza Listesini Güncellemek içim Önce İmza Listesi Açılmalıdır\"); return; } setGuncelnecekEimza([e, imzalayanlist]) }}> <span className=\"fa fa-list-ul\" style={{ \"font-size\": \"18px\" }}>*/}\r\n                        {/*</span> Adayları Güncelle*/}\r\n                        {/*</button>*/}\r\n\r\n                        <button disabled={(role.indexOf(UserPermConstants.Imza_Guncelleme) == -1 && userName != filerec.userName)} className=\"dropdown-item \" onClick={() => { props.setActivePanel(<EImzaTekrar source={source} changeComponent={props.changeComponent} setActivePanel={props.setActivePanel} appData={props.appData} eimza={e} VizeKontrol={null} />) }}> <span className=\"fa fa-list-ul\" style={{ \"font-size\": \"18px\" }}>\r\n                        </span> İmzacıları Güncelle\r\n                        </button>\r\n\r\n                        {/*(role.indexOf(UserPermConstants.Imza_Yerlestirme) > -1 || userName == filerec.userName) &&*/ <li>\r\n                            <button className=\"dropdown-item \" disabled={(role.indexOf(UserPermConstants.Imza_Yerlestirme) == -1 && userName != filerec.userName)} onClick={() => props.setActivePanel(<PDFView Eimza={e} setActivePanel={props.setActivePanel} appData={props.appData} />)} > <i class=\" fa fa-file-pdf-o\" style={{ \"font-size\": \"18px\" }} aria-hidden=\"true\"></i> İmzayı Yerleştir</button>\r\n                        </li>}\r\n\r\n                    </li>}\r\n\r\n                    {role.indexOf(UserPermConstants.Imza_Veri_Girisi) > -1 && <li>\r\n                        <button className=\"dropdown-item \" onClick={() => props.setActivePanel(<EImzaDetails eimza={e} setActivePanel={props.setActivePanel} appData={props.appData} />)}> <i class=\"fa fa-cog\" style={{ \"font-size\": \"18px\" }} aria-hidden=\"true\"></i> Veri Girişi Yap</button>\r\n\r\n                    </li>}\r\n\r\n                    {(role.indexOf(UserPermConstants.Imza_Vize_Kontrol) > -1) && <li>\r\n                        <button className=\"dropdown-item \" onClick={() => { props.setActivePanel(<EImzaTekrar changeComponent={props.changeComponent} source={source} setActivePanel={props.setActivePanel} appData={props.appData} eimza={e} VizeKontrol={true} />) }}> <span className=\"fa fa-user\" style={{ \"font-size\": \"18px\" }}>\r\n                        </span> Vize Kontrolü</button>\r\n                    </li>}\r\n                </>\r\n\r\n                }\r\n            </ul>\r\n        </div>\r\n        return ret;\r\n    }\r\n\r\n    const imzala = (rec) => {\r\n\r\n        var buttonbox = document.getElementById(\"buttonsbox\");\r\n        if (buttonbox != null) {\r\n            var btns = buttonbox.querySelectorAll(\".btn\");\r\n            btns.forEach(x => { if (x.classList.contains(\"btn-link\") == false) { x.classList.remove(\"btn-primary\"); x.classList.add(\"text-muted\") } })\r\n\r\n            var b = document.getElementById(\"EimzaButton\");\r\n            b.classList.remove(\"text-muted\")\r\n            b.classList.add(\"btn-primary\")\r\n        }\r\n        if (appData.id == rec.appId)\r\n            props.setActivePanel(<EImzaList appData={appData} targetFile={rec} setActivePanel={props.setActivePanel} changeComponent={props.changeComponent} />)\r\n        else {\r\n\r\n            showConfirmMessage(\"Şu anda \" + appData.id + \" numaralı başvuruda bulunuyorsunuz. Ancak imzaya açmaya çalıştığınız dosya \" + rec.appId + \" numaralı başvuruya yüklenmiş.\", \"E-İmza kaydı \" + rec.appId + \" numaralı başvuruda açılacaktır.\",\r\n                \"Devam Et\", \"İptal\", () => {\r\n                    fetch(\"getapp\", {\r\n                        method: 'POST',\r\n                        headers: {\r\n                            'Accept': 'application/json',\r\n                            'Content-Type': 'application/json'\r\n                        },\r\n                        body: rec.appId\r\n                    }).then(async response => {\r\n                        if (!response.ok) {\r\n                            ajaxFail(response);\r\n                        }\r\n                        else {\r\n                            response.json().then(value => {\r\n                                props.setActivePanel(<EImzaList appData={value} targetFile={rec} setActivePanel={props.setActivePanel} changeComponent={props.changeComponent} />)\r\n                            })\r\n                        }\r\n                    });\r\n                });\r\n\r\n        }\r\n\r\n\r\n    }\r\n\r\n\r\n    const getVisibleState = (id) => {\r\n        if (fileNameList == null) return false;\r\n        for (var i = 0; i < fileNameList.length; i++)\r\n            if (fileNameList[i].id == id) {\r\n                if (fileNameList[i].kontrolorDosyasi != true)\r\n                    return true;\r\n                if (role.indexOf(UserPermConstants.Kontrolor_Dosyasi_Yukleme) > -1) return true;\r\n                if (fileNameList[i].kontrolorDosyaYetki == null || fileNameList[i].kontrolorDosyaYetki.length == 0) return true;\r\n                if (fileNameList[i].kontrolorDosyaYetki.split(',').some(x => role.indexOf(\"#\" + x + \"#\") > -1)) return true;\r\n                return false;\r\n            }\r\n        return false;\r\n    }\r\n\r\n\r\n\r\n\r\n    const restorefile = (rec) => {\r\n        rec.removedBy = appData.securityToken;\r\n        showConfirmMessage(getFileType(rec) + \" dosyasını geri almak istediğinizden emin misiniz?\",\r\n            '', 'Evet', 'Hayır', () => {\r\n                sendpost(\"restorefile\", rec, \"\", () => {\r\n                    rec.removed = false;\r\n                    props.setParentFileList([...uploadedFiles]);\r\n\r\n\r\n                })\r\n            });\r\n    }\r\n\r\n    const removefile = (rec) => {\r\n        rec.readers = appData.securityToken;\r\n        showConfirmMessage(getFileType(rec) + \" dosyasını silmek istediğinizden emin misiniz?\",\r\n            rec.imzaRec != null ? 'Dosya E-imzalı olduğu için E-imza kaydı da silinecektir !' : '', 'Evet', 'Hayır', () => {\r\n                sendpost(\"removefile\", rec, \"\", () => {\r\n                    if (rec.removed == true) {\r\n                        props.setParentFileList(uploadedFiles.filter(x => x.id != rec.id));\r\n                    }\r\n                    else {\r\n                        rec.removedBy = userName\r\n                        rec.removed = true;\r\n                        rec.removedDate = \"Az önce\"\r\n                        props.setParentFileList([...uploadedFiles]);\r\n                    }\r\n\r\n                })\r\n            });\r\n    }\r\n\r\n\r\n\r\n    const isVisivble = (rec) => {\r\n        try {\r\n            if (userName == rec.userName)\r\n                return true;\r\n            if (appData.basvuruYapan == userName)\r\n                return true;\r\n            if (props.kontrolorList != null && props.kontrolorList.some(x => x.userName == userName))\r\n                return true;\r\n\r\n            if (role.indexOf(UserPermConstants.Havale_Yapma) > -1\r\n                || role.indexOf(UserPermConstants.Basvuru_Liste) > -1)\r\n                return true;\r\n\r\n\r\n            // müellif listesinde varsa dosyayı gostermiyoruz\r\n            if (isEmpty(appData.müellifKullanıcıAdı) == false && appData.müellifKullanıcıAdı.includes(userName + \" \"))\r\n                return false;\r\n            if (rec.appId == appData.id || role.indexOf(UserPermConstants.Basvuru_Onaylama) > -1)\r\n                return true;\r\n            if (appData.relatedApps != null && appData.relatedApps.map(x => x.id).includes(rec.appId) && role.indexOf(UserPermConstants.Ilgili_Basvurulari_Gorme) > -1)\r\n                return true;\r\n            return false;\r\n        }\r\n        catch (ex) {\r\n            console.log(ex);\r\n        }\r\n        return false;\r\n    }\r\n\r\n\r\n\r\n    const getImzaButton = (rec) => {\r\n        var button = <i className=\"\tfa fa-edit\" style={{ \"font-size\": \"18px\" }} ></i>\r\n        if (props.setActivePanel != null &&\r\n            /*appData.id == rec.appId &&*/\r\n            role != null && role.indexOf(UserPermConstants.Dosyalari_Eimzaya_Acima) > -1) {\r\n            if (rec.caption != null && rec.caption.toUpperCase().endsWith(\".PDF\")) {\r\n                if (rec.imzatarih != null) {\r\n                    return <span className=\"text-success\" title={\"Belge Daha Önce İmzalanmıştır\"}>\r\n                        {button}\r\n                    </span>\r\n                }\r\n\r\n                return <a className=\"text-decoration-none\" href=\"#\" title={\"Imzala\"} onClick={() => imzala(rec)}>\r\n                    {button}\r\n                </a>\r\n            }\r\n            else\r\n                return <span className=\"text-warning\" title={\"Sadece PDF dosyaları imzalanabilir\"}>\r\n                    {button}\r\n                </span>\r\n        }\r\n        return \"\";\r\n    }\r\n\r\n    const gettextColor = (rec) => {\r\n        if (isEmpty(rec.readers) == false && rec.readers.includes(\"!\"))  //deleted file from similar app\r\n            return \"text-danger fw-bold\";\r\n        if (rec.readers == null || rec.readers.includes(userName) == false)\r\n            return \"text-success\";\r\n        return \"\";\r\n    }\r\n\r\n    const gettitle = (rec) => {\r\n        if (rec.readers == \"!\")  //deleted file from similar app\r\n            return \"Başvuru Silinmiş\";\r\n        return \"\";\r\n    }\r\n\r\n    const isVisible = (rec) => {\r\n        if (props.showAllFileState == false && rec.appId != appData.id)\r\n            return false;\r\n\r\n        if (props.showHidden == true)\r\n            return rec.hidden == true;\r\n        else\r\n            return rec.hidden != true;\r\n    }\r\n    const setScale = (rec) => {\r\n        var s1 = getHtmlTag(\"unit\", \"value\");\r\n        var s2 = getHtmlTag(\"milim\", \"value\");\r\n        if (isEmpty(s1))\r\n            s1 = 1;\r\n        if (isEmpty(s2))\r\n            s2 = 1;\r\n        setOlcek(s1 + \":\" + s2);\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className='table-responsive' style={{ \"overflow-y\": \"visible !important\" }}>\r\n            <table className='table  table-striped   table-sm mb-1' aria-labelledby=\"tabelLabel\" style={{ \"fontSize\": \"14px\" }}>\r\n                <tbody>\r\n\r\n                    {uploadedFiles.filter(x => (x.removed != true || props.showDeletedFiles == true) && isVisible(x) && (x.typeId == fileType || props.showHidden == true)).map((rec, idx) => getVisibleState(rec.typeId) &&\r\n                        <tr className={(appData.id == rec.appId && (rec.readers == null || rec.readers.includes(userName) == false)) ? \"fw-bold text-success searchitem\" : \"searchitem\"}>\r\n                            <td width=\"2%\" className={(rec.readers == null || rec.readers.includes(userName) == false) ? \"text-success \" : \"\"}>\r\n                                {idx + 1}\r\n\r\n                            </td>\r\n                            <td width=\"5%\" className={gettextColor(rec)} title=\"Başvuru No\">\r\n                                {rec.appId}\r\n                            </td>\r\n                            <td width=\"3%\" className={(rec.readers == null || rec.readers.includes(userName) == false) ? \"text-success\" : \"\"} title=\"Dosya No\">\r\n                                {rec.id}\r\n                            </td>\r\n\r\n                            <td width=\"20%\" className={gettextColor(rec)} >\r\n                                <span className={rec.removed == true ? \"text-decoration-line-through text-danger\" : \"\"}>\r\n                                    {getFileType(rec)}\r\n                                </span>\r\n\r\n                            </td>\r\n                            <td width=\"20%\" className={gettextColor(rec)} >\r\n\r\n                                <span className={rec.removed == true ? \"text-decoration-line-through text-danger\" : \"\"}>\r\n                                    {rec.caption}\r\n                                </span>\r\n\r\n\r\n                            </td>\r\n                            <td width=\"15%\" className={(rec.readers == null || rec.readers.includes(userName) == false) ? \"text-success \" : \"\"}>\r\n                                {rec.tarih}\r\n                            </td>\r\n\r\n                            <td width=\"10%\" className={(rec.readers == null || rec.readers.includes(userName) == false) ? \"text-success \" : \"\"}>\r\n                                <img className=\"rounded-circle\" style={{ width: \"28px\", height: \"28px\" }} src={'/getuserpic?user=' + rec.userName} /><span className={(rec.readers == null || rec.readers.includes(userName) == false) ? \"text-success\" : \"\"}> {rec.userName} </span>\r\n                            </td>\r\n                            {rec.removed == true ?\r\n                                <td width=\"25%\" className=\"text-end text-danger fw-normal small\">\r\n                                    Silinmiş ({rec.removedBy} {rec.removedDate})\r\n                                    {(userName.toLocaleLowerCase() == \"admin\" || userName.toLocaleLowerCase() == \"universe\") && < button className=\"btn btn-sm btn-link  text-decoration-none p-1\" type=\"button\" onClick={() => restorefile(rec)}>\r\n                                        Geri al\r\n                                    </button>}\r\n\r\n                                </td>\r\n                                :\r\n                                < td width=\"25%\" className=\"text-end\">{\r\n                                    isVisivble(rec) && <>\r\n\r\n                                        {/*(rec.imzaid != null && rec.removed != true && rec.imzatarih != null && rec.imzatarih != \"İptal Edildi\") && <sup><a className=\"text-decoration-none align-middle\" href={'getimzalidosya?eimzaid=' + rec.imzaid} download=\"eimza.pdf\"><span class=\"ms-1 me-1 badge rounded-pill bg-primary\" > E-imzalı</span></a></sup>*/}\r\n                                        {/*(rec.imzaid != null && rec.removed != true && rec.imzatarih == null) && <sup><span class=\"ms-1 me-1 badge rounded-pill bg-warning\" >İmza Süreci</span></sup>*/}\r\n                                        {/*< a className=\"text-decoration-none align-middle\" href={'getfile?id=' + rec.id + \"&appid=\" + rec.appId + \"&sec=\" + appData.securityToken} download={rec.caption}><i className=\"fa fa-cloud-download\" style={{ \"font-size\": \"18px\" }}></i>  </a>*/}\r\n                                        {rec.caption.endsWith(\".dwg\") == true &&\r\n                                            <button\r\n                                                className=\"btn btn-link text-danger pe-1\"\r\n                                                onClick={() => {\r\n                                                    setWidth(\"\")\r\n                                                    setHeight(\"\")\r\n                                                    setOfset(\"\")\r\n                                                    setPrinter(\"\")\r\n                                                    setZoom(\"\")\r\n                                                    setRenk(\"\")\r\n                                                    setOlcek(\"1:50\")\r\n                                                    setShowIfModal(rec);\r\n                                                }\r\n                                                }\r\n                                            >\r\n                                                <i className=\"\tfa fa-file-pdf-o\"\r\n                                                    style={{ \"font-size\": \"17px\" }} ></i>\r\n                                            </button>\r\n                                        }\r\n                                        {rec.surecSonu == true && role.indexOf(UserPermConstants.Surec_Sonu_Dosya_Indirme) == -1 && (appData.basvuruDurumu != 8 && appData.basvuruDurumu != 9) ?\r\n                                            <button className=\"btn btn-link btn-sm text-decoration-none align-middle\" onClick={() => showInfoMessage(\"Bu dosyaya süreç tamamlandıktan sonra erişebilirsiniz\", \"\", \"Tamam\")}>\r\n                                                <i className=\"\tfa fa-television\" style={{ \"font-size\": \"18px\" }} ></i>\r\n                                            </button>\r\n                                            : <a className=\"text-decoration-none align-middle\" href={'getfile?id=' + rec.id + \"&appid=\" + rec.appId + \"&sec=\" + appData.securityToken} title=\"Aç\" target=\"_blank\"><i className=\"\tfa fa-television\" style={{ \"font-size\": \"18px\" }} ></i>  </a>\r\n                                        }\r\n\r\n                                        {(isEmpty(sharingType) == true || sharingType == \"Düzenleme\") && appData.archived != true ? <>\r\n                                            {canDelete(rec) && <a href=\"/#\" onClick={() => { removefile(rec) }} className=\"text-decoration-none me-1\"><i className=\"fa fa-trash-o\" style={{ \"font-size\": \"18px\" }}></i></a>}\r\n                                            {role.indexOf(UserPermConstants.Dosya_Gizleme) > -1 && < a className=\"text-decoration-none align-middle\" href=\"#\" onClick={() => changeHideState(rec)} title={rec.hidden == true ? \"Gizliliği Kaldır\" : \"Gizle\"}><i className={rec.hidden == true ? \"fa fa-eye\" : \"fa fa-eye-slash\"} style={{ \"font-size\": \"18px\" }}></i>  </a>}\r\n                                            {getImzaButton(rec)}\r\n                                            {getEimzaMenu(rec)}\r\n                                        </> : rec.imzaRec != null && isEmpty(rec.imzaRec.imzatarih) == false &&\r\n                                        <a className=\"text-success \" href={'getimzalidosya?eimzaid=' + rec.imzaRec.id} download=\"eimza.pdf\"><i className=\"fa fa-cloud-download\" title={\"İmzalı Dosya İndir\"} style={{ \"font-size\": \"18px\" }}></i>  </a>}\r\n\r\n                                    </>}\r\n\r\n                                </td>}\r\n                        </tr>)}\r\n                </tbody>\r\n            </table>\r\n\r\n\r\n\r\n            {showIfModal != null && (\r\n                <div\r\n                    className=\"modal fade show d-block\"\r\n                    tabIndex=\"-1\"\r\n                    style={{ background: \"rgba(0,0,0,0.5)\" }}\r\n                >\r\n                    <div className=\"modal-dialog\">\r\n                        <div className=\"modal-content\">\r\n                            <div className=\"modal-header\">\r\n                                <h5 className=\"modal-title\">PDF Ayarları</h5>\r\n                                <button\r\n                                    type=\"button\"\r\n                                    className=\"btn-close\"\r\n                                    onClick={() => {\r\n                                        setShowIfModal(null)\r\n                                        setWidth(\"\")\r\n                                        setHeight(\"\")\r\n                                        setOfset(\"\")\r\n                                        setPrinter(\"\")\r\n                                        setZoom(\"\")\r\n                                        setRenk(\"\")\r\n                                        setOlcek(\"1:50\")\r\n                                    }}\r\n                                ></button>\r\n                            </div>\r\n                            <div className=\"modal-body\">\r\n                                {/*<div className=\"row\">*/}\r\n                                {/*    <div className=\"col-3\">Görüntü Tipi</div>*/}\r\n                                {/*    <div className=\"col-6\">*/}\r\n                                {/*        <select className=\"form-select form-select-sm shadow-none\" id=\"plotselect\" onChange={(e) => setPlot(e.target.value)}>*/}\r\n                                {/*            {pdfWindoModes.map(x =>*/}\r\n                                {/*                <option value={x}>*/}\r\n                                {/*                {x}*/}\r\n                                {/*            </option>)}*/}\r\n                                {/*        </select>*/}\r\n                                {/*    </div>*/}\r\n                                {/*</div>*/}\r\n\r\n                                <div className=\"row mb-3\">\r\n                                    <div className=\"col-2\">Ölçek</div>\r\n                                    <div className=\"col-5\">\r\n\r\n                                        <Creatable\r\n                                            required={true}\r\n                                            ref={selectRef}\r\n                                            options={[{ label: \"50\", value: \"50\" }, { label: \"100\", value: \"100\" }]}\r\n                                            onChange={(e) => {\r\n                                                if (e != null)\r\n                                                    setOlcek(\"1:\" + e.value)\r\n                                            }}\r\n                                            isClearable={true}\r\n                                            formatCreateLabel={(i) => i}\r\n                                            noOptionsMessage={() => \"Henüz seçim yapılmadı\"}\r\n                                            placeholder=\"Seçiniz\"\r\n                                        />\r\n\r\n\r\n                                    </div>\r\n                                    {/*<div className=\"col-3\">*/}\r\n                                    {/*    Model Birimi*/}\r\n                                    {/*    <input type=\"number\" className=\"form-control form-control-sm\" id=\"unit\" defaultValue=\"1\" onChange={setScale} />*/}\r\n\r\n                                    {/*</div>*/}\r\n                                    {/*<div className=\"col-1\">*/}\r\n                                    {/*    =*/}\r\n                                    {/*</div>*/}\r\n                                    {/*<div className=\"col-3\">*/}\r\n                                    {/*    Milimetre*/}\r\n                                    {/*    <input type=\"number\" className=\"form-control form-control-sm\" id=\"milim\" defaultValue=\"1\" onChange={setScale} />*/}\r\n\r\n                                    {/*</div>*/}\r\n                                    <div className=\"col-5 text-end\">\r\n                                        <button class=\"btn btn-link btn-sm text-decoration-none\"\r\n                                            type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#multiCollapseExample2\"\r\n                                            aria-expanded=\"false\" aria-controls=\"multiCollapseExample2\">\r\n\r\n                                            <i className=\"fa fa-cog\" aria-hidden=\"true\"></i>\r\n                                        </button>\r\n\r\n                                    </div>\r\n                                </div>\r\n                                <div className=\"collapse border-top border-top\" id=\"multiCollapseExample2\">\r\n                                    <div className=\"row mt-2\">\r\n                                        <div className=\"col-4\">\r\n                                            Kağıt Eni\r\n                                            <input type=\"number\" className=\"form-control form-control-sm\" defaultValue=\"\" onChange={(e) => setWidth(e.target.value)} />\r\n                                        </div>\r\n                                        <div className=\"col-4\">\r\n                                            Kağıt  Boyu\r\n                                            <input type=\"number\" className=\"form-control form-control-sm\" defaultValue=\"\" onChange={(e) => setHeight(e.target.value)} />\r\n                                        </div>\r\n                                        <div className=\"col-4\">\r\n                                            Renk\r\n                                            <select class=\"form-select form-select-sm\" onChange={(e) => setRenk(e.target.value)} >\r\n\r\n                                                <option selected value=\"monochrome.ctb\">Siyah Beyaz</option>\r\n                                                <option value=\"Autodesk-Color.stb\">Renkli</option>\r\n\r\n                                            </select>\r\n                                        </div>\r\n                                    </div>\r\n\r\n                                    <div className=\"row mt-2\" >\r\n                                        <div className=\"col-4 \">\r\n                                            Zoom\r\n                                            <input type=\"number\" className=\"form-control form-control-sm\" defaultValue=\"\" onChange={(e) => setZoom(e.target.value)} />\r\n                                        </div>\r\n                                        <div className=\"col-4 \">\r\n                                            Ofset (X,Y)\r\n                                            <input type=\"text\" placeholder=\"0,0\" className=\"form-control form-control-sm\" defaultValue=\"\" onChange={(e) => setOfset(e.target.value)} />\r\n                                        </div>\r\n                                        <div className=\"col-4\">\r\n                                            {/*Çizim Modu*/}\r\n                                            {/*<select class=\"form-select form-select-sm\" onChange={(e) => setPrinter(e.target.value)} >*/}\r\n                                            {/*    <option selected value=\"\">Gerçek boyutta çiz</option>*/}\r\n                                            {/*    <option value=\"DWG To PDF\">5m'ye sığıdır</option>*/}\r\n                                            {/*</select>*/}\r\n\r\n                                            Çizim Birimi\r\n\r\n                                            <Creatable\r\n                                                required={true}\r\n                                                ref={selectRef}\r\n                                                options={[{ label: \"Milimetre\", value: \"4\" }, { label: \"Centimetre\", value: \"5\" }, { label: \"Metre\", value: \"6\" }, { label: \"Inch\", value: \"1\" }]}\r\n                                                onChange={(e) => {\r\n                                                    if (e != null)\r\n                                                        setUnit(e.value)\r\n                                                }}\r\n                                                isClearable={true}\r\n                                                formatCreateLabel={(i) => i}\r\n                                                noOptionsMessage={() => \"Henüz seçim yapılmadı\"}\r\n                                                placeholder=\"Otomatik\"\r\n                                            />\r\n\r\n                                        </div>\r\n                                    </div>\r\n                                </div>\r\n\r\n                            </div>\r\n                            <div className=\"modal-footer\">\r\n\r\n                                <a className=\"text-decoration-none align-middle  btn btn-sm btn-primary\"\r\n                                    href={'dwgtopdf?id=' + showIfModal.id + \"&plot=\" + plot +\r\n                                        \"&pdfscale=\" + olcek + (isEmpty(width) ? \"\" : \"&width=\" + width) +\r\n                                        (isEmpty(height) ? \"\" : \"&height=\" + height) + (isEmpty(renk) ? \"\" : \"&color=\" + renk)\r\n                                        + (isEmpty(ofset) ? \"\" : \"&offset=\" + ofset)\r\n                                        + (isEmpty(zoom) ? \"\" : \"&scale=\" + zoom)\r\n                                       /* + (isEmpty(printer) ? \"\" : \"&printer=\" + printer)*/\r\n                                        + (isEmpty(unit) ? \"\" : \"&unit=\" + unit)\r\n                                    }\r\n                                    title=\"PDFe çevir\" target=\"_blank\">Gerçek boyutta indir  </a>\r\n                                <a className=\"text-decoration-none align-middle  btn btn-sm btn-primary\"\r\n                                    href={'dwgtopdf?id=' + showIfModal.id + \"&plot=\" + plot +\r\n                                        \"&pdfscale=\" + olcek + (isEmpty(width) ? \"\" : \"&width=\" + width) +\r\n                                        (isEmpty(height) ? \"\" : \"&height=\" + height) + (isEmpty(renk) ? \"\" : \"&color=\" + renk)\r\n                                        + (isEmpty(ofset) ? \"\" : \"&offset=\" + ofset)\r\n                                        + (isEmpty(zoom) ? \"\" : \"&scale=\" + zoom)\r\n                                        + \"&printer=DWG To PDF\" \r\n                                        + (isEmpty(unit) ? \"\" : \"&unit=\" + unit)\r\n                                    }\r\n                                    title=\"PDFe çevir\" target=\"_blank\"> 5m'ye sığıdır  </a>\r\n\r\n                                <button\r\n                                    className=\"btn btn-secondary btn-sm\"\r\n                                    onClick={() => setShowIfModal(null)}\r\n                                >\r\n                                    Vazgeç\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            )}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n        </div>\r\n    );\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport Select from \"react-select\";\r\nimport axios from \"axios\";\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { isEmpty, removeTurkce, removeTurkcLow, sendpost, showConfirmMessage, showErrorMessage, useGlobalState } from '../GlobalState.js';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport InlineFilePanel from './InlineFilePanel';\r\nimport $ from 'jquery';\r\nimport FilesPanel from './FilesPanel';\r\nimport VTable from '../Header/VTable';\r\n\r\nexport default function DWGCompare(props) {\r\n\r\n    const files = props.files;\r\n    const [dwgs, setDwgs] = useState([]);\r\n    useEffect(() => {\r\n        getlist();\r\n\r\n    }, [])\r\n\r\n    const compareFiles = (event) => {\r\n        var f1 = document.getElementById(\"file1\").value;\r\n        var f2 = document.getElementById(\"file2\").value;\r\n        if (f1 == -1 || f2 == -1) {\r\n            showErrorMessage(\"DWG dosya boş olamaz\");\r\n            return;\r\n        }\r\n        sendpost(\"comparedwgfiles\", f1 + \",\" + f2, \"statusbar\", (resp) => {\r\n            /* resp.json().then(async data => {\r\n                \r\n             });*/\r\n            getlist();\r\n\r\n        }, (resp) => {\r\n            getlist();\r\n            resp.text().then(value => {\r\n                showErrorMessage(value);\r\n            })\r\n        })\r\n\r\n    }\r\n\r\n    const getlist = (event) => {\r\n        sendpost(\"getdwgcompares\", props.appData.id, \"listbox\", (resp) => {\r\n            resp.json().then(async data => {\r\n                setDwgs(data);\r\n            });\r\n\r\n        }, (resp) => {\r\n            resp.text().then(value => {\r\n                showErrorMessage(value);\r\n            })\r\n        })\r\n\r\n    }\r\n\r\n\r\n    const rowClick = (idx, rec, col) => {\r\n\r\n\r\n    }\r\n\r\n    const rowDelete = (rec) => {\r\n        showConfirmMessage(rec.id + \" numaralı kaydı silmek istediğinizden emin misiniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            sendpost(\"removedwgcompare\", rec.id, \"\", (resp) => {\r\n                resp.json().then(async data => {\r\n                    setDwgs(data);\r\n                });\r\n\r\n            }, (resp) => {\r\n                resp.text().then(value => {\r\n                    showErrorMessage(value);\r\n                })\r\n            })\r\n\r\n        })\r\n\r\n\r\n    }\r\n   \r\n    const renderTable = (tabledata) => {\r\n\r\n        var mytable = <div className=\"mt-4\">\r\n            {tabledata.map((apprec,idx) =>\r\n                < div className=\"row rounded-3 border-top pt-2\" key={apprec.id}>\r\n                    <div className=\"col-1\" >\r\n                        {apprec.id}\r\n                    </div>\r\n                    <div className=\"col-3\" >\r\n                        {apprec.file1id} - {apprec.file1typeName} ({apprec.file1caption})\r\n                    </div>\r\n                    <div className=\"col-3 \" >\r\n                        {apprec.file2id} - { apprec.file2typeName }({ apprec.file2caption })\r\n                    </div>\r\n                    <div className=\"col-3\" >\r\n                        {apprec.compareDate}\r\n                    </div>\r\n                    <div className=\"col-2 text-end\" >\r\n                        <a download={apprec.id + \".pdf\"} href={\"getdwgpic?id=\" + apprec.id} className=\"text-decoration-none m-0 p-0 material-icons\">download</a>&nbsp;\r\n                        <a href=\"#\" onClick={() => rowDelete(apprec)} className=\"material-icons text-decoration-none m-0 p-0 text-danger\">delete</a>\r\n                    </div>\r\n                </div>\r\n            )}\r\n        </div>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div>\r\n            <div className=\"row mb-1\">\r\n                <div className=\"col-8  fw-bold\">\r\n                    <h5 className=\"text-primary\"> DWG Dosya Karşılaştırma</h5>\r\n                </div>\r\n\r\n                <div className=\"col-4  text-end\">\r\n                    <button type=\"button\" className=\"btn btn-sm btn-primary \" onClick={(e) => { props.setActivePanel(<FilesPanel appData={props.appData} showAll={true} setActivePanel={props.setActivePanel} changeComponent={props.changeComponent} />) }}>\r\n                        <i className=\"fa fa-arrow-circle-left pe-1\"></i>  Dosyalar\r\n                    </button>\r\n                </div>\r\n            </div>\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"col-12  col-md-5\">\r\n                    Yeni Dosya\r\n                    <select className=\"form-select form-select-sm\" id=\"file1\">\r\n                        <option selected value={-1}></option>\r\n                        {files.map(x => <option value={x.id}>{x.id } - {x.typeName} ({x.caption})</option>)}\r\n                    </select>\r\n                </div>\r\n                <div className=\"col-12  col-md-5\">\r\n                    Eski Dosya\r\n                    <select className=\"form-select form-select-sm\" id=\"file2\">\r\n                        <option selected value={-1}></option>\r\n                        {files.map(x => <option value={x.id}>{x.id} -{x.typeName} ({x.caption})</option>)}\r\n                    </select>\r\n                </div>\r\n\r\n                <div className=\"col-12  col-md-2 text-end\">\r\n                    <br />\r\n                    <button type=\"button\" className=\"btn btn-primary  btn-sm \" onClick={compareFiles}>\r\n                        Karşılaştır <i className=\"fa fa-copy\"></i>\r\n                    </button>\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row  mt-1\" hidden id=\"statusbar\">\r\n                <div className=\"col-12 fw-bold\" >\r\n                    Lütfen bekleyin karşılaştırma bir kaç dakika sürebilir\r\n                    <span class=\"ms-2 spinner-border spinner-border-sm\" role=\"status\">\r\n                    </span>\r\n\r\n                </div>\r\n            </div>\r\n\r\n\r\n            <div className=\"row\" id=\"listbox\" hidden>\r\n                <div className=\"col-12 fw-bold\" >\r\n                    <span class=\"ms-2 spinner-border spinner-border-sm\" role=\"status\">\r\n                    </span>\r\n                </div>\r\n            </div>\r\n\r\n            {renderTable(dwgs)}\r\n\r\n            {/*<VTable data={dwgs} cols={[\"id\", \"file1caption\", \"file1typeName\", \"file2caption\", \"file2typeName\", \"compareDate\"]} headers={[\"ID\", \"Yeni Dosya\", \"Yeni Dosya Tip\", \"Eski Dosya\", \"Eski Dosya Tip\", \"Tarih\"]} href={\"getdwgpic?id=\"} hrefid={\"id\"} rowDelete={rowDelete} />*/}\r\n\r\n\r\n        </div >\r\n\r\n\r\n\r\n    );\r\n\r\n\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport Select from \"react-select\";\r\nimport axios from \"axios\";\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { isImage, isEmpty, removeTurkce, removeTurkcLow, showErrorMessage, showInfoMessage, useGlobalState, isVideo } from '../GlobalState.js';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport InlineFilePanel from './InlineFilePanel';\r\nimport $ from 'jquery';\r\nimport DWGCompare from './DWGCompare';\r\n\r\nexport default function FilesPanel(props) {\r\n\r\n    const [files, setFiles] = useState([]);\r\n    const [showDeletedFiles, setshowDeletedFiles] = useState(false);\r\n\r\n    const [fileTypes, setfileTypes] = useState(null);\r\n    const [uploadedFiles, setUploadedFiles] = useState([]);\r\n    var basvurutipi = props.appData.basvuruTipi;\r\n    var appData = props.appData;\r\n    var eksikzorunlu = \"\";\r\n    var zorunluimza = [];\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [sablonlistData, setSabolnListData] = useState([]);\r\n\r\n    const [showAllFileState, setshowAllFileState] = useState(false);\r\n\r\n\r\n    useEffect(() => {\r\n\r\n        fetchSabolnFileList();\r\n    }, [])\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const renderSablonFileTable = (tabledata) => {\r\n        var mytable =\r\n\r\n            <table aria-labelledby=\"tabelLabel\">\r\n                <thead>\r\n                </thead>\r\n                <tbody >\r\n                    {tabledata.map(apprec =>\r\n                        <tr key={apprec.id} >\r\n                            <td ><a href={\"./getsablonfile?id=\" + apprec.id} download={apprec.fileName} className=\"text-primary text-decoration-none\">{apprec.fileName}</a></td>\r\n                        </tr>\r\n                    )}\r\n                </tbody>\r\n            </table>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n    const fetchSabolnFileList = () => {\r\n        fetch(\"sablonfilenamelist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(appData)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setSabolnListData(value);\r\n                    fetchFiles();\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const isZorunluForThisApp = (zorunlu) => {\r\n        if (isEmpty(zorunlu) == true || zorunlu.includes(appData.basvuruTipi) == false)\r\n            return false;\r\n        return true;\r\n    }\r\n\r\n    const eksikdosyatespit = (appData, uploadedfiles) => {\r\n        var eksikdiv = document.getElementById(\"eksikdosyalar\");\r\n\r\n        if (eksikdiv == null || fileTypes == null)\r\n            return;\r\n\r\n        var i, j;\r\n        for (i = 0; i < fileTypes.length; i++) {\r\n            if (isEmpty(fileTypes[i].BasvuruTipi) == true && props.showAll != true)\r\n                continue;\r\n\r\n            if (isEmpty(fileTypes[i].BasvuruTipi) == false && fileTypes[i].BasvuruTipi.split(\",\").map(item => item.trim()).includes(basvurutipi) == false)\r\n                continue;\r\n\r\n\r\n            for (j = 0; j < uploadedfiles.length; j++) {\r\n                if (fileTypes[i].id == uploadedfiles[j].typeId)\r\n                    break;\r\n            }\r\n            if (j == uploadedfiles.length && isZorunluForThisApp(fileTypes[i].zorunlu) == true) {\r\n                if (eksikzorunlu.length > 0)\r\n                    eksikzorunlu += \" - \"\r\n                eksikzorunlu += fileTypes[i].Name;\r\n            }\r\n\r\n            if (fileTypes[i].zorunluEimza == true) {\r\n                if (uploadedfiles.some(x => x.typeId == fileTypes[i].id && isEmpty(x.imzatarih) == false && x.imzatarih.includes(\"edildi\") == false) == false)\r\n                    zorunluimza.push(fileTypes[i].Name)\r\n            }\r\n\r\n\r\n        }\r\n        if (eksikzorunlu.length > 0) {\r\n            eksikdiv.innerHTML = \"Eksik zorunlu dosyalar bulunmaktadır (\" + eksikzorunlu + \" )\"\r\n        }\r\n        else\r\n            eksikdiv.innerHTML = \"\";\r\n\r\n\r\n        var eksikeimzadiv = document.getElementById(\"eksikeimzalidosya\");\r\n        if (zorunluimza.length > 0) {\r\n            eksikeimzadiv.innerHTML = \"E-İmza atılması gereken dosyalar: \" + zorunluimza.join(',')\r\n        }\r\n        else\r\n            eksikeimzadiv.innerHTML = \"\";\r\n    }\r\n\r\n\r\n    const getappeimzafiles = (filelist) => {\r\n        fetch(\"getappeimzafiles\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: appData.id\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n\r\n                    for (var i = 0; i < filelist.length; i++) {\r\n                        var r = data.filter(f => f.removed != true).find(f => f.userFileId == filelist[i].id);\r\n                        if (r != null) {\r\n                            filelist[i].imzatarih = r.imzatarih;\r\n                            filelist[i].imzaid = r.id;\r\n                            filelist[i].removed = r.removed;\r\n                            filelist[i].imzaRec = r;\r\n                        }\r\n\r\n                    }\r\n\r\n                    setUploadedFiles(filelist);\r\n\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchFiles = () => {\r\n        fetch(\"getapplicationfiles\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({ ...appData, temp: \"showremoved\" })\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    filenamelist(data);\r\n                    getappeimzafiles(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    const filenamelist = (files) => {\r\n        fetch(\"filenamelistwithgrups\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(response.statusText)\r\n                })\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    var filetypes = [];\r\n                    value = JSON.parse(value);\r\n                    for (var i = 0; i < value.length; i++) {\r\n                        if (value[i].id == null && value[i].Id!=null)\r\n                            value[i].id = value[i].Id;\r\n\r\n                        if (isEmpty(value[i].BasvuruTipi) && props.showAll != true)\r\n                            continue;\r\n\r\n                        if (isEmpty(value[i].BasvuruTipi) || value[i].BasvuruTipi.split(\",\").map(item => item.trim()).includes(basvurutipi)) {\r\n                            filetypes.push(value[i])\r\n                        }\r\n                    }\r\n\r\n\r\n                    var typeids = value.map(x => x.id);\r\n                    var l = files.filter(x => typeids.includes(x.typeId) == false)\r\n                    l.forEach(x => {\r\n                        if (filetypes.some(f => f.id == x.typeId) == false)\r\n                            filetypes.unshift({ Name: \"\", id: x.typeId, typeLess: true })\r\n\r\n                    })\r\n                    setfileTypes(filetypes);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    const SendFiles = (selectedFiles) => {\r\n        for (let i = 0; i < selectedFiles.length; i++) {\r\n            var filename = removeTurkce(selectedFiles[i].file.name);\r\n            if (filename.length > 80) {\r\n                showErrorMessage(\"Dosya İsmi en fazla 80 karakter olabilir.\");\r\n                return;\r\n            }\r\n            if (/^[a-zA-Z0-9_\\.\\- ()]+$/.test(filename) == false) {\r\n                showErrorMessage(\"Dosya ismi belirli özel karakterler içermemelidir.\", \"İçeremez: + * / $ , # [] {} <> \\  = : ;  ! | ? % ^\");\r\n                return;\r\n            }\r\n            var formData = new FormData();\r\n            formData.append(\"file\", selectedFiles[i].file);\r\n            formData.append(\"caption\", filename);\r\n            formData.append(\"typeid\", selectedFiles[i].TypeID);\r\n            formData.append(\"appid\", props.appData.id);\r\n            document.getElementById(\"fuploadspinner\" + selectedFiles[i].TypeID).hidden = false;\r\n\r\n            axios.post(\r\n                \"submitappfile\",\r\n                formData,\r\n                {\r\n                    headers: {\r\n                        //\"Authorization\": \"YOUR_API_AUTHORIZATION_KEY_SHOULD_GOES_HERE_IF_HAVE\",\r\n                        \"Content-type\": \"multipart/form-data\",\r\n                    },\r\n                }\r\n            ).then(res => {\r\n                document.getElementById(\"fuploadspinner\" + selectedFiles[i].TypeID).hidden = true;\r\n                fetchFiles();\r\n\r\n            })\r\n                .catch(err => {\r\n                    document.getElementById(\"fuploadspinner\" + selectedFiles[i].TypeID).hidden = true;\r\n                    showErrorMessage(err);\r\n                })\r\n        }\r\n    }\r\n\r\n\r\n\r\n    const handleSelectedFile = (event, filetyp) => {\r\n        if (event.target.files[0] != null) {\r\n            if (filetyp.fileSize != null && event.target.files[0].size > filetyp.fileSize * 1024 * 1024) {\r\n                showErrorMessage(\"dosya boyu en fazla \" + filetyp.fileSize + \" MB olabilir\");\r\n                event.target.value = \"\";\r\n                return;\r\n            }\r\n            if (isEmpty(filetyp.FileType) == false) {\r\n                var filename = event.target.files[0].name.toLowerCase();\r\n                var acceptedTypes = filetyp.FileType.toLowerCase().split(\",\");\r\n\r\n                if (acceptedTypes.some(x => filename.endsWith(x.trim().toLowerCase())\r\n                    || (x.trim().toLowerCase() == \"image/*\" && isImage(filename)) \r\n                    || (x.trim().toLowerCase() == \"video/*\" && isVideo(filename))) == false ) {\r\n                    showErrorMessage(\"dosya uzantısı \" + filetyp.FileType + \"  olabilir\");\r\n                    return;\r\n                }\r\n            }\r\n           \r\n\r\n\r\n            SendFiles([{ file: event.target.files[0], TypeID: filetyp.id }]);\r\n        }\r\n    }\r\n    const removeFile = (idx) => {\r\n        files.splice(idx, 1);\r\n        setFiles([...files]);\r\n    }\r\n\r\n\r\n\r\n\r\n    const getVisibleState = (id) => {\r\n        if (fileTypes == null) return false;\r\n        for (var i = 0; i < fileTypes.length; i++)\r\n            if (fileTypes[i].id == id) {\r\n                if (fileTypes[i].kontrolorDosyasi != true)\r\n                    return true;\r\n                if (role.indexOf(UserPermConstants.Kontrolor_Dosyasi_Yukleme) > -1) return true;\r\n                if (fileTypes[i].kontrolorDosyaYetki == null || fileTypes[i].kontrolorDosyaYetki.length == 0) return true;\r\n                if (fileTypes[i].kontrolorDosyaYetki.split(',').some(x => role.indexOf(\"#\" + x + \"#\") > -1)) return true;\r\n                return false;\r\n            }\r\n\r\n        return false;\r\n    }\r\n\r\n\r\n    const showAllFiles = (event) => {\r\n        var c = document.getElementById(\"showAllFiles\");\r\n        if (c != null && c.checked == true) {\r\n            setshowAllFileState(true);\r\n        }\r\n        else\r\n            setshowAllFileState(false);\r\n    }\r\n\r\n    const filterTable = (event) => {\r\n        var textbox = document.getElementById(\"mySearchInput\")\r\n        if (textbox == null)\r\n            return;\r\n        var value = removeTurkcLow(textbox.value);\r\n        var keywords = value.split(\" \");\r\n\r\n        $(\"#FileTables .searchGroup\").filter(function () {\r\n            return $(this).toggle(false);\r\n        });\r\n\r\n        $(\"#FileTables div .searchitem\").filter(function () {\r\n            var t1 = removeTurkcLow($(this).text());\r\n            for (let index = 0; index < keywords.length; ++index) {\r\n                if (t1.indexOf(keywords[index]) == -1) {\r\n                    return $(this).toggle(false);\r\n                }\r\n            }\r\n            $(this).closest('.searchGroup').toggle(true);\r\n            $(this).closest('.searchGroup').find(\":first\").toggle(true);\r\n            \r\n\r\n            return $(this).toggle(true);\r\n        });\r\n\r\n\r\n    }\r\n\r\n    var lastgurup = null;\r\n\r\n\r\n    const generaterow = (x, hidderState) => {\r\n\r\n\r\n\r\n        var r = getVisibleState(x.id) && <div  className={(lastgurup == x.grupname ? \"pt-1 pb-1 searchGroup row\" : \"row mt-3  border-top border-2 searchGroup\")} >\r\n            <div className=\"text-center mb-1 searchitem\" >\r\n                {lastgurup == x.grupname ? \"\" : <h5 className=\" text-primary fw-bold d-inline\">{x.grupname}</h5>}\r\n\r\n            </div>\r\n\r\n            {isEmpty(x.aciklama) == false &&\r\n                <div className=\"d-flex flex-row searchitem\">\r\n\r\n                    <span className=\"badge bg-secondary mb-1 searchitem\" title={x.aciklama}>\r\n                        <a class=\"text-decoration-none text-white \" data-bs-toggle=\"collapse\" href={\"#collapse\" + x.id} role=\"button\" aria-expanded=\"false\" aria-controls={\"#collapse\" + x.id}>\r\n                            Açıklama\r\n                        </a>\r\n                    </span>\r\n                </div>}\r\n\r\n            {isEmpty(x.aciklama) == false && <div className=\"collapse \" id={\"collapse\" + x.id}>\r\n                <div class=\"card card-body p-1 mb-1\">\r\n                    {x.aciklama}\r\n                </div>\r\n            </div>}\r\n\r\n            <div id={\"fuploadspinner\" + x.id} hidden={true}>\r\n                <div className=\"spinner-border spinner-border-sm text-primary\" ></div>\r\n            </div>\r\n\r\n            <div className=\"searchitem\">\r\n                {<div  style={{ \"float\": \"left\" }}>\r\n                    {x.typeLess != true &&\r\n                        <button className=\"btn btn-sm fw-bold rounded-2 p-1 ps-2 pe-2 pt-2 me-2 border-0 shadow-none\"\r\n                        disabled={(isEmpty(appData.temp) == false && appData.temp.includes(\"Görüntüleme\") == true) || appData.archived == true}\r\n                        style={{\r\n                            \"background-color\": x.kontrolorDosyasi == true && role.indexOf(UserPermConstants.Kontrolor_Dosyasi_Yukleme) == -1 ? \"#E3E3E3\" : \"#E1F0FF\",\r\n                            \"color\": x.kontrolorDosyasi == true && role.indexOf(UserPermConstants.Kontrolor_Dosyasi_Yukleme) == -1 ? \"#808080\" : \"#36A4FF\"\r\n                        }}\r\n                        onClick={() => {\r\n                            if (x.kontrolorDosyasi == true && role.indexOf(UserPermConstants.Kontrolor_Dosyasi_Yukleme) == -1)\r\n                                showInfoMessage(\"Bu dosya sadece yetkili belediye personelleri tarafından yüklenebilir.\",\"\",\"Tamam\");\r\n                                else\r\n                            document.getElementById(\"selectedFile\" + x.Name).click();\r\n                        }} >\r\n                        <i className=\"fa fa-plus\" style={{ \"font-size\": \"18px\" }}></i>\r\n                    </button>}\r\n                    {\r\n                        <div \r\n                            className={\r\n                                uploadedFiles.filter(r => (showAllFileState == true || r.appId == appData.id) && r.hidden != true\r\n                                && r.typeId == x.id && (r.removed != true || showDeletedFiles == true)).length == 0 ?\r\n                                    (isZorunluForThisApp(x.zorunlu)  ? \"d-inline text-danger fw-bold\" : zorunluimza.includes(x.Name) ? \"d-inline text-primary fw-bold\" : \"d-inline fw-bold\")\r\n                            :\"d-none\"}>\r\n                        {x.Name + (isZorunluForThisApp(x.zorunlu) == true ? \" *\" : \"\")}\r\n                        {isZorunluForThisApp(x.zorunlu) ? <sup > <span class=\"badge rounded-pill bg-danger\">Zorunlu</span></sup> : \"\"}\r\n                        {zorunluimza.includes(x.Name) ? <sup> <span class=\"badge rounded-pill bg-primary\">E-İmzalı</span></sup> : \"\"}\r\n                    </div>}\r\n                </div>}\r\n\r\n               \r\n\r\n\r\n                <div className=\"\" >\r\n                    <InlineFilePanel showAllFileState={showAllFileState} fileType={x.id} showDeletedFiles={showDeletedFiles} changeComponent={props.changeComponent} appData={appData} fileNameList={fileTypes} uploadedFiles={uploadedFiles} key={uploadedFiles.length} setParentFileList={setUploadedFiles} setActivePanel={props.setActivePanel} kontrolorList={props.kontrolorList} />\r\n\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n\r\n                <div className=\"col-12\" >\r\n                    <input type=\"file\" id={\"selectedFile\" + x.Name} style={{ \"display\": \"none\" }} accept={x.FileType != null && x.FileType.length > 0 ? x.FileType : \"\"} onChange={(e) => handleSelectedFile(e, x)} />\r\n\r\n                    {/*<input style={{ maxWidth: \"100px\", \"color\": \"transparent\", \"background-color\":\"#11F0FF\"}} class=\"border-0 form-control form-control-sm\" type=\"file\" id=\"formFile\"  />*/}\r\n                </div>\r\n            </div>\r\n        </div>\r\n        lastgurup = x.grupname;\r\n\r\n        return r;\r\n    }\r\n\r\n\r\n    eksikdosyatespit(appData, uploadedFiles);\r\n\r\n    return (\r\n        <div>\r\n            <div className=\"row mb-1\">\r\n                <div className=\"col-12 text-danger fw-bold\">\r\n                    {appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Duzeltme_Bekleniyor &&\r\n                        \"Başvuru, Düzeltme Bekleniyor aşamasındadır. Düzeltmeler tamamlandıktan sonra “GÖNDER” tuşuna basılması gerekmektedir. \"\r\n                    }\r\n                </div>\r\n            </div>\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"col-6\">\r\n                    {sablonlistData.length > 0 && <h5 className=\"text-primary\">Örnek Formlar</h5 >}\r\n                </div>\r\n                <div className=\"col-6 align-items-end justify-content-end text-end\">\r\n                    <div class=\"btn-group flex-wrap\">\r\n                        {uploadedFiles.filter(x => x.removed == true).length>0 &&<div class=\"form-check form-switch  text-danger \">\r\n                            Silinen <span className=\"fw-bold\">{uploadedFiles.filter(x => x.removed == true).length}</span> dosyayı Göster<input class=\"form-check-input\" type=\"checkbox\" defaultChecked={false} onClick={(e) => setshowDeletedFiles(e.target.checked)} />\r\n                        </div>}\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            {sablonlistData.length > 0 && <div className=\"mb-3\"><div className=\"row\">\r\n                <div className=\"col-12\">\r\n                    {renderSablonFileTable(sablonlistData)}\r\n                </div>\r\n            </div>\r\n            </div>}\r\n            <div className=\"row\">\r\n                <div className=\"col-3\">\r\n                    <h5 className=\"text-primary\">Dosyalar</h5 >\r\n                </div>\r\n                <div className=\"col-9 text-danger justify-content-end align-items-end text-end  pe-4\" id=\"eksikdosyalar\">\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\"col-3\">\r\n                </div>\r\n                <div className=\"col-9 text-primary justify-content-end align-items-end text-end  pe-4\" id=\"eksikeimzalidosya\">\r\n                </div>\r\n            </div>\r\n\r\n\r\n            {fileTypes == null ? <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n                :\r\n                <fieldset disabled={role.indexOf(UserPermConstants.Dosya_Yukleme) == -1} className=\"col-12 col-md-12\" id=\"filetable\">\r\n                    <div className=\"pb-4\">\r\n                        (*) ile işaretlenen dosyaların yuklenmesi zorunludur.\r\n                    </div>\r\n\r\n                    <div >\r\n                        <div className=\"row border-top pt-3\" >\r\n\r\n                            <div className=\"col-12 col-md-2 pe-0\" >\r\n                                <div class=\"form-check form-switch\">\r\n                                    <input className=\"form-check-input pe-0 me-0\" type=\"checkbox\" role=\"switch\" id=\"showAllFiles\" onClick={showAllFiles} />\r\n                                       Tüm Dosyalar\r\n                                </div>\r\n                            </div >\r\n                            <div className=\"col-12 col-md-2\" >\r\n\r\n                                <div hidden={role.indexOf(UserPermConstants.DWG_Karsilastirma) == -1}>\r\n                                    <button  type=\"button\" className=\"btn btn-primary  btn-sm p-1\" onClick={() => {\r\n                                        if (role.indexOf(UserPermConstants.DWG_Karsilastirma) > -1)\r\n                                    props.setActivePanel(<DWGCompare setActivePanel={props.setActivePanel} appData={appData} changeComponent={props.changeComponent} files={uploadedFiles.filter(x => x.caption.endsWith(\".dwg\"))} />)\r\n                                    else{\r\n                                        showErrorMessage(\"Bu İşlem İçin Yetkiniz Bulunmamaktadır\");\r\n                                    }\r\n                                    }}>\r\n                                        <img src={require('../Header/dwg.png').default} style={{ maxWidth: \"45px\" }} className=\"m-0 p-0\" /> DWG\r\n                                     </button>\r\n                                </div>\r\n                            </div >\r\n                            <div className=\"col-12 col-md-4\" >\r\n                                <input className=\"form-control form-control-sm border-primary border-1 \" style={{ \"border-width\": \"1px\", \"box-shadow\": \"0px 0px 2px #0099da\" }} id=\"mySearchInput\" type=\"text\" placeholder=\"Arama\" onKeyUp={filterTable} />\r\n                            </div >\r\n                            <div className=\"col-12 col-md-4 textvmuted  text-primary small\" >\r\n                                Aralarında boşluk bırakarak birden fazla konuda arama yapabilirsiniz\r\n                            </div  >\r\n                        </div>\r\n                        <div className=\"row border-bottom pb-2 mb-2\" >\r\n                            <div className=\"col-12 col-md-1\" >\r\n\r\n                            </div  >\r\n                            <div className=\"col-12 col-md-10  mt-1\" >\r\n\r\n                            </div  >\r\n\r\n                        </div>\r\n\r\n                        <div className=\" p-1 mb-2\" id=\"FileTables\">\r\n                            {fileTypes.map(x => generaterow(x))}\r\n                        </div >\r\n\r\n                        {uploadedFiles.some(x => x.hidden == true) && < div className=\" p-1 mt-5 bg-light\" >\r\n                            <div className=\"row mb-2\">\r\n                                <div className=\"col-12 text-center rounded-3\"><a href=\"#\" className=\"text-decoration-none text-secondary fw-bold\" data-bs-toggle=\"collapse\" data-bs-target=\"#silinenliste\"> Gizlenen Dosyalar </a></div>\r\n                            </div>\r\n                            <div id=\"silinenliste\" class=\"collapse\">\r\n                                <InlineFilePanel showHidden={true} showAllFileState={showAllFileState} changeComponent={props.changeComponent} appData={appData} fileNameList={fileTypes} uploadedFiles={uploadedFiles} key={uploadedFiles.length} setParentFileList={setUploadedFiles} setActivePanel={props.setActivePanel} kontrolorList={props.kontrolorList} />\r\n                            </div >\r\n                        </div >}\r\n\r\n                    </div >\r\n\r\n\r\n\r\n                </fieldset>}\r\n\r\n        </div >\r\n\r\n\r\n\r\n    );\r\n\r\n\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { showErrorMessage, showSuccessMessage } from '../GlobalState';\r\n\r\nexport default function SendNotificationPanel(props) {\r\n\r\n    const [appData, setData] = useState(props.appData);\r\n\r\n    const sendMessage = () => {\r\n        fetch(\"postmessage\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({ id: appData.id, body: document.getElementById(\"messagebody\").value, title: document.getElementById(\"messagetitle\").value  })\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                showErrorMessage(response.statusText)\r\n            }\r\n            else {\r\n                document.getElementById(\"messagebody\").value = \"\";\r\n                document.getElementById(\"messagetitle\").value = \"\";\r\n                showSuccessMessage(\"Bildirim Gönderilmiştir\");\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n    return (\r\n        <div className=\"mb-1 p-1 \">\r\n            <h5 style={{ color: \"#0098db\" }}>\r\n                Bildirim Gönder\r\n            </h5>\r\n            <div className=\"row\">\r\n                <div className=\"col-md-6  col-12\" >\r\n                    <div className=\"mb-1\">\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"messagetitle\" placeholder=\"Başlık\" name=\"messagetitle\" defaultValue=\"\" />\r\n                     </div>\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\" col-12\" >\r\n                    <div className=\"mb-1\">\r\n                        <textarea class=\"form-control\" id=\"messagebody\" rows=\"3\"></textarea>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\"col-md-6 col-12\" >\r\n                    <div className=\"mb-1\">\r\n                         <button onClick={() => sendMessage()} className=\"btn btn-primary btn-sm \">Gönder</button>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div >\r\n    );\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\n//import SablonMappingPanel from './SablonMappingPanel';\r\nimport { useLocation } from 'react-router-dom'\r\nimport SharedUsersPanel from './SharedUsersPanel.js';\r\nimport SendNotificationPanel from './SendNotificationPanel.js';\r\nimport Application from './Application.js';\r\nimport { showErrorMessage, showSuccessMessage, useGlobalState } from '../GlobalState.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nexport default function Sharing(props) {\r\n\r\n    const [listData, setListData] = useState(null);\r\n    const [useroptions, setOptions] = useState([]);\r\n    let location = useLocation();\r\n    const [role, setRole] = useGlobalState('role');\r\n    const me = <Sharing changeComponent={props.changeComponent} />\r\n\r\n\r\n    const [appData, setData] = useState(props.rec != null ? props.rec : location.state.rec);\r\n\r\n    const fetchSharingList = () => {\r\n        fetch(\"sablonlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(response.statusText)\r\n                })\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const copyToClipboard = () => {\r\n        var copyText = document.getElementById(\"plink\");\r\n        copyText.select();\r\n        copyText.setSelectionRange(0, 99999);\r\n        navigator.clipboard.writeText(copyText.value);\r\n        showSuccessMessage(\"Link kopyalandı \" + copyText.value);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchSharingList();\r\n    }, [])\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"row p-4 pt-3\" style={{ \"background-color\": \"#ebebeb\" }}>\r\n            <div className=\"row rounded-3 m-0 p-0\">\r\n                <div className=\"col-12 text-end m-0 p-0\">\r\n                    <button type=\"button\" className=\"btn btn-sm btn-primary mb-1 \" onClick={() => { props.changeComponent(<Application appData={appData} changeComponent={props.changeComponent} backButton={props.backButton} />) }}>Geri Dön</button>\r\n                </div>\r\n            </div>\r\n            <div className=\"row rounded-3 p-2 m-1 bg-white  pb-3\">\r\n                <h5 style={{ color: \"#0098db\" }}>Başvuru No {appData.id}</h5>\r\n                {role.indexOf(UserPermConstants.Link_ile_Kart_Paylasimi) > -1 && <><h6>Paylaşım Linki</h6>\r\n                    <div className=\"col-md-6 col-12 mb-1\">\r\n                        <input type=\"text\" className=\"form-control form-control-inline form-control-sm\" id=\"plink\" placeholder=\"Şablon Adı\" name=\"Name\"\r\n                            value={window.location.protocol + '//' + window.location.host + \"/applicationcard?id_st=\" + appData.id + \"$\" + appData.securityToken} />\r\n                    </div>\r\n                    <div className=\"col-md-6 col-12\"> <a target=\"_blank\" href={\"/applicationcard?id_st=\" + appData.id + \"$\" + appData.securityToken} className=\"btn btn-primary btn-sm  me-2 text-decoration-none \">Aç</a>\r\n                        <button onClick={copyToClipboard} className=\"btn btn-sm btn-primary me-2\">Kopyala</button>\r\n                    </div>\r\n                </>}\r\n            </div>\r\n\r\n            {/*<div className=\"row rounded-3  p-2 m-1 mt-3 bg-white\">*/}\r\n            {/*    <div className='col-12  p-0 mb-2' >*/}\r\n            {/*        <h5 style={{ color: \"#0098db\" }}>İlgili Kullanıcılar</h5>*/}\r\n            {/*    </div>*/}\r\n            {/*    <div className='col-6  p-0 mb-2' >*/}\r\n            {/*        Başvuru Yapan*/}\r\n            {/*    </div>*/}\r\n            {/*    <div className='col-6  p-0 mb-2' >*/}\r\n            {/*        <img className=\"rounded-circle\" style={{ width: \"32px\", height: \"32px\" }} src={\"/getuserpic?user=\" + appData.basvuruYapan} /> &nbsp;*/}\r\n            {/*        {appData.basvuruYapan}*/}\r\n            {/*    </div>*/}\r\n            {/*    <div className='col-6  p-0 mb-2' >*/}\r\n            {/*        Müteahhit*/}\r\n            {/*    </div>*/}\r\n            {/*    <div className='col-6  p-0 mb-2' >*/}\r\n            {/*        <img className=\"rounded-circle\" style={{ width: \"32px\", height: \"32px\" }} src={\"/getuserpic?user=\" + appData.mimar} /> &nbsp;*/}\r\n\r\n            {/*        {appData.mimar}*/}\r\n            {/*    </div>*/}\r\n            {/*    <div className='col-6  p-0 mb-2' >*/}\r\n            {/*        Mimar*/}\r\n            {/*    </div>*/}\r\n            {/*    <div className='col-6  p-0 mb-2' >*/}\r\n            {/*        <img className=\"rounded-circle\" style={{ width: \"32px\", height: \"32px\" }} src={\"/getuserpic?user=\" + appData.muteahhit} /> &nbsp;*/}\r\n            {/*        {appData.muteahhit}*/}\r\n            {/*    </div>*/}\r\n            {/*</div>*/}\r\n\r\n            {role.indexOf(UserPermConstants.Kullaniciyla_Kart_Paylasimi) > -1 && <> <div className='row  bg-white rounded-3 p-2 m-1 mt-4' >\r\n                <div className='col-12  p-0' >\r\n                    <SharedUsersPanel appData={appData} />\r\n                </div>\r\n            </div>\r\n\r\n                {role.indexOf(UserPermConstants.Manuel_Bildirim_Gonderme) > -1 && <div className='row  bg-white rounded-3   p-2 m-1 mt-4 mb-4' >\r\n                    <div className='col-12  p-0 ' >\r\n                        <SendNotificationPanel appData={appData} />\r\n                    </div>\r\n                </div>}\r\n                \r\n                \r\n                </>}\r\n        </div>\r\n    );\r\n\r\n\r\n}\r\n","import axios from \"axios\";\r\nimport { useGlobalState, isEmpty, showErrorMessage, showSuccessMessage, showConfirmMessage, setVisible } from '../GlobalState.js';\r\nimport Application from \"../Application/Application.js\";\r\nimport ApplicationList from \"../Application/ApplicationList.js\";\r\n\r\n\r\nexport default function EimzaOnaylarimMobil(props) {\r\n    const [userData, setuserData] = useGlobalState('userData');\r\n    var eimza = props.eimza;\r\n    var imzalayan = props.imzalayan != null ? props.imzalayan : userData;\r\n    var topluImzaList = props.topluImzaList;\r\n\r\n\r\n\r\n    var page = 0;\r\n    const colors = { grey: \"#f3f2f7\", green: \"#106485\" }\r\n\r\n    // primeAPI'de kullanılacak tekil operasyon numarası\r\n    var operationId = \"\";\r\n    // imza atarken kullanılacak telefon numarası. 5334440099 şeklinde olmalıdır\r\n    var phoneNumber = \"\";\r\n    // kullanıcıya gösterilen mobil imza parmak izi değeri\r\n    var fingerPrint = \"\";\r\n    // işlemin başarıyla tamamlanıp tamamlanmadığını gösterir\r\n    var isSuccess = false;\r\n\r\n    // mobil imza için kullanılacak operatörler. Id değerinde yazan ifade API'ye gönderilir. Bu ifadeler değiştirilmemelidir.\r\n    const operators = [\r\n        { id: \"TURKCELL\", name: \"Turkcell\" },\r\n        { id: \"VODAFONE\", name: \"Vodafone\" },\r\n        { id: \"AVEA\", name: \"Türk Telekom\" },\r\n    ];\r\n\r\n\r\n    var selectedOperator = operators[0];\r\n\r\n    // imza atarken kullanılacak e-imza tür\r\n    const signatureTypes = [\r\n        { id: \"pades\", title: \"Pades\" },\r\n        { id: \"cades\", title: \"Cades\" },\r\n    ];\r\n\r\n    // kullanıcının seçtiği imza türü\r\n    var selectedSignatureType = signatureTypes[0];\r\n\r\n\r\n    function getCookie(cname) {\r\n        let name = cname + \"=\";\r\n        let decodedCookie = decodeURIComponent(document.cookie);\r\n        let ca = decodedCookie.split(';');\r\n        for (let i = 0; i < ca.length; i++) {\r\n            let c = ca[i];\r\n            while (c.charAt(0) == ' ') {\r\n                c = c.substring(1);\r\n            }\r\n            if (c.indexOf(name) == 0) {\r\n                return c.substring(name.length, c.length);\r\n            }\r\n        }\r\n        return \"\";\r\n    }\r\n\r\n    var saved_eimza = getCookie(\"mobile_eimza\")\r\n    if (isEmpty(saved_eimza) == false) {\r\n        phoneNumber = saved_eimza.split(\"$\")[1];\r\n        var operid = saved_eimza.split(\"$\")[0];\r\n        selectedOperator = operators.find(x => x.id == operid);\r\n    }\r\n\r\n\r\n\r\n    // https://github.com/uuidjs/uuid kullanılmak istenmediğinde onun yerine aşağıdaki fonksiyon kullanılabilir\r\n    function uuidv4(): string {\r\n        return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c: string) => {\r\n            const randomValues = new Uint8Array(1);\r\n            crypto.getRandomValues(randomValues);\r\n            const byte = randomValues[0];\r\n            return (c ^ (byte & (15 >> (parseInt(c, 10) / 4)))).toString(16);\r\n        });\r\n    }\r\n\r\n\r\n    function MobileSign() {\r\n        operationId = uuidv4();\r\n        fingerPrint = \"\";\r\n        var phoneNumber = document.getElementById(\"phoneNumber\").value;\r\n        var selectedOperator = document.getElementById(\"operatorSelect\").value;\r\n        if (phoneNumber.startsWith(\"0\") == false) {\r\n            phoneNumber = \"0\" + phoneNumber;\r\n        }\r\n        var checkbox = document.getElementById(\"benihatirla\");\r\n        if (checkbox.checked == true) {\r\n            document.cookie = \"mobile_eimza=\" + selectedOperator + \"$\" + phoneNumber;\r\n        }\r\n        const mobileSignRequest = {\r\n            operationId: operationId,\r\n            phoneNumber: phoneNumber,\r\n            operator: selectedOperator,\r\n            signatureType: selectedSignatureType.id,\r\n            citizenshipNo: imzalayan.tc,\r\n            appid: props.eimza.appId,\r\n            eimzaId: props.eimza.id\r\n        };\r\n        document.getElementById(\"imzaspin\").hidden = false;\r\n        props.showMessage(\"İmzalama işlemi devam ediyor\");\r\n        // mobil imza işlemi yapılır\r\n        axios\r\n            .post(\"/MobileSign\", mobileSignRequest)\r\n            .then((mobileSignResponse) => {\r\n                document.getElementById(\"imzaspin\").hidden = true;\r\n                console.log(\"Sizin sunucu katmanına MobileSign isteği gönderildi.\" + mobileSignResponse);\r\n                var mobileSignResult = mobileSignResponse.data;\r\n                isSuccess = mobileSignResult.isSuccess;\r\n                if (mobileSignResult.error) {\r\n                    props.showErrorMessage(\"İmza işlemi tamamlanamadı. \" + mobileSignResult.error);\r\n                } else {\r\n                    document.getElementById(\"imzaKapat\").hidden = false;\r\n                    document.getElementById(\"imzalabutton\").hidden = true;\r\n                    props.showSuccessMessage(\"İmzalama Başarılı\", \"Atmış olduğunuz e-imza 5070 sayılı e-imza kanunu kapsamında ıslak imza ile eşdeğerdir\");\r\n                }\r\n            })\r\n            .catch((error) => {\r\n\r\n                props.showErrorMessage(\"MobileSign isteği gönderilemedi. \" + error);\r\n                document.getElementById(\"imzaspin\").hidden = true;\r\n            });\r\n        // mobil imza işlemi sürerken işleme ilişkin parmak izi değeri alınır\r\n        axios\r\n            .post(\"/GetFingerPrint\", { operationId: operationId })\r\n            .then((getFingerResponse) => {\r\n                console.log(\"getFingerResponse\", getFingerResponse);\r\n                fingerPrint = getFingerResponse.data.fingerPrint;\r\n            })\r\n            .catch((error) => {\r\n                console.log(\"Sizin sunucu katmanına GetFingerPrint isteği gönderilemedi. Mesaj: \" + error + \" Detaylar için console'a bakınız.\");\r\n                console.log(\"Sizin sunucu katmanına GetFingerPrint isteği gönderilemedi.\", error);\r\n            });\r\n    }\r\n\r\n\r\n    function TopluMobilSign(idx) {\r\n        operationId = uuidv4();\r\n        fingerPrint = \"\";\r\n        var phoneNumber = document.getElementById(\"phoneNumber\").value;\r\n        var selectedOperator = document.getElementById(\"operatorSelect\").value;\r\n        if (phoneNumber.startsWith(\"0\") == false) {\r\n            phoneNumber = \"0\" + phoneNumber;\r\n        }\r\n        var checkbox = document.getElementById(\"benihatirla\");\r\n        if (checkbox.checked == true) {\r\n            document.cookie = \"mobile_eimza=\" + selectedOperator + \"$\" + phoneNumber;\r\n        }\r\n        const mobileSignRequest = {\r\n            operationId: operationId,\r\n            phoneNumber: phoneNumber,\r\n            operator: selectedOperator,\r\n            signatureType: selectedSignatureType.id,\r\n            citizenshipNo: imzalayan.tc,\r\n            appid: topluImzaList[idx].id,\r\n            eimzaId: topluImzaList[idx].imzaid\r\n        };\r\n        var progress = document.getElementById(\"progress\" + idx);\r\n        progress.style.width = \"30%\";\r\n        progress.innerHTML = \"30%\"\r\n\r\n        document.getElementById(\"imzaspin\").hidden = false;\r\n        props.showMessage(\"İmzalama işlemi devam ediyor\");\r\n        // mobil imza işlemi yapılır\r\n        axios\r\n            .post(\"/MobileSign\", mobileSignRequest)\r\n            .then((mobileSignResponse) => {\r\n                document.getElementById(\"imzaspin\").hidden = true;\r\n           //     console.log(\"Sizin sunucu katmanına MobileSign isteği gönderildi.\" + mobileSignResponse);\r\n                var mobileSignResult = mobileSignResponse.data;\r\n                isSuccess = mobileSignResult.isSuccess;\r\n                if (mobileSignResult.error) {\r\n                    props.showErrorMessage(\"İmza işlemi tamamlanamadı. \" + mobileSignResult.error);\r\n                } else {\r\n                    progress.style.width = \"100%\";\r\n                    progress.innerHTML = \"100%\"\r\n                    if (idx < topluImzaList.length - 1) {\r\n                        TopluMobilSign(idx + 1);\r\n                        return;\r\n                    }\r\n                    window.opener.fetchEimzaListem();\r\n                    document.getElementById(\"imzaKapat\").hidden = false;\r\n                    document.getElementById(\"imzalabutton\").hidden = true;\r\n                    props.showSuccessMessage(\"İmzalama Başarılı\", \"Atmış olduğunuz e-imza 5070 sayılı e-imza kanunu kapsamında ıslak imza ile eşdeğerdir\");\r\n                }\r\n            })\r\n            .catch((error) => {\r\n                window.opener.fetchEimzaListem();\r\n                props.showErrorMessage(\"MobileSign isteği gönderilemedi. \" + error);\r\n                document.getElementById(\"imzaspin\").hidden = true;\r\n            });\r\n        // mobil imza işlemi sürerken işleme ilişkin parmak izi değeri alınır\r\n        axios\r\n            .post(\"/GetFingerPrint\", { operationId: operationId })\r\n            .then((getFingerResponse) => {\r\n                console.log(\"getFingerResponse\", getFingerResponse);\r\n                fingerPrint = getFingerResponse.data.fingerPrint;\r\n            })\r\n            .catch((error) => {\r\n                console.log(\"Sizin sunucu katmanına GetFingerPrint isteği gönderilemedi. Mesaj: \" + error + \" Detaylar için console'a bakınız.\");\r\n                console.log(\"Sizin sunucu katmanına GetFingerPrint isteği gönderilemedi.\", error);\r\n            });\r\n    }\r\n\r\n    function MobileSign() {\r\n        operationId = uuidv4();\r\n        fingerPrint = \"\";\r\n        var phoneNumber = document.getElementById(\"phoneNumber\").value;\r\n        var selectedOperator = document.getElementById(\"operatorSelect\").value;\r\n        if (phoneNumber.startsWith(\"0\") == false) {\r\n            phoneNumber = \"0\" + phoneNumber;\r\n        }\r\n        var checkbox = document.getElementById(\"benihatirla\");\r\n        if (checkbox.checked == true) {\r\n            document.cookie = \"mobile_eimza=\"+selectedOperator + \"$\" + phoneNumber;\r\n        }\r\n        const mobileSignRequest = {\r\n            operationId: operationId,\r\n            phoneNumber: phoneNumber,\r\n            operator: selectedOperator,\r\n            signatureType: selectedSignatureType.id,\r\n            citizenshipNo: imzalayan.tc,\r\n            appid: props.eimza.appId,\r\n            eimzaId: props.eimza.id\r\n        };\r\n        document.getElementById(\"imzaspin\").hidden = false;\r\n        props.showMessage(\"İmzalama işlemi devam ediyor\");\r\n        // mobil imza işlemi yapılır\r\n        axios\r\n            .post(\"/MobileSign\", mobileSignRequest)\r\n            .then((mobileSignResponse) => {\r\n                document.getElementById(\"imzaspin\").hidden = true;\r\n                console.log(\"Sizin sunucu katmanına MobileSign isteği gönderildi.\"+ mobileSignResponse);\r\n                var mobileSignResult = mobileSignResponse.data;\r\n                isSuccess = mobileSignResult.isSuccess;\r\n                if (mobileSignResult.error) { \r\n                    props.showErrorMessage(\"İmza işlemi tamamlanamadı. \" + mobileSignResult.error);\r\n                } else {\r\n                    document.getElementById(\"imzaKapat\").hidden = false;\r\n                    document.getElementById(\"imzalabutton\").hidden = true;\r\n                    props.showSuccessMessage(\"İmzalama Başarılı\", \"Atmış olduğunuz e-imza 5070 sayılı e-imza kanunu kapsamında ıslak imza ile eşdeğerdir\");\r\n                }\r\n            })\r\n            .catch((error) => {\r\n               \r\n                props.showErrorMessage(\"MobileSign isteği gönderilemedi. \" + error);\r\n                document.getElementById(\"imzaspin\").hidden = true;\r\n            });\r\n        // mobil imza işlemi sürerken işleme ilişkin parmak izi değeri alınır\r\n        axios\r\n            .post(\"/GetFingerPrint\", { operationId: operationId })\r\n            .then((getFingerResponse) => {\r\n                console.log(\"getFingerResponse\", getFingerResponse);\r\n                fingerPrint = getFingerResponse.data.fingerPrint;\r\n            })\r\n            .catch((error) => {\r\n                console.log(\"Sizin sunucu katmanına GetFingerPrint isteği gönderilemedi. Mesaj: \" + error + \" Detaylar için console'a bakınız.\");\r\n                console.log(\"Sizin sunucu katmanına GetFingerPrint isteği gönderilemedi.\", error);\r\n            });\r\n    }\r\n\r\n    function DownloadFile() {\r\n        axios\r\n            .get(\"/Onaylarim/DownloadSignedFileFromOnaylarimApi?operationId=\" + operationId, { responseType: \"blob\" })\r\n            .then((e) => {\r\n                if (e.data.error) {\r\n                    console.log(\"Hata oluştu. \" + e.data.error);\r\n                } else {\r\n                    let filename = \"dosya.pdf\";\r\n                    const contentDisposition = e.headers[\"Content-Disposition\"];\r\n                    if (contentDisposition) {\r\n                        const match = contentDisposition.match(/filename[^;\\n]*=(UTF-\\d['\"]*)?((['\"]).*?[.]$\\2|[^;\\n]*)?/gi);\r\n                        if (match && match[1]) {\r\n                            const a1 = match[1].split(\"''\")[1];\r\n                            if (a1) {\r\n                                filename = decodeURI(a1);\r\n                            }\r\n                        }\r\n                    }\r\n                    const fileURL = window.URL.createObjectURL(new Blob([e.data]));\r\n                    const fileLink = document.createElement(\"a\");\r\n                    fileLink.href = fileURL;\r\n                    fileLink.setAttribute(\"download\", filename);\r\n                    document.body.appendChild(fileLink);\r\n                    fileLink.click();\r\n                }\r\n            })\r\n            .catch((error: AxiosError) => {\r\n                if (error.response) {\r\n                    console.log(\"Hata oluştu. \" + error.response.data);\r\n                } else {\r\n                    console.log(\"Hata oluştu. \" + error.code);\r\n                }\r\n            })\r\n            .catch((error: Error | AxiosError) => {\r\n                console.log(\"Hata oluştu. \" + error.message);\r\n            });\r\n    }\r\n    if (imzalayan == null)\r\n        return \"Imzalayan Buluanmadı\";\r\n\r\n    return <div className=\"row\">\r\n        <div className=\"col-12\">\r\n            <div class=\"text-sm text-gray-700 mt-8  mt-2\">\r\n                Operatör Seçiniz\r\n            </div>\r\n            <div class=\"flex flex-col mt-1\">\r\n                <select className=\"form-select form-select-sm  shadow-none\" id=\"operatorSelect\" defaultValue={selectedOperator.id}>\r\n                    {operators.map(opr => <option value={opr.id}>{opr.name}</option>)}\r\n                </select>\r\n                <div class=\"mt-2 max-w-sm\">\r\n                    <input type=\"text\" name=\"phoneNumber\" id=\"phoneNumber\"\r\n                        class=\"form-control form-control-sm  shadow-none\" placeholder=\"(05XX)XXXXXXX\" maxLength={11} defaultValue={phoneNumber} />\r\n                </div>\r\n                <div class=\"mt-2 max-w-sm text-secondary\">\r\n                    TC: {imzalayan.tc}\r\n                </div>\r\n\r\n                <div class=\"mt-2 max-w-sm\">\r\n                    <input class=\"form-check-input\" type=\"checkbox\" id=\"benihatirla\" onClick={() => {\r\n                        var checkbox = document.getElementById(\"benihatirla\");\r\n                        if (checkbox.checked != true) {\r\n                            document.cookie = \"mobile_eimza=; expires=Thu, 01 Jan 1970 00:00:00 UTC;\";\r\n                        }\r\n                    }\r\n                    } defaultChecked={!isEmpty(phoneNumber)} /> Beni Hatırla\r\n                </div>\r\n\r\n                <div className=\"mt-2\">\r\n                    <button onClick={() => { props.topluImzaList == null ? MobileSign() : TopluMobilSign(0) }} type=\"button\" className=\"btn btn-sm btn-primary\" id=\"imzalabutton\">\r\n                        İmzala\r\n                    </button>\r\n                    <button onClick={() => {\r\n                        if (props.topluImzaList == null)\r\n                        props.changeComponent(<Application key={props.appData.id} targetEimza={eimza} appData={props.appData} changeComponent={props.changeComponent} backButton={<ApplicationList changeComponent={props.changeComponent} />} />)\r\n                        else\r\n                        window.close();\r\n                    }}\r\n                        type=\"button\" className=\"btn btn-sm btn-warning border  ms-2\" > İptal </button>\r\n                </div >\r\n            </div >\r\n        </div >\r\n    </div >\r\n\r\n\r\n}","import axios from \"axios\";\r\n\r\n\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useGlobalState, isEmpty, showErrorMessage, showSuccessMessage, showConfirmMessage, setVisible } from '../GlobalState.js';\r\nimport background from \"../Dashboard/loading.gif\";\r\nimport Application from \"../Application/Application.js\";\r\nimport ApplicationList from \"../Application/ApplicationList.js\";\r\nimport EimzaOnaylarimMobil from \"./EimzaOnaylarimMobil.js\";\r\n\r\n\r\nexport default function EimzaOnaylarim(props) {\r\n    const [userData, setuserData] = useGlobalState('userData');\r\n    var eimza = props.eimza;\r\n    var imzalayan = props.imzalayan != null ? props.imzalayan : userData;\r\n    var topluImzaList = props.topluImzaList;\r\n    var page = 0;\r\n    const colors = { grey: \"#f3f2f7\", green: \"#106485\" }\r\n    var fullsize = { Width: \"100%\", Height: \"100%\", objectFit: \"contain\" }\r\n    var fitsize = { maxWidth: \"100%\", maxHeight: \"100%\", objectFit: \"contain\" }\r\n\r\n    const [selectedSertificate, setSelectedSertificate] = useState(0);\r\n    // var appDownloadURL = '/getfile?sec=onaylarim.msi';\r\n\r\n    var appDownloadURL = '';\r\n    var appDownloadURLMAC = '';\r\n    var workingUrl = \"\";\r\n    const [localURL, setloaclURL] = useState(\"\");\r\n    const [scale, setScale] = useState(fitsize);\r\n\r\n\r\n    const [certificates, setCertificates] = useState([]);\r\n\r\n\r\n    //  const API_URL= \"https://primeapicustomerapi.onaylarim.com\"\r\n\r\n    const errormsg1 = \"Bir hata oluştu. Lütfen “Uygulamayı Aç” butonuna basın ve imzayı atana kadar açılan UYGULAMAYI KAPATMAYIN.\"\r\n    const errormsg2 = \"İmza atabilmek için Onaylarım İmza Uygulamasının bilgisayarınızda kurulu olması gerekmektedir. <br/>\" +\r\n        \"Eğer uygulama kurulu ise; Aşağıdaki “Uygulamayı Aç” butonuna basın ve imzayı atana kadar açılan UYGULAMAYI KAPATMAYIN. <br/>\"\r\n\r\n\r\n    // onaylarim API'den alınan, e-imza aracının güncel versiyon bilgisi. bu bilgi ile kullanıcı bilgisayarında kurulu olan e-imza aracı sürümü karşılaştırılır, kullanıcıdaki sürüm eski ise uyarı verilir\r\n    var getSignerAppVersionsResult = {}\r\n    // e-imza aracına yapılan RESET adlı GET request'i sonrasında dönen değer\r\n    var signerAppResetResult = {}\r\n    // primeAPI'de kullanılacak tekil operasyon numarası\r\n    var operationId = \"\";\r\n    var refreshTimer = null;\r\n    var refreshCount = 0;\r\n    // imza türleri\r\n    const signatureTypes = [\r\n        { id: \"pades\", title: \"Pades\" },\r\n        { id: \"cades\", title: \"Cades\" },\r\n    ];\r\n    // kullanıcının seçtiği imza türü\r\n    const selectedSignatureType = signatureTypes[0];//we dont use this. we use the imzaType fild from database.\r\n\r\n    var [guncelnecekEimza, setGuncelnecekEimza] = useState(null);\r\n\r\n    useEffect(() => {\r\n        // sayfa ilk yüklendiğinde onaylarim API'den e-imza aracının güncel versiyon bilgisi alınır\r\n        document.getElementById(\"activepaneldiv\").scrollTo(0, 0)\r\n        GetSignerAppVersions();\r\n    }, [])\r\n\r\n\r\n    if (certificates.length > 0 && certificates[selectedSertificate].isFinancialSeal == true) {\r\n        var errorbox = document.getElementById(\"errormessage\");\r\n        if (errorbox) {\r\n            var s = '<div class=\"alert alert-danger fw-bold m-0 p-1 small\" > MALİ MÜHÜR ile İMZA ATILAMAZ.  </div>'\r\n            s += '<div class=\"text-dark p-2 rounded-2 small\" style=\"background-color:#fef2f2\"> Bilgisayarda takılı sertifika, bir mali mühüre aittir.  </div >'\r\n            errorbox.innerHTML = s\r\n        }\r\n    }\r\n    else {\r\n        var errorbox = document.getElementById(\"errormessage\");\r\n        if (errorbox != null && errorbox.innerHTML.includes(\"MALİ MÜHÜR\")) {\r\n            errorbox.innerHTML = \"\";\r\n        }\r\n    }\r\n\r\n    const showErrorpic = (pic) => {\r\n        document.getElementById(\"eimzaerror1\").hidden = true;\r\n        document.getElementById(\"eimzaerror2\").hidden = true;\r\n        document.getElementById(\"eimzaerror3\").hidden = true;\r\n        document.getElementById(\"eimzaerror4\").hidden = true;\r\n\r\n\r\n        var errorpic = document.getElementById(pic);\r\n        if (errorpic) {\r\n            errorpic.hidden = false;\r\n        }\r\n    }\r\n\r\n\r\n\r\n    const programYok = (title, msg) => {\r\n        var errorbox = document.getElementById(\"errormessage\");\r\n\r\n        /* showErrorpic(\"eimzaerror1\");*/\r\n\r\n        if (errorbox) {\r\n            var s = '<div class=\"alert alert-danger fw-bold m-0 p-1 small\" > E - imza Programı Bulunamadı </div>'\r\n            s += '<div class=\"text-dark p-2 rounded-2 small\" style=\"background-color:#fef2f2\">İmza atabilmek için e-imza programının bilgisayarınızda kurulu ve çalışır vaziyette olması gerekmektedir.</div> <div><div class=\"border shadow-sm rounded-2 m-1 p-2  small\" > <div class=\"fw-bold\">E-imza Programını Aç </div><div> E-imza programını bilgisayarınıza daha önce kurduysanız \\\"Aç\\\" butonu kullanarak programı açın ve alttaki \\\"Sertifikaları Listele\\\" butonuna basın. </div><div class=\"text-start\"> <a href=\"onaylarimsignerapp:\\\"start\\\"\" type=\"button\" class=\"btn btn-sm btn-outline text-primary fw-bold \" style=\"background-color:#dbeaff\"> <i class=\"fa fa-tv\"></i>  Aç </a></div> </div >'\r\n            s += '<div class=\"border shadow-sm rounded-2 m-1 p-2 mt-2  small\" > <div class=\"fw-bold\"> E-imza Programını İndir </div>  <div > E-imza programı bilgisayarınızda kurulu değilse, aşağıdaki butonlardan uygun olanı kullanarak indirip kurabilirsiniz.  Lütfen kurulumu tamamladıktan sonra aşağıdaki yenile butonuna basınız. </div>'\r\n            s += '<a href=\"' + appDownloadURL + '\" class=\"mt-1 btn btn-sm btn-outline text-primary fw-bold \" style=\"background-color: #dbeaff\"> <i class=\"fa fa-windows\"></i> İndir Windows</a>'\r\n            s += ' <a href=\"' + appDownloadURLMAC + '\" class=\"mt-1 btn btn-sm  btn-outline text-primary fw-bold \" style=\"background-color: #dbeaff\"> <i class=\"fa fa-apple\"></i> İndir macOS </a>'\r\n            errorbox.innerHTML = s + \"</div> </div > </div >\"\r\n        }\r\n    }\r\n\r\n\r\n    const takiliEimzaYok = () => {\r\n        var errorbox = document.getElementById(\"errormessage\");\r\n        //showErrorpic(\"eimzaerror2\");\r\n        if (errorbox) {\r\n            var s = '<div class=\"alert alert-warning fw-bold small m-0 p-1\" > Bilgisayara Takılı E - imza Bulunamadı. </div>'\r\n            s += '<span class=\"text-dark\"> Lütfen aşağıdakileri sırasıyla deneyiniz </span>';\r\n            s += '<ol class=\"list-group list-group-flush list-group-numbered small\">';\r\n            s += '<li class=\"list-group-item p-0\"> E-imzanızı bilgisayarınıza takınız. </li>'\r\n            s += '<li class=\"list-group-item p-0\"> www.turkiye.gov.tr adresine girerek aşağıdaki resimde gösterildiği gibi e-devlet’e \"Elektronik İmza\" ile giriş yapmayı deneyiniz. E-devlet’e de elektronik imza ile giriş yapamıyorsanız lütfen e-imzanızı tedarik ettiğiniz firmadan destek alın.</li>'\r\n            s += '<li class=\"list-group-item p-0\"> E-Devlete elektronik imzanız ile girebiliyorsanız, imzanızı bilgisayarınızdan çıkartıp tekrar takmayı deneyebilirsiniz.</li>'\r\n            s += '<li class=\"list-group-item p-0\"> Sim kartınızı, kart okuyucudan çıkarıp tekrar taktıktan sonra deneyiniz.</li>'\r\n            s += '<li class=\"list-group-item p-0\"> Yukarıdaki işlemleri yaptıktan sonra aşağıdaki yenile düğmesine basabilirsiniz.</li>'\r\n            s += '</ol>'\r\n            errorbox.innerHTML = s;\r\n            setVisible(\"edeveletimage\", true);\r\n        }\r\n    }\r\n    const programGunceldegil = () => {\r\n        var errorbox = document.getElementById(\"errormessage\");\r\n        if (errorbox) {\r\n            var s = '<div class=\"alert alert-warning fw-bold small m-0 p-1\" > \"E-imza Programı Güncel Değil. </div>'\r\n            s += '<div class=\"text-dark\">Güncel versiyonu indirmek için aşağıdaki butonu kullanabilirsiniz. <br/>Not: E-imza programınızın güncel olması tavsiye edilir.Ancak güncel olmadan da imza atabilirsiniz. </div>';\r\n            s += '<a href=\"' + appDownloadURL + '\" class=\"btn btn-sm btn-outline text-primary fw-bold \" style=\"backgroundColor: \\'#dbeaff\\'\"> <i class=\"fa fa-windows\"></i> İndir Windows</a>';\r\n            errorbox.innerHTML = s + '<a href=\"' + appDownloadURLMAC + '\" class=\"float-end ms-1 btn btn-sm  btn-outline text-primary fw-bold \" style=\"backgroundColor: \\'#dbeaff\\'\"  > <i class=\"fa fa-apple\"></i> İndir macOS </a>'\r\n        }\r\n    }\r\n\r\n\r\n\r\n    const showImzayaHzair = (title, msg) => {\r\n        var errorbox = document.getElementById(\"errormessage\");\r\n        if (errorbox) {\r\n            errorbox.innerHTML = '<div class=\"alert alert-success fw-bold small m-0 p-1\" > İmza Atmaya Hazırsınız. </div>'\r\n            errorbox.innerHTML += '<span class=\"text-success\">PIN girip imzala butonuna basarak aşağıdaki sertifika ile belgeyi imzalayabilirsiniz.<br/>Atacağınız e-imza, elle atılan ıslak imzalar ile aynı hukuki geçerliliğe sahiptir.</span>'\r\n        }\r\n    }\r\n\r\n\r\n\r\n    const showWarningMessage = (title, msg) => {\r\n        var errorbox = document.getElementById(\"errormessage\");\r\n        if (errorbox) {\r\n            errorbox.innerHTML = '<div class=\"alert alert-warning fw-bold small m-0 p-1\" >' + title + '</div>'\r\n            errorbox.innerHTML += '<span class=\"text-dark\">' + msg + '</span>'\r\n        }\r\n    }\r\n\r\n\r\n    const showSuccessMessage = (title, msg) => {\r\n        var errorbox = document.getElementById(\"errormessage\");\r\n        if (errorbox) {\r\n            errorbox.innerHTML = '<div class=\"alert alert-success fw-bold small m-0 p-1\" >' + title + '</div>'\r\n            errorbox.innerHTML += '<span class=\"text-success\">' + msg + '</span>'\r\n        }\r\n    }\r\n    const showErrorMessage = (title, msg) => {\r\n        var errorbox = document.getElementById(\"errormessage\");\r\n        if (errorbox) {\r\n            errorbox.innerHTML = '<div class=\"alert alert-danger fw-bold m-0 p-1 small\" >' + title + '</div>'\r\n            if (isEmpty(msg) == false)\r\n                errorbox.innerHTML += '<div class=\"text-dark p-2 rounded-2 small\" style=\"background-color:#fef2f2\">' + msg + '</div>'\r\n        }\r\n    }\r\n    const showMessage = (msg) => {\r\n        var errorbox = document.getElementById(\"errormessage\");\r\n        if (errorbox) {\r\n            errorbox.innerHTML = msg\r\n        }\r\n    }\r\n\r\n\r\n\r\n    const disableImzabutton = () => {\r\n\r\n        if (certificates.length == 0 || certificates.find(x => x.citizenshipNo == imzalayan.tc) == null)\r\n            return true;\r\n        if (certificates.length > 0 && certificates[selectedSertificate].isFinancialSeal == true)\r\n            return true;\r\n        return false;\r\n    }\r\n    const checkTC = (sertlist) => {\r\n        if (imzalayan == null) {\r\n            showWarningMessage(\"Imzalayan TC Numarası Bulunamadı\");\r\n            return false;\r\n        }\r\n        if (sertlist.length > 0 && sertlist.find(x => x.citizenshipNo == imzalayan.tc) != null)\r\n            return true;\r\n\r\n        var list = \"<ol>\";\r\n        sertlist.forEach(x => {\r\n            list += \"<li>\"\r\n            if (x.citizenshipNo.length > 10)\r\n                list += \"Elektronik İmza :\" + x.citizenshipNo\r\n            else\r\n                list += \"Mali Mühür :\" + x.citizenshipNo\r\n            list += \"</li>\"\r\n        })\r\n\r\n        showWarningMessage(\"Farklı Bir Sertifika Algılandı\", imzalayan.tc + \" TC kimlik numaralı kişinin imza atması beklenmekteyken bilgisayarda aşağıdaki elektronik imza veya mali mühürler tespit edildi:\" + list)\r\n        return false;\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    // kullanıcı AÇ butonuna bastığında e-imza aracı açılır\r\n    const OpenSignerApp = () => {\r\n        try {\r\n            window.location.href = 'onaylarimsignerapp:\"start\"';\r\n\r\n        } catch (err) {\r\n            showErrorMessage(\"open signer app error.\", err);\r\n        }\r\n    }\r\n\r\n    async function LocalSignerPing(useHttps: boolean, useLocalhost: boolean): Promise<boolean> {\r\n        const url = (useHttps ? 'https' : 'http') + (useLocalhost ? \"://localhost:8099/ping\" : \"://localsigner.onaylarim.com:8099/ping\");\r\n\r\n        console.log(\"e-İmza aracına \" + (useHttps ? 'SSL' : 'HTTP') + \" PING isteği gönderiliyor. Url: \" + url);\r\n        try {\r\n\r\n            const axiosResponse = await axios.get(url, { timeout: 500 });\r\n            console.log(\"e-İmza aracına \" + (useHttps ? 'SSL' : 'HTTP') + \" PING isteğ sonucu.\", axiosResponse);\r\n            const signerAppPingResult = axiosResponse.data;\r\n            if (signerAppPingResult.error === undefined || signerAppPingResult.error === null || signerAppPingResult.error.length === 0) {\r\n                return true;\r\n            }\r\n            return false;\r\n        } catch (error) {\r\n            console.log(\"e-İmza aracına \" + (useHttps ? 'SSL' : 'HTTP') + \" PING isteği gönderilemedi.\", error);\r\n            showErrorMessage(\"e-İmza aracına \" + (useHttps ? 'SSL' : 'HTTP') + \" PING isteği gönderilemedi.\", error);\r\n            return false;\r\n        }\r\n    }\r\n\r\n    async function TryToConnect() {\r\n        try {\r\n            const httpsTryIsOk = await LocalSignerPing(true, false);\r\n            if (httpsTryIsOk) {\r\n\r\n                workingUrl = \"https://localsigner.onaylarim.com:8099\"\r\n\r\n                // bilgisayarda e-imza aracı var, çalışıyor durumda ve https bağlantı yapılabildi\r\n                LocalSignerReset();\r\n            }\r\n            else {\r\n                // bilgisayarda e-imza aracı var, çalışmıyor\r\n                // bilgisayarda e-imza aracı var, çalışıyor ancak https bağlantı yapılamadı\r\n                const httpTryIsOk = await LocalSignerPing(false, false);\r\n                if (httpTryIsOk) {\r\n                    workingUrl = \"http://localsigner.onaylarim.com:8099\"\r\n                    // bilgisayarda e-imza aracı var, çalışıyor durumda ve http bağlantı yapılabildi\r\n                    LocalSignerReset();\r\n                }\r\n                else {\r\n                    // bilgisayarda e-imza aracı var, çalışmıyor\r\n                    // bilgisayarda e-imza aracı var, çalışıyor ancak http bağlantı yapılamadı\r\n\r\n                    const httpTryWithLocalhostIsOk = await LocalSignerPing(false, true);\r\n                    if (httpTryWithLocalhostIsOk) {\r\n                        workingUrl = \"http://localhost:8099\"\r\n\r\n                        LocalSignerReset();\r\n                    }\r\n                    else {\r\n                        programYok();\r\n                    }\r\n\r\n                }\r\n            }\r\n        }\r\n        catch (error) {\r\n            console.log(error);\r\n            showErrorMessage(\"Try To Connect\", error)\r\n        }\r\n\r\n    }\r\n\r\n\r\n\r\n    // onaylarim API'den e-imza aracının güncel versiyon bilgisini alır\r\n    const GetSignerAppVersions = () => {\r\n        // CORS hatası alacaktır. Ancak demo uygulamanın çalışmasına engel bir durum değildir.\r\n        // ONAYLARIM on-Prem kurulduğunda, client uygulamadan gelen requestlere izin verilecek şekilde CORS ayarı yapılacaktır.\r\n        // ONAYLARIM SaaS kullanıldığında, client uygulamadan gelen requestlere izin verilecek şekilde CORS ayarı yapılacaktır.\r\n\r\n        console.log(\"e-İmza aracı son sürümü alınıyor.\");\r\n\r\n        axios\r\n            .get(\"https://api.onaylarim.com/sign/GetSignerAppVersions\")\r\n            .then((result) => {\r\n                if (result.data.error) {\r\n                    console.log(\"Uygulama güncel sürümü alınırken hata oluştu.\", result);\r\n                } else {\r\n                    getSignerAppVersionsResult = result.data.result;\r\n                    console.log(\"Uygulama güncel sürümü.\", getSignerAppVersionsResult);\r\n                    appDownloadURL = getSignerAppVersionsResult.signerAppWindowsUrl;\r\n                    appDownloadURLMAC = getSignerAppVersionsResult.signerAppMacUrl;\r\n                    //   LocalSignerReset();\r\n                    TryToConnect();\r\n\r\n                }\r\n            })\r\n            .catch(async (error) => {\r\n                showErrorMessage(\"Uygulama güncel sürümü alınırken hata oluştu. \", error);\r\n            });\r\n    }\r\n\r\n    // e-İmza aracına bağlanıp varsa takılı sertifikalar alınır\r\n    const LocalSignerReset = () => {\r\n        signerAppResetResult = null;\r\n        operationId = \"\";\r\n        setSelectedSertificate(0);\r\n        setCertificates([]);\r\n\r\n        setVisible(\"edeveletimage\", false);\r\n        if (refreshCount > 20 && refreshTimer != null) {\r\n            refreshCount = 0;\r\n            clearInterval(refreshTimer);\r\n            refreshTimer = null;\r\n            return;\r\n        }\r\n        // reset fonkisyonu ile e-İmza aracına bağlanıp varsa takılı sertifikalar alınır. e-imza aracı reset fonksiyonu ile takılı sertifiları baştan aramaya başlar.\r\n        console.log(\"e-İmza aracına RESET isteği gönderiliyor.\");\r\n\r\n        axios\r\n            //.get(\"https://localsigner.onaylarim.com:8099/reset\")\r\n            .get(workingUrl + \"/reset?mm\")\r\n            .then((result) => {\r\n\r\n                console.log(\"e-İmza aracına RESET isteğ sonucu.\", result);\r\n                signerAppResetResult = result.data;\r\n                // signerAppStatus açıklamaları definition'da bulunabilir\r\n                if (signerAppResetResult.signerAppStatus === 1) {\r\n                    // e-imza aracı sertifikaları bulmaya çalışıyorsa arka arkaya en fazla 10 kere olacak şekilde tekrardan e-imza aracı durumu sorgulanır. reset fonksiyonundan farklı olarak takılı sertifikalar baştan aranmaz, sadece e-imza aracı durumunu döner\r\n                    let counter = 0;\r\n                    while (counter < 10) {\r\n                        axios.get(workingUrl + \"/ping\").then((result) => {\r\n                            const signerAppPingResult = result.data;\r\n                            // GettingSmartCards dışında bir değer dönerse while loop sonlandırılır\r\n                            if (signerAppPingResult.signerAppStatus !== 1) {\r\n                                counter = 10;\r\n                            }\r\n                        });\r\n                        counter++;\r\n                    }\r\n                }\r\n                let desiredVersion = 0;\r\n                if (signerAppResetResult.signerAppPlatform === \"windows\") {\r\n                    // e-imza aracı Windows sürümü ise, yani son kullanıcı bilgisayarı Windows ise, olması gereken sürüm olarak OnaylarimAPI'den alınan Windows için son sürüm numarası set edilir\r\n                    desiredVersion = getSignerAppVersionsResult.signerAppWindowsVersion;\r\n                } else if (signerAppResetResult.signerAppPlatform === \"macos\") {\r\n                    // e-imza aracı MacOS sürümü ise, yani son kullanıcı bilgisayarı MacOS ise, olması gereken sürüm olarak OnaylarimAPI'den alınan MacOS için son sürüm numarası set edilir\r\n                    desiredVersion = getSignerAppVersionsResult.signerAppMacVersion;\r\n                } else if (signerAppResetResult.signerAppPlatform === \"linux\") {\r\n                    // e-imza aracı Linux sürümü ise, yani son kullanıcı bilgisayarı Linux ise, olması gereken sürüm olarak OnaylarimAPI'den alınan Linux için son sürüm numarası set edilir\r\n                    desiredVersion = getSignerAppVersionsResult.signerAppMacVersion;\r\n                } else if (signerAppResetResult.signerAppPlatform === \"freebsd\") {\r\n                    // e-imza aracı freebsd sürümü ise, yani son kullanıcı bilgisayarı freebsd ise, olması gereken sürüm olarak OnaylarimAPI'den alınan freebsd için son sürüm numarası set edilir\r\n                    desiredVersion = getSignerAppVersionsResult.signerAppMacVersion;\r\n                }\r\n                // kullanıcı bilgisayarında en az bir tane sertifika bulundu ise seçili sertifika olarak atanır\r\n                if (signerAppResetResult.certificates !== undefined && signerAppResetResult.certificates !== null && signerAppResetResult.certificates.length > 0) {\r\n\r\n                    if (checkTC(signerAppResetResult.certificates)) {\r\n                        if (signerAppResetResult.signerAppDllVersion == desiredVersion)\r\n                            showImzayaHzair();\r\n                        else\r\n                            programGunceldegil();\r\n\r\n                    }\r\n                    setloaclURL(workingUrl)\r\n                    setCertificates(signerAppResetResult.certificates);\r\n                }\r\n                else {\r\n                    takiliEimzaYok();\r\n                }\r\n                return;\r\n            })\r\n            .catch((error) => {\r\n                //  showErrorMessage(\"e-İmza aracına RESET isteği gönderilemedi.\", error);\r\n                //programYok();\r\n                console.log(error);\r\n                programGunceldegil();\r\n                setCertificates([]);\r\n\r\n            })\r\n            .finally(() => {\r\n                console.log(\"e-İmza aracı durumu: \");\r\n                var s = document.getElementById(\"sertspin\");\r\n                if (s)\r\n                    s.classList.remove(\"fa-spin\");\r\n            });\r\n    }\r\n\r\n\r\n    const Sign = () => {\r\n        if (certificates.length == 0) {\r\n            showErrorMessage(\"Sertifika Bulunamadı\");\r\n            return;\r\n        }\r\n        var pin = document.getElementById(\"pin\").value;\r\n        if (isEmpty(pin)) {\r\n            showErrorMessage(\"E-İmza Şifrenizi Giriniz\");\r\n            return;\r\n\r\n        }\r\n        var certificate = certificates[selectedSertificate];\r\n\r\n        if (certificate.citizenshipNo != imzalayan.tc) {\r\n            showErrorMessage(imzalayan.tc + \" TC kimlik numaralı kişinin imza atması beklenmekteyken \" + certificate.citizenshipNo + \" numaralı kimlik ile işlem yapılmak istendiği için imza atılamadı.\");\r\n            return;\r\n        }\r\n\r\n        operationId = \"\";\r\n        const createStateOnOnaylarimApiRequest = {\r\n            certificate: certificate.data,\r\n            signatureType: selectedSignatureType.id,\r\n            appid: props.eimza.appId,\r\n            eimzaId: props.eimza.id,\r\n            tc: imzalayan.tc,\r\n            imzalayanId: imzalayan.id,\r\n            validTo: certificate.validTo\r\n        };\r\n\r\n        showMessage(\"İmzalama işlemi başlatıldı\");\r\n        document.getElementById(\"imzaspin\").hidden = false;\r\n\r\n        axios\r\n            .post(\"CreateStateOnOnaylarimApi\", createStateOnOnaylarimApiRequest)\r\n            .then((createStateOnOnaylarimApiResponse) => {\r\n\r\n                showMessage(\"İmza sunucusu isteği kabul etti\");\r\n                console.log(\"sunucu katmanına CreateState isteği gönderildi.\", createStateOnOnaylarimApiResponse);\r\n                const config = {\r\n                    headers: {\r\n                        \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n                    },\r\n                };\r\n                const createStateOnOnaylarimApiResult = createStateOnOnaylarimApiResponse.data;\r\n                console.log(\"createStateOnOnaylarimApiResult\", createStateOnOnaylarimApiResult);\r\n                if (isEmpty(createStateOnOnaylarimApiResult.error) == false) {\r\n                    if (createStateOnOnaylarimApiResult.error.includes(\"bozuk\")) {\r\n                        showErrorMessage(createStateOnOnaylarimApiResult.error, \" Bu sorunun çözümü için aşağıdaki yöntemlerden birini deneyebilirsiniz<br/>* PDF dosyasını tarayıcıda(chrome, vb) açarak “yazdır” menusunde hedef / yazıcı seçim bölümünde “PDF olarak kaydet” yapabilir<br/> * PDF dosyasını Adobe programı ile açarak farklı kaydet yapabilir<br/> * Dosyanızın orjinal halini farklı bir program vasıtasıyla PDF'e çevirmeyi deneyebilirsiniz\");\r\n                    }\r\n                    else showErrorMessage(createStateOnOnaylarimApiResult.error)\r\n                    document.getElementById(\"imzaspin\").hidden = true;\r\n                    return;\r\n                }\r\n\r\n                const signStepTwoRequest = {\r\n                    keyId: createStateOnOnaylarimApiResult.keyID,\r\n                    keySecret: createStateOnOnaylarimApiResult.keySecret,\r\n                    state: createStateOnOnaylarimApiResult.state,\r\n                    pkcsLibrary: certificate.pkcsLibrary,\r\n                    slot: certificate.slot,\r\n                    pin: pin,\r\n                };\r\n                // e-imza aracına e-imza atması için istekte bulunulur. Kartta bulunan sertifika ile imzalama işlemi bu adımda yapılır.\r\n                console.log(\"e-İmza aracına SIGNSTEPTWO isteği gönderiliyor.\");\r\n                showMessage(\"İmzalanacak dosya gönderiliyor\");\r\n                axios\r\n                    .post(localURL + \"/signStepTwo\", JSON.stringify(signStepTwoRequest), config)\r\n                    .then((signStepTwoResponse) => {\r\n                        const signStepTwoResult = signStepTwoResponse.data;\r\n                        if (signStepTwoResult.error !== undefined && signStepTwoResult.error !== null) {\r\n                            console.log(\"e-İmza aracına SIGNSTEPTWO isteği sonucu.\", signStepTwoResult);\r\n                            showErrorMessage(signStepTwoResult.error, \"\");\r\n                            document.getElementById(\"imzaspin\").hidden = true;\r\n\r\n                        } else {\r\n                            console.log(\"e-İmza aracına SIGNSTEPTWO isteği başarıyla tamamlandı.\");\r\n                            showMessage(\"Sunucuda imzalama işlemi yapılıyor\");\r\n                            // e-imza son adım çalıştırılır. 2. adımda imzalanan veri API'ye gönderilir\r\n                            const finishSignRequest = {\r\n                                keyId: createStateOnOnaylarimApiResult.keyID,\r\n                                keySecret: createStateOnOnaylarimApiResult.keySecret,\r\n                                signedData: signStepTwoResult.signedData,\r\n                                operationId: createStateOnOnaylarimApiResult.operationId,\r\n                                signatureType: selectedSignatureType.id,\r\n                            };\r\n                            console.log(\"Sizin sunucu katmanına FinishSign isteği gönderiliyor.\");\r\n                            showMessage(\"Zaman damgası basılıyor\");\r\n                            axios\r\n                                .post(\"FinishSign\", finishSignRequest)\r\n                                .then((finishSignResponse) => {\r\n                                    document.getElementById(\"imzaspin\").hidden = true;\r\n                                    console.log(\"Sizin sunucu katmanına FinishSign isteği gönderildi.\", createStateOnOnaylarimApiResponse);\r\n                                    showMessage(\"Sunucudan imzalı dosya alınıyor\");\r\n                                    const finishSignResult = finishSignResponse.data;\r\n                                    if (finishSignResult.isSuccess) {\r\n                                        console.log(\"Sizin sunucu katmanına FinishSign istiği sonucu: İşlem başarılı.\");\r\n                                        operationId = createStateOnOnaylarimApiResult.operationId;\r\n                                        showSuccessMessage(\"İmzalama işlemi başarıyla tamamlandı\", \"Atmış olduğunuz e-imza 5070 sayılı e-imza kanunu kapsamında ıslak imza ile eşdeğerdir\");\r\n                                        document.getElementById(\"imzaKapat\").hidden = false;\r\n                                        document.getElementById(\"imazpanel\").hidden = true;\r\n\r\n\r\n                                    } else {\r\n                                        console.log(\"Sizin sunucu katmanına FinishSign istiği sonucu: İşlem başarısız.\");\r\n                                        showMessage(\"İşlem başarısız. \" + finishSignResult.error);\r\n\r\n                                    }\r\n                                })\r\n                                .catch((error) => {\r\n                                    console.log(\"FinishSign isteği gönderilemedi.\", error);\r\n                                    showErrorMessage(\"FinishSign isteği gönderilemedi\", error)\r\n                                    // showErrorMessage(errormsg1 + \"  FinishSign isteği gönderilemedi.\");\r\n                                    document.getElementById(\"imzaspin\").hidden = true;\r\n                                });\r\n                        }\r\n                    })\r\n                    .catch((error) => {\r\n                        console.log(\"e-İmza aracına SIGNSTEPTWO isteği gönderilemedi.\", error);\r\n                        showErrorMessage(\"SIGNSTEPTWO isteği gönderilemedi\", error)\r\n                        // showErrorMessage(errormsg1 + \"  e-İmza aracına SIGNSTEPTWO isteği gönderilemedi.\");\r\n                        document.getElementById(\"imzaspin\").hidden = true;\r\n\r\n                    });\r\n            })\r\n            .catch((error) => {\r\n                console.log(\"Sizin sunucu katmanına CreateStateOnOnaylarimApi isteği gönderilemedi.\", error);\r\n                showErrorMessage(\"CreateStateOnOnaylarimApi isteği gönderilemedi\", error)\r\n                // showErrorMessage(errormsg1 + \"  CreateStateOnOnaylarimApi isteği gönderilemedi\");\r\n                document.getElementById(\"imzaspin\").hidden = true;\r\n            });\r\n\r\n    }\r\n\r\n    const TopluSign = (idx) => {\r\n\r\n        if (topluImzaList == null || idx > topluImzaList.length)\r\n            return;\r\n        if (certificates.length == 0) {\r\n            showErrorMessage(\"Sertifika Bulunamadı\");\r\n            return;\r\n        }\r\n        var pin = document.getElementById(\"pin\").value;\r\n        if (isEmpty(pin)) {\r\n            showErrorMessage(\"E-İmza Şifrenizi Giriniz\");\r\n            return;\r\n\r\n        }\r\n        var certificate = certificates[selectedSertificate];\r\n\r\n        if (certificate.citizenshipNo != imzalayan.tc) {\r\n            showErrorMessage(imzalayan.tc + \" TC kimlik numaralı kişinin imza atması beklenmekteyken \" + certificate.citizenshipNo + \" numaralı kimlik ile işlem yapılmak istendiği için imza atılamadı.\");\r\n            return;\r\n        }\r\n\r\n        operationId = \"\";\r\n        var eimza = topluImzaList[idx]\r\n        const createStateOnOnaylarimApiRequest = {\r\n            certificate: certificate.data,\r\n            signatureType: selectedSignatureType.id,\r\n            appid: eimza.id,\r\n            eimzaId: eimza.imzaid,\r\n            tc: imzalayan.tc,\r\n            imzalayanId: eimza.imza.userFileId,\r\n            validTo: certificate.validTo\r\n        };\r\n\r\n        showMessage(\"İmzalama işlemi başlatıldı\");\r\n        document.getElementById(\"imzaspin\").hidden = false;\r\n        var progress = document.getElementById(\"progress\" + idx);\r\n        progress.style.width = \"5%\";\r\n        progress.innerHTML = \"5%\"\r\n        axios\r\n            .post(\"CreateStateOnOnaylarimApi\", createStateOnOnaylarimApiRequest)\r\n            .then((createStateOnOnaylarimApiResponse) => {\r\n\r\n                showMessage(\"İmza sunucusu isteği kabul etti\");\r\n                console.log(\"sunucu katmanına CreateState isteği gönderildi.\", createStateOnOnaylarimApiResponse);\r\n                const config = {\r\n                    headers: {\r\n                        \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n                    },\r\n                };\r\n                const createStateOnOnaylarimApiResult = createStateOnOnaylarimApiResponse.data;\r\n                console.log(\"createStateOnOnaylarimApiResult\", createStateOnOnaylarimApiResult);\r\n                if (isEmpty(createStateOnOnaylarimApiResult.error) == false) {\r\n                    if (createStateOnOnaylarimApiResult.error.includes(\"bozuk\")) {\r\n                        showErrorMessage(createStateOnOnaylarimApiResult.error, \" Bu sorunun çözümü için aşağıdaki yöntemlerden birini deneyebilirsiniz<br/>* PDF dosyasını tarayıcıda(chrome, vb) açarak “yazdır” menusunde hedef / yazıcı seçim bölümünde “PDF olarak kaydet” yapabilir<br/> * PDF dosyasını Adobe programı ile açarak farklı kaydet yapabilir<br/> * Dosyanızın orjinal halini farklı bir program vasıtasıyla PDF'e çevirmeyi deneyebilirsiniz\");\r\n                    }\r\n                    else showErrorMessage(createStateOnOnaylarimApiResult.error)\r\n                    document.getElementById(\"imzaspin\").hidden = true;\r\n                    return;\r\n                }\r\n\r\n                const signStepTwoRequest = {\r\n                    keyId: createStateOnOnaylarimApiResult.keyID,\r\n                    keySecret: createStateOnOnaylarimApiResult.keySecret,\r\n                    state: createStateOnOnaylarimApiResult.state,\r\n                    pkcsLibrary: certificate.pkcsLibrary,\r\n                    slot: certificate.slot,\r\n                    pin: pin,\r\n                };\r\n                // e-imza aracına e-imza atması için istekte bulunulur. Kartta bulunan sertifika ile imzalama işlemi bu adımda yapılır.\r\n                console.log(\"e-İmza aracına SIGNSTEPTWO isteği gönderiliyor.\");\r\n                showMessage(\"İmzalanacak dosya gönderiliyor\");\r\n                progress.style.width = \"40%\";\r\n                progress.innerHTML = \"40%\"\r\n                axios\r\n                    .post(localURL + \"/signStepTwo\", JSON.stringify(signStepTwoRequest), config)\r\n                    .then((signStepTwoResponse) => {\r\n                        const signStepTwoResult = signStepTwoResponse.data;\r\n                        if (signStepTwoResult.error !== undefined && signStepTwoResult.error !== null) {\r\n                            console.log(\"e-İmza aracına SIGNSTEPTWO isteği sonucu.\", signStepTwoResult);\r\n                            showErrorMessage(signStepTwoResult.error, \"\");\r\n                            document.getElementById(\"imzaspin\").hidden = true;\r\n\r\n                        } else {\r\n                            console.log(\"e-İmza aracına SIGNSTEPTWO isteği başarıyla tamamlandı.\");\r\n                            showMessage(\"Sunucuda imzalama işlemi yapılıyor\");\r\n                            // e-imza son adım çalıştırılır. 2. adımda imzalanan veri API'ye gönderilir\r\n                            const finishSignRequest = {\r\n                                keyId: createStateOnOnaylarimApiResult.keyID,\r\n                                keySecret: createStateOnOnaylarimApiResult.keySecret,\r\n                                signedData: signStepTwoResult.signedData,\r\n                                operationId: createStateOnOnaylarimApiResult.operationId,\r\n                                signatureType: selectedSignatureType.id,\r\n                            };\r\n                            console.log(\"Sizin sunucu katmanına FinishSign isteği gönderiliyor.\");\r\n                            showMessage(\"Zaman damgası basılıyor\");\r\n                            progress.style.width = \"70%\";\r\n                            progress.innerHTML = \"70%\"\r\n                            axios\r\n                                .post(\"FinishSign\", finishSignRequest)\r\n                                .then((finishSignResponse) => {\r\n                                    document.getElementById(\"imzaspin\").hidden = true;\r\n                                    console.log(\"Sizin sunucu katmanına FinishSign isteği gönderildi.\", createStateOnOnaylarimApiResponse);\r\n                                    showMessage(\"Sunucudan imzalı dosya alınıyor\");\r\n                                    const finishSignResult = finishSignResponse.data;\r\n                                    if (finishSignResult.isSuccess) {\r\n                                        progress.style.width = \"100%\";\r\n                                        progress.innerHTML = \"100%\"\r\n\r\n                                        if (idx < topluImzaList.length - 1) {\r\n                                            TopluSign(idx + 1);\r\n                                            return;\r\n                                        }\r\n                                        if (window.opener != null && window.opener.fetchEimzaListem != null)\r\n                                            window.opener.fetchEimzaListem();\r\n                                        console.log(\"Sizin sunucu katmanına FinishSign istiği sonucu: İşlem başarılı.\");\r\n                                        operationId = createStateOnOnaylarimApiResult.operationId;\r\n                                        showSuccessMessage(\"İmzalama işlemi başarıyla tamamlandı\", \"Atmış olduğunuz e-imza 5070 sayılı e-imza kanunu kapsamında ıslak imza ile eşdeğerdir\");\r\n                                        document.getElementById(\"imzaKapat\").hidden = false;\r\n                                        document.getElementById(\"imazpanel\").hidden = true;\r\n\r\n\r\n                                    } else {\r\n                                        console.log(\"Sizin sunucu katmanına FinishSign istiği sonucu: İşlem başarısız.\");\r\n\r\n\r\n                                    }\r\n                                })\r\n                                .catch((error) => {\r\n                                    console.log(\"Sizin sunucu katmanına FinishSign isteği gönderilemedi.\", error);\r\n                                    showErrorMessage(\"FinishSign isteği gönderilemedi\", error)\r\n                                    // showErrorMessage(errormsg1 + \"  FinishSign isteği gönderilemedi.\");\r\n                                    document.getElementById(\"imzaspin\").hidden = true;\r\n                                    if (window.opener != null && window.opener.fetchEimzaListem != null)\r\n                                        window.opener.fetchEimzaListem();\r\n                                });\r\n                        }\r\n                    })\r\n                    .catch((error) => {\r\n                        console.log(\"e-İmza aracına SIGNSTEPTWO isteği gönderilemedi.\", error);\r\n                        showErrorMessage(\"SIGNSTEPTWO isteği gönderilemedi\", error)\r\n                        // showErrorMessage(errormsg1 + \"  e-İmza aracına SIGNSTEPTWO isteği gönderilemedi.\");\r\n                        document.getElementById(\"imzaspin\").hidden = true;\r\n                        if (window.opener != null && window.opener.fetchEimzaListem != null)\r\n                            window.opener.fetchEimzaListem();\r\n\r\n                    });\r\n            })\r\n            .catch((error) => {\r\n                console.log(\"Sizin sunucu katmanına CreateStateOnOnaylarimApi isteği gönderilemedi.\", error);\r\n                showErrorMessage(\"CreateStateOnOnaylarimApi isteği gönderilemedi\", error)\r\n                // showErrorMessage(errormsg1 + \"  CreateStateOnOnaylarimApi isteği gönderilemedi\");\r\n                document.getElementById(\"imzaspin\").hidden = true;\r\n                if (window.opener != null && window.opener.fetchEimzaListem != null)\r\n                    window.opener.fetchEimzaListem();\r\n            });\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n    const DownloadFile = () => {\r\n        axios\r\n            .get(\"DownloadSignedFileFromOnaylarimApi?operationId=\" + operationId, { responseType: \"blob\" })\r\n            .then((e) => {\r\n                if (e.data.error) {\r\n                    console.log(\"Hata oluştu. \" + e.data.error);\r\n                } else {\r\n                    let filename = \"dosya.pdf\";\r\n                    const contentDisposition = e.headers[\"Content-Disposition\"];\r\n                    if (contentDisposition) {\r\n                        const match = contentDisposition.match(/filename[^;\\n]*=(UTF-\\d['\"]*)?((['\"]).*?[.]$\\2|[^;\\n]*)?/gi);\r\n                        if (match && match[1]) {\r\n                            const a1 = match[1].split(\"''\")[1];\r\n                            if (a1) {\r\n                                filename = decodeURI(a1);\r\n                            }\r\n                        }\r\n                    }\r\n                    const fileURL = window.URL.createObjectURL(new Blob([e.data]));\r\n                    const fileLink = document.createElement(\"a\");\r\n                    fileLink.href = fileURL;\r\n                    fileLink.setAttribute(\"download\", filename);\r\n                    document.body.appendChild(fileLink);\r\n                    fileLink.click();\r\n                }\r\n            })\r\n            .catch((error) => {\r\n                console.log(\"Sizin sunucu katmanına DownloadSignedFileFromOnaylarimApi isteği gönderilemedi.\", error);\r\n                showErrorMessage(\"DownloadSignedFileFromOnaylarimApi isteği gönderilemedi\", error)\r\n            });\r\n    }\r\n\r\n    const imageLoaded = () => {\r\n        var imgset = document.getElementById(\"pdfimagediv\");\r\n        if (imgset == null)\r\n            return;\r\n        imgset.style.background = null;\r\n        const node = document.createElement(\"img\");\r\n        node.src = \"/getdosyaasimage?eimzaid=\" + eimza.id + \"&page=\" + (++page);\r\n        node.onload = imageLoaded;\r\n        node.addEventListener('error', () => node.remove(), false);\r\n        node.style.maxWidth = \"100%\";\r\n        node.style.maxHeight = \"100%\";\r\n        node.style.objectFit = \"contain\";\r\n        imgset.appendChild(node)\r\n\r\n    }\r\n    const showTopluImza = () => {\r\n        var table = <div>\r\n            <h5 className=\"m-2 border-bottom\">Imzalanacak Belgeler</h5>\r\n            {topluImzaList.map((iz, idx) => <div className=\"row m-2 border-bottom\">\r\n                <div className=\"col-1\">{iz.imzaid}</div>\r\n                <div className=\"col-2\">{iz.arsaSahibi}</div>\r\n                <div className=\"col-1\">{iz.ada}</div>\r\n                <div className=\"col-2\">{iz.basvuruTipi}</div>\r\n                <div className=\"col-2\">{iz.imza.surecname}</div>\r\n                <div className=\"col-2\">{iz.imza.fikra}</div>\r\n                <div className=\"col-2\">\r\n                    <div className=\"progress\">\r\n                        <div\r\n                            className=\"progress-bar bg-success\" id={\"progress\" + idx} role=\"progressbar\">\r\n\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>)}\r\n        </div>\r\n        return table;\r\n    }\r\n\r\n\r\n\r\n    return <div className=\"\">\r\n        <div className=\"row\" style={{ backgroundColor: colors.green, fontSize: \"18px\" }}>\r\n            <div className=\"col-11\" >\r\n                <div className=\"mb-2 p-2 fw-bold text-white\">\r\n                    {topluImzaList == null && props.eimza != null && <a href={'geteimzaoriginaldosya?eimzaid=' + props.eimza.id} className=\"text-decoration-none btn  btn-sm btn-link text-white\" target=\"_blank\" download=\"imzalanacak_evrak.pdf\">\r\n                        ({props.eimza.id}/{imzalayan.id} - {props.eimza.surecname} )\r\n                        İmzalanacak dosyayi bilgisayarınıza indirmek için tıklayınız.\r\n                    </a>}\r\n                </div>\r\n            </div>\r\n            <div className=\"col-1 text-end\" >\r\n       <button className=\"btn btn-sm btn-link m-0 p-s text-white\" onClick={(e) => setScale(fitsize)}><i class=\"fa fa-compress\"></i></button>\r\n                <button className=\"btn btn-sm btn-link m-0 p-s text-white\" onClick={(e) => setScale(fullsize)}><i class=\"fa fa-expand\"></i></button>\r\n\r\n            </div>\r\n        </div>\r\n \r\n\r\n\r\n\r\n        <div className=\"row\">\r\n            <div className=\"col-10 col-md-3 border rounded-2 border\" style={{ textAlign: \"justify\" }}>\r\n                <div className=\"mb-1 \" >\r\n                    <ul class=\"nav nav-tabs\">\r\n                        <li class=\"nav-item\">\r\n                            <a class=\"nav-link active\" aria-current=\"page\" id=\"eimzatab\" href=\"#\" onClick={() => {\r\n                                document.getElementById(\"errormessage\").innerHTML = '<div class=\"spinner-border spinner-border-sm\" ></div>';\r\n                                document.getElementById(\"kartileimzala\").hidden = false\r\n                                document.getElementById(\"mobilileimzala\").hidden = true\r\n                                document.getElementById(\"eimzatab\").classList.add(\"active\");\r\n                                document.getElementById(\"mobiltab\").classList.remove(\"active\");\r\n                                GetSignerAppVersions()\r\n                            }}> E-imza</a>\r\n                        </li>\r\n                        <li class=\"nav-item\">\r\n                            <a class=\"nav-link\" href=\"#\" id=\"mobiltab\" onClick={() => {\r\n                                document.getElementById(\"errormessage\").innerHTML = \"\";\r\n                                document.getElementById(\"mobilileimzala\").hidden = false\r\n                                document.getElementById(\"kartileimzala\").hidden = true\r\n                                document.getElementById(\"edeveletimage\").hidden = true\r\n                                document.getElementById(\"mobiltab\").classList.add(\"active\");\r\n                                document.getElementById(\"eimzatab\").classList.remove(\"active\");\r\n                            }}>Mobil İmza</a>\r\n                        </li>\r\n\r\n                    </ul>\r\n                </div >\r\n                <span className=\"ps-0 spinner-border spinner-border-sm \" hidden id=\"imzaspin\" ></span>\r\n                <div id=\"errormessage\" style={{ textAlign: \"justify\" }}>\r\n                    <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-black\" >\r\n                        <div className=\"spinner-border spinner-border-sm\" ></div>\r\n                    </div>\r\n                </div >\r\n\r\n\r\n                <img src={require('../pics/edevlet_eimza.png').default} style={{ width: \"100%\" }} hidden id=\"edeveletimage\" />\r\n                <div id=\"imzaKapat\" className=\"text-center\" hidden>\r\n                    <button onClick={() => {\r\n                        if (props.appData)\r\n                            props.changeComponent(<Application key={props.appData.id} appData={props.appData} changeComponent={props.changeComponent} backButton={<ApplicationList changeComponent={props.changeComponent} />} />)\r\n                        else\r\n                            window.close()\r\n                    }}\r\n                        type=\"button\" className=\"btn btn-sm btn-success border\" > Kapat </button>\r\n                </div>\r\n\r\n                <div id=\"kartileimzala\">\r\n                    <div id=\"imazpanel\" >\r\n                        {certificates.length > 0 && < div className=\"m-2 p-2 rounded-2\" style={{ backgroundColor: colors.grey }} key={selectedSertificate}>\r\n                            < div className=\"row\" >\r\n                                <div className=\"col-2  text-center m-0\">\r\n                                    <span className=\"material-icons text-success p-0 m-0\" style={{ \"rotate\": \"90deg\" }}>\r\n                                        sim_card\r\n                                    </span>\r\n                                </div>\r\n                                <div className=\"col-10 fw-bold text-dark\" >\r\n                                    {certificates[selectedSertificate].personFullname}  <i className=\"ps-1 fa fa-info-circle \"></i>\r\n                                </div>\r\n\r\n\r\n                            </div>\r\n                            < div className=\"row\" >\r\n                                <div className=\"col-2  \">\r\n                                    <a href=\"#\" onClick={() => { setSelectedSertificate(selectedSertificate > 0 ? selectedSertificate - 1 : certificates.length - 1) }}> <i class=\"fa fa-chevron-left \"  ></i></a>\r\n                                </div>\r\n                                <div className=\"col-8 text-secondary\">\r\n                                    {certificates[selectedSertificate].citizenshipNo}\r\n                                </div>\r\n                                <div className=\"col-2 \">\r\n                                    <a href=\"#\" onClick={() => { setSelectedSertificate((selectedSertificate + 1) % certificates.length) }}> <i class=\"fa fa-chevron-right\"  ></i></a>\r\n                                </div>\r\n\r\n                            </div>\r\n                            < div className=\"row mt-1 \" >\r\n                                <div className=\"col-2  text-center\">\r\n\r\n                                </div>\r\n                                <div className=\"col-8 text-dark\">\r\n                                    {certificates[selectedSertificate].validTo}\r\n                                </div>\r\n                                <div className=\"col-2   mt-2\">\r\n\r\n                                </div>\r\n\r\n                            </div>\r\n                        </div>\r\n                        }\r\n                        <div>\r\n                            <div className=\"mt-1\">\r\n                                {/*<select className=\"form-select form-select-sm\" id=\"certificateSelect\">*/}\r\n                                {/*    {certificates.length > 1 && <option value={-1} selected>Sertifika Seçiniz</option>}*/}\r\n                                {/*    {*/}\r\n                                {/*        certificates.map((c, i) => <option value={i}>{c.citizenshipNo}-{c.personFullname}  ({c.validTo})</option>)*/}\r\n                                {/*    }*/}\r\n                                {/*</select>*/}\r\n                            </div>\r\n                            <div className=\" mt-1\">\r\n                                <a onClick={(e) => { document.getElementById(\"sertspin\").classList.add(\"fa-spin\"); GetSignerAppVersions(); }} href=\"#\" type=\"button \" className=\"btn btn-sm btn-outline border border-secondary w-100 text-decoration-none\" style={{ backgroundColor: colors.grey }}>Sertifikaları Listele <i className=\"fa fa-refresh \" id=\"sertspin\"></i> </a>\r\n                            </div >\r\n\r\n                        </div>\r\n                        <div hidden={disableImzabutton()}>\r\n                            <div className=\"mt-2 d-flex justify-content-center  w-100\" >\r\n                                <input type=\"password\" className=\"form-control form-control-sm  shadow-none\" id=\"pin\" style={{ width: \"135px\" }} placeholder=\"E-İmza Şifre\" name=\"pin\" />\r\n                            </div >\r\n                            <div className=\"mt-2 w-100 text-center\">\r\n                                <button type=\"button\" className=\"btn btn-dark shadow-none\" style={{ width: \"40px\", backgroundColor: \"#112e50\" }} onClick={() => document.getElementById(\"pin\").value += \"1\"}>1</button>\r\n                                <button type=\"button\" className=\"ms-2 btn btn-dark shadow-none\" style={{ width: \"40px\", backgroundColor: \"#112e50\" }} onClick={() => document.getElementById(\"pin\").value += \"2\"}>2</button>\r\n                                <button type=\"button\" className=\"ms-2 btn btn-dark shadow-none\" style={{ width: \"40px\", backgroundColor: \"#112e50\" }} onClick={() => document.getElementById(\"pin\").value += \"3\"}>3</button>\r\n                            </div>\r\n                            <div className=\"mt-1 w-100 text-center\">\r\n                                <button type=\"button\" className=\"btn btn-dark  shadow-none\" style={{ width: \"40px\", backgroundColor: \"#112e50\" }} onClick={() => document.getElementById(\"pin\").value += \"4\"}>4</button>\r\n                                <button type=\"button\" className=\"ms-2 btn btn-dark  shadow-none\" style={{ width: \"40px\", backgroundColor: \"#112e50\" }} onClick={() => document.getElementById(\"pin\").value += \"5\"}>5</button>\r\n                                <button type=\"button\" className=\"ms-2 btn btn-dark  shadow-none\" style={{ width: \"40px\", backgroundColor: \"#112e50\" }} onClick={() => document.getElementById(\"pin\").value += \"6\"}>6</button>\r\n                            </div>\r\n                            <div className=\"mt-1 w-100 text-center\">\r\n                                <button type=\"button\" className=\"btn btn-dark shadow-none\" style={{ width: \"40px\", backgroundColor: \"#112e50\" }} onClick={() => document.getElementById(\"pin\").value += \"7\"}>7</button>\r\n                                <button type=\"button\" className=\"ms-2 btn btn-dark shadow-none \" style={{ width: \"40px\", backgroundColor: \"#112e50\" }} onClick={() => document.getElementById(\"pin\").value += \"8\"}>8</button>\r\n                                <button type=\"button\" className=\"ms-2 btn btn-dark  shadow-none\" style={{ width: \"40px\", backgroundColor: \"#112e50\" }} onClick={() => document.getElementById(\"pin\").value += \"9\"}>9</button>\r\n                            </div>\r\n                            <div className=\"mt-1 w-100 text-center\">\r\n                                <button type=\"button\" className=\" btn btn-dark shadow-none text-center\" style={{ width: \"40px\", backgroundColor: \"#112e50\" }} onClick={() => document.getElementById(\"pin\").value = \"\"}>\r\n                                    <span class=\"material-icons text-center\" style={{ fontSize: \"16px\" }}>\r\n                                        refresh\r\n                                    </span>\r\n                                </button>\r\n\r\n                                <button type=\"button\" className=\"ms-2 btn btn-dark shadow-none \" style={{ width: \"40px\", backgroundColor: \"#112e50\" }} onClick={() => document.getElementById(\"pin\").value += \"0\"}>0</button>\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n                        <div className=\"row mt-2\">\r\n                            <div className=\"col-4 \">\r\n                                <button onClick={() => {\r\n                                    if (topluImzaList == null)\r\n                                        props.changeComponent(<Application key={props.appData.id} targetEimza={eimza} appData={props.appData} changeComponent={props.changeComponent} backButton={<ApplicationList changeComponent={props.changeComponent} />} />)\r\n                                    else\r\n                                        window.close();\r\n                                }}\r\n                                    type=\"button\" className=\"btn btn-sm btn-warning border  w-100\" > İptal </button>\r\n                            </div >\r\n\r\n                            <div className=\"col-4 \">\r\n                                <button onClick={() => {\r\n                                    if (topluImzaList == null)\r\n                                        Sign()\r\n                                    else\r\n                                        TopluSign(0);\r\n                                }} type=\"button\" className=\"btn btn-sm btn-success w-100 border\" hidden={disableImzabutton()}>\r\n                                    İmzala\r\n                                </button>\r\n                            </div >\r\n\r\n                            <div className=\"col-3\">\r\n                                <button type=\"button\" class=\"btn btn-sm btn-primary\" data-bs-toggle=\"modal\" data-bs-target=\"#exampleModal\">\r\n                                    Yardım\r\n                                </button>\r\n                            </div >\r\n\r\n\r\n                        </div >\r\n                    </div >\r\n                </div >\r\n\r\n                <div id=\"mobilileimzala\" hidden>\r\n                    <EimzaOnaylarimMobil topluImzaList={topluImzaList} showSuccessMessage={showSuccessMessage} showWarningMessage={showWarningMessage} showErrorMessage={showErrorMessage} showMessage={showMessage} eimza={props.eimza} imzalayan={imzalayan} appData={props.appData} changeComponent={props.changeComponent} />\r\n                </div >\r\n\r\n            </div >\r\n\r\n            <div className=\"col-12 col-md-9  \">\r\n\r\n                {topluImzaList == null ? <div id=\"pdfimagediv\" className=\"w-100 border rounded-2\"\r\n                    style={{\r\n                        backgroundImage: `url(${background})`,\r\n                        backgroundRepeat: \"no-repeat\",\r\n                        backgroundSize: \"50px 50px\",\r\n                        backgroundPosition: \"center\",\r\n                        width: \"100%\",\r\n                        height: \"80vh\",\r\n                        overflow: \"auto\"\r\n                    }}\r\n                >\r\n\r\n                    <img src={\"/getdosyaasimage?eimzaid=\" + eimza.id + \"&page=\" + page} onLoad={imageLoaded}\r\n                        onError='this. remove()'\r\n                        style={scale} />\r\n\r\n\r\n                </div> : showTopluImza()}\r\n\r\n            </div >\r\n\r\n        </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n        <div class=\"modal fade\" id=\"exampleModal\" tabindex=\"-1\" aria-labelledby=\"exampleModalLabel\" aria-hidden=\"true\">\r\n            <div class=\"modal-dialog modal-xl modal-dialog-scrollable modal-dialog-centered\">\r\n                <div class=\"modal-content\">\r\n                    <div class=\"modal-header\">\r\n                        {/*<h5 class=\"modal-title\" id=\"exampleModalLabel\">E-İmza </h5>*/}\r\n                        <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\r\n                    </div>\r\n                    <div class=\"modal-body\">\r\n                        <div class=\"row\">\r\n                            <div class=\"col-6\">\r\n                                <img src={require('../Header/eimzaerror1.png').default} className=\"w-100\" id=\"eimzaerror1\" />\r\n                            </div>\r\n                            <div class=\"col-6\">\r\n                                <img src={require('../Header/eimzaerror2.jpg').default} className=\"w-100\" id=\"eimzaerror2\" />\r\n                            </div>\r\n                            <div class=\"col-6\">\r\n                                <img src={require('../Header/eimzaerror3.jpg').default} className=\"w-100\" id=\"eimzaerror3\" />\r\n                            </div>\r\n                            <div class=\"col-6\">\r\n                                <img src={require('../Header/eimzaerror4.jpg').default} className=\"w-100\" id=\"eimzaerror4\" />\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div >\r\n\r\n\r\n}","import React, { useEffect} from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport Home from '../Dashboard/Home.js';\r\nimport { useGlobalState,logout } from '../GlobalState.js';\r\nimport UserDetails from '../User/UserDetails.js';\r\n\r\nfunction NavBarProfileComponent(props) {\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [username, setUser] = useGlobalState('userName');\r\n\r\n    var profilepic = <img src=\"/getuserpic\" id=\"profileimage\" alt=\"Avatar Logo\" style={{ width: \"32px\" }} className=\"rounded-pill p-0 m-0\" />\r\n\r\n    return (\r\n        <div className=\"d-flex dropdown me-3\">\r\n            <Link to=\"/\" className=\"nav-link p-0 m-0\" href=\"/#\" role=\"button\" data-bs-toggle=\"dropdown\">\r\n                <span className=\"text-decoration-none me-3\"> {username}</span>{profilepic}\r\n            </Link>\r\n            <ul className=\"dropdown-menu dropdown-menu-end shadow border\">\r\n                {<li>\r\n\r\n                    <a href=\"#\" className=\"dropdown-item\" onClick={() => { props.changeComponent(<UserDetails changeComponent={props.changeComponent} backButton={<Home changeComponent={props.changeComponent} />} />) }}> Profil</a>\r\n\r\n                </li>}\r\n               \r\n\r\n                <li><a href=\"/#\" onClick={(e) => {\r\n                    //document.cookie.split(\"; \").forEach(function (c) { document.cookie = c.replace(/^ +/, \"\").replace(/=.*/, \"=;expires=\" + new Date().toUTCString() + \";path=/\"); });\r\n                    //window.location.href = \"/\";\r\n                    //window.localStorage.setItem('Role', null);\r\n                    logout();\r\n                }} className=\"dropdown-item\" >Çık</a></li>\r\n            </ul>\r\n\r\n        </div>\r\n\r\n    );\r\n}\r\nexport default NavBarProfileComponent;","import { Link } from \"react-router-dom\";\r\nimport NavBarProfileComponent from './NavBarProfileComponent';\r\nimport Title from './Title';\r\nimport React, { useState, useEffect } from 'react';\r\nimport MessageMenu from './MessageMenu';\r\nimport { useGlobalState } from '../GlobalState.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\n\r\nexport default function TopHeader(props) {\r\n\r\n\r\n    return (\r\n        <div className=\"pb-2 border-bottom mb-1 border-bottom d-flex flex-row-reverse\">\r\n            <NavBarProfileComponent changeComponent={props.showPanel}/>\r\n        </div>\r\n    );\r\n\r\n\r\n\r\n}","export default __webpack_public_path__ + \"static/media/edevletlogo.153cf76b.png\";","import React, { useState, useEffect } from 'react';\r\nimport { Navigate } from 'react-router-dom'\r\nimport { myGlobalState, useGlobalState } from '../GlobalState.js';\r\nimport { ajaxFail } from '../GlobalState.js';\r\n\r\nexport default function ForgotPassword(props) {\r\n    var logindata = {\r\n        UserName: \"\",\r\n        Password: \"\"\r\n    };\r\n\r\n\r\n    const onSubmit = (e) => {\r\n        e.preventDefault();\r\n        changeLoginButton();\r\n        fetch(\"forgotpassword\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(document.getElementById(\"emailadd\").value)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n\r\n\r\n                setActivepannel(\"Kullanıcı Adı Bulunamadı.\");\r\n                //ajaxFail(response);\r\n\r\n            }\r\n            else {\r\n                setActivepannel(\"Yeni Şifreniz Email Adresinize Gönderimiştir.\");\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n  \r\n\r\n\r\n\r\n    const changeLoginButton = (e) => {\r\n        document.getElementById(\"buttonlabel\").innerHTML = \"Lutfen Bekleyin  \"\r\n        document.getElementById(\"buttonSpinner\").hidden = false;\r\n\r\n    }\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        logindata[target.name] = value;\r\n    }\r\n\r\n    const [activepannel, setActivepannel] = useState(<form className=\"row\" method=\"POST\" onSubmit={onSubmit}>\r\n        <div className=\"mb-4 mt-5 col-12\">\r\n            <label htmlFor=\"UserName\" className=\"form-label text-muted \"><b>Kullanıcı Adı veya Mail Adresinizi Girin</b></label>\r\n            <input type=\"text\" className=\"form-control border-0 bg-light\" id=\"emailadd\" placeholder=\"\" name=\"emailadd\" onChange={handleInputChange} required />\r\n        </div>\r\n\r\n        <div className=\"col-12\">\r\n            <button type=\"submit\" className=\"btn btn-primary btn-sm w-100 rounded-3  mt-3\">\r\n                <span id=\"buttonlabel\">Devam Et</span>\r\n                <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\" id=\"buttonSpinner\" hidden></span>\r\n            </button>\r\n        </div>\r\n    </form>);\r\n        \r\n\r\n    useEffect(() => {\r\n\r\n    }, []);\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userName, setuserName] = useGlobalState('userName');\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    return <div className=\"row \">\r\n        <div className=\"col-3 \" ></div>\r\n        <div className=\"col-6 \" >\r\n            <div className=\"text-center mt-5 pt-5\">\r\n                {activepannel}\r\n            </div>\r\n        </div>\r\n        <div className=\"col-3 \" ></div>\r\n    </div>\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, { useState, useEffect } from 'react';\r\nimport { Navigate } from 'react-router-dom'\r\nimport { isEmpty, sendpost, showErrorMessage, useGlobalState, sendget, getHtmlTag } from '../GlobalState.js';\r\nimport Register1 from \"./Register1.js\";\r\nimport ForgotPassword from \"./ForgotPassword.js\";\r\nimport aes from 'crypto-js/aes';\r\nimport crypto from 'crypto-js';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport { useSearchParams } from 'react-router-dom'\r\nimport VersionData from \"../version.json\";\r\n\r\n\r\n\r\nexport default function TwoStep(props) {\r\n    const [searchParams, setSearchParams] = useSearchParams();\r\n    var user_d = searchParams.get(\"tc\");\r\n    var verify = searchParams.get(\"code\");\r\n    const [activepannel, setActivepannel] = useState(null);\r\n    const email = searchParams.get(\"email\");\r\n    const sms = searchParams.get(\"sms\");\r\n    const emsm = searchParams.get(\"emailsms\");\r\n\r\n    var message = \"Lütfen \" + (props.channel == \"email\" ? \" Email Adresinize\" : (props.channel == \"sms\" ? \"Telefon Numaranıza\" : \"Email ve ya Telefon Numaranıza\")) + \" gönderilen kodu girniz.\"\r\n\r\n\r\n\r\n    useEffect(() => {\r\n\r\n\r\n    }, []);\r\n\r\n\r\n\r\n    const sendcode = (e) => {\r\n        var v = getHtmlTag(\"stepcode\", \"value\");\r\n        if (isEmpty(v)) {\r\n            showErrorMessage(\"Kod boş olamaz\");\r\n            return;\r\n        }\r\n        sendpost(\"submittwostepcode\", v + \"#\" + props.logindata.UserName + \"#\" + props.logindata.Password, \"\", (response) => {\r\n\r\n            response.text().then(value => {\r\n                value = value.replaceAll('\"', '');\r\n                const Buffer = require(\"buffer\").Buffer;\r\n                value = Buffer.from(value, 'base64').toString('utf-8')\r\n                var k = value.substring(0, 16)\r\n                value = value.substring(16);\r\n                var c = crypto.AES.encrypt(JSON.stringify({ value }), k).toString();\r\n                props.setToken(k + c);\r\n            })\r\n        }\r\n            , (response) => {\r\n                response.text().then(value => {\r\n                    if (value.length < 10) {\r\n                        window.location.href = \"/\";\r\n                        return;\r\n                    }\r\n                    else\r\n                        showErrorMessage(value)\r\n\r\n                })\r\n                \r\n        })\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    return <div className=\"mt-5 pt-5\">\r\n        <div className=\"row\">\r\n            <div className=\"col-12 col-lg-3\">\r\n            </div>\r\n            <div className=\"col-12 col-lg-6 text-center\">\r\n                <label htmlFor=\"UserName\" className=\"form-label text-muted \"><b>{message}</b></label>\r\n            </div>\r\n\r\n        </div>\r\n        <div className=\"row\">\r\n            <div className=\"col-12 col-lg-4\">\r\n            </div>\r\n            <div className=\"col-12 col-lg-4 text-center\">\r\n                <input type=\"text\" className=\"form-control form-control-sm\" id=\"stepcode\" />\r\n                <button className=\"btn btn-sm btn-primary mt-2\" onClick={sendcode}> Gönder</button>\r\n            </div>\r\n        </div>\r\n\r\n    </div >\r\n\r\n\r\n}\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport UploadFile from \"../User/UploadFile.js\";\r\nimport {  ajaxFail, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport KadastralVeri from '../Application/KadastralVeri.js';\r\nexport default function MevkiSetting(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState(null);\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const removeRecord = (id) => {\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n        fetch(\"removemevki\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        }))\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const submitUpdateRecord = (rec) => {\r\n\r\n        fetch(\"updatemevki\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Güncelleme Başarılı\")\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchList = () => {\r\n\r\n        fetch(\"getmevkilist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const Add = () => {\r\n        fetch(\"addmevki\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                document.getElementById(\"name\").value = \"\";\r\n                fetchList();\r\n\r\n\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n    const handleFile = (resp) => {\r\n       \r\n\r\n        fetchList();\r\n        if (resp.data != null && resp.data.length > 0) {\r\n            showErrorMessage(\"Eklenmeyen (Hatalı) Satırlar: \\n\" + resp.data)\r\n        }\r\n\r\n\r\n    }\r\n    const showSpinner = (resp) => {\r\n\r\n      \r\n\r\n    }\r\n\r\n    const renderTable = (tabledata) => {\r\n\r\n        var mytable = <div>\r\n            <span class=\"spinner-border  spinner-border-sm\" hidden id=\"loadspin1\" ></span>\r\n            <div className=\"row rounded-3 p-1 mb-3\">\r\n                <div className=\"col-5\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" placeholder=\"Yeni\" name=\"name\" onChange={handleInputChange} defaultValue=\"\" />\r\n                </div>\r\n                <div className=\"col-2\">\r\n                    <button onClick={Add} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">Ekle</button>\r\n\r\n                </div>\r\n                \r\n\r\n                <div className=\"col-5 text-end\">\r\n                    <UploadFile spinner={\"loadspin1\"} setSumbitResult={handleFile} username={\"\"} filelabel={\"Dosyadan Yukle\"} target={\"sumbitmevkifile\"} />\r\n\r\n                </div>\r\n            </div>\r\n\r\n\r\n            {tabledata.map(apprec =>\r\n                < div className=\"row rounded-3\" key={apprec.id}>\r\n                    <div className=\"col-1\" >\r\n                        {apprec.id}\r\n                    </div>\r\n                    <div className=\"col-8 m-1\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm border-0\" name=\"name\" defaultValue={apprec.name} onChange={(e) => updateRecord(apprec, e)} />\r\n                    </div>\r\n\r\n                    <div className=\"col-2\" >\r\n                        <button onClick={() => submitUpdateRecord(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Güncelle</button>&nbsp;\r\n                        <button onClick={() => removeRecord(apprec.id)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button>\r\n                    </div>\r\n                </div>\r\n            )}\r\n        </div>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div className=\"bg-light m-2 p-3 \">\r\n            <div className=\"row mb-3\">\r\n                <div className=\"col-6 \" >\r\n                    <h5>Mevki</h5>\r\n                </div>\r\n                <div className=\"col-6 text-end\" >\r\n                    <button onClick={() => props.changeComponent(<KadastralVeri changeComponent={props.changeComponent} />)} className=\"btn btn-primary btn-sm text-decoration-none \">Geri Dön</button>\r\n                </div>\r\n            </div>\r\n            {listTable}\r\n\r\n\r\n\r\n        </div>\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, cutString, removeTurkcLow, showConfirmMessage, toUpperCaseTurkce } from '../GlobalState.js';\r\nimport MahalleSetting from './MahalleSetting.js';\r\nimport $ from 'jquery';\r\n\r\n\r\nexport default function CBSMahalleMatching(props) {\r\n    const [listData, setListData] = useState(null);\r\n    const [cbsListData, setCBSListData] = useState(null);\r\n    const [cbsLocalListData, setCBSLocalListData] = useState(null);\r\n\r\n    \r\n\r\n    const [listtype, setListType] = useState(\"MATCH\");\r\n    var mergedset = [];\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n        fetchCBSList();\r\n        fetchCBSLocalList();\r\n    }, [])\r\n\r\n\r\n\r\n    const matchRecords = (mlistData) => {\r\n        var mergedList = [];\r\n\r\n        fetch(\"matchmahalle\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                \r\n            }\r\n        });\r\n\r\n        cbsLocalListData.forEach(cbslocal => {\r\n            var mahal = cbsListData.find(x => x.tapukimlikno == cbslocal.mahalleid);\r\n            if (mahal != null)\r\n                mahal.tapumahallead = cbslocal.name;\r\n            else {\r\n                mahal = { \"tapumahallead\": cbslocal.name, \"coordinates\": \"\", \"tapukimlikno\": cbslocal.mahalleid };\r\n                cbsListData.push(mahal);\r\n            }\r\n        });\r\n\r\n\r\n        cbsListData.forEach(cbs => {\r\n            var mahal = listData.find(x => x.cbs == null && toUpperCaseTurkce(x.name) == toUpperCaseTurkce(cbs.tapumahallead));\r\n            if (mahal != null) {\r\n                cbs.mahalle = mahal;\r\n                mahal.cbs = cbs;\r\n                mergedList.push({ \"mahalle\": mahal, \"cbs\": cbs });\r\n            }\r\n            else\r\n                mergedList.push({ \"mahalle\": null, \"cbs\": cbs });\r\n\r\n\r\n        });\r\n        var temp = listData.filter(x => x.cbs == null);\r\n        temp.forEach(x => {\r\n            mergedList.push({ \"mahalle\": x, \"cbs\": null });\r\n        });\r\n        cbsListData.forEach(cbs => cbs.mahalle = null);\r\n        listData.forEach(x => x.cbs = null);\r\n        return mergedList;\r\n    }\r\n\r\n\r\n    const removeall = () => {\r\n        var ids = mergedset.filter(x => x.cbs == null && x.mahalle != null).map(x => x.mahalle.id);\r\n        showConfirmMessage(ids.length + \" Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removemahalle\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(ids)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }));\r\n    }\r\n\r\n    const remove = (rec) => {\r\n        showConfirmMessage(\" Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removemahalle\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify([rec.id])\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }));\r\n    }\r\n\r\n    const add = (cbs) => {\r\n        var recs = [{ name: cbs.tapumahallead, koordinat: cbs.coordinates }];\r\n        fetch(\"addmahalle\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(recs)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                fetchList();\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const addall = () => {\r\n        var recs = mergedset.filter(x => x.cbs != null && x.mahalle == null).map(x => ({ name: x.cbs.tapumahallead, koordinat: x.cbs.coordinates }));\r\n        fetch(\"addmahalle\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(recs)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                fetchList();\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const fetchCBSList = () => {\r\n\r\n        fetch(\"getcbsmahallelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setCBSListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchCBSLocalList = () => {\r\n\r\n        fetch(\"cbslocalmahallelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setCBSLocalListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchList = () => {\r\n\r\n        fetch(\"getmahallelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const filterCBS = (event) => {\r\n        var textbox = event.target;\r\n        if (textbox == null)\r\n            return;\r\n        var value = textbox.value;\r\n\r\n        $(\"#myTable tr\").filter(function () {\r\n            var rowtext = $(this).children(\":first\").text()\r\n            var t1 = removeTurkcLow(rowtext);\r\n            var t2 = removeTurkcLow(value);\r\n            if (t1.indexOf(t2) == -1)\r\n                return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n    const filterMahalle = (event) => {\r\n        var textbox = event.target;\r\n        if (textbox == null)\r\n            return;\r\n        var value = textbox.value;\r\n\r\n        $(\"#myTable tr\").filter(function () {\r\n            var rowtext = $(this).children(\":last\").text()\r\n            var t1 = removeTurkcLow(rowtext);\r\n            var t2 = removeTurkcLow (value);\r\n            if (t1.indexOf(t2) == -1)\r\n                return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n\r\n    }\r\n\r\n\r\n    const renderTable = (mergedset) => {\r\n        var mytable =\r\n            <div className=\"table-responsive  mainpagescroll table-sm \" style={{ \"height\": \"85vh\" }}>\r\n\r\n                <div className=\"row\">\r\n                    <div className=\"col-6\">\r\n\r\n                    </div>\r\n                </div>\r\n\r\n\r\n                <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-white\">\r\n                        <tr>\r\n\r\n                            <th className=\"text-start fw-bold text-center ps-3 pe-3\">\r\n                                <input className=\"form-control form-control-sm \" id=\"mySearchInput\" type=\"text\" placeholder=\"\" onKeyUp={filterCBS} />\r\n                                TKGM Verisi ({cbsListData.length} kayıt)\r\n\r\n                            </th>\r\n                            <th className=\"text-start fw-bold text-center ps-3 pe-3\">\r\n                                <input className=\"form-control form-control-sm \" id=\"mySearchInput\" type=\"text\" placeholder=\"\" onKeyUp={filterMahalle} />\r\n                                Sistem Verisi ({listData.length} kayıt)\r\n                            </th>\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody id=\"myTable\">\r\n                        {mergedset.map(rec =>\r\n                            <tr className={(rec.mahalle != null && rec.cbs != null) ? \"text-success\" : \"text-danger\"} style={{ \"height\": \"15px\" }}>\r\n                                <td >\r\n                                    \r\n                                    {rec.cbs != null ? rec.cbs.tapumahallead : \"YOK\"}\r\n                                    <span className=\"ms-4 small\">{rec.cbs != null ? cutString(rec.cbs.coordinates, 10) : \"\"}</span>\r\n\r\n                                </td>\r\n                                <td >\r\n                                    {rec.mahalle == null && <button className=\" btn btn-sm btn-success me-2 p-0 ps-1 pe-1 text-decoration-none\" onClick={() => add(rec.cbs)}>Ekle</button>}\r\n                                    {rec.cbs == null && <button className=\" btn btn-sm btn-danger me-2 p-0 ps-1 pe-1 text-decoration-none\" onClick={() => remove(rec.mahalle)}>Sil</button>}\r\n                                    {rec.mahalle != null ? rec.mahalle.name : \"YOK\"}\r\n                                    <span className=\"ms-4 small\">{rec.mahalle != null ? cutString(rec.mahalle.koordinat, 10) : \"\"}</span>\r\n                                </td>\r\n                                {/*<td ><i className={(rec.mahalle != null || rec.cbs != null) ?\"fa fa-check\":\"fa fa-exclamation\"}></i></td>*/}\r\n\r\n                            </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    var listTable = <div class=\"d-flex justify-content-center\"><div class=\"spinner-border\" role=\"status\"></div></div>;\r\n    var recCount = \"\";\r\n\r\n    if (listData != null && cbsListData != null && cbsLocalListData!=null) {\r\n        mergedset = matchRecords()\r\n        listTable = renderTable(mergedset);\r\n    }\r\n\r\n    return (\r\n        <div className=\" m-2 p-3 rounded-3\">\r\n            <div className=\"row mb-1\">\r\n                <div className=\"col-9 fw-bold\" >\r\n                    <h5 className=\"\">Mahalle Eşleştirme</h5>\r\n                </div>\r\n                <div className=\"col-3 text-end\" >\r\n                    <button onClick={() => props.changeComponent(<MahalleSetting changeComponent={props.changeComponent} />)} className=\"btn btn-primary btn-sm text-decoration-none \">Geri Dön</button>\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row mb-3\">\r\n                <div className=\"col-12 textvmuted \" style={{ \"text-align\": \"justify\" }} >\r\n                    <div className=\"bg-light p-3 rounded-3 textvmuted fw-bold align-middle\" >\r\n                        <span className=\"fa fa-info pe-3\" style={{ color: \"lightblue\", fontSize: \"26px\" }} ></span>\r\n                        Bu ekranda TKGM den gelen parsel verileri ile Universe'de kullanılan parsel verisi karşılaştırılmaktadır\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n            {listData != null && cbsListData != null &&\r\n                <div className=\"row mb-3 mt-3 text-center\">\r\n                    <div className=\"col-6\">\r\n                    </div>\r\n                    <div className=\"col-6\">\r\n                        <button onClick={addall} className=\"btn btn-success btn-sm mb-1\">TKGM'de olan Universe'de olmayan tüm kayıtları ekle ({mergedset.filter(x => x.mahalle == null).length} kayıt)</button>\r\n                        <button onClick={removeall} className=\"btn btn-danger btn-sm me-1\">Universe'de olan TKGM'de olmayan tüm kayıtları sil ({mergedset.filter(x => x.cbs == null).length} kayıt)</button>\r\n\r\n                    </div>\r\n\r\n                </div>}\r\n\r\n\r\n            <div className=\"row\" key={listTable}>\r\n                <div className=\"col-12\" id=\"tablediv\" >\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport KadastralVeri from '../Application/KadastralVeri.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nimport { ajaxFail, cutString, removeTurkcLow, showConfirmMessage, toUpperCaseTurkce } from '../GlobalState.js';\r\nimport bootstrap from 'bootstrap/dist/js/bootstrap.min.js'\r\n\r\nimport CBSMahalleMatching from './CBSMahalleMatching.js';\r\nimport MahalleSetting from './MahalleSetting.js';\r\n\r\nexport default function CBSMahalleSetting(props) {\r\n    const [listData, setListData] = useState(null);\r\n    var sortField = null;\r\n    const [sortDirection, setSortDirection] = useState({});\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n        var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"popover\"]'))\r\n        var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n            return new bootstrap.Popover(popoverTriggerEl)\r\n        })\r\n    }, [])\r\n\r\n\r\n    const getDurumName = (d) => {\r\n        if (d == 0) return \"Bilinmiyor\";\r\n        if (d == 1) return \"Taslak\";\r\n        if (d == 2) return \"Pasif\";\r\n        if (d == 3) return \"Aktif\";\r\n    }\r\n\r\n    const myCompare = (a, b) => {\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n        var ret = 1;\r\n        if (sortDirection[sortField] == \"ZA\")\r\n            ret = -1;\r\n\r\n        if (av == null && bv != null)\r\n            return -1 * ret;\r\n        if (av != null && bv == null)\r\n            return ret;\r\n\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * ret;\r\n        if (av < bv) {\r\n            return -1 * ret;\r\n        }\r\n        if (av > bv) {\r\n            return ret;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == \"ZA\") {\r\n            sortDirection[sortField] = \"AZ\";\r\n        }\r\n        else {\r\n            sortDirection[sortField] = \"ZA\";\r\n        }\r\n        var temp = [...listData]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setListData(temp);\r\n    }\r\n\r\n    const refreshList = () => {\r\n        setListData(null);\r\n        fetch(\"fetchcbsmahallelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchList = () => {\r\n\r\n        fetch(\"getcbsmahallelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"table-responsive  mainpagescroll table-sm \" style={{ \"height\": \"85vh\" }}>\r\n                <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-white\">\r\n                        <tr>\r\n                            <th className=\"text-start\">\r\n                                <button onClick={() => sortList(\"tapukimlikno\")} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">ID</button>\r\n                                \r\n                            </th>\r\n                            <th className=\"text-start\">\r\n                                <button onClick={() => sortList(\"tapumahallead\")} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">MAHALLE</button>\r\n                                \r\n                            </th>\r\n                            <th className=\"text-start\">\r\n                                <button onClick={() => sortList(\"durum\")} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">DURUM</button>\r\n                                \r\n                            </th>\r\n                            <th className=\"text-start\">\r\n                                <button onClick={() => sortList(\"coordinates\")} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">KOORDİNAT</button>\r\n                            </th>\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody id=\"myTable\">\r\n                        {tabledata.map(apprec =>\r\n                            <tr style={{ \"height\": \"15px\" }}>\r\n                                <td >{apprec.tapukimlikno}</td>\r\n                                <td >    {apprec.tapumahallead}</td>\r\n                                <td >    {getDurumName(apprec.durum)}</td>\r\n                                <td className=\"small\">    {cutString(apprec.coordinates, 100)}</td>\r\n                            </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n    const showhelp = (event) => {\r\n\r\n\r\n    }\r\n\r\n\r\n    const filterTable = (event) => {\r\n        var textbox = event.target;\r\n        if (textbox == null)\r\n            return;\r\n        var value = textbox.value;\r\n\r\n        $(\"#myTable tr\").filter(function () {\r\n            var rowtext = $(this).text()\r\n            var t1 = removeTurkcLow(rowtext);\r\n            var t2 = removeTurkcLow(value);\r\n            if (t1.indexOf(t2) == -1)\r\n                return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n        if (document.getElementById(\"totalrec\") != null && $(\"#myTable tr:visible\") != null)\r\n            document.getElementById(\"totalrec\").innerHTML = $(\"#myTable tr:visible\").length + \" kayıt\";\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n    var listTable = <div class=\"d-flex justify-content-center\"><div class=\"spinner-border\" role=\"status\"></div></div>;\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n\r\n    return (\r\n        <div className=\" m-2 p-3 rounded-3\">\r\n            <div className=\"row mb-1\">\r\n                <div className=\"col-3 \" >\r\n                    <h5>TKGM VERİSİ - (MAHALLE)</h5>\r\n                </div>\r\n                <div className=\"col-8 textvmuted\" >\r\n                </div>\r\n                <div className=\"col-1 text-end\" >\r\n                    <button onClick={() => props.changeComponent(<KadastralVeri changeComponent={props.changeComponent} />)} className=\"btn btn-primary btn-sm text-decoration-none \">Geri Dön</button>\r\n                </div>\r\n            </div>\r\n            <div className=\"row mb-1\">\r\n                <div className=\"col-12 textvmuted \" style={{ \"text-align\": \"justify\" }} >\r\n                    <div className=\"bg-light p-3 rounded-3 textvmuted fw-bold align-middle\" >\r\n                        <span className=\"fa fa-info pe-3\" style={{ color: \"lightblue\", fontSize: \"26px\" }} ></span>\r\n                     Bu ekranda, tapu kadastrodan gelen veriler indirilerek Universe içerisinde ayrı bir alana kaydedilmektedir. Burada kaydedeceğiniz veriler başvuru esnasında kullandığınız veriler DEĞİLDİR. Burada yaptıklarınız başvuru sırasında kullanılan parsel verilerinizi ETKİLEMEZ/DEĞİŞTİRMEZ. Başvuru esnasında kullandığınız veriler UNIVERSE'de kullanılan Kadastral Veriler başlığı altında yer almaktadır.\r\n                        \r\n                    </div>\r\n               </div>\r\n            </div>\r\n\r\n            <div className=\"row mb-3 mt-3\">\r\n                <div className=\"col-3\" id=\"totalrec\">\r\n                    {listData != null ? listData.length : 0} kayıt\r\n                </div>\r\n                <div className=\"col-6 text-center\">\r\n                    <input className=\"form-control form-control-sm \" id=\"mySearchInput\" type=\"text\" placeholder=\"Ara\" onKeyUp={filterTable} />\r\n                </div>\r\n\r\n                <div className=\"col-3 text-end\">\r\n                    {/* <button onClick={() => props.changeComponent(<CBSMahalleMatching cbsdata={listData} />)} className=\"btn btn-primary btn-sm me-1\">Eşleştir</button>*/}\r\n                    <button onClick={refreshList} className=\"btn btn-primary btn-sm\">TKGM'deki VERİYİ İNDİR</button>\r\n                    <button className=\"btn btn-secondary ms-1 btn-sm text-decoration-none fw-bold\" id=\"mypopover\" data-bs-toggle=\"popover\" title=\"AÇIKLAMA\" data-bs-trigger=\"focus\" data-bs-content=\"Aşağıdaki mahalle verilerinin tamamı silinerek TKGM'deki mahalle verileri indirilir. İşlemi yarım bırakırsanız veriler eksik indirilebilir ve yeniden indirmeniz gerekir. Bu veriler UNIVERSE'de kullanılan BAŞVURUYA ESAS mahalle verileriniz DEĞİLDİR. Bu işlem, başvuruda kullanılan mahalle listesinizde herhangi bir değişiklik yapmaz.\">?</button>\r\n\r\n                </div>\r\n            </div>\r\n            <div className=\"row border-top pt-2\" key={listTable}>\r\n                <div className=\"col-12\" id=\"tablediv\" >\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\n\r\nimport { ajaxFail, isEmpty, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport CBSADAMatching from './CBSADAMatching.js';\r\nimport CBSAdaSetting from './CBSAdaSetting.js';\r\n\r\n\r\nexport default function CBSAdaSorgula(props) {\r\n    const [listData, setListData] = useState(null);\r\n    var recivedRecCount = 0;\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n    const sendRecord = (rec) => {\r\n        fetch(\"addcbsada\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showSuccessMessage(data);\r\n                });\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Ada/Parsel kayıdı veri tabanına eklenmiştir\");\r\n            }\r\n        }).catch(err => {\r\n            showErrorMessage(err);\r\n        })\r\n    }\r\n\r\n\r\n    const fetchList = () => {\r\n\r\n        if (isEmpty(document.getElementById(\"ada\").value) || isEmpty(document.getElementById(\"parsel\").value)) {\r\n            showErrorMessage(\"Ada ve Parsel Numarasını giriniz\");\r\n            return;\r\n        }\r\n\r\n        var durum = \"\";\r\n        var raktif = document.getElementById(\"Aktif\").checked;\r\n        var rpasif = document.getElementById(\"Pasif\").checked;\r\n        if (raktif == true)\r\n            durum = \" and durum=3\"\r\n        else if (rpasif == true)\r\n            durum = \" and durum=2\"\r\n\r\n        var cql_filter = \"adano=\" + document.getElementById(\"ada\").value + \" and parselno=\" + document.getElementById(\"parsel\").value + durum;\r\n        document.getElementById(\"loadspinner\").hidden = false;\r\n\r\n        fetch(\"cbsadasorgula?filter=\" + cql_filter, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    document.getElementById(\"loadspinner\").hidden = true;\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const getDurumName = (d) => {\r\n        if (d == 0) return \"Bilinmiyor\";\r\n        if (d == 1) return \"Taslak\";\r\n        if (d == 2) return \"Pasif\";\r\n        if (d == 3) return \"Aktif\";\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n\r\n        var array10 = tabledata.slice(0, 10000);\r\n        var mytable =\r\n            <div className=\"table-responsive  mainpagescroll table-sm \" style={{ \"height\": \"85vh\" }}>\r\n                <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light\">\r\n                        <tr>\r\n                            <th className=\"text-start\" style={{ \"width\": \"10%\", overflow: \"hidden\" }}>No</th>\r\n                            <th className=\"text-start\" style={{ \"width\": \"20%\", overflow: \"hidden\" }}>Tapu Cins Aciklama</th>\r\n                            <th className=\"text-start\" style={{ \"width\": \"20%\", overflow: \"hidden\" }}>Tapu Zeminref</th>\r\n                            <th className=\"text-start\" >Tapu Mahalleref</th>\r\n                            <th className=\"text-start\" style={{ \"width\": \"10%\", overflow: \"hidden\" }}>Tapu Alan</th>\r\n                            <th className=\"text-start\" >Ada/Parsel No</th>\r\n                            <th className=\"text-start\" >Durum</th>\r\n                            <th className=\"text-start\" ></th>\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody id=\"myTable\">\r\n                        {array10.map(apprec =>\r\n                            <tr style={{ \"height\": \"15px\" }}>\r\n                                <td >{apprec.tapukimlikno}</td>\r\n                                <td title={apprec.tapucinsaciklama}  >{apprec.tapucinsaciklama}</td>\r\n                                <td >{apprec.tapuzeminref}</td>\r\n                                <td >{apprec.tapumahalleref.includes(\" \") ? apprec.tapumahalleref.split(\" \")[1] : apprec.tapumahalleref}</td>\r\n                                <td >{apprec.tapualan}</td>\r\n                                <td >{apprec.adano}/{apprec.parselno}</td>\r\n                                <td >{getDurumName(apprec.durum)}</td>\r\n                                <td ><button type=\"button\" class=\"btn btn-link text-decoration-none btn-sm\" onClick={() => sendRecord(apprec)}>Ekle</button></td>\r\n\r\n                            </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        return (mytable);\r\n\r\n    }\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n\r\n    return (\r\n        <div>\r\n\r\n\r\n            <div className=\"row mb-1\">\r\n                <div className=\"col-5\">\r\n                    <h5 className=\"ps-1\">TKGM'deki Veriyi Sorgula</h5>\r\n                </div>\r\n                <div className=\"col-2 text-center\" id=\"reccount\">\r\n                    {listData != null ? listData.length : 0} kayıt.\r\n                    <span className=\"col-1 text-center\" id=\"loadspinner\" hidden>\r\n                        <div class=\"spinner-border spinner-border-sm ps-1\"></div>\r\n                    </span>\r\n                </div>\r\n\r\n\r\n                <div className=\"col-12 col-md-5 text-end pt-1\">\r\n                    <button onClick={() => props.changeComponent(<CBSAdaSetting cbsdata={props.cbsdata} changeComponent={props.changeComponent} />)} className=\" btn btn-primary btn-sm\">Geri Don</button>\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row mt-3 border rounded-3 m-1 pb-2\" >\r\n                <div className=\"col-12 col-md-2\">\r\n                    <label className=\"form-label\">Ada</label>\r\n                    <input type=\"number\" className=\"form-control form-control-sm\" id=\"ada\" name=\"ada\" defaultValue=\"\" />\r\n                </div>\r\n                <div className=\"col-12 col-md-2\">\r\n                    <label className=\"form-label\">Parsel</label>\r\n                    <input type=\"number\" className=\"form-control form-control-sm\" id=\"parsel\" name=\"parsel\" defaultValue=\"\" />\r\n                </div>\r\n\r\n                <div className=\"col-12 col-md-6\">\r\n                    <label className=\"form-label\">Durum</label><br />\r\n                    <div class=\"form-check form-check-inline\">\r\n                        <input class=\"form-check-input\" type=\"radio\" name=\"Durum\" id=\"Pasif\" value=\"2\" />\r\n                        <label class=\"form-check-label\" for=\"inlineRadio1\">Pasif</label>\r\n                    </div>\r\n                    <div class=\"form-check form-check-inline\">\r\n                        <input class=\"form-check-input\" type=\"radio\" name=\"Durum\" id=\"Aktif\" value=\"3\" />\r\n                        <label class=\"form-check-label\" for=\"inlineRadio2\">Aktif</label>\r\n                    </div>\r\n                    <div class=\"form-check form-check-inline\">\r\n                        <input class=\"form-check-input\" type=\"radio\" name=\"Durum\" id=\"Hepsi\" value=\"\" defaultChecked={true} />\r\n                        <label class=\"form-check-label\" for=\"inlineRadio3\">Hepsi</label>\r\n                    </div>\r\n\r\n\r\n                    <button onClick={fetchList} className=\"ms-4 btn btn-primary btn-sm\">Sorgula</button>\r\n                </div>\r\n\r\n\r\n            </div>\r\n\r\n\r\n\r\n            <div className=\"row\" key={listTable}>\r\n                <div className=\"col-12\" id=\"tablediv\" >\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport KadastralVeri from '../Application/KadastralVeri.js';\r\nimport { ajaxFail, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\n\r\nexport default function SettingIdariMahalle(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState(null);\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const removeRecord = (id) => {\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removeidarimahalle\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }));\r\n    }\r\n\r\n\r\n\r\n    const submitUpdateRecord = (rec) => {\r\n\r\n        fetch(\"updateidarimahalle\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Güncelleme Başarılı\")\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchList = () => {\r\n\r\n        fetch(\"getidarimahallelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const Add = () => {\r\n        if (document.getElementById(\"name\").value == null) {\r\n            showErrorMessage(\"Idari Mahalle İsmini Giriniz\");\r\n            return;\r\n        }\r\n\r\n        fetch(\"addidarimahalle\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                document.getElementById(\"name\").value = \"\";\r\n                fetchList();\r\n\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n\r\n        var mytable = <div>\r\n            <div className=\"row rounded-3 mb-4 pb-4 border-bottom\">\r\n                <div className=\"col-4\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" placeholder=\"Yeni İdari Mahalle\" name=\"name\" onChange={handleInputChange} defaultValue=\"\" />\r\n                </div>\r\n                <div className=\"col-2\">  <button onClick={Add} className=\"btn btn-sm btn-primary text-decoration-none \">Ekle</button></div>\r\n            </div>\r\n\r\n\r\n            {tabledata.map(apprec =>\r\n                < div className=\"row rounded-3\" key={apprec.id}>\r\n                    <div className=\"col-4 m-1\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm border-0\" name=\"name\" defaultValue={apprec.name} onChange={(e) => updateRecord(apprec, e)} />\r\n                    </div>\r\n\r\n\r\n                    <div className=\"col-2\" >\r\n                        <button onClick={() => submitUpdateRecord(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Güncelle</button>&nbsp;\r\n                        <button onClick={() => removeRecord(apprec.id)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button>\r\n                    </div>\r\n                </div>\r\n            )}\r\n        </div>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n   \r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div className=\"bg-light p-2\">\r\n            <div className=\"row mb-3 \">\r\n                <div className=\"col-6 \" >\r\n                    <h5>IDARİ MAHALLE</h5>\r\n                </div>\r\n                <div className=\"col-6 text-end\" >\r\n                     <button onClick={() => props.changeComponent(<KadastralVeri changeComponent={props.changeComponent} />)} className=\"btn btn-primary btn-sm text-decoration-none \">Geri Dön</button>\r\n                </div>\r\n            </div>\r\n            {listTable}\r\n        </div>\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, removeTurkcLow } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\n\r\nexport default function EventPanel(props) {\r\n\r\n    const [appData, setData] = useState(props.appData);\r\n    const [events, setEvents] = useState(null);\r\n    const colors = [\"#fff8dd\", \"#e8fff3\", \"#fff5f8\", \"#f8f5ff\"]\r\n    const scolors = [\"text-primary\", \"text-success\", \"text-danger\", \"text-warning\", \"text-info\"]\r\n\r\n    const fetchEvents = (e) => {\r\n        fetch(\"getapplicationevents\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: appData.id\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    \r\n                    setEvents(data);\r\n                    rendertolist(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    useEffect(() => {\r\n        fetchEvents();\r\n    }, [])\r\n\r\n\r\n    const filterTable = (event) => {\r\n        var textbox = document.getElementById(\"mySearchInput\")\r\n        if (textbox == null)\r\n            return;\r\n        var value = removeTurkcLow(textbox.value);\r\n        var keywords = value.split(\" \");\r\n\r\n        $(\"#appevents div.row\").filter(function () {\r\n            var rowtext = \"\";\r\n            $(this).children().each(function () {\r\n                rowtext += $(this).text() + \" \";\r\n            });\r\n\r\n            var t1 = removeTurkcLow(rowtext);\r\n\r\n            for (let index = 0; index < keywords.length; ++index) {\r\n                if (t1.indexOf(keywords[index]) == -1) {\r\n                    return $(this).toggle(false);\r\n                }\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n\r\n    const rendertolist = (events) => {\r\n    var groupedEvents = {};\r\n        for (var i = 0; i < events.length; i++) {\r\n            var d = events[i].eventDate.split(\" \")[0];\r\n        var t = events[i].eventDate.split(\" \")[1];\r\n        if (groupedEvents[d] == null) groupedEvents[d] = [];\r\n        groupedEvents[d].push(t);\r\n    }\r\n    var tab = \"\";\r\n    var c = 0;\r\n    for (var d in groupedEvents) {\r\n        tab += '<div class=\"row ms-2 me-2 p-2 mb-3  rounded-2 border border-rounded\" style=\"background-color:' + colors[c % 4] + ';\"}><div class=\"col-12\"><h5  class=\"text-secondary\"><span class=\"fa fa-calendar text-muted\"></span> <b>' + d + '</b></h5></div><div class=\"pt-2\">'\r\n        for (var i = 0; i < events.length; i++) {\r\n            var m = events[i].eventDate.split(\" \")[0];\r\n            var t = events[i].eventDate.split(\" \")[1];\r\n            if (d == m) {\r\n                tab += \"<div class='row'>\"\r\n                tab += \"<div class=' col-3  col-md-1 mb-1'  style='position: relative;'> <span class='ps-1 pe-3 text-muted fw-bold' style='position: absolute; top:-5px;'>\" + t + \"</span></div>\"\r\n                tab += \"<div class=' col-9  col-md-9 border-start border-4 ps-0 mt-2' style='position: relative;'> <span style='margin-left:-8px; position: absolute; top:-10px;'  class='fa fa-circle-o me-2 fw-bold \" + scolors[i % 5] + \"'> </span> \"\r\n                tab += \"<div class='ms-2 mb-3' style='margin-top:-18px;'>\" + events[i].comment+ \"&nbsp\"+\"<img class=\\\"rounded-circle\\\" style='width:30px; height:30px;'src='/getuserpic?user=\" + events[i].userName + \"'/><span class='ps-2 text-muted'>\" + events[i].userName + \"</span>\";\r\n                tab +=\"</div></div>\"\r\n\r\n                tab += \"</div>\"\r\n            }\r\n\r\n        }\r\n        tab += \"</div></div>\"\r\n        c++;\r\n        }\r\n\r\n        const para = document.getElementById(\"appevents\");\r\n\r\n        para.innerHTML = tab;\r\n        return para;\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    var panel = \"\";\r\n\r\n\r\n    if (events == null)\r\n        panel = <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n    else if (events.length == 0)\r\n        panel= <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n\r\n\r\n\r\n    return (\r\n        <div >\r\n            <div className=\"row\">\r\n                <div className=\"col-4\">\r\n                    <h5 className=\"text-primary pb-3\">Geçmiş Aktiviteler</h5 >\r\n                </div>\r\n                <div className=\"col-4\">\r\n                    <input className=\"form-control form-control-sm\" id=\"mySearchInput\" type=\"text\" placeholder=\"Arama\" onKeyUp={filterTable} />\r\n                </div>\r\n                <div className=\"col-4 justify-content-end align-items-end text-end \">\r\n                    {events != null && events.length > 0 && <span className=\"small badge bg-primary rounded-pill me-2\">{events.length}</span>}\r\n                </div>\r\n\r\n            </div>\r\n            <div id=\"appevents\">\r\n                {panel}\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom'\r\nimport ReactToPdf from 'react-to-pdf';\r\nimport { useGlobalState, changeTurkceToEnglis, capitalizeWords, isEmpty } from '../GlobalState.js';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport Application from './Application.js';\r\nimport { jsPDF } from \"jspdf\";\r\n\r\nexport default function ApplicationPrint(props) {\r\n    var appTypes = props.appTypes;\r\n    const [appGrupList, setappGrupList] = useState(null);\r\n    const [fileTypes, setFileTypeData] = useState(null);\r\n    let location = useLocation();\r\n    const [uploadedFiles, setUploadedFiles] = useState([]);\r\n    const ref = React.createRef();\r\n    const [appData, setData] = useState(props.rec != null ? props.rec : location.state.rec);\r\n    var [gdata, setGData] = useState(null);\r\n    const [userData, setUserdata] = useState(null);\r\n\r\n    var [allDynamicFilds, setAllDynamicFilds] = React.useState([]);\r\n\r\n    var apptype = appTypes != null ? appTypes.find(x => x.name == appData.basvuruTipi) : null;\r\n\r\n\r\n    useEffect(() => {\r\n        fetchGeneralData();\r\n        \r\n       \r\n        fetchAppGrupList();\r\n        fetchFileList();\r\n    }, [])\r\n\r\n    const fetchFileList = () => {\r\n        fetch(\"filenamelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setFileTypeData(value);\r\n                    fetchFiles(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchAppGrupList = () => {\r\n        fetch(\"apptypegroupslist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setappGrupList(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n   \r\n\r\n\r\n\r\n\r\n\r\n    const fetchAppDynamicFieldList = () => {\r\n        fetch(\"getappfields\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n\r\n                response.json().then(async data => {\r\n                    setAllDynamicFilds(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getAppGrupName = () => {\r\n        if (appTypes == null || appGrupList==null) {\r\n            return \"(İmar ve Şehircilik Müdürlüğü)\";\r\n        }\r\n        var g = appTypes.find(x => x.name == appData.basvuruTipi);\r\n        if (g == null || g.grup==null)\r\n            return \"(İmar ve Şehircilik Müdürlüğü)\";\r\n        var grp = appGrupList.find(x => x.id == g.grup);\r\n\r\n        if (grp == null )\r\n            return \"(İmar ve Şehircilik Müdürlüğü)\";\r\n        return \"(\" + grp.name+\")\"\r\n    }\r\n\r\n    const getFileName = (f) => {\r\n        if (f.typeId==null ) {\r\n            return  f.caption;\r\n        }\r\n\r\n       var fname=fileTypes.find(x => x.id == f.typeId);\r\n        if (fname == null) {\r\n            return f.caption;\r\n        }\r\n\r\n        return fname.name;\r\n       \r\n    }\r\n\r\n\r\n\r\n   \r\n    const fetchFiles = (filetypes) => {\r\n        fetch(\"getapplicationfiles\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(appData)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    var files = [];\r\n                    for (var f of data) {\r\n                        var ft = filetypes.find(x => x.id == f.typeId);\r\n                        if (ft == null || isEmpty(ft.basvuruTipi) || ft.basvuruTipi.includes(appData.basvuruTipi))\r\n                            files.push(f)\r\n                    }\r\n                    setUploadedFiles(files)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchGeneralData = () => {\r\n        fetch(\"getgeneraldata\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setGData(data);\r\n                    fetchAppDynamicFieldList();\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const toPdfJSPDF = () => {\r\n       \r\n\r\n        \r\n\r\n        var doc = new jsPDF('p', 'pt', \"a4\");\r\n        // doc.addFont(\"Arial\", \"Arial\", \"normal\");\r\n        doc.setFont(\"helvetica\", \"normal\");\r\n        doc.setFontSize(14);\r\n        var source = document.getElementById(\"pdfsource\").cloneNode(true);\r\n        source.className = \"\";\r\n        var colElems = source.firstChild.getElementsByClassName(\"buttonCol\");\r\n        for (var i = colElems.length - 1; i >= 0; i--) {\r\n            colElems[i].remove()\r\n        }\r\n        var colElems = source.firstChild.getElementsByClassName(\"checkCol\");\r\n        for (var i = colElems.length - 1; i >= 0; i--) {\r\n            colElems[i].firstChild.className = \"\";\r\n            colElems[i].firstChild.style[\"width\"] = \"12px\";\r\n        }\r\n\r\n        colElems = source.firstChild.getElementsByClassName(\"dateCol\");\r\n        for (var i = colElems.length - 1; i >= 0; i--) {\r\n            colElems[i].innerText = colElems[i].innerText.replace(\"/\", \"\");\r\n            colElems[i].innerText = colElems[i].innerText.replace(\"/\", \"  \");\r\n            colElems[i].innerText = colElems[i].innerText.replace(\":\", \" : \");\r\n        }\r\n\r\n\r\n        colElems = source.firstChild.getElementsByClassName(\"messageCol\");\r\n        if (colElems != null)\r\n            for (var i = colElems.length - 1; i >= 0; i--) {\r\n                colElems[i].parentNode.innerText = colElems[i].innerText;\r\n            }\r\n\r\n        source.innerHTML = changeTurkceToEnglis(source.innerHTML);\r\n\r\n        source.style[\"font-size\"] = \"10px\";\r\n        source.style[\"font-family\"] = \"Arial\";\r\n        source.style[\"letter-spacing\"] = \"0.0px\";\r\n        // source = source.replaceAll(\"delete\", \"\")\r\n        doc.html(\r\n            source, {\r\n            'x': 35,\r\n            'y': 0,\r\n\r\n            width: 520,\r\n            autoPaging: 'text',\r\n            //margin:5,\r\n            windowWidth: 520,\r\n            margin: [40, 0, 40, 0],\r\n            callback: function (pdf) {\r\n                pdf.setFontSize(12);\r\n                pdf.save('basvuru_ciktisi.pdf');\r\n            }\r\n\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    var filename = appData.ada + \"_\" + appData.arsaSahibi;\r\n    if (filename.indexOf('.') > 0)\r\n        filename = filename.substring(0, filename.indexOf('.') - 1);\r\n\r\n    var printbutton = <div className=\"d-flex justify-content-center mt-2 mb-2\">\r\n        <ReactToPdf targetRef={ref} x={15} y={10} scale={1} filename={filename}>\r\n            {({ toPdf }) => (\r\n                <button className=\"btn btn-primary btn-sm text-decoration-none\" onClick={toPdf}><i className=\"\tfa fa-print pe-2\"></i>PDF Çıktısı</button>\r\n            )}\r\n        </ReactToPdf>\r\n    </div>\r\n\r\n\r\n    var appDynamicData = null;\r\n    if (appData.appData)\r\n       appDynamicData= JSON.parse(appData.appData);\r\n    const changeComponent = props.changeComponent;\r\n\r\n    return (\r\n        <div>\r\n            <div className=\"row \">\r\n                <div className=\"col-12 text-end\">\r\n                   \r\n                        <ReactToPdf targetRef={ref} filename=\"pdf_file.pdf\" x={10} y={10} scale={0.7} >\r\n                            {({ toPdf }) => (\r\n                                <button className=\"btn btn-primary btn-sm \" onClick={toPdfJSPDF}>PDF Oluştur</button>\r\n                            )}\r\n                        </ReactToPdf>\r\n                    \r\n                  <button className=\"ms-2 btn btn-sm btn-primary rounded me-3\" onClick={() => { changeComponent(<Application appData={appData} changeComponent={changeComponent} backButton={props.backButton} />) }}> <i className=\"fa fa-arrow-circle-left pe-1\"></i> Geri Don</button>\r\n  \r\n                </div>\r\n\r\n\r\n\r\n            </div>\r\n            <div className=\"d-flex justify-content-center \" >\r\n\r\n\r\n                <div style={{ width: \"520px\" }} ref={ref} id=\"pdfsource\">\r\n                    <div className=\"d-flex justify-content-center mt-4 fw-bold\">{gdata != null ? gdata.belediyeName.toUpperCase() : \"\"} BELEDİYE BAŞKANLIĞINA</div>\r\n\r\n                    {apptype != null && !isEmpty(apptype.ciktiTitle) && <div className=\"d-flex justify-content-center mb-1 mt-1\">\r\n                        ({apptype.ciktiTitle})\r\n                    </div>}\r\n\r\n                    <div className=\"d-flex justify-content-center mb-3 mt-1\">{getAppGrupName()}</div>\r\n                    <div className=\"d-flex justify-content-center mb-3\" >\r\n                        Aşağıda bilgileri bulunan başvurunun tarafınızca incelenerek gereğinin yapılması hususunu arz ederim.\r\n                    </div>\r\n                    <div className=\"mt-4 container border rounded border-dark\" >\r\n\r\n                        <div className=\"row border-bottom border-dark\">\r\n                            <div className=\"col-4 \">\r\n                                Başvuru Numara\r\n                            </div>\r\n                            <div className=\"col-8 border-start border-dark\">\r\n                                {appData.id}\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"row border-bottom border-dark\">\r\n                            <div className=\"col-4 \">\r\n                                Başvuru Tipi\r\n                            </div>\r\n                            <div className=\"col-8 border-start border-dark\">\r\n                                {appData.basvuruTipi}\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"row border-bottom border-dark\">\r\n                            <div className=\"col-4 \">\r\n                                Başvuru Tarihi\r\n                            </div>\r\n                            <div className=\"col-8 border-start border-dark \">\r\n                                {appData.basvuruTarihi}\r\n                            </div>\r\n                        </div>\r\n\r\n                        {(apptype != null && apptype.kabulSureci == true) && <div className=\"row \">\r\n                            <div className=\"col-4 \">\r\n                                Başvuru Kabul Tarihi\r\n                            </div>\r\n                            <div className=\"col-8 border-start border-dark\">\r\n                                {appData.kabulEdilmeTarihi}\r\n                            </div>\r\n                        </div>}\r\n\r\n                    </div>\r\n                    {isEmpty(appData.ada) == false && <div className=\"mt-4  container border rounded border-dark\">\r\n                        <div className=\"row border-bottom border-dark\">\r\n                            <div className=\"col-12 \">\r\n                                <b>Adres Bilgileri</b>\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"row border-bottom border-dark\">\r\n                            <div className=\"col-4 \">\r\n                                Mahalle\r\n                            </div>\r\n                            <div className=\"col-8 border-start border-dark\">\r\n                                {appData.mahalle} {(apptype != null && apptype.mevkiAktif==true)?appData.mevki:\"\"}\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"row\">\r\n\r\n                            <div className=\"col-4 \">\r\n                                Ada/Parsel\r\n                            </div>\r\n                            <div className=\"col-8 border-start border-dark\">\r\n                                {appData.ada}\r\n                            </div>\r\n                        </div>\r\n                    </div>}\r\n\r\n                    {isEmpty(appData.ada) == false && apptype.tasinamazSahibiAktif == true &&\r\n                        <div className=\"mt-4  container border rounded border-dark\">\r\n                            <div className=\"row border-bottom border-dark\">\r\n                                <div className=\"col-12 \">\r\n                                    <b>Taşınmaz Sahibi Bilgileri</b>\r\n                                </div>\r\n                            </div>\r\n                            <div className=\"row border-bottom border-dark\">\r\n                                <div className=\"col-4 \">\r\n                                    İsim Soyisim\r\n                                </div>\r\n                                <div className=\"col-8 border-start border-dark\">\r\n                                    {appData.arsaSahibi}\r\n                                </div>\r\n                            </div>\r\n                            <div className=\"row border-bottom border-dark\">\r\n                                <div className=\"col-4 \">\r\n                                    TC Kimlik No\r\n                                </div>\r\n                                <div className=\"col-8 border-start border-dark\">\r\n                                    {appData.arsaSahibiTC}\r\n                                </div>\r\n                            </div>\r\n                            <div className=\"row  border-dark\">\r\n                                <div className=\"col-4 \">\r\n                                    Telefon\r\n                                </div>\r\n                                <div className=\"col-8 border-start border-dark\">\r\n                                    {appData.arsaSahibiTel}\r\n                                </div>\r\n                            </div>\r\n                        </div>}\r\n\r\n                    {appDynamicData != null && allDynamicFilds.some(k=>k.printable == true &&\r\n                        k.name != null &&\r\n                        k.basvuruTipi != null && k.basvuruTipi.includes(appData.basvuruTipi))&&\r\n                        < div className=\"mt-4  container border rounded border-dark\">\r\n                        {allDynamicFilds != null && appDynamicData != null &&\r\n                            allDynamicFilds.map(k => k.printable == true &&\r\n                                k.name != null &&\r\n                                k.basvuruTipi != null && k.basvuruTipi.includes(appData.basvuruTipi) &&\r\n                                <div className=\"row border-bottom border-dark\">\r\n                                    <div className=\"col-4 \">    {k.name}   </div>\r\n                                    <div className=\"col-8 border-start border-dark\">\r\n                                        {appDynamicData[k.name] != null ? appDynamicData[k.name].value : \"\"}\r\n                                    </div>\r\n                                </div>)\r\n                        }\r\n                    </div>}\r\n\r\n                    {gdata != null && (!isEmpty(gdata.yasalUyari) || !isEmpty(gdata.kvkk))&& < div className=\"mt-4 border rounded border-dark p-2\">\r\n                        {gdata != null ? gdata.yasalUyari : \"Yukarıdaki iletişim bilgilerinin doğru olduğunu teyit eder, yanlış bilgilendirmeden dolayı oluşabilecek sorunlardan sorumlu olduğumu beyan eder ve Ruhsat Bilgilerinin yukarıda yazan numaralarla mesaj yoluyla paylaşacağını ve Menderes Belediyesinin Kişisel Verilerin Korunması ve İşlenmesi Şartlarını kabul ederim.\"}\r\n                        <br />\r\n                        {gdata != null ? gdata.kvkk : \"\"}\r\n\r\n                    </div>}\r\n\r\n\r\n\r\n\r\n\r\n                    <div className=\"mt-4 container border rounded border-dark\">\r\n\r\n                        <div className=\"row border-bottom border-dark\">\r\n                            <div className=\"col-4 p-3 mb-3\">\r\n                                İmza\r\n                            </div>\r\n                            <div className=\"col-8 border-start border-dark\">\r\n\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"row  border-bottom border-dark\">\r\n                            <div className=\"col-4\">\r\n                                İsim Soyisim\r\n                            </div>\r\n                            <div className=\"col-8 border-start border-dark\">\r\n                              {/*  {appData != null ? capitalizeWords(appData.vekilName) : \"\"}*/}\r\n                                {appData.basvuruSahibi}\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"row border-bottom border-dark\">\r\n                            <div className=\"col-4\">\r\n                                TC Kimlik Numarası\r\n                            </div>\r\n                            <div className=\"col-8 border-start border-dark\">\r\n                              {/*  {appData != null ? appData.vekilTC : \"\"}*/}\r\n                                {/*  {userData != null ? userData.tc : \"\"}*/}\r\n                                {appData.basvuruSahibiTC }\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n                        <div className=\"row  border-dark\">\r\n                            <div className=\"col-4\">\r\n                                Telefon\r\n                            </div>\r\n                            <div className=\"col-8 border-start border-dark\">\r\n                                {/* {appData != null ? appData.vekilTel : \"\"}*/}\r\n                                {appData.basvuruSahibiTel}\r\n                                \r\n                            </div>\r\n                        </div>\r\n\r\n                    </div>\r\n\r\n\r\n                    <div className=\"mt-4 p-0 pb-5 container border-top border-dark\">\r\n\r\n                        Başvuruya eklenen dosyaların listesi ekte yer almaktadır.\r\n                    </div>\r\n\r\n\r\n                    <div className=\"mt-5 mb-3  container border rounded border-dark\">\r\n                        <div className=\"row border-bottom border-dark mb-2\">\r\n                            <div className=\"col-12 fw-bold\">\r\n                                Eklenen Dosyalar\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"row\">\r\n                            {uploadedFiles.map((rec, idx) => <div className=\"col-6  p-0\">   <span className=\"fw-bold \"> {idx + 1}-</span>\r\n                                {getFileName(rec)+\"(\"+rec.appId+\")\"} \r\n                            </div>)}\r\n\r\n\r\n                        </div>\r\n\r\n                    </div>\r\n\r\n\r\n\r\n\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n\r\n            {/* {printbutton}*/}\r\n        </div>\r\n\r\n\r\n    );\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom'\r\nimport { Link } from \"react-router-dom\";\r\nimport ApplicationList from './ApplicationList';\r\nimport { ajaxFail, calcBusinessDays, showErrorMessage, showSuccessMessage, sortByKey, getBolean } from '../GlobalState.js';\r\nimport { useGlobalState, isEmpty, getappdata, capitalizeWords, toUpperCaseTurkce, fvisible, fdisabled, fzorunlu } from '../GlobalState.js';\r\nimport axios from \"axios\";\r\nimport SharedUsersPanel from './SharedUsersPanel.js';\r\nimport Apply1 from \"./Apply1.js\";\r\n\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport UserLabel from \"../User/UserLabel.js\";\r\nimport { check } from 'prettier';\r\nimport GMapLatLang from \"./GMapLatLang.js\";\r\nimport bootstrap from 'bootstrap/dist/js/bootstrap.min.js'\r\n\r\n\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { CategoryScale } from 'chart.js';\r\n\r\nexport default function AppMainData(props) {\r\n\r\n\r\n    const surebg = [\"#c9f7f5\", \"#e1f0ff\", \"#fff4de\", \"#ffe2e5\"]\r\n    const suretxt = [\"text-info\", \"text-primary\", \"text-warning\", \"text-danger\"]\r\n   // const [sabitsorulistData, setsabitsorulistData] = useState([]);\r\n    const [appData, setData] = useState(props.appData != null ? props.appData : location.state.rec);\r\n    const [mappedusers, setMappedUsers] = useState([]);\r\n    const [userData, setUserdata] = useState(null);\r\n    var [globalData, setGlobalData] = useGlobalState('globalData');\r\n    const [role, setRole] = useGlobalState('role');\r\n    const changeComponent = props.changeComponent;\r\n    const [AdaList, setAdaList] = useState([]);\r\n    const [MevkiList, setMevkiList] = useState([]);\r\n    const [MahalleList, setMahalleList] = useState([]);\r\n    const [mahalleCoordinates, setMahalleCoordinates] = useState(null);\r\n    let location = useLocation();\r\n    const [allDynamicFilds, setAllDynamicFilds] = React.useState();\r\n    const [kontroller, setkontroller] = React.useState();\r\n    const [surecList, setSurecList] = React.useState(props.surecList);\r\n    const [harcFileList, setHarcFileList] = useState([]);\r\n    var arsaSahibiTemp = null;\r\n\r\n    const [apptypeList, setAppTypeList] = React.useState(props.apptypeList);\r\n\r\n    var appType = props.apptypeList.find(x => x.name == appData.basvuruTipi)\r\n\r\n    if (appType == null)\r\n        appType = {}\r\n\r\n    const ref = React.createRef();\r\n    const zorunloBosBirakma = role.indexOf(UserPermConstants.Yeni_Basvuruda_Zorunlu_Alanlari_Bos_Birakabilme) == -1;\r\n    var disablesabitsorular = false;\r\n    var disabledinamiksorular = false;\r\n    var disableaddresarea = false;\r\n    var appdynamicdata = appData.appData != null ? JSON.parse(appData.appData) : {};\r\n\r\n\r\n\r\n\r\n    if (appData != null && appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Taslak &&\r\n        appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_GeriGonderildi &&\r\n        appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Duzeltme_Bekleniyor\r\n    ) {\r\n        if (role.indexOf(UserPermConstants.Basvurudan_Sonra_Sabit_Editleme) == -1)\r\n            disablesabitsorular = true;\r\n        if (role.indexOf(UserPermConstants.Basvurudan_Sonra_Dinamik_Editleme) == -1)\r\n            disabledinamiksorular = true;\r\n    }\r\n\r\n\r\n\r\n    if (appData != null && appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Duzeltme_Bekleniyor\r\n        && role.indexOf(UserPermConstants.Basvurudan_Sonra_Sabit_Editleme) == -1)\r\n        disableaddresarea = true;\r\n\r\n    if (appData != null && appData.vekaletenBasvuru == 1 && isEmpty(appData.vekilTC) == true && userData != null) {\r\n        //this is to fill empty records in database\r\n        appData.vekilTC = userData.tc;\r\n        appData.vekilTel = userData.tel;\r\n        appData.vekilName = capitalizeWords(userData.name + \" \" + userData.family);\r\n    }\r\n\r\n    useEffect(() => {\r\n\r\n        if (surecList == null || surecList.length == 0)\r\n           fetchSurecList();\r\n        fetchAppDynamicFieldList();\r\n      \r\n        //fetchIdariMahalleList();\r\n       // fetchMahalleList(appData.mevki)\r\n       // fetchMevkiList();\r\n      //  fetchAdaList(appData.mevki, appData.mahalle);\r\n        fetchMappedUsers();\r\n        fetchUserData();\r\n        fetchHarcFiles();\r\n        window.scrollTo(0, 0)\r\n    }, [props.appData])\r\n\r\n\r\n\r\n    const fetchHarcFiles = () => {\r\n        var c = document.getElementById(\"harcdosyaSpinner\")\r\n        if (c != null) {\r\n            c.hidden = false;\r\n        }\r\n        fetch(\"harcfilelist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: appData.id\r\n        }).then(async response => {\r\n            if (c != null) {\r\n                c.hidden = true;\r\n            }\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                try {\r\n                    response.json().then(async data => {\r\n                        setHarcFileList(data)\r\n                    });\r\n                } catch (ex) {\r\n                    console.log(ex);\r\n                }\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchUserData = () => {\r\n        fetch(\"getuser?user=\" + appData.basvuruYapan, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                //ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    var userdata = JSON.parse(data);\r\n                    setUserdata(userdata);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const initModal = () => {\r\n        var locModal = document.getElementById('myModal');\r\n        var btnclosedown = document.getElementById('downclosemodal');\r\n        if (btnclosedown != null)\r\n            btnclosedown.addEventListener('click', (e) => {\r\n                locModal.style.display = \"none\";\r\n                locModal.classList.add(\"hide\");\r\n            });\r\n    }\r\n\r\n\r\n    const fetchCoordinates = (param) => {\r\n        fetch(\"getcbscoordinates?param=\" + param, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.text().then(value => {\r\n\r\n                    setMahalleCoordinates(value)\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n   /* const fetchSabitSoruList = () => {\r\n        fetch(\"getsabitsorulist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setsabitsorulistData(value);\r\n                    if (props.setsabitsorulistData)\r\n                        props.setsabitsorulistData(value);\r\n                })\r\n            }\r\n        });\r\n    }*/\r\n\r\n\r\n    const fetchMappedUsers = (e) => {\r\n        fetch(\"mappeduserstoproject\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: appData.id\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    data = JSON.parse(data);\r\n                    setMappedUsers(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDenetimSure = (rec) => {\r\n        if (rec == null || apptypeList.length == 0 || mappedusers.length == 0)\r\n            return \"\";\r\n\r\n        var denetimid = rec.denetimID;\r\n        var havaleDate = rec.mappingDate;\r\n        var appid = rec.appID;\r\n        var id = rec.id;\r\n\r\n\r\n\r\n        if (appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Kontrol_Ediliyor\r\n            && appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Kontrol_Sirada_Bekliyor) return \"\";\r\n\r\n        var d = apptypeList.find(x => x.id == denetimid);\r\n        if (d == null) return \"\";\r\n\r\n        d = d.deadline;\r\n        if (d == null || rec.deliverDate == null) return \"\";\r\n        //if (mappedusers.some(x => x.Completed == null\r\n        //    && x.id < id && x.appID == appid)==true) return \"\";\r\n\r\n\r\n        var songonderim = rec.deliverDate.split(\" \")[0];\r\n        var h = new Date(songonderim);\r\n\r\n        havaleDate = havaleDate.split(\" \")[0];\r\n        if (h < Date(havaleDate))\r\n            h = new Date(havaleDate);\r\n\r\n        var pre = mappedusers.find(x => x.id < id && x.appID == appid)\r\n        if (pre != null && pre.Completed != null) {\r\n            pre = pre.Completed.split(\" \")[0];\r\n            if (h < Date(pre))\r\n                h = new Date(pre);\r\n        }\r\n\r\n        var diffDays = d - calcBusinessDays(new Date(Date.now()), h)\r\n        // var diffTime = Date.now() - h\r\n        // const diffDays = d - Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1;\r\n        var i = diffDays > d * 2 / 3 ? 0 : diffDays > d / 3 ? 1 : diffDays > 0 ? 2 : 3;\r\n\r\n        return <div className={\"ps-3 pe-3 p-2 text-center fw-bold \" + suretxt[i]} style={{ \"background-color\": surebg[i], \"border-radius\": 5 }}>Kalan Süre: {diffDays}</div>\r\n    }\r\n\r\n\r\n\r\n\r\n    const fetchIdariMahalleList = () => {\r\n        fetch(\"getidarimahallelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n\r\n                response.json().then(value => {\r\n                    var i = 0;\r\n                    var c = document.getElementById(\"IdariMahalle\");\r\n                    if (c == null)\r\n                        return;\r\n                    if (value.length == 0) {\r\n                        document.getElementById(\"idarimahalleblock\").hidden = true;\r\n                        c.required = false;\r\n                    }\r\n\r\n                    c.innerHTML = \"\";\r\n                    for (i = 0; i < value.length; i++) {\r\n                        var opt = document.createElement('option');\r\n                        opt.value = value[i].name;\r\n                        opt.innerHTML = value[i].name;\r\n                        if (appData.idariMahalle == value[i].name) {\r\n                            opt.selected = true;\r\n                        }\r\n                        c.appendChild(opt);\r\n                    }\r\n                    if (appData.idariMahalle == null) c.selectedIndex = -1;\r\n\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const fetchMevkiList = () => {\r\n        fetch(\"getmevkilist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                const contentType = response.headers.get(\"content-type\");\r\n                if (contentType == null || contentType.indexOf(\"application/json\") == -1) {\r\n                    showErrorMessage(\"Mevki bilgileri alınamadı !\");\r\n                    return;\r\n                }\r\n                response.json().then(value => {\r\n                    setMevkiList(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const fetchMahalleList = (mevki) => {\r\n        var url = \"getmahallelist\";\r\n        if (mevki != null)\r\n            url = \"getmahallelist?mevki=\" + mevki\r\n        fetch(url, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                try {\r\n                    const contentType = response.headers.get(\"content-type\");\r\n                    if (contentType == null || contentType.indexOf(\"application/json\") == -1) {\r\n                        showErrorMessage(\"Mahalle bilgileri alınamadı !\");\r\n                        return;\r\n                    }\r\n                    response.json().then(value => {\r\n                        setMahalleList(value)\r\n\r\n                    })\r\n                }\r\n                catch (ex) {\r\n                    showErrorMessage(\"Mahalle bilgileri alınamadı.\")\r\n                }\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchAdaList = (mevki, mahalle) => {\r\n        var query = \"\";\r\n        if (mevki != null)\r\n            query += \"mevki=\" + mevki\r\n        if (isEmpty(mahalle))\r\n            return;\r\n\r\n\r\n\r\n        fetch(\"getadalist?\" + query + \"&mahalle=\" + mahalle, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                const contentType = response.headers.get(\"content-type\");\r\n                if (contentType == null || contentType.indexOf(\"application/json\") == -1) {\r\n                   // showErrorMessage(\"Ada bilgileri alınamadı !\");\r\n                    return;\r\n                }\r\n\r\n                response.json().then(value => {\r\n                    var i = 0;\r\n                    var c = document.getElementById(\"Adaparselistesi\");\r\n                    if (c == null)\r\n                        return;\r\n                    c.innerHTML = \"\";\r\n                    var selected = false;\r\n                    for (i = 0; i < value.length; i++) {\r\n                        var opt = document.createElement('option');\r\n                        opt.value = value[i].name;\r\n                        opt.innerHTML = value[i].name;\r\n                        if (appData.ada == value[i].name && selected != true) {\r\n                            opt.selected = true;\r\n                            selected = true;\r\n                            fetchCoordinates(\"ADA:\" + value[i].id)\r\n                        }\r\n                        c.appendChild(opt);\r\n                    }\r\n                    if (selected == false)\r\n                        c.selectedIndex = -1;\r\n                    setAdaList(value)\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    const fetchAppDynamicFieldList = () => {\r\n        fetch(\"getappfields\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setAllDynamicFilds(sortByKey(data, \"sira\"));\r\n                });\r\n                var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"popover\"]'))\r\n                var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n                    return new bootstrap.Popover(popoverTriggerEl)\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    const fetchSurecList = () => {\r\n\r\n        fetch(\"sureclist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setSurecList(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const onSubmit = (e) => {\r\n        e.preventDefault();\r\n\r\n        if (zorunloBosBirakma == false) {\r\n            var multiselectinputs = allDynamicFilds.filter(k => isVisible(k) == true && k.type == \"select multiple\");\r\n            var notfilled = multiselectinputs.filter(k => k.reqired == true && (isEmpty(appdynamicdata[k.name]) || isEmpty(appdynamicdata[k.name].value)))\r\n            if (notfilled.length > 0) {\r\n                var names = notfilled.map(k => k.name).join(\",\");\r\n                showErrorMessage(\"Zorunlu alanlar boş bırakılamaz\", names);\r\n                return;\r\n            }\r\n        }\r\n\r\n\r\n\r\n\r\n        appData.appData = JSON.stringify(appdynamicdata);\r\n\r\n        if (appData.vekaletenBasvuru == true && appData.vekaletDosyaname == null && zorunloBosBirakma == false) {\r\n            showErrorMessage(\"Vekalet dosyanızı yukleyiniz.\");\r\n            return;\r\n        }\r\n\r\n        fetch(\"saveapplication\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(appData)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async newapp => {\r\n\r\n                    if (newapp.updateCount < 0) {\r\n                        showErrorMessage(newapp.temp);\r\n                        getappdata(newapp.id, setData);\r\n \r\n                    }\r\n                    else {\r\n                        showSuccessMessage(\"Başvuru Bilgileri Güncellenmiştir.\");\r\n                        newapp.changed = false;\r\n                        if (props.setData)\r\n                            props.setData(newapp);\r\n                        setData(newapp);  //this will remove changed property\r\n                        updateTextAreasHeight();\r\n                    }\r\n\r\n                });\r\n\r\n            }\r\n        });\r\n    }\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        appData[target.name] = value;\r\n\r\n        if (target.name == \"mahalle\") {\r\n            setData({ ...appData })\r\n            if (document.getElementById(\"Ada\") != null)\r\n                        document.getElementById(\"Ada\").value = \"\";\r\n            \r\n            fetchAdaList(appData.mevki, value);\r\n        }\r\n        if (target.name == \"mevki\") {\r\n            if (document.getElementById(\"Ada\") != null)\r\n                        document.getElementById(\"Ada\").value = \"\";\r\n            //document.getElementById(\"Mahalle\").innerHTML = \"\";\r\n            setData({ ...appData })\r\n            fetchMahalleList(value);\r\n        }\r\n        appData.changed = true;\r\n\r\n\r\n    }\r\n\r\n\r\n    const handleDynamicChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        appdynamicdata[target.name] = { id: target.id, \"value\": value, \"type\": target.type };\r\n        appData.changed = true;\r\n    }\r\n\r\n\r\n\r\n\r\n    const isReadOnly = (k) => {\r\n\r\n        if (isEmpty(k.role) == false && k.role.split(',').some(x => role.indexOf(\"#\" + x + \"#\") > -1) == false)\r\n            return true;\r\n        return false;\r\n\r\n    }\r\n    const isVisible = (k) => {\r\n        if (k.gizli == true && role.indexOf(UserPermConstants.Gizli_Alanlari_Gorme) == -1)\r\n            return false;\r\n        if (isEmpty(k.basvuruTipi) == false && k.basvuruTipi.split(\",\").includes(appData.basvuruTipi)==false)\r\n            return false;\r\n        return true;\r\n    }\r\n\r\n\r\n    var dynamicFields = \"\";\r\n    if (allDynamicFilds != null) {\r\n        var appDynamicData = appData.appData != null ? JSON.parse(appData.appData) : [];\r\n\r\n        dynamicFields =\r\n            allDynamicFilds.map(k => isVisible(k) == false ? \"\" :\r\n                <div className=\"col-12 col-md-4\">\r\n\r\n \r\n                    <label htmlFor={k.name} className=\"form-label mt-3\" dangerouslySetInnerHTML={{ __html: k.name +((k.reqired == true && zorunloBosBirakma) ? \"*\":\"\") }}></label><br />\r\n                    {k.type == \"select\" ?\r\n                        <select className=\"form-select form-select-sm selectpicker\" id={k.id} name={k.name} onChange={handleDynamicChange} disabled={isReadOnly(k)} required={k.reqired && zorunloBosBirakma}>\r\n                            <option value=\"\" selected={true} hidden></option>\r\n                            {k.initValue != null && k.initValue.split(\",\").map(rec =>\r\n                                <option value={rec} selected={appDynamicData[k.name] != null && appDynamicData[k.name].value == rec}>{rec}</option>)}\r\n                        </select> :\r\n                        k.type == \"select multiple\" ?\r\n                            <Multiselect className=\"p-0 form-control-sm bg-white\"\r\n                                disablePreSelectedValues={isReadOnly(k)}\r\n                                required={true}\r\n                                options={(isReadOnly(k) || isEmpty(k.initValue)) ? [] : k.initValue.split(\",\")}\r\n                                emptyRecordMsg=\"\"\r\n                                isObject={false}\r\n                                onSelect={(selectedList, changedItem) => {\r\n                                    var clist = selectedList.join();\r\n                                    appdynamicdata[k.name] = { id: k.id, \"value\": clist, \"type\": k.type };\r\n                                    appData.changed = true;\r\n                                }}\r\n                                onRemove={(selectedList, changedItem) => {\r\n                                    var clist = selectedList.join();\r\n                                    appdynamicdata[k.name] = { id: k.id, \"value\": clist, \"type\": k.type };\r\n                                    appData.changed = true;\r\n                                }}\r\n                                placeholder=\"\"\r\n                                selectedValues={(appdynamicdata[k.name] == null || isEmpty(appdynamicdata[k.name].value)) ? [] : appdynamicdata[k.name].value.split(\",\")}\r\n                            />\r\n                            :\r\n                            k.type == \"textarea\" ?\r\n                                <textarea onInput={(e) => { e.target.style.height = \"\"; e.target.style.height = e.target.scrollHeight + 2 + \"px\" }} readOnly={isReadOnly(k)} type={k.type} className={k.type != \"checkbox\" ? \"form-control form-control-sm \" : \"form-check-input\"}\r\n                                    id={k.id} name={k.name} key={appData.updateCount} defaultValue={appDynamicData[k.name] != null ? appDynamicData[k.name].value : k.initValue}\r\n                                    defaultChecked={appDynamicData[k.name] != null ? appDynamicData[k.name].value : \"\"} onChange={handleDynamicChange} required={k.reqired} disabled={isReadOnly(k)} required={k.reqired && zorunloBosBirakma}></textarea>\r\n                                :\r\n                                <input readOnly={isReadOnly(k)} type={k.type} className={k.type != \"checkbox\" ? \"form-control form-control-sm \" : \"form-check-input\"}\r\n                                    id={k.id} name={k.name} key={appData.updateCount} defaultValue={appDynamicData[k.name] != null ? appDynamicData[k.name].value : k.initValue}\r\n                                    defaultChecked={appDynamicData[k.name]!=null&&getBolean(appDynamicData[k.name].value)} onChange={handleDynamicChange} required={k.reqired} disabled={isReadOnly(k)} required={k.reqired && zorunloBosBirakma} />\r\n                    }\r\n                </div>\r\n\r\n            )\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const getDuzeltmeKalanSure = () => {\r\n\r\n        if (props.denetimlist == null || props.denetimlist.length == 0 || apptypeList == null)\r\n            return null;\r\n        var k = props.denetimlist.find(rec => rec.activeDenetim == rec.sira);\r\n        var r = apptypeList.find(x => x.name == k.Name)\r\n        if (r == null || r.duzeltmeDeadline == null || r.duzeltmeDeadline == \"\" || appData.sonDuzeltmeTalebiTarihi == null) return null;\r\n        var d = Number(r.duzeltmeDeadline);\r\n        var diffDays = d - calcBusinessDays(new Date(Date.now()), new Date(appData.sonDuzeltmeTalebiTarihi.split(\" \")[0]))\r\n        var i = diffDays > d * 2 / 3 ? 0 : diffDays > d / 3 ? 1 : diffDays > 0 ? 2 : 3;\r\n\r\n        return <div className={\"ms-2 ps-2 pe-2 text-center fw-bold \" + suretxt[i]} style={{ \"background-color\": surebg[i], \"border-radius\": 5 }}>Kalan Süre: {diffDays}</div>\r\n    }\r\n\r\n\r\n    const getDurumName = (i) => {\r\n        var r = surecList.find(element => element.id == i);\r\n        if (r == null) return \"\";\r\n        return r.name;\r\n    }\r\n    const validateNumberAndForwardSlash = (event) => {\r\n        var key = event.which;\r\n        if (key >= 48 && key <= 57 || key == 47) {\r\n            return true;\r\n        } else {\r\n\r\n            event.preventDefault()\r\n        }\r\n    }\r\n    const validateSelection = (event) => {\r\n        var val = event.target.value;\r\n        if (AdaList.some(x => x.name == val) == false) {\r\n            showErrorMessage(val + \" geçerli ada/parsel listesinde bulunmamaktadır.\");\r\n            document.getElementById(\"Ada\").value = \"\";\r\n        }\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const checkEnlemBoylem = (event) => {\r\n\r\n        if (appData.enlem == null || appData.enlem.length < 5 || appData.boylam == null || appData.boylam.length < 5) {\r\n            showErrorMessage(\"Başvuru sırasında konum verisi girilmemiştir\");\r\n            event.preventDefault()\r\n            return false;\r\n        }\r\n        return true;\r\n\r\n    }\r\n\r\n\r\n    const chengeVekaletDurum = () => {\r\n        appData.changed = true;\r\n        if (appData.vekaletenBasvuru == true) {\r\n            appData.vekaletenBasvuru = false;\r\n            arsaSahibiTemp = [appData.arsaSahibi, appData.arsaSahibiTel, appData.arsaSahibiTC];\r\n\r\n            appData.arsaSahibi = capitalizeWords(userData.name + \" \" + userData.family);\r\n            appData.arsaSahibiTC = userData.tc;\r\n            appData.arsaSahibiTel = userData.tel;\r\n            document.getElementById(\"arsaSahibi\").disabled = true;\r\n            document.getElementById(\"arsaSahibiTel\").disabled = true;\r\n            document.getElementById(\"arsaSahibiTC\").disabled = true;\r\n            document.getElementById(\"vekaletbuttondiv\").hidden = true;\r\n            document.getElementById(\"vekilbilgileridiv\").hidden = true;\r\n\r\n            document.getElementById(\"changevekaletbutton\").innerHTML = \" (Taşınmaz Sahibi) \";\r\n\r\n            document.getElementById(\"vekilName\").reqired = false;\r\n            document.getElementById(\"vekilTC\").reqired = false;\r\n            document.getElementById(\"vekilTel\").reqired = false;\r\n        }\r\n        else {\r\n            appData.vekilName = capitalizeWords(userData.name + \" \" + userData.family);\r\n            appData.vekilTC = userData.tc;\r\n            appData.vekilTel = userData.tel;;\r\n            appData.vekaletenBasvuru = true;\r\n\r\n            if (arsaSahibiTemp != null) {\r\n                appData.arsaSahibi = arsaSahibiTemp[0];\r\n                appData.arsaSahibiTC = arsaSahibiTemp[1];\r\n                appData.arsaSahibiTel = arsaSahibiTemp[2];\r\n            }\r\n            else {\r\n                appData.arsaSahibi = \"\";\r\n                appData.arsaSahibiTC = \"\";\r\n                appData.arsaSahibiTel = \"\";\r\n            }\r\n\r\n\r\n            document.getElementById(\"arsaSahibi\").disabled = true;\r\n            document.getElementById(\"arsaSahibiTel\").disabled = true;\r\n            document.getElementById(\"arsaSahibiTC\").disabled = true;\r\n            document.getElementById(\"vekaletbuttondiv\").hidden = true;\r\n            document.getElementById(\"vekilbilgileridiv\").hidden = true;\r\n            document.getElementById(\"changevekaletbutton\").innerHTML = \" (Vekil) \";\r\n            document.getElementById(\"arsaSahibi\").disabled = false;\r\n            document.getElementById(\"arsaSahibiTel\").disabled = false;\r\n            document.getElementById(\"arsaSahibiTC\").disabled = false;\r\n            document.getElementById(\"vekaletbuttondiv\").hidden = false;\r\n            document.getElementById(\"vekilbilgileridiv\").hidden = false;\r\n\r\n\r\n            document.getElementById(\"vekilName\").reqired = zorunloBosBirakma;\r\n            document.getElementById(\"vekilTC\").reqired = zorunloBosBirakma;\r\n            document.getElementById(\"vekilTel\").reqired = zorunloBosBirakma;\r\n\r\n            document.getElementById(\"vekilName\").value = capitalizeWords(userData.name + \" \" + userData.family);\r\n            document.getElementById(\"vekilTC\").value = userData.tc;\r\n            document.getElementById(\"vekilTel\").value = userData.tel;\r\n\r\n\r\n        }\r\n        document.getElementById(\"arsaSahibi\").value = appData.arsaSahibi;\r\n        document.getElementById(\"arsaSahibiTel\").value = appData.arsaSahibiTel;\r\n        document.getElementById(\"arsaSahibiTC\").value = appData.arsaSahibiTC;\r\n\r\n    }\r\n\r\n\r\n\r\n    if (surecList == null) {\r\n        return <div className=\"row align-items-center justify-content-center\" >\r\n            <div className=\"col-12 text-center\">\r\n                <div className=\"spinner-border \" ></div>\r\n            </div>\r\n        </div>\r\n    }\r\n\r\n    const updateTextAreasHeight = (event) => {\r\n        var textareas = document.getElementsByTagName(\"textarea\");\r\n        if (textareas != null)\r\n            for (let i = 0; i < textareas.length; i++) {\r\n                textareas[i].style.height = \"\"; textareas[i].style.height = textareas[i].scrollHeight + 2 + \"px\"\r\n            }\r\n\r\n    }\r\n\r\n    const SendFiles = (event) => {\r\n        document.getElementById(\"fileuploadsp\").hidden = false;\r\n        var selectedFile = { file: event.target.files[0] }\r\n        var formData = new FormData();\r\n        formData.append(\"file\", selectedFile.file);\r\n        formData.append(\"caption\", selectedFile.file.name);\r\n        formData.append(\"appid\", appData.id);\r\n        axios.post(\r\n            \"submitbasvuruvekaletfile\",\r\n            formData,\r\n            {\r\n                headers: {\r\n                    \"Content-type\": \"multipart/form-data\",\r\n                },\r\n            }\r\n        ).then(res => {\r\n            document.getElementById(\"fileuploadsp\").hidden = true;\r\n            document.getElementById(\"fileuploadsp\").hidden = true;\r\n            var locModal = document.getElementById('myModal');\r\n            locModal.style.display = \"none\";\r\n            locModal.classList.add(\"hide\");\r\n            //getappdata(appData.id, setData);\r\n            setData({ ...appData, vekaletDosyaname: selectedFile.file.name })\r\n\r\n        })\r\n            .catch(err => { showErrorMessage(err); })\r\n    }\r\n\r\n\r\n    const handleSelectedFile = (event, filetyp) => {\r\n        if (event.target.files[0] != null) {\r\n            SendFiles([{ file: event.target.files[0] }]);\r\n        }\r\n    }\r\n\r\n\r\n\r\n    updateTextAreasHeight();\r\n\r\n\r\n    var googlemap = <GMapLatLang appData={appData} changeComponent={props.changeComponent} polygon={mahalleCoordinates} />\r\n\r\n    return <div><form action=\"submitapplication\" method=\"POST\" onSubmit={onSubmit} className=\"m-0 p-0 mt-1\" key={appData}>\r\n\r\n\r\n        < div className=\"bg-white rounded-3 pb-4 border-bottom \" >\r\n            < div className=\"row align-items-center justify-content-center border-bottom\" >\r\n                <div className=\"col-11 mt-2 text-center pb-2 mb-3 \">\r\n                    <span className=\"text-muted text-nowrap\">Başvuru Durumu: </span>\r\n                    <span className=\"text-info fw-bold rounded p-1 ps-3 pe-3 text-nowrap d-block d-md-inline\" style={{\r\n                        \"background-color\": \"#c9f7f5\", \"white-space\": \"pre\"\r\n                    }}>{getDurumName(appData.basvuruDurumu)} </span>\r\n                    {appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Ucret_Bekleniyor &&\r\n                        <span><span className=\"text-danger text-nowrap ms-1\"> ( {appData.ucret} TL {globalData != null && isEmpty(globalData.paymentLink) == false && <a href={globalData.paymentLink} target=\"_blank\" className=\"text-decoration-none align-middle text-primary\" >Ödeme Yap</a>}\r\n                            {harcFileList.length > 0 && (role.indexOf(UserPermConstants.HARC_DOSYALARI) > -1 || role.indexOf(UserPermConstants.Kontrolor_Dosyasi_Yukleme)) && <a href={\"/getharcfile?id=\" + harcFileList[0].id} className=\"text-decoration-none align-middle ms-2\" >Harç Dosyası</a>} )\r\n</span>\r\n \r\n                        </span>\r\n                    }\r\n                    {appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Taslak &&\r\n                        <span className=\"text-info fw-bold\">( Başvuru Henüz Gönderilmedi )</span>\r\n                    }\r\n\r\n                </div>\r\n                <div className=\"col-1 text-end\">\r\n                    <a href=\"/#\" onClick={() => { getappdata(appData.id, setData); props.refreshParent(); }} className=\"text-decoration-none\" ><i className=\"fa fa-refresh\" style={{ \"font-size\": \"18px\" }}></i></a>\r\n                </div>\r\n\r\n            </div >\r\n\r\n            <div className=\"row pb-2 border-bottom mt-4\" >\r\n                <div className=\"col-12 col-md-1 text-center\">\r\n                    <img src={require('../Header/logo2.png').default} className=\"w-100\" />\r\n\r\n\r\n                </div>\r\n                <div className=\"col-12 col-md-6 \">\r\n                    <h5> <b>{(appType.adaAktif == true || isEmpty(appData.ada) == false) ? appData.ada + \"-\" + appData.arsaSahibi : appData.basvuruSahibi}</b></h5>\r\n                    <div className=\"text-muted fw-bold mb-2\">Evrak Numarası: {appData.id}</div>\r\n                    {/*<i class=\"fa fa-map-marker text-muted me-1\" ></i> <a onClick={checkEnlemBoylem} target=\"_blank\" href={\"https://imar.menderes.bel.tr/Service/\" + toUpperCaseTurkce(appData.mahalle + \"/\" + appData.ada)} className=\"fw-bold text-decoration-none pt-0 me-4\" >CBS  </a>*/}\r\n                    {/*<i class=\"fa fa-map-marker text-muted me-1\" ></i> <a onClick={checkEnlemBoylem} target=\"_blank\" href={\"https://www.google.com/maps/@\" + appData.enlem + \",\" + appData.boylam + \",18z\"} className=\"fw-bold text-decoration-none pt-0 me-4\"> Google Map </a>*/}\r\n                    <i class=\"fa fa-map-marker text-muted \" ></i> <button key={mahalleCoordinates == null ? 1 : mahalleCoordinates.length} onClick={() => props.changeComponent(googlemap)} className=\"btn btn-link fw-bold ps-0 text-decoration-none pt-0 me-2\"> Google Map </button>\r\n                    <i class=\"fa fa-map-marker text-muted \" ></i> <a onClick={checkEnlemBoylem} target=\"_blank\" href={\"https://parselsorgu.tkgm.gov.tr/#ara/cografi/\" + appData.enlem + \"/\" + appData.boylam} className=\"text-decoration-none pt-0 fw-bold me-2\">TKGM </a>\r\n  \r\n                    {role.indexOf(UserPermConstants.Kalan_Sure_Gorme) != -1 && <div><div className=\"text-muted pt-2 mt-2 d-inline-flex\" >{getDenetimSure(kontroller)}</div></div>}\r\n                    {appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Duzeltme_Bekleniyor && <div><div className=\"text-info pt-2 mt-2 d-inline-flex fw-bold\" >Düzeltme Talep Tarihi : {(appData.sonDuzeltmeTalebiTarihi)}  {getDuzeltmeKalanSure()}</div></div>}\r\n                    <div className=\"text-muted pt-2 fw-bold\" id=\"headlastnote\"></div>\r\n                </div>\r\n                <div className=\"col-12 col-md-5\">\r\n                    {/*<div className=\"row\">*/}\r\n                    {/*    <div className=\"col-12 col-md-4 rounded\" >Kontrolör</div>*/}\r\n                    {/*    <div className=\"col-12 col-md-8 rounded \" >*/}\r\n                    {/*        {kontroller != null ? <UserLabel user={{ userName: kontroller.userName }} picSize={28} /> :*/}\r\n                    {/*            getDurumName(appData.basvuruDurumu)*/}\r\n                    {/*        }*/}\r\n\r\n                    {/*    </div>*/}\r\n                    {/*</div>*/}\r\n                    <div className=\"row mt-2\">\r\n                        <div className=\"col-12 col-md-4 rounded\" >Başvuru</div>\r\n                        <div className=\"col-12 col-md-8 rounded \" ><span className=\"p-1 ps-3 pe-3 rounded-3 text-center text-success fw-bold\" style={{ \"background-color\": \"#d6ffe0\" }}>{appData.basvuruTarihi} </span></div>\r\n                    </div>\r\n                    <div className=\"row mt-2\">\r\n                        <div className=\"col-12 col-md-4 rounded\" >Kabul</div>\r\n                        <div className=\"col-12 col-md-8 rounded \" ><span className=\"p-1 ps-3 pe-3 rounded-3 text-center text-primary fw-bold\" style={{ \"background-color\": \"#e1f0ff\" }}>{appData.kabulEdilmeTarihi} </span></div>\r\n                    </div>\r\n                    <div className=\"row mt-2\">\r\n                        <div className=\"col-12 col-md-4 rounded\" >Tamamlanma</div>\r\n                        <div className=\"col-12 col-md-8 rounded \" ><span className=\"p-1 ps-3 pe-3 rounded-3 text-center text-danger fw-bold\" style={{ \"background-color\": \"#ffe2e5\" }}>{appData.surecTamamlanmaTarihi} </span></div>\r\n                    </div>\r\n                    <div className=\"row mt-2\">\r\n                        <div className=\"col-12 col-md-4 rounded\" >Paylaşılanlar</div>\r\n                        <div className=\"col-12 col-md-8 rounded \" ><SharedUsersPanel appData={appData} showCompact={true} /></div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <fieldset disabled={disablesabitsorular} ref={ref}>\r\n                <div className=\"row ms-4 me-4 mt-2 \">\r\n                    <div className=\"align-items-center justify-content-center \" >\r\n                        <div id=\"myscript\"></div>\r\n\r\n\r\n                        <div className=\"row mt-1\">\r\n                            <div className=\"col-12 col-md-4\">\r\n                                <label htmlFor=\"BasvuruDurumu\" className=\"form-label\">Başvuru Durumu</label>\r\n                                <input type=\"text\" disabled readOnly={true} className=\"form-control form-control-sm\" id=\"BasvuruDurumu\" placeholder=\"BasvuruDurumu\" name=\"BasvuruDurumu\" value={getDurumName(appData.basvuruDurumu)} onChange={handleInputChange} />\r\n                            </div>\r\n                            <div className=\"col-12 col-md-4\">\r\n                                <label htmlFor=\"BaşvuruTipi\" className=\"form-label\">Başvuru Tipi</label>\r\n                                <div >\r\n                                    <input type=\"text\" disabled readOnly={true} className=\"form-control form-control-sm\" id=\"basvuruTipi\" placeholder=\"basvuruTipi\" name=\"basvuruTipi\" value={appData.basvuruTipi} onChange={handleInputChange} />\r\n\r\n                                    {/*<select disabled readOnly={true} className=\"form-select form-select-sm\" defaultValue={appData.basvuruTipi} key={appData.basvuruTipi} name=\"basvuruTipi\" value={appData.basvuruTipi} onChange={handleInputChange} >*/}\r\n                                    {/*    */}{/*{props.apptypeList.map(a => <option value={a.name}>*/}\r\n                                    {/*    */}{/*    {a.name}*/}\r\n                                    {/*    */}{/*</option>)}*/}\r\n                                    {/*</select>*/}\r\n                                </div>\r\n                            </div>\r\n\r\n                            <div className=\"col-12 col-md-4\">\r\n\r\n                                <label htmlFor=\"basvuruYapan\" className=\"form-label\">\r\n                                    Başvuru Yapan\r\n                                    {isEmpty(appData.ada) == false &&\r\n                                        <button type=\"button\" id=\"changevekaletbutton\" href=\"#\" onClick={() => {\r\n                                            chengeVekaletDurum()\r\n                                            var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"popover\"]'))\r\n                                            var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n                                                return new bootstrap.Popover(popoverTriggerEl)\r\n                                            })\r\n                                        }} className=\"btn btn-sm btn-link p-0 m-0 norder-0 text-decoration-none shadow-none\">\r\n                                            {appData.vekaletenBasvuru == true ? \" (Vekil) \" : \" (Taşınmaz Sahibi)\"} </button>\r\n                                    }\r\n\r\n\r\n                                    <span className=\"\" id=\"vekaletbuttondiv\" href=\"#\" hidden={appData.vekaletenBasvuru != true}>\r\n                                        - <a type=\"button\" onClick={() => {\r\n                                            initModal();\r\n                                            document.getElementById('myModal').style.display = \"block\";\r\n                                            document.getElementById('myModal').classList.remove(\"hide\");\r\n\r\n                                        }} className=\"text-decoration-none m-0 p-0\">Dosya</a>\r\n                                        <button type=\"button\" className=\"btn btn-sm btn-secondary p-0 ps-1 pe-1 ms-2  fw-bold\" id=\"mypopover\" data-bs-trigger=\"focus\" data-bs-toggle=\"popover\" title=\"AÇIKLAMA\" data-bs-content=\"Taşınmaz sahibi adına başvuru yapabileceğinizi gösteren belgedir. Bu belge, noter onaylı vekaletname olabileceği gibi Yapı Denetim Başvuruları ve İmar Uygulamalarına yönelik  başvurularda taşınmaz sahibi ile aranızda yaptığınız sözleşme de olabilir.\">?</button>\r\n\r\n                                    </span>\r\n\r\n                                </label>\r\n                                <input type=\"text\" disabled readOnly={true} className=\"form-control form-control-sm\" id=\"basvuruYapan\" value={appData.basvuruYapan} key={appData.basvuruYapan} placeholder=\"Başvuru Yapan\" name=\"basvuruYapan\" onChange={handleInputChange} required={zorunloBosBirakma} />\r\n\r\n                            </div>\r\n                        </div>\r\n\r\n                        {userData != null &&\r\n                            <div className=\"row mt-3\" id=\"vekilbilgileridiv\" hidden={appData.vekaletenBasvuru != true}>\r\n                                <div className=\"col-12 col-md-4\">\r\n\r\n                                    <label className=\"form-label\">Vekil</label>\r\n                                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"vekilName\" name=\"vekilName\" disabled={role.indexOf(UserPermConstants.Basvuru_Vekili_Update) == -1} defaultValue={capitalizeWords(appData.vekilName)} onChange={handleInputChange} />\r\n\r\n                                </div>\r\n                                <div className=\"col-12 col-md-4\">\r\n                                    <label className=\"form-label\">Vekil Telefon Numarası</label>\r\n                                    <input type=\"tel\" className=\"form-control form-control-sm\" id=\"vekilTel\" name=\"vekilTel\" disabled={role.indexOf(UserPermConstants.Basvuru_Vekili_Update) == -1} defaultValue={appData.vekilTel} onChange={handleInputChange} />\r\n                                </div>\r\n\r\n                                <div className=\"col-12 col-md-4\">\r\n\r\n                                    <label className=\"form-label\">Vekil T.C. </label>\r\n                                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"vekilTC\" name=\"vekilTC\" disabled={role.indexOf(UserPermConstants.Basvuru_Vekili_Update) == -1} defaultValue={appData.vekilTC} onChange={handleInputChange} />\r\n\r\n                                </div>\r\n\r\n                            </div>}\r\n\r\n\r\n                       {appType.tasinamazSahibiAktif == true && <div className=\"row mt-3\">\r\n                             <div className=\"col-12 col-md-4\">\r\n                                <label htmlFor=\"arsaSahibi\" className=\"form-label\">Taşınmaz Sahibi</label>\r\n                                <input disabled={appData.vekaletenBasvuru != true} type=\"text\" className=\"form-control form-control-sm\" id=\"arsaSahibi\" defaultValue={appData.arsaSahibi} key={appData.arsaSahibi} placeholder=\"Taşınmaz Sahibi\" name=\"arsaSahibi\" onChange={handleInputChange} required={appType.tasinamazSahibiZorunlu && zorunloBosBirakma} />\r\n                            </div>\r\n                            <div className=\"col-12 col-md-4\">\r\n                                <label htmlFor=\"arsaSahibiTel\" className=\"form-label\">Taşınmaz Sahibi Telefon Numarası</label>\r\n                                <input disabled={appData.vekaletenBasvuru != true} type=\"tel\" pattern=\"[5-5]{1}[0-9]{2}[0-9]{7}\" maxLength=\"10\" placeholder=\"5__ ___ ____\" className=\"form-control form-control-sm\" id=\"arsaSahibiTel\" defaultValue={appData.arsaSahibiTel} name=\"arsaSahibiTel\" onChange={handleInputChange} required={appType.tasinamazSahibiZorunlu && zorunloBosBirakma} key={appData.arsaSahibiTel} />\r\n\r\n                            </div>\r\n\r\n                            <div className=\"col-12 col-md-4\">\r\n                                <label htmlFor=\"basvuruYapan\" className=\"form-label\">Taşınmaz Sahibi T.C. </label>\r\n                                <input disabled={appData.vekaletenBasvuru != true} type=\"text\" pattern=\"[0-9]{1,20}\" maxLength=\"11\" className=\"form-control form-control-sm\" id=\"arsaSahibiTC\" defaultValue={appData.arsaSahibiTC} key={appData.arsaSahibiTC} placeholder=\"Taşınmaz Sahibi T.C.\" name=\"arsaSahibiTC\" onChange={handleInputChange} required={appType.tasinamazSahibiZorunlu && zorunloBosBirakma} />\r\n                            </div>\r\n                        </div>}\r\n\r\n\r\n                        <fieldset disabled={disableaddresarea} ref={ref}>\r\n\r\n                            <div className=\"row mt-3\">\r\n                                {appType.mevkiAktif == true && <div className=\"col-12 col-md-4\">\r\n                                    <label htmlFor=\"Mahalle\" className=\"form-label\">Mevki</label>\r\n                                    <input disabled={true} type=\"text\" className=\"form-control form-control-sm\" value={appData.mevki} key={appData.mevki}  />\r\n\r\n                                    {/*<select className=\"form-select form-select-sm\" id=\"Mevki\" name=\"mevki\" key={appData.mevki} placeholder=\"Mevki\" onChange={handleInputChange} required={appType.mevkiZorunlu} disabled value={appData.mevki}>*/}\r\n                                    {/*    {*/}\r\n                                    {/*        MevkiList.map(x => <option value={x.name} > {x.name}</option>)*/}\r\n                                    {/*    }*/}\r\n\r\n                                    {/*</select>*/}\r\n                                </div>}\r\n                                {appType.mahalleAktif == true && <div className=\"col-12 col-md-4\">\r\n                                    <label htmlFor=\"Mahalle\" className=\"form-label\">Mahalle</label>\r\n                                    <input disabled={true} type=\"text\" className=\"form-control form-control-sm\" value={appData.mahalle} key={appData.mahalle} />\r\n\r\n                                    {/*<select className=\"form-select form-select-sm\" id=\"Mahalle\" name=\"mahalle\" key={appData.mahalle} placeholder=\"Mahalle\" onChange={handleInputChange} required={appType.mahalleZorunlu} disabled value={appData.mahalle}>*/}\r\n                                    {/*    <option value=\"\" ></option>*/}\r\n                                    {/*    {*/}\r\n                                    {/*        MahalleList.map(x => <option value={x.name} > {x.name}</option>)*/}\r\n                                    {/*    }*/}\r\n\r\n                                    {/*</select>*/}\r\n                                </div>}\r\n                                {appType.adaAktif == true && <div className=\"col-12 col-md-4\">\r\n\r\n                                    <label htmlFor=\"Ada\" className=\"form-label\">Ada/Parsel</label>\r\n                                    <input autoComplete=\"true\" list=\"Adaparselistesi\" className=\"form-control form-control-sm\" key={appData.ada} id=\"Ada\" placeholder=\"Ada Parsel\" name=\"ada\" disabled defaultValue={appData.ada} key={appData.ada}\r\n                                        onChange={(e) => { handleInputChange(e); var ada = AdaList.find(x => x.name == e.target.value); if (!isEmpty(ada)) fetchCoordinates(\"ADA:\" + ada.id) }} onKeyPress={validateNumberAndForwardSlash} onBlur={validateSelection} required={appType.adaZorunlu && zorunloBosBirakma} />\r\n                                    <datalist id=\"Adaparselistesi\">fill by fetchsureclist</datalist>\r\n\r\n\r\n                                </div>}\r\n                            </div>\r\n\r\n                            <div className=\"row mt-3 pb-2\">\r\n                                {appType.idariMahalleAktif == true && <div className=\"col-12 col-md-4\" id=\"idarimahalleblock\">\r\n                                    <label htmlFor=\"Mahalle\" className=\"form-label\">Idari Mahalle </label>\r\n                                    <select className=\"form-select form-select-sm\" id=\"IdariMahalle\" name=\"idariMahalle\" placeholder=\"İdari Mahalle\" onChange={handleInputChange} defaultValue={appData.idariMahalle} key={appData.idariMahalle} required={appType.idariMahalleZorunlu && zorunloBosBirakma} >\r\n                                        <option selected> {appData.idariMahalle}</option>\r\n                                    </select>\r\n                                </div>}\r\n\r\n                                {appType.sokakAktif == true && <div className=\"col-12 col-md-4\">\r\n                                    <label htmlFor=\"Enlem\" className=\"form-label\">Sokak</label>\r\n                                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"Sokak\" placeholder=\"Sokak\" name=\"sokak\" onChange={handleInputChange} defaultValue={appData.sokak} key={appData.sokak} required={appType.sokakZorunlu && zorunloBosBirakma} />\r\n                                </div>}\r\n                                {appType.noAktif == true && <div className=\"col-12 col-md-4\">\r\n                                    <label htmlFor=\"Boylam\" className=\"form-label\">No</label>\r\n                                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"No\" placeholder=\"No\" name=\"no\" onChange={handleInputChange} defaultValue={appData.no} key={appData.no} required={appType.noZorunlu && zorunloBosBirakma} />\r\n                                </div>}\r\n\r\n                            </div>\r\n\r\n                            {!isEmpty(appData.ada) && !isEmpty(appData.mahalle) &&\r\n                                <div className=\"row mt-2 pb-2\">\r\n                                    <div className=\"col-12 col-md-4\">\r\n                                        <label htmlFor=\"Enlem\" className=\"form-label\">Enlem</label>\r\n                                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"Enlem\" placeholder=\"Enlem\" name=\"Enlem\" onChange={handleInputChange} defaultValue={appData.enlem} key={appData.enlem} required={false && zorunloBosBirakma} />\r\n                                    </div>\r\n                                    <div className=\"col-12 col-md-4\">\r\n                                        <label htmlFor=\"Boylam\" className=\"form-label\">Boylam</label>\r\n                                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"Boylam\" placeholder=\"Boylam\" name=\"Boylam\" onChange={handleInputChange} defaultValue={appData.boylam} key={appData.boylam} required={false && zorunloBosBirakma} />\r\n                                    </div>\r\n                                </div>}\r\n                        </fieldset>\r\n                    </div>\r\n                </div>\r\n            </fieldset>\r\n        </div >\r\n\r\n\r\n        <fieldset disabled={disabledinamiksorular}>\r\n\r\n            <div className=\"bg-white rounded-3 mt-1\" >\r\n                <div className=\"row \" >\r\n                    <div className=\"align-items-center justify-content-center \" >\r\n\r\n                        <div className=\"row mt-1 ms-4 me-4 pb-3 mb-3\">\r\n                            {dynamicFields}\r\n                        </div>\r\n\r\n                        {/*{fvisible(\"enlem\", sabitsorulistData, appData) && fvisible(\"boylam\", sabitsorulistData, appData) &&*/}\r\n                        {/*    <div className=\"row mt-1 ms-4 me-4 pb-3 border-top\">*/}\r\n\r\n                        {/*        <div className=\"col-12 pt-3  mt-3 rounded-3\" style={{ \"min-height\": \"350px\" }}>*/}\r\n                        {/*            <GMapLatLang appData={appData} setLatLang={setLatLang} polygon={mahalleCoordinates} key={mahalleCoordinates == null ? 1 : mahalleCoordinates.length} />*/}\r\n                        {/*        </div>*/}\r\n                        {/*    </div>}*/}\r\n\r\n\r\n\r\n\r\n\r\n\r\n                        <div className=\"row mt-3 border-top pt-3\">\r\n\r\n                            {(appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Taslak\r\n                                || appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Duzeltme_Bekleniyor\r\n                                || appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Ucret_Bekleniyor\r\n                                || appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_GeriGonderildi\r\n                                || role.indexOf(UserPermConstants.Basvurudan_Sonra_Sabit_Editleme) > -1\r\n                                || role.indexOf(UserPermConstants.Basvurudan_Sonra_Dinamik_Editleme) > -1) &&\r\n                                <div className=\"col\">\r\n                                    {appData.archived != true ?\r\n                                        <button type=\"submit\" className=\"btn btn-sm btn-primary mb-2 rounded-3  \">Kaydet</button>\r\n                                        : <span className=\"text-secondary fw-bold\">Arşivlenen Başvuru Güncellenemez</span>}\r\n                                </div>\r\n                            }\r\n\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </fieldset>\r\n        <div className=\"col text-end mt-3  p-0\">\r\n\r\n        </div>\r\n\r\n    </form>\r\n\r\n        <div className=\"modal\" id=\"myModal\" >\r\n            <div class=\"modal-dialog modal  modal-dialog-centered \">\r\n                <div class=\"modal-content\" >\r\n                    <div class=\"modal-body\" id=\"mymodalbody\" >\r\n\r\n                        <div className=\"row\">\r\n                            <div className=\"col-10\">\r\n\r\n                                <label for=\"formFile\" class=\"form-label\">Vekalet Dosyası Yukle</label>\r\n                                <br />\r\n                                <input class=\"form-control form-control-sm mt-2\" type=\"file\" accept=\"*.pdf\" id=\"formFile\" onChange={(e) => SendFiles(e)} />\r\n                            </div>\r\n\r\n                            <div className=\"col-2 text-end\">\r\n                                <div class=\"spinner-border  spinner-border-sm\" hidden id=\"fileuploadsp\" ></div>\r\n                            </div>\r\n\r\n\r\n                        </div>\r\n\r\n                        <div className=\"row mt-3\">\r\n                            <div className=\"col-12\">\r\n                                {appData.vekaletDosyaname != null && <a className=\"text-decoration-none\" href={\"/getbasvuruvekaletfile?appid=\" + appData.id} id=\"vekaletdosyaname\" download={appData.vekaletDosyaname}>{appData.vekaletDosyaname} </a>}\r\n                            </div>\r\n                        </div>\r\n\r\n                    </div>\r\n                    <div class=\"modal-footer\">\r\n\r\n\r\n                        <button type=\"button\" class=\"btn btn-danger\" id=\"downclosemodal\" data-bs-dismiss=\"modal\">Kapat</button>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    </div>\r\n\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { ajaxFail, showConfirmMessage, useGlobalState, sendpost, sendget, isEmpty, showErrorMessage } from '../GlobalState.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\n\r\nexport default function TarifeMappingList(props) {\r\n    var postdata = {};\r\n    const tarifeMapping = props.tarifeMapping;\r\n    const tarifeCetveli = props.tarifeCetveli;\r\n    var sorular = [];\r\n    const [role, setRole] = useGlobalState('role');\r\n\r\n    const [listData, setListData] = useState([]);\r\n    const [mappedTarifeList, setMappedTarifeList] = useState([]);\r\n    var changeComponent = props.changeComponent;\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n    if (tarifeMapping.tarife == null)\r\n        tarifeMapping.tarife = {}\r\n\r\n        \r\n\r\n    if (tarifeMapping.tarife!=null&& isEmpty(tarifeMapping.tarife.sorular) == false) {\r\n        sorular = JSON.parse(tarifeMapping.tarife.sorular);\r\n        if (sorular.map == null) {\r\n            showErrorMessage(\"Sorular Listesi Hatalı \" + tarifeMapping.tarife.sorular);\r\n            sorular = [];\r\n        }\r\n    }\r\n\r\n\r\n    const fetchList = () => {\r\n        sendget(\"tariferowlist?mappingid=\" + tarifeMapping.id, \"spinner1\", (response) => {\r\n            response.json().then(value => {\r\n                /*value.forEach(x => x.cevaplar = JSON.parse(x.data))\r\n\r\n                if (isEmpty(tarifeMapping.tarife.formul)==false)\r\n                    for (var t of tarifeCetveli)\r\n                        if (tarifeMapping.tarife.formul.includes(t.name))\r\n                        value.forEach(x => x.cevaplar[t.name] = t.deger);*/\r\n                setListData(value)\r\n            })\r\n        })\r\n    }\r\n\r\n\r\n    \r\n\r\n\r\n    const tarifemappingsil = (rec) => {\r\n        showConfirmMessage(rec.id + \" numaralı kayıt silinsin mı?\", \"Eklenen tüm alt kayıtlar da silinecek\", \"Evet\", \"Hayır\", () => {\r\n\r\n\r\n            sendpost(\"removetarifemapping\", rec, \"spinner1\", (response) => {\r\n                response.json().then(value => {\r\n                    props.setMappedTarifeList(value)\r\n                })\r\n            })\r\n        })\r\n    }\r\n\r\n        const sil = (rec) => {\r\n            showConfirmMessage(rec.id + \" numaralı kayıt silinsin mı?\", \"\", \"Evet\", \"Hayır\", () => {\r\n\r\n\r\n                sendpost(\"removetariferow\", rec, \"spinner1\", (response) => {\r\n                    response.json().then(value => {\r\n                        setListData(value)\r\n                    })\r\n                })\r\n            })\r\n\r\n        }\r\n\r\n\r\n\r\n        const addNewTarifeRow = () => {\r\n\r\n            var rec = { mappingid: tarifeMapping.id }\r\n\r\n            for (var soru of sorular) {\r\n                if (postdata[soru.name] == null || isEmpty(postdata[soru.name])) {\r\n                    if (!isEmpty(soru.options)) {\r\n                        postdata[soru.name] = soru.options;\r\n                    }\r\n                    else {\r\n                        showErrorMessage(soru.name + \" alanı boş olamaz\");\r\n                        return;\r\n                    }\r\n                }\r\n            }\r\n\r\n\r\n            rec.data = JSON.stringify(postdata);\r\n\r\n            sendpost(\"savetariferow\", rec, \"spinner1\", (response) => {\r\n                response.json().then(value => {\r\n                    if (value.length == 1 && value[0].id < 0) {\r\n                        showErrorMessage(value[0].mapper);\r\n                    }\r\n                    else {\r\n                        setListData(value);\r\n                        var allSelectElements = document.querySelectorAll('select');\r\n                        allSelectElements.forEach(select => {\r\n                            select.selectedIndex = -1;\r\n                        });\r\n                        allSelectElements = document.querySelectorAll('input');\r\n                        allSelectElements.forEach(select => {\r\n                            select.value = \"\";\r\n                            for (var soru of sorular) {\r\n                                if (soru.name == select.name && !isEmpty(soru.options))\r\n                                    select.value = soru.options;\r\n                            }\r\n                        });\r\n                    }\r\n                })\r\n            })\r\n\r\n\r\n        }\r\n\r\n    const formatWithDots = (numberString) => {\r\n        return numberString.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\");\r\n    }\r\n\r\n        const handleInputChange = (event) => {\r\n            const target = event.target;\r\n            const value = target.type === 'checkbox' ? target.checked : target.value;\r\n            postdata[target.name] = value.trim();\r\n        }\r\n\r\n    var total = 0;\r\n    listData.forEach(x => total += Number(x.result.replaceAll(\",\", \".\")));\r\n    \r\n    props.setTotal(\"T\" + tarifeMapping.id,total)\r\n\r\n\r\n        return (\r\n            <div className=\"border  rounded border-light\">\r\n                <div className=\"row\">\r\n                    <div className=\"col-9 fw-bold text-primary\">\r\n                        {tarifeMapping.id} - {tarifeMapping.tarife.name}\r\n                        <button hidden={role.indexOf(UserPermConstants.Tarife_Duzenleme) == -1}  className=\"btn  fw-bold btn-sm shadow-none ms-2 text-warning\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target={\"#formul\" + tarifeMapping.id} aria-expanded=\"false\" aria-controls={\"formul\" + tarifeMapping.id}>\r\n                           F\r\n                        </button>\r\n                       \r\n\r\n                        \r\n                    </div>\r\n                    <div className=\"col-1 text-end \">\r\n                        <span class=\"ms-1 spinner-border spinner-border-sm\" id=\"spinner1\" hidden></span>\r\n                    </div>\r\n                    <div className=\"col-2 text-end \">\r\n                        <button hidden={role.indexOf(UserPermConstants.Tarife_Duzenleme) == -1}  onClick={() => tarifemappingsil(tarifeMapping)} className=\"btn btn-link btn-sm text-decoration-none text-danger shadow-none ps-0 text-end\">\r\n                            <i className=\"fa fa-trash\" style={{ \"font-size\": \"15px\" }}></i>\r\n                        </button>\r\n                    </div>\r\n                </div>\r\n                <div className=\"row\">\r\n                    <div className=\"col-12\">\r\n                        <div className=\"collapse\" id={\"formul\" + tarifeMapping.id}>\r\n                           ({tarifeMapping.tarife.formul})\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <div className=\"row\" hidden={role.indexOf(UserPermConstants.Tarife_Duzenleme) == -1}>\r\n                    {sorular.map(soru => <div className=\"col-2\">\r\n                        {soru.name} {\r\n                            soru.tip == \"select\" ?\r\n                                <select  className=\"form-select form-select-sm\" onChange={handleInputChange} name={soru.name}>\r\n                                    <option ></option>\r\n                                    {soru.options.split(\",\").map(x => <option value={x}>{x}</option>)}\r\n                                </select>\r\n                                : <input className=\"form-control form-control-sm\" type={soru.tip} name={soru.name} onChange={handleInputChange} defaultValue={isEmpty(soru.options) ? \"\" : soru.options }></input>\r\n                        }\r\n                    </div>)}\r\n                    <div className=\"col-2\">\r\n                        <br />\r\n                        <button onClick={addNewTarifeRow} className=\"btn btn-link btn-sm text-decoration-none  shadow-none ps-0\">\r\n                            <i className=\"fa fa-plus-circle align-middle\" style={{ \"font-size\": \"25px\" }}></i>\r\n                        </button>\r\n                    </div>\r\n                </div>\r\n\r\n\r\n                <div className=\"\">\r\n                    {listData.map(apprec => <div className=\"row mt-2 border-top m-1 pt-1\">\r\n                        <div className=\"col-1 \">\r\n                            {apprec.id}\r\n                          \r\n                        </div>\r\n                        <div className=\"col-1 \">\r\n                        \r\n                            <button hidden={role.indexOf(UserPermConstants.Tarife_Duzenleme) == -1}  className=\"btn p-0  fw-bold btn-sm shadow-none ms-2 text-warning\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target={\"#formulrow\" + apprec.id} aria-expanded=\"false\" aria-controls={\"#formulrow\" + apprec.id}>\r\n                                F\r\n                            </button>\r\n                        </div>\r\n                        <div className=\"col-2 \">\r\n                            {apprec.tarih}\r\n                        </div>\r\n                        {/*{Object.keys(apprec.cevaplar).map(key => */}\r\n                        {/*    <div className=\"col-2\">*/}\r\n                        {/*        {key} : {apprec.cevaplar[key] }*/}\r\n\r\n                        {/*    </div>*/}\r\n                        {/*) }*/}\r\n                        <div className=\"col-6\">\r\n                            {apprec.data.replaceAll('\"', '').replaceAll(\",\", \" , \").replaceAll(\"{\", \"\").replaceAll(\"}\", \"\")}\r\n\r\n                        </div>\r\n                        <div className=\"col-2 text-end\">\r\n                            {formatWithDots(apprec.result + \"\")}\r\n                            <button onClick={() => sil(apprec)} hidden={ role.indexOf(UserPermConstants.Tarife_Duzenleme) == -1  }\r\n                                className=\"ms-2 p-0 btn btn-link btn-sm text-decoration-none text-danger shadow-none ps-0 text-end\">\r\n                                <i className=\"fa fa-trash\" style={{ \"font-size\": \"15px\" }}></i>\r\n                            </button>\r\n                        </div>\r\n\r\n                        \r\n                        <div className=\"col-12 collapse\" id={\"formulrow\" + apprec.id}>\r\n                            {apprec.formul}\r\n                           \r\n                        </div>\r\n                    </div>\r\n                    )}\r\n\r\n                </div>\r\n                <div className=\"text-success text-end fw-bold\">\r\n                    Toplam:  {formatWithDots(total+\"\")} TL\r\n\r\n                </div>\r\n            </div>\r\n\r\n\r\n        );\r\n    \r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { ajaxFail, showConfirmMessage, useGlobalState, sendpost, sendget, isEmpty, showErrorMessage } from '../GlobalState.js';\r\nimport TarifeMapping from './TarifeMapping.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nexport default function TarifeMappingList(props) {\r\n    var postdata = {};\r\n    const [role, setRole] = useGlobalState('role');\r\n    const appData = props.appData;\r\n    const [tarifeList, setTarifeList] = useState([]);\r\n    const [tarifeCetveli, setTarifeCetveli] = useState([]);\r\n    const [mappedTarifeList, setMappedTarifeList] = useState([]);\r\n    var pageTotal = {}\r\n\r\n    var changeComponent = props.changeComponent;\r\n    useEffect(() => {\r\n\r\n        fetchTarifeCetveliList();\r\n    }, [])\r\n\r\n\r\n    const formatWithDots = (numberString) => {\r\n        return numberString.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\");\r\n    }\r\n\r\n    const setTotal = (c, t) => {\r\n        pageTotal[c] = t;\r\n        var total = 0;\r\n        for (var i in pageTotal) {\r\n            total += pageTotal[i];\r\n        }\r\n        document.getElementById(\"sayfatoplami\").innerHTML = \"Genel Toplam: \" + formatWithDots(total+\"\") + \" TL\"\r\n\r\n    }\r\n\r\n\r\n\r\n    mappedTarifeList.forEach(x => x.tarife = tarifeList.find(t => x.tarifeid == t.id));\r\n\r\n    const fetchTarifeCetveliList = () => {\r\n        sendget(\"tarifecetvelilist\", \"spinner1\", (response) => {\r\n            response.json().then(value => {\r\n                setTarifeCetveli(value)\r\n                fetchList();\r\n            })\r\n        })\r\n    }\r\n\r\n    const fetchList = () => {\r\n        sendget(\"tarifelist\", \"spinner1\", (response) => {\r\n            response.json().then(value => {\r\n                setTarifeList(value)\r\n                fetchMappedTarifeList(value);\r\n            })\r\n        })\r\n    }\r\n    const fetchMappedTarifeList = (tarifelist) => {\r\n        sendget(\"tarifemappinglist?appid=\" + appData.id, \"spinner1\", (response) => {\r\n            response.json().then(value => {\r\n                value.forEach(x => x.tarife = tarifelist.find(t => x.tarifeid == t.id));\r\n                setMappedTarifeList(value)\r\n            })\r\n        })\r\n    }\r\n\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n\r\n    const sil = (rec) => {\r\n        showConfirmMessage(rec.id + \" numaralı kayıt silinsin mı?\", \"\", \"Evet\", \"Hayır\", () => {\r\n\r\n\r\n            sendpost(\"removetarife\", rec, \"spinner1\", (response) => {\r\n                response.json().then(value => {\r\n                    setTarifeList(value)\r\n                })\r\n            })\r\n        })\r\n\r\n    }\r\n\r\n\r\n\r\n    const addNewTarif = () => {\r\n        var tarifeid = document.getElementById(\"tarifelist\").value;\r\n        var tarife = tarifeList.find(x => x.id == tarifeid);\r\n        if (tarife == null) {\r\n            showErrorMessage(\"Tarife Bulunamadı \" + tarifeid);\r\n            return;\r\n        }\r\n        var newmapping = { appid: appData.id, tarifeid: tarifeid }\r\n\r\n        sendpost(\"savetarifemapping\", newmapping, \"spinner1\", (response) => {\r\n            response.json().then(value => {\r\n                if (value.length == 1 && value[0].id < 0) {\r\n                    showErrorMessage(value[0].mapper);\r\n                }\r\n                else {\r\n\r\n                    setMappedTarifeList(value)\r\n                }\r\n\r\n            })\r\n        })\r\n\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value.trim();\r\n    }\r\n\r\n    return (\r\n        <div className=\"border  rounded border-light\">\r\n            <div className=\"row\">\r\n                <div className=\"col-7\">\r\n                    <h5>Tarifeler</h5>\r\n                </div>\r\n                <div className=\"col-1 text-end \">\r\n                    <span class=\"spinner-border spinner-border-sm\" id=\"spinner1\" hidden></span>\r\n                </div>\r\n                <div className=\"col-4 text-end \">\r\n                    <span class=\"text-primary fw-bold\" id=\"sayfatoplami\"></span>\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row border bg-light rounded-2 m-1 p-2 mb-3\" hidden={role.indexOf(UserPermConstants.Tarife_Duzenleme) == -1}>\r\n                <div className=\"col-2\">\r\n                    Tarife Ekle\r\n                </div>\r\n                <div className=\"col-5\">\r\n                    <select className=\"form-select form-select-sm\" id=\"tarifelist\">\r\n\r\n                        {tarifeList.map(apprec =>\r\n                            <option value={apprec.id}>\r\n\r\n                                {apprec.name}\r\n                            </option>\r\n                        )}\r\n                    </select>\r\n                </div>\r\n                <div className=\"col-1\">\r\n                    <button onClick={addNewTarif} className=\"btn btn-link btn-sm text-decoration-none  shadow-none ps-0\">\r\n                        <i className=\"fa fa-plus-circle align-middle\" style={{ \"font-size\": \"25px\" }}></i>\r\n                    </button>\r\n\r\n                </div>\r\n            </div>\r\n            <fieldset disabled={role.indexOf(UserPermConstants.Tarife_Duzenleme) == -1 }>\r\n                {mappedTarifeList.map(x =>\r\n                    <div className=\"mb-5 border rounded-3 p-1\">\r\n                        <TarifeMapping tarifeMapping={x} key={x.id} tarifeCetveli={tarifeCetveli} setTotal={setTotal} setMappedTarifeList={setMappedTarifeList} />\r\n                    </div>\r\n\r\n                )}\r\n            </fieldset>\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, removeTurkcLow, isEmpty } from '../GlobalState.js';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport $ from 'jquery';\r\n\r\nexport default function SablonHavalePanel(props) {\r\n\r\n    const [appData, setData] = useState(props.appData);\r\n    const [listData, setListData] = useState([]);\r\n    const [denetimList, setDenetimList] = useState(props.denetimlist);\r\n    const [kontrolorList, setKontrolorList] = useState([]);\r\n    useEffect(() => {\r\n        //fetchDenetimList();\r\n        fetchKontrollers();\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n\r\n    //const fetchDenetimList = () => {\r\n    //    fetch(\"denetimlist\", {\r\n    //        method: 'GET',\r\n    //        headers: {\r\n    //            'Accept': 'application/json',\r\n    //            'Content-Type': 'application/json'\r\n    //        }\r\n    //    }).then(async response => {\r\n    //        if (!response.ok) {\r\n    //            ajaxFail(response)\r\n    //        }\r\n    //        else {\r\n    //            response.json().then(value => {\r\n    //                setDenetimList(value);\r\n    //            })\r\n    //        }\r\n    //    });\r\n    //}\r\n\r\n\r\n    const fetchKontrollers = () => {\r\n        fetch(\"userswithperm\", {\r\n            method: 'POST',\r\n            headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n            body: JSON.stringify(\"\")\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setKontrolorList(data)\r\n                });\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n    const fetchList = () => {\r\n\r\n        fetch(\"havalesablonlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    var v = value.filter(x => isEmpty(x.basvuruTipi) || x.basvuruTipi.includes(appData.basvuruTipi));\r\n                    setListData(v);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    const apply = (rec) => {\r\n        rec.id = appData.id;\r\n        var spinner = document.getElementById(\"spinner\");\r\n        if (spinner != null)\r\n            spinner.hidden = false;\r\n\r\n        fetch(\"applyhavalesablon\", {\r\n            method: 'POST',\r\n            headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (spinner != null)\r\n                spinner.hidden = true;\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                props.fetchMapping();\r\n            }\r\n        });\r\n    }\r\n\r\n    const getMappingName = (rec) => {\r\n        var username = rec.split(\"=\")[0].replace(\"&\", \"\");\r\n        var k = kontrolorList.find(x => x.userName == username);\r\n        if (k == null) {\r\n            return username + \" kullanıcısı bulunamadı !\";\r\n        }\r\n        var d = denetimList.find(x => x.id == rec.split(\"=\")[1]);\r\n        return k.name + \" \" + k.family + \"(\" + (d == null ? \"\" : d.name) + \")  \"\r\n\r\n    }\r\n\r\n    const gnerateHavaleMappingNames = (rec) => {\r\n        if (denetimList.length > 0 && kontrolorList.length > 0) {\r\n            var mapping = rec.split(\",\");\r\n            var ret = mapping.map(x => getMappingName(x));\r\n            var sire = -1;\r\n            for (var i = 0; i < ret.length; i++) {\r\n                if (mapping[i].includes(\"&\") == false)\r\n                    sire++;\r\n                ret[i] = sire + \": \" + ret[i]\r\n\r\n            }\r\n            return ret.join(\" , \")\r\n\r\n        }\r\n        return rec;\r\n    }\r\n\r\n    const filterColumn = (event) => {\r\n        const target = event.target;\r\n        var c = Number(target.getAttribute('name'));\r\n        var value = target.value;\r\n\r\n        $(\"#myTable tr\").filter(function () {\r\n            var td = $(this).children().eq(c);\r\n            if (isEmpty(value) == false) {\r\n                td.attr('style', 'background: #fff8dd !important');\r\n                var t1 = removeTurkcLow(td.text());\r\n                var t2 = removeTurkcLow(value);\r\n                if (t1.indexOf(t2) == -1)\r\n                    return $(this).toggle(false);\r\n            }\r\n            else\r\n                td.removeAttr('style');\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n\r\n            <table className='table  table-sm' aria-labelledby=\"tabelLabel\">\r\n                <thead>\r\n                    <th width=\"5%\">\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"\" name=\"0\" onChange={filterColumn} />\r\n                    </th>\r\n                    <th width=\"10%\">\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"\" name=\"1\" onChange={filterColumn} />\r\n                    </th>\r\n                    <th width=\"75%\">\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"\" name=\"2\" onChange={filterColumn} />\r\n                    </th>\r\n                    <th width=\"10%\">\r\n                        <div id=\"spinner\" hidden={true} className=\"spinner-border spinner-border-sm text-muted\" ></div>\r\n                    </th>\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n\r\n\r\n                    {tabledata.map(apprec =>\r\n                        <tr key={apprec.id}>\r\n                            <td width=\"5%\">{apprec.id}</td>\r\n                            <td width=\"20%\">\r\n                                {apprec.sablonName}\r\n                            </td>\r\n                            {/*<td>*/}\r\n                            {/*    {apprec.basvuruTipi}*/}\r\n                            {/*</td>*/}\r\n                            <td width=\"60%\">\r\n                                {gnerateHavaleMappingNames(apprec.mapping)}\r\n                            </td>\r\n\r\n                            <td className=\"text-end\">\r\n                                <button onClick={() => apply(apprec)} className=\"btn btn-primary btn-sm text-decoration-none me-1\">Uygula</button>\r\n                            </td>\r\n                        </tr>\r\n                    )}\r\n\r\n                </tbody>\r\n            </table>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div className=\"  mt-5 pt-3\">\r\n            \r\n            <button className=\"btn btn-primary btn-sm mb-1 shadow-none\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapseExample\" aria-expanded=\"false\" aria-controls=\"collapseExample\">\r\n                Havale Şablonları\r\n            </button>\r\n            <div className=\"row border-top pt-1 collapse\" id=\"collapseExample\">\r\n                <div className=\"col-12 table-responsive mainpagescroll\">\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n        </div >\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport UserStatistics from '../User/UserStatistics.js';\r\nimport $ from 'jquery';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport ApplicationList from \"../Application/ApplicationList.js\";\r\nimport UserLabel from \"../User/UserLabel.js\";\r\nimport { ajaxFail, isEmpty, getDenetimSure, showConfirmMessage, showErrorMessage, sendpost } from '../GlobalState.js';\r\nimport SablonHavalePanel from './SablonHavalePanel.js';\r\n\r\nexport default function HavaleYetkiliciPanel(props) {\r\n    const [appData, setData] = useState(props.rec);\r\n\r\n\r\n\r\n    var mappingdata = { userName: \"\", appID: appData.id };\r\n\r\n    const [counter, RefreshCounter] = useState(0);\r\n    const [basvuruTipiAdimlari, setBasvuruTipiAdimlari] = useState([]);\r\n    const [userwork, setUserWork] = useState({});\r\n    const [userwithperms, setUserwithperms] = useState([]);\r\n    const [relatedControlors, setRelatedControlors] = useState(null);\r\n    const [denetimlist, setDenetimlist] = useState([]);\r\n    const [mappedusers, setMappedUsers] = useState(null);\r\n\r\n    const surebg = [\"#c9f7f5\", \"#e1f0ff\", \"#fff4de\", \"#ffe2e5\"]\r\n    const suretxt = [\"text-info\", \"text-primary\", \"text-warning\", \"text-danger\"]\r\n    var minSira = 1000, maxSira = 0;\r\n\r\n    useEffect(() => {\r\n        getWorkLoadList();\r\n        \r\n    }, [])\r\n\r\n\r\n\r\n    if (mappedusers != null && mappedusers.length > 0) {\r\n\r\n        mappedusers.filter(x => isEmpty(x.Completed) == true).forEach(x => {\r\n            if (x.sira == null) {\r\n                minSira = 0;\r\n                x.sira = 0;\r\n            }\r\n            if (x.sira < minSira) {\r\n                minSira = x.sira\r\n            }\r\n            if (x.sira > maxSira) {\r\n                maxSira = x.sira\r\n            }\r\n        })\r\n\r\n        var maxCount = mappedusers.filter(x => x.sira == maxSira);\r\n        var minCount = mappedusers.filter(x => x.sira == minSira);\r\n        if (maxCount != null && maxCount.length > 1) {\r\n            maxSira++;\r\n        }\r\n        if (minSira > 0 && minCount != null && minCount.length > 1) {\r\n            minSira--;\r\n        }\r\n\r\n    }\r\n\r\n    const getWorkLoadList = () => {\r\n        fetch(\"getuserworkloads\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n                this.setState({ status: response.statusText })\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    var userstat = {}\r\n                    for (var i = 0; i < data.length; i++) {\r\n                        userstat[data[i].userName] = { \"duzeltme\": 0, \"kontrol\": 0 }\r\n                    }\r\n                    for (var i = 0; i < data.length; i++) {\r\n                        if (data[i].denetimID == UserPermConstants.Basvuru_Durumu_Duzeltme_Bekleniyor)\r\n                            userstat[data[i].userName].duzeltme++;\r\n                        else if (data[i].denetimID == UserPermConstants.Basvuru_Durumu_Kontrol_Ediliyor || data[i].denetimID == UserPermConstants.Basvuru_Durumu_Kontrol_Sirada_Bekliyor)\r\n                            userstat[data[i].userName].kontrol++;\r\n                    }\r\n                    setUserWork(userstat);\r\n                   fetchDenetimList();\r\n                    \r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    \r\n    const fetchMappedUsersToRelatedApps = (e) => {\r\n        if (props.relatedapps == null || props.relatedapps.length == 0 || relatedControlors != null) {\r\n            setRelatedControlors([]);\r\n            return;\r\n        }\r\n            \r\n        var rids = props.relatedapps.filter(x => x.id != appData.id).map(x => x.id);\r\n        if (rids.length == 0) {\r\n            setRelatedControlors([]);\r\n            return;\r\n        }\r\n        fetch(\"mappeduserstoproject\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rids.join(','))\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    data = JSON.parse(data);\r\n                    setRelatedControlors(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const fetchMappedUsers = (e) => {\r\n        document.getElementById(\"yetkiliuserlist\").selectedIndex = -1;\r\n        fetch(\"mappeduserstoproject\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body:appData.id+\"\"\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    data = JSON.parse(data);\r\n                    setMappedUsers(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const gericek = (id) => {\r\n        const func1 = () => {\r\n            fetch(\"removeuserprojectmapping\", {\r\n                method: 'POST',\r\n                headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    response.json().then(async data => {\r\n                        data = JSON.parse(data);\r\n                        setMappedUsers(data)\r\n                        props.refreshParent();\r\n                        document.getElementById(\"message\").value = \"\";\r\n                        mappingdata = { userName: \"\", denetimId: \"\" }\r\n                        document.getElementById(\"mission\").selectedIndex = -1;\r\n                        document.getElementById(\"yetkiliuserlist\").selectedIndex = -1;\r\n                    });\r\n                }\r\n            });\r\n        }\r\n        \r\n        if (mappedusers.length == 1)\r\n            showConfirmMessage(\"Başvuruyu geri çekmek istediğinize emin misiniz?\", \"\", \"Evet\", \"Hayır\", func1);\r\n        else\r\n            func1();\r\n\r\n    };\r\n\r\n\r\n    const fetchUsersWithPermision = (id) => {\r\n        fetch(\"userswithperm\", {\r\n            method: 'POST',\r\n            headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n            body: JSON.stringify(id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setUserwithperms(data)\r\n                    if (document.getElementById(\"yetkiliuserlist\"))\r\n                        document.getElementById(\"yetkiliuserlist\").selectedIndex = -1;\r\n                });\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n    const updateuserprojectmapping = (id) => {\r\n        fetch(\"updateuserprojectmapping\", {\r\n            method: 'POST',\r\n            headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n            body: JSON.stringify(id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    data = JSON.parse(data);\r\n                    setMappedUsers(data);\r\n                    props.refreshParent();\r\n                });\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n    const mapusertoproject = (e) => {\r\n\r\n        e.preventDefault();\r\n        if (isEmpty(mappingdata.denetimId) || isEmpty(mappingdata.userName)) {\r\n            showErrorMessage(\"Başvuru Tipi veya Kontrolör Hatalı\");\r\n            return;\r\n        }\r\n        var message = document.getElementById(\"message\").value;\r\n        if (isEmpty(message) == false) {\r\n            mappingdata.message = message;\r\n        }\r\n\r\n        fetch(\"mapusertoproject\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json', 'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(mappingdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    if (value == null) {\r\n                        showErrorMessage(\"Yetkisiz İşlem !\")\r\n                        return;\r\n                    }\r\n                    if (value.id == -1) {\r\n                        showErrorMessage(value.appData)\r\n                        return;\r\n                    }\r\n                    setData(value);\r\n                    document.getElementById(\"message\").value = \"\";\r\n                    mappingdata = { userName: \"\", appID: appData.id }\r\n                    //document.getElementById(\"mission\").selectedIndex = -1;\r\n                    document.getElementById(\"yetkiliuserlist\").selectedIndex = -1;\r\n                    props.refreshParent();\r\n                    fetchMappedUsers();\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const getbasvurutipiadiımlari = (id) => {\r\n        sendpost(\"basvurutipisadimlist\", id, \"\", (response) => {\r\n            response.json().then(value => {\r\n                setBasvuruTipiAdimlari(value);\r\n\r\n            })\r\n\r\n        })\r\n    }\r\n\r\n    const fetchDenetimList = () => {\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n\r\n                    var basvurutipiid = value.find(x => x.name == appData.basvuruTipi).id;\r\n                    getbasvurutipiadiımlari(basvurutipiid);\r\n\r\n                    setDenetimlist(value.filter(x => x.isadimi == true))\r\n\r\n\r\n                    fetchMappedUsers();\r\n                    fetchUsersWithPermision(document.getElementById(\"mission\").value)\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const saveApp = () => {\r\n        fetch(\"saveapplication\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(appData)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else\r\n                props.changeComponent(<ApplicationList changeComponent={props.changeComponent} />)\r\n        });\r\n\r\n    }\r\n    const appret = () => {\r\n        showConfirmMessage(\"Başvuruyu müellife iade etmek istediğinizden emin misiniz?\",\"\", \"Evet Iade Et\", \"Hayır Geri Dön\", () => {\r\n            setTimeout(() => {\r\n                var sebeb = window.prompt(\"İade etme nedenini açıklayınız\");\r\n                if (isEmpty(sebeb)) {\r\n                    showErrorMessage(\"İade nedeni yazılmalıdır.\")\r\n                    return;\r\n                }\r\n                appData.iadeNotu = sebeb;\r\n                appData.basvuruDurumu = UserPermConstants.Basvuru_Durumu_Iade_Edildi;\r\n                saveApp();\r\n\r\n\r\n            }, 100)\r\n        });\r\n\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked.toString() : target.value;\r\n        mappingdata[target.name] = value;\r\n        mappingdata[\"denetimId\"] = document.getElementById(\"mission\").value;\r\n    }\r\n\r\n    const handleGorevInputChange = (event) => {\r\n        if (event.target.value != -1) {\r\n            document.getElementById(\"yetkiliuserlist\").disabled = false;\r\n            fetchUsersWithPermision(event.target.value);\r\n        }\r\n        else\r\n            document.getElementById(\"yetkiliuserlist\").disabled = true;\r\n    }\r\n\r\n\r\n\r\n    const refreshPanel = () => {\r\n        window.setTimeout(() => { RefreshCounter(counter + 1) }, 1000)\r\n    }\r\n\r\n\r\n    const getUserName = (username) => {\r\n\r\n        var r = mappedusers.find(x => x.userName == username);\r\n        if (r == null)\r\n            return username;\r\n        return r.uname + \" \" + r.Family;\r\n\r\n    }\r\n\r\n\r\n    var selectdf = -1;\r\n    var dt = denetimlist.find(x => x.name == appData.basvuruTipi);\r\n    if (dt != null)\r\n        selectdf = dt.id;\r\n\r\n\r\n\r\n    return (<div>\r\n <div className=\"row\">\r\n                    <div className=\"col-9 pb-4\">\r\n                        <h5 className=\"text-primary\">Havale Paneli</h5 >\r\n                        {window.innerWidth < 680 && <div>\r\n                            <span className=\"text-muted\"> Başvuru Tipi:</span>  <span className=\"text-muted\"> {appData.basvuruTipi}</span>\r\n                        </div>}\r\n                    </div>\r\n <div className=\"col-3 text-end\">\r\n                        <button  className=\"btn btn-danger  me-2 btn-sm\" onClick={appret}>İade Et</button>\r\n                    </div >\r\n                </div>\r\n         \r\n        <fieldset disabled={appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Havale_Bekliyor &&\r\n            appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Kontrol_Ediliyor &&\r\n            appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Kontrol_Sirada_Bekliyor &&\r\n            appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Kontrol_Tamamlandi\r\n        }>\r\n            <div>\r\n               \r\n                <div className=\"row \" id=\"havalepanel\">\r\n                    <div className=\"p-2 ms-2 mb-1\" >\r\n                        <form action=\"submitapplication\" method=\"POST\" onSubmit={mapusertoproject}>\r\n                            <div class=\"row\">\r\n                                <div class=\"col-md-3 col-6\"><label htmlFor=\"mission\" className=\"form-label\">İş Adimi</label> </div>\r\n                                <div class=\"col-md-3 col-6\"> <label htmlFor=\"yetkiliuserlist\" className=\"form-label\">Kontrolör</label> </div>\r\n                            </div>\r\n                            <div className=\"row\">\r\n                                <div className=\"col-md-3 col-6 mt-1\">\r\n                                    <div className=\"form-group\">\r\n                                        <select className=\"form-select form-select-sm\" id=\"mission\" name=\"denetimId\" onChange={handleGorevInputChange}  >\r\n                                            <option value={-1} > Seçiniz </option>\r\n                                            {denetimlist.filter(x => basvuruTipiAdimlari.length == 0 || basvuruTipiAdimlari.some(b => b.isAdimi == x.id)).map(rec => <option value={rec.id} > {rec.name} </option>)}\r\n                                        </select>\r\n                                    </div>\r\n                                </div>\r\n                                <div className=\"col-md-3 col-6 mt-1\">\r\n                                    <div className=\"form-group  flex-wrap\">\r\n\r\n                                        <select disabled={denetimlist.length == 0 || userwithperms.length == 0} className=\"form-select form-select-sm\" id=\"yetkiliuserlist\" name=\"userName\" onChange={handleInputChange} >\r\n                                            {userwithperms.map(rec => <option value={rec.userName}> {rec.name + \" \" + rec.family + \" (\" + (userwork[rec.userName] != null ? userwork[rec.userName].kontrol + \" - \" + userwork[rec.userName].duzeltme : 0) + \")\"} </option>)}\r\n                                        </select>\r\n                                    </div>\r\n                                </div>\r\n                                <div className=\"col-md-3 col-12 mt-1\">\r\n                                    <div className=\"form-group\">\r\n                                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"message\" placeholder=\"Havale Notu\" name=\"message\"  />\r\n                                    </div>\r\n                                </div>\r\n                                <div class=\"col-md-3 col-12\">\r\n                                    <div class=\"btn-group  flex-wrap\" role=\"group\">\r\n                                        <button type=\"submit\" className=\"btn btn-primary btn-sm m-1\">Havale Et</button>\r\n                                        <button type=\"button\" class=\"m-1 btn btn-primary btn-sm\" onClick={refreshPanel} data-bs-toggle=\"modal\" data-bs-target=\"#myModal\">\r\n                                            İstatistik\r\n                                        </button>\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n\r\n                        </form>\r\n                    </div>\r\n\r\n\r\n                    {mappedusers == null ? <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div> :\r\n\r\n\r\n                        <div className=\"col-12 mainpagescroll table-responsive \">\r\n                            {mappedusers.length > 0 && <table className='table  table-sm' aria-labelledby=\"tabelLabel\">\r\n                                <thead>\r\n                                    <tr >\r\n\r\n                                        <td> </td>\r\n                                        <th className='text-start'>Sıra</th>\r\n                                        <th className='text-start'>Kontrolör</th>\r\n                                        <th className='text-start'>İş Adımı</th>\r\n                                        <th className='text-start'>Havale </th>\r\n                                        <th className='text-start'>Kontrole Başlama</th>\r\n                                        <th className='text-start'>Kontrolü Bitirme</th>\r\n                                        <th className='text-start'>Kalan Süre</th>\r\n                                        <th className='text-start'></th>\r\n\r\n                                    </tr>\r\n                                </thead>\r\n                                <tbody >\r\n                                    {mappedusers.map((rec, idx) => <tr style={rec.sira % 2 == 0 ? { \"background-color\": \"#f3f9ff\" } : {}}>\r\n                                        <td>\r\n                                            <div hidden={isEmpty(rec.Completed) == false}>\r\n                                                <div className='row m-0 p-0'>\r\n                                                    <div className='col-6 ps-0 pe-0'>\r\n                                                        <button hidden={rec.sira <= minSira} type=\"button\" class=\"btn btn-link p-0 m-0\" onClick={(e) => { rec.sira--; updateuserprojectmapping(rec); }} >\r\n                                                            <span class=\"material-icons\">\r\n                                                                remove_circle\r\n                                                            </span>\r\n                                                        </button>\r\n                                                    </div>\r\n                                                    <div className='col-6 ps-0'>\r\n                                                        <button type=\"button\" class=\"btn btn-link p-0 m-0\" hidden={rec.sira >= maxSira /*|| mappedusers.filter(x => x.sira == rec.sira).length <= 1*/} onClick={(e) => { rec.sira++; updateuserprojectmapping(rec); }}>\r\n                                                            <span class=\"material-icons\">\r\n                                                                add_circle\r\n                                                            </span>\r\n                                                        </button>\r\n                                                    </div>\r\n                                                </div>\r\n\r\n                                            </div>\r\n                                        </td>\r\n\r\n                                        <td> {rec.sira}</td>\r\n\r\n                                        <td>\r\n                                            <img class=\"rounded-circle\" style={{ width: \"28px\", height: \"28px\" }} src={\"/getuserpic?user=\" + getUserName(rec.userName)} /> {getUserName(rec.userName)} ({rec.userName})</td>\r\n                                        <td> {rec.Name}\r\n                                        </td>\r\n\r\n                                        <td> {rec.mappingDate}  </td>\r\n                                        <td>  {rec.Started == null ? \"\" : rec.Started} </td>\r\n                                        <td> {rec.Completed == null ? \"\" : rec.Completed}</td>\r\n                                        <td> {(rec.Completed == null && rec.deliverDate != null) ? getDenetimSure(rec, denetimlist, appData) : \"\"}</td>\r\n                                        <td width=\"10%\">\r\n                                            {rec.Completed == null && <button type=\"button\" className=\"btn btn-primary btn-sm\" onClick={() => { gericek(rec.id) }} >Geri Çek</button>}\r\n                                        </td></tr>\r\n                                    )}\r\n\r\n                                </tbody>\r\n                            </table>}\r\n                        </div>}\r\n                </div >\r\n\r\n            </div >\r\n\r\n            <div className=\"modal\" id=\"myModal\" >\r\n                <div class=\"modal-dialog modal-xl modal-dialog-scrollable modal-dialog-centered\">\r\n                    <div class=\"modal-content\" >\r\n\r\n\r\n                        <div class=\"modal-header\">\r\n                            <h4 class=\"modal-title\">Görev Dağlımı</h4>\r\n                            <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\"></button>\r\n                        </div>\r\n\r\n\r\n                        <div class=\"modal-body\" >\r\n                            <UserStatistics counter={counter} />\r\n                        </div>\r\n\r\n\r\n                        <div class=\"modal-footer\">\r\n                            <button type=\"button\" class=\"btn btn-danger\" data-bs-dismiss=\"modal\">Close</button>\r\n                        </div>\r\n\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n\r\n            {denetimlist.length > 0 && <SablonHavalePanel denetimlist={denetimlist} appData={appData} fetchMapping={fetchMappedUsers} />}\r\n\r\n            <button className=\"btn btn-primary btn-sm mb-1 shadow-none\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#previousContolors\" aria-expanded=\"false\" aria-controls=\"previousContolors\" onClick={fetchMappedUsersToRelatedApps}>\r\n                İlgili Başvuruların Kontrolörleri\r\n            </button>\r\n            <div className=\"row border-top pt-1 collapse\" id=\"previousContolors\">\r\n                <div className=\"col-12 table-responsive mainpagescroll\">\r\n                    {relatedControlors == null ? <div className=\"spinner-border spinner-border-sm\" ></div> :\r\n                        <div className=\"col-12 mainpagescroll table-responsive \">\r\n                            {relatedControlors.length > 0 && <table className='table  table-sm' aria-labelledby=\"tabelLabel\">\r\n                                <thead>\r\n                                    \r\n                                        <th className='text-start '>Kontrolör</th>\r\n                                        <th className='text-start'>Başvuru No</th>\r\n                                        <th className='text-start'>İş Adımı</th>\r\n                                        <th className='text-start'>Havale </th>\r\n                                        <th className='text-start'>Kontrole Başlama</th>\r\n                                        <th className='text-start'>Kontrolü Bitirme</th>\r\n\r\n                                    \r\n                                </thead>\r\n                                <tbody >\r\n                                    {relatedControlors.map((rec, idx) => <tr style={rec.sira % 2 == 0 ? { \"background-color\": \"#f3f9ff\" } : {}}>\r\n\r\n                                        <td>\r\n                                            <img class=\"rounded-circle\" style={{ width: \"28px\", height: \"28px\" }} src={\"/getuserpic?user=\" + getUserName(rec.userName)} /> {getUserName(rec.userName)} ({rec.userName})</td>\r\n                                        <td>\r\n                                            {rec.appID}\r\n                                        </td>\r\n                                        <td>\r\n                                            {rec.Name}\r\n                                        </td>\r\n\r\n                                        <td> {rec.mappingDate}  </td>\r\n                                        <td>  {rec.Started == null ? \"\" : rec.Started} </td>\r\n                                        <td> {rec.Completed == null ? \"\" : rec.Completed}</td>\r\n                                        <td> {(rec.Completed == null && rec.deliverDate != null) ? getDenetimSure(rec, denetimlist, appData) : \"\"}</td>\r\n                                    </tr>\r\n                                    )}\r\n\r\n                                </tbody>\r\n                            </table>}\r\n                        </div>             \r\n                \r\n                }\r\n                </div>\r\n            </div>\r\n\r\n        </fieldset>\r\n    </div>\r\n    );\r\n\r\n\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport NotePanel from './NotePanel.js';\r\nimport ApplicationList from \"../Application/ApplicationList.js\";\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage, sendpost, showInfoMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\nimport axios from \"axios\";\r\n\r\nexport default function BasvuruKabulPanel(props) {\r\n\r\n    const [appData, setData] = useState(props.rec);\r\n    const [listData, setListData] = useState(null);\r\n    const [harcFileList, setHarcFileList] = useState([]);\r\n    const [username, setuserName] = useGlobalState('userName');\r\n    const [role, setRole] = useGlobalState('role');\r\n\r\n    var warningList = [];\r\n    warningList = props.relatedApps.filter(x => x.basvuruYapan != appData.basvuruYapan)\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked.toString() : target.value;\r\n        appData[target.name] = value;\r\n    }\r\n\r\n    useEffect(() => {\r\n\r\n        fetchList();\r\n        fetchFiles();\r\n\r\n    }, [])\r\n\r\n\r\n\r\n    const fetchList = () => {\r\n        fetch(\"kabullistpermsnames\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(username)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n\r\n                })\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchFiles = () => {\r\n        var c = document.getElementById(\"harcdosyaSpinner\")\r\n        if (c != null) {\r\n            c.hidden = false;\r\n        }\r\n        fetch(\"harcfilelist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: appData.id\r\n        }).then(async response => {\r\n            if (c != null) {\r\n                c.hidden = true;\r\n            }\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setHarcFileList(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const removeFile = (id) => {\r\n        var c = document.getElementById(\"harcdosyaSpinner\")\r\n        if (c != null) {\r\n            c.hidden = false;\r\n        }\r\n        fetch(\"removeharcfile\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: id\r\n        }).then(async response => {\r\n            if (c != null) {\r\n                c.hidden = true;\r\n            }\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data)\r\n                });\r\n            }\r\n            else {\r\n                fetchFiles();\r\n                showSuccessMessage(\"Dosya Başarıyla Silindi\")\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const uploadHarcDosya = () => {\r\n        var c = document.getElementById(\"harcdosyaSpinner\")\r\n        if (c != null) {\r\n            c.hidden = false;\r\n        }\r\n        const file = document.getElementById(\"harcdosya\").files[0];\r\n        if (file == null) {\r\n            showErrorMessage(\"Harç Dosyayı Seçiniz.\")\r\n            return;\r\n        }\r\n        var formData = new FormData();\r\n        formData.append(\"file\", file);\r\n        formData.append(\"caption\", file.name);\r\n        formData.append(\"appid\", appData.id);\r\n        axios.post(\r\n            \"submitharcfile\",\r\n            formData,\r\n            {\r\n                headers: {\r\n                    \"Content-type\": \"multipart/form-data\",\r\n                },\r\n            }\r\n        ).then(res => {\r\n            if (c != null) {\r\n                c.hidden = true;\r\n            }\r\n            fetchFiles();\r\n\r\n        })\r\n            .catch(err => { showErrorMessage(err); })\r\n\r\n    }\r\n\r\n\r\n\r\n    const renderHarcTable = () => {\r\n        var mytable =\r\n            <div className=\"table-responsive mainpagescroll\" >\r\n                <table className='table table-striped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light\">\r\n                        <tr>\r\n                            <th width=\"50px\" className=\"text-start\">Id</th>\r\n                            <th className=\"text-start\">Dosya</th>\r\n                            <th width=\"190px\" className=\"text-start\">Yükleme Tarihi</th>\r\n                            <th width=\"130px\" className=\"text-start\">Ekleyen</th>\r\n                            <th width=\"100px\" className=\"text-start\"></th>\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody id=\"myTable\">\r\n                        {harcFileList.map((apprec, idx) =>\r\n                            <tr key={apprec.id} className={idx == 0 ? \"fw-bold\" : \"text-muted\"}>\r\n                                <td className={idx == 0 ? \"fw-bold\" : \"text-muted\"}>{apprec.id}</td>\r\n                                <td className={idx == 0 ? \"fw-bold\" : \"text-muted\"}>\r\n                                    {apprec.caption}\r\n                                </td>\r\n                                <td className={idx == 0 ? \"fw-bold\" : \"text-muted\"}>{apprec.tarih}</td>\r\n                                <td className={idx == 0 ? \"fw-bold\" : \"text-muted\"}>{apprec.userName}</td>\r\n\r\n                                <td className={idx == 0 ? \"fw-bold\" : \"text-muted\"}>\r\n                                    <a href={\"/getharcfile?id=\" + apprec.id} className=\"btn btn-link btn-sm text-primary text-decoration-none m-0 p-0\">İndir</a>&nbsp;&nbsp;\r\n                                    <button onClick={() => { removeFile(apprec.id) }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button>\r\n                                </td>\r\n                            </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n    const checkNote = () => {\r\n\r\n        var c = document.getElementById(\"kontrolnotpanelnot\")\r\n        if (c != null && isEmpty(c.value) == false) {\r\n            showErrorMessage(\"Önce yazdığınız notu kaydediniz\");\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n\r\n\r\n    const apponayla = () => {\r\n        if (checkNote()) return;\r\n\r\n        var basvuruDurumu = UserPermConstants.Basvuru_Durumu_Havale_Bekliyor\r\n        if (appData.eimzagonder == true) {\r\n            basvuruDurumu = UserPermConstants.Basvuru_Durumu_EIMZA_Bekleniyor;\r\n        }\r\n        sendpost(\"setaceptancestate\", { id: appData.id, basvuruDurumu: basvuruDurumu }, \"\",\r\n            (response) => props.changeComponent(<ApplicationList changeComponent={props.changeComponent} />))\r\n\r\n\r\n    }\r\n    const appgerigonder = () => {\r\n        if (checkNote()) return;\r\n        sendpost(\"setaceptancestate\", { id: appData.id, basvuruDurumu: UserPermConstants.Basvuru_Durumu_GeriGonderildi }, \"\",\r\n            (response) => props.changeComponent(<ApplicationList changeComponent={props.changeComponent} />))\r\n    }\r\n\r\n    const appiade = () => {\r\n        if (checkNote()) return;\r\n        showConfirmMessage(\"Başvuruyu iade etmek istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            var iadeneden = prompt(\"Lutfen İade Nedenini Yazınız\");\r\n            if (isEmpty(iadeneden)) {\r\n                showErrorMessage(\"Iade Nedeni Boş Olamaz\");\r\n                return;\r\n            }\r\n\r\n\r\n            sendpost(\"setaceptancestate\", { id: appData.id, basvuruDurumu: UserPermConstants.Basvuru_Durumu_Iade_Edildi, iadeNotu: iadeneden }, \"\",\r\n                (response) => props.changeComponent(<ApplicationList changeComponent={props.changeComponent} />))\r\n        })\r\n\r\n    }\r\n\r\n    const apputahakukyap = () => {\r\n        if (checkNote()) return;\r\n        sendpost(\"setaceptancestate\", { id: appData.id, basvuruDurumu: UserPermConstants.Basvuru_Durumu_Ucret_Bekleniyor }, \"\",\r\n            (response) => props.changeComponent(<ApplicationList changeComponent={props.changeComponent} />))\r\n    }\r\n    const odemekontrol = () => {\r\n        sendpost(\"checkpayment\",  appData.id, \"harcdosyaSpinner\",\r\n            (response) => {\r\n                response.text().then(async data => {\r\n                    showInfoMessage(data,\"\",\"Tamam\")\r\n                });\r\n            }\r\n               \r\n        )\r\n    }\r\n\r\n    \r\n\r\n    const appucretiste = () => {\r\n        if (checkNote()) return;\r\n        var harc = document.getElementById(\"ucret\").value;\r\n        if (harc == null || harc.length == 0) {\r\n            showErrorMessage(\"Ucret Giriniz\");\r\n            return;\r\n        }\r\n\r\n        var misid = document.getElementById(\"misid\").value;\r\n\r\n\r\n        sendpost(\"setaceptancestate\", {\r\n            id: appData.id,\r\n            basvuruDurumu: UserPermConstants.Basvuru_Durumu_Tahakkuk_Bekleniyor,\r\n            ucret: harc,\r\n            misid: misid\r\n        }, \"\",\r\n            (response) => props.changeComponent(<ApplicationList changeComponent={props.changeComponent} />))\r\n\r\n    }\r\n\r\n    if (listData == null) {\r\n        return <div className=\"w-100 mt-1 mb-1 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n    }\r\n\r\n    if (listData.length > 0 && listData.includes(appData.basvuruTipi) == false) {\r\n        return \"Başvuru Kabul Yetkisi Yok.\";\r\n    }\r\n\r\n    return (\r\n        <div >\r\n            <fieldset id=\"oncontrolpanel\">\r\n                <div className=\"row\">\r\n                    <div className=\"col-6 pb-4\">\r\n                        <h5 className=\"text-primary\">Başvuru Kabul Paneli</h5>\r\n                    </div>\r\n                    <div className=\"col-6 text-end\">\r\n                        <div class=\"ms-1 spinner-border spinner-border-sm\" id=\"harcdosyaSpinner\" hidden></div>\r\n                    </div>\r\n\r\n                </div>\r\n\r\n\r\n                <div className=\"row  mb-1\" >\r\n\r\n                    {warningList.length > 0 && <div className=\"col-12 m-2\">\r\n                        <span className=\"text-danger fw-bold\">Uyarı, Aynı Ada/Parsel'e başka kullanıcıların aşağıdaki başvuruları bulunmaktadır:</span>\r\n                        <table className='table mt-3  table-striped' aria-labelledby=\"tabelLabel\">\r\n                            <tbody >\r\n                                {warningList.map(apprec =>\r\n                                    <tr key={apprec.id} className=\"p-1\">\r\n                                        <td >{apprec.id}</td>\r\n                                        <td >{apprec.basvuruTipi}</td>\r\n                                        <td >{apprec.basvuruTarihi}</td>\r\n                                        <td >{apprec.basvuruYapan}</td>\r\n                                    </tr>\r\n                                )}\r\n                            </tbody>\r\n                        </table>\r\n\r\n                    </div>\r\n                    }\r\n\r\n                    <div className=\"col-12 ms-2\">\r\n                        <NotePanel appData={appData} panelid=\"kontrolnotpanel\" />\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row  mb-3\" >\r\n                    <div className=\"col-12 col-md-3\">\r\n                        <button className=\"btn btn-danger w-100 btn-sm\" onClick={appgerigonder} disabled={appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Onay_Bekliyor && appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Harc_Odeme_Kontrolu_Bekliyor}>\r\n                            Başvuruyu Geri Gönder\r\n                        </button>\r\n                    </div>\r\n                </div>\r\n                <div className=\"row  mb-1\" >\r\n                    <div className=\"col-12 col-md-3 mb-2\">\r\n                        <button className=\"btn btn-primary w-100  btn-sm\" onClick={appucretiste} disabled={appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Ucret_Bekleniyor}>\r\n                            Harç Miktarını Belirle\r\n                        </button>\r\n                    </div>\r\n\r\n                    <div className=\"col-12 col-md-3\">\r\n                        <input type=\"number\" className=\"form-control form-control-sm \" placeholder=\"Harç Ucreti\" name=\"ucret\" id=\"ucret\" defaultValue={appData.ucret} disabled={appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Ucret_Bekleniyor} />\r\n                    </div>\r\n                    <div className=\"col-12 col-md-3\">\r\n                        <input type=\"number\" className=\"form-control form-control-sm \" placeholder=\"MISID\" name=\"misid\" id=\"misid\" defaultValue={appData.misid} disabled={appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Ucret_Bekleniyor} />\r\n\r\n                    </div>\r\n                    <div className=\"col-12 col-md-1 ms-0 ps-0\">\r\n                        <button className=\"btn btn-link text-decoration-none m-0 p-0\" title=\"Odeme durmunu kontrol et\" onClick={odemekontrol}>\r\n                            <i class=\"fa fa-refresh\"></i>\r\n                        </button>\r\n                    </div>\r\n                    {role.indexOf(UserPermConstants.Kontrolor_Dosyasi_Yukleme) > -1 &&\r\n                        < div className=\"col-12 col-md-2\">\r\n                            <label for=\"harcdosya\" className=\"btn btn-sm btn-primary\">Harç Dosyası</label>\r\n                            <input style={{ maxWidth: \"300px\" }} class=\"form-control form-control-sm\" type=\"file\" hidden id=\"harcdosya\" onChange={uploadHarcDosya} />\r\n\r\n                        </div>}\r\n\r\n\r\n                </div>\r\n\r\n                <div className=\"row  mb-3\" >\r\n                    <div className=\"col-12 col-md-3\">\r\n                        <button className=\"btn btn-info w-100 text-white  btn-sm\" onClick={apputahakukyap} disabled={appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Tahakkuk_Bekleniyor}>\r\n                            Tahakkuk Yapıldı</button>\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row  mb-3\" >\r\n                    <div className=\"col-12 col-md-3\">\r\n                        <button className=\"btn btn-success w-100   btn-sm\" onClick={apponayla} disabled={appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Onay_Bekliyor && appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Harc_Odeme_Kontrolu_Bekliyor}>\r\n                            Başvuruyu Kabul Et\r\n                        </button>\r\n                    </div>\r\n\r\n                </div>\r\n\r\n            </fieldset>\r\n            {harcFileList.length > 0 && (role.indexOf(UserPermConstants.HARC_DOSYALARI) > -1 || role.indexOf(UserPermConstants.Kontrolor_Dosyasi_Yukleme) > -1) && <div >\r\n                <h6 className=\"text-center text-primary\">Harç Dosyaları</h6>\r\n\r\n                {renderHarcTable()}\r\n            </div>}\r\n\r\n\r\n            <div className=\"row  mb-3\" >\r\n                <div className=\"col-12 text-end\">\r\n                {/*Menteseş de duzeltme sayısı aşıldığına rağmen başvuruyu iade edemediği için bu kod comment edilmiştir. 03.02.2025*/}\r\n                {/*    <button className=\"btn btn-danger  btn-sm\" onClick={appiade} disabled={appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Onay_Bekliyor}>*/}\r\n                    <button className=\"btn btn-danger  btn-sm\" onClick={appiade} >\r\n                    İade Et\r\n                    </button>\r\n                </div>\r\n            </div>\r\n\r\n        </div>\r\n    );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport ApplicationList from \"../Application/ApplicationList.js\";\r\nimport { showConfirmMessage, showErrorMessage, useGlobalState } from '../GlobalState.js';\r\n\r\nexport default function OnayYetkilisiPanel(props) {\r\n\r\n    const [appData, setData] = useState(props.rec);\r\n    const [userName, setUserName] = useGlobalState('userName');\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked.toString() : target.value;\r\n        appData[target.name] = value;\r\n    }\r\n    const addNot = () => {\r\n        if (document.getElementById(\"not\").value == null ||\r\n            document.getElementById(\"not\").value.length == 0)\r\n            return;\r\n\r\n        fetch(\"addnote\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({ appId: appData.id, note: document.getElementById(\"not\").value })\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                showErrorMessage(response.statusText)\r\n            }\r\n            else {\r\n                var c = document.getElementById(\"not\");\r\n                if (c != null)\r\n                    c.value = \"\";\r\n            }\r\n        });\r\n    }\r\n\r\n    const saveApp = () => {\r\n        addNot();\r\n        fetch(\"saveapplication\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(appData)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                showErrorMessage(\"saveapplication: \" + response.statusText)\r\n            }\r\n            else {\r\n                props.changeComponent(<ApplicationList changeComponent={props.changeComponent} />)\r\n            }\r\n        });\r\n    }\r\n    const apponayla = () => {\r\n        showConfirmMessage(\"Başvuruyu, onaylamak istediğinize emin misiniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n         appData.basvuruDurumu = UserPermConstants.Basvuru_Durumu_Onay_Verildi;\r\n            saveApp();\r\n        });\r\n    }\r\n    const appret = () => {\r\n        showConfirmMessage(\"Başvuruyu, havale sürecine geri göndermek istediğinize emin misiniz?\",\"\", \"Evet\", \"Hayır\", () => {\r\n            appData.basvuruDurumu = UserPermConstants.Basvuru_Durumu_Havale_Bekliyor;\r\n            saveApp();\r\n        });\r\n    }\r\n\r\n    const appkntorlgeri = () => {\r\n        showConfirmMessage(\"Başvuruyu, bir önceki aşamaya/kişiye geri göndermek istediğinize emin misiniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            appData.basvuruDurumu = UserPermConstants.Basvuru_Durumu_Kontrol_Sirada_Bekliyor;\r\n            saveApp();\r\n        });\r\n\r\n    }\r\n\r\n    const appiade = () => {\r\n       \r\n            var comment = window.prompt(\"Lütfen iade etme nedenini açıklayınız\")\r\n            if (comment == null || comment.length == 0) {\r\n                showErrorMessage(\"Açıklama Boş Olamaz\");\r\n                return;\r\n            }\r\n        appData.iadeNotu = comment;\r\n            appData.iadeEden = userName;\r\n            appData.basvuruDurumu = UserPermConstants.Basvuru_Durumu_Iade_Edildi;\r\n            saveApp();\r\n\r\n\r\n       \r\n\r\n\r\n    }\r\n\r\n    return (\r\n        <div >\r\n            <fieldset disabled={appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Kontrol_Tamamlandi}>\r\n                <div className=\"row\">\r\n                    <div className=\"col-12  pb-4\">\r\n                        <h5 className=\"text-primary\">Onay Paneli</h5>\r\n                    </div>\r\n                    <div className=\"row mb-1\">\r\n                        <div className=\"col-12\">\r\n\r\n                            <input type=\"text\" className=\"form-control form-control-sm w-75 d-inline-block\" id=\"not\" placeholder=\"Açıklama\" name=\"not\" defaultValue=\"\" />\r\n\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"row mb-1 mt-3\">\r\n                        <div className=\"col-12 p-1 btn-group  flex-wrap\">\r\n\r\n                            <button className=\"btn btn-success rounded m-1 btn-sm\" onClick={apponayla}>Onayla</button>\r\n                            <button className=\"btn btn-primary  rounded m-1 btn-sm\" onClick={appret}>Havale Sürecine Dön</button>\r\n                            <button className=\"btn btn-danger  rounded m-1 btn-sm\" onClick={appkntorlgeri}>Geri Gönder</button>\r\n                            <button className=\"btn btn-danger  rounded m-1 btn-sm\" onClick={() => showConfirmMessage(\"Başvuruyu, Muellife geri göndermek istediğinize emin misiniz?\", \"\", \"Evet\", \"Hayır\", appiade)}>İade Et</button>\r\n\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </fieldset >\r\n        </div>\r\n    );\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useGlobalState, changeTurkceToEnglis, showErrorMessage, showSuccessMessage, isEmpty } from '../GlobalState.js';\r\nimport ReactToPdf from 'react-to-pdf';\r\nimport { jsPDF } from \"jspdf\";\r\nimport autoTable from 'jspdf-autotable'\r\nimport UserLabel from \"../User/UserLabel.js\";\r\nimport $ from 'jquery';\r\n\r\nexport default function RevisionReq(props) {\r\n    var postdata = {};\r\n\r\n    var mappingid = props.mappingRec.id;\r\n\r\n    const ref = React.createRef();\r\n\r\n    const [listData, setListData] = useState([]);\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userdata, setUserData] = useState(null);\r\n    const [myusername, setmyusername] = useGlobalState('userName');\r\n\r\n\r\n\r\n    const removeRecord = (id) => {\r\n        fetch(\"removemappingmessage\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(response.statusText)\r\n                })\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n\r\n                    if (value.some(x => x.sendDate >= props.mappingRec.Started))\r\n                        props.setCommentAfterStart(true);\r\n                    else\r\n                        props.setCommentAfterStart(false);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const submitUpdateRecord = (event, m) => {\r\n        const target = event.target;\r\n        if (target.type === 'checkbox') {\r\n            const value = target.checked;\r\n            m.ischecked = value;\r\n        }\r\n        if (isEmpty(m.message)) {\r\n            showErrorMessage(\"Düzeltme Talebi Boş Olamaz\")\r\n            return;\r\n        }\r\n\r\n        fetch(\"updatemappingmessage\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(m)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(response.statusText + \" \" + value)\r\n                })\r\n            }\r\n            else {\r\n                if (target.type != 'checkbox') {\r\n                    showSuccessMessage(\"Güncelleme Başarılı.\")\r\n                }\r\n                \r\n                   \r\n               \r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchList = () => {\r\n        fetch(\"listmappingmessage\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            // body: JSON.stringify(props.appData.id)\r\n            body: JSON.stringify(mappingid)\r\n\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(response.statusText)\r\n                })\r\n            }\r\n\r\n            else {\r\n                response.json().then(value => {\r\n                    if (typeof value === 'string' || value instanceof String)\r\n                       value= JSON.parse(value);\r\n\r\n                    setListData(value);\r\n\r\n                    if (value.some(x => x.sendDate >= props.mappingRec.Started))\r\n                        props.setCommentAfterStart(true);\r\n                    else\r\n                        props.setCommentAfterStart(false);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const Add = () => {\r\n        if (isEmpty(document.getElementById(\"revmessage\" + mappingid).value)) {\r\n            showErrorMessage(\"Düzeltme Talebi Boş Olamaz\")\r\n            return;\r\n        }\r\n\r\n\r\n\r\n        fetch(\"addmappingmessage\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({ mappingId: mappingid, message: document.getElementById(\"revmessage\" + mappingid).value })\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(response.statusText + \"  \" + value)\r\n                })\r\n            }\r\n            else {\r\n                document.getElementById(\"revmessage\" + mappingid).value = \"\";\r\n                fetchList();\r\n\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n\r\n    var lastDuzeltmeNo=null;\r\n    const getDuzeltmeBaslik = (r) => {\r\n        if (r.duzletmeNo == lastDuzeltmeNo)\r\n            return \"\";\r\n        lastDuzeltmeNo = r.duzletmeNo;\r\n\r\n        return <tr key={listData}>\r\n            <td colspan=\"4\" className=\"text-center\"><h6 className=\"text-primary\">{lastDuzeltmeNo}. Düzeltme Talebi</h6></td>\r\n        </tr>\r\n    }\r\n\r\n    const updateTextAreasHeight = (event) => {\r\n        var textareas = document.getElementsByTagName(\"textarea\");\r\n        if (textareas != null)\r\n            for (let i = 0; i < textareas.length; i++) {\r\n                //textareas[i].style.height = \"\";\r\n                textareas[i].style.height = textareas[i].scrollHeight + 2 + \"px\"\r\n            }\r\n\r\n    }\r\n\r\n    const renderTable = (tabledata) => {\r\n        \r\n        var mytable = <table className='table table-sm' id=\"pdfsource\" >\r\n            \r\n\r\n            <tbody id=\"myTable\" >\r\n\r\n                {tabledata.map(apprec => <>{getDuzeltmeBaslik(apprec)}\r\n                    \r\n                    <tr className={apprec.ischecked == true && \"text-success\"} key={apprec.id}>\r\n                        <td width=\"2%\" className=\"checkCol\">\r\n                            <input disabled={props.mappingRec.userName != myusername || props.mappingRec.Started == null || props.mappingRec.Completed} className=\"form-check-input\" type=\"checkbox\" name=\"karaliste\" id=\"karaliste\" defaultChecked={apprec.ischecked} style={{ width: \"16px\", height: \"16px\" }} onChange={(e) => submitUpdateRecord(e, apprec)} />\r\n                        </td>\r\n                        <td width=\"20%\" className=\"dateCol\">\r\n                            <span>{apprec.sendDate}</span>\r\n                        </td>\r\n                        <td width=\"70%\">\r\n                           \r\n                            {props.mappingRec.userName != myusername ? <div style={{ \"white-space\": \"pre-wrap\" }}>{apprec.message}</div> :\r\n                                <textarea maxLength=\"3000\" id={apprec.id} disabled={isEmpty(props.mappingRec.Started) || isEmpty(props.mappingRec.Completed) == false || apprec.sendDate < props.mappingRec.Started} className=\"form-control form-control-sm messageCol\" onInput={(e) => { e.target.style.height = \"\"; e.target.style.height = e.target.scrollHeight + 2 + \"px\" }} type=\"text\" name=\"message\" defaultValue={apprec.message} onChange={(e) => apprec.message = e.target.value} />}\r\n\r\n                        </td >\r\n\r\n                        <td width=\"8%\" className=\"buttonCol text-end\">\r\n\r\n                            {props.mappingRec.Started != null && apprec.sendDate >= props.mappingRec.Started&& <>\r\n                                <button hidden={props.appData.onKontrol != true || props.mappingRec.userName != myusername || props.mappingRec.Completed != null} onClick={(e) => submitUpdateRecord(e,apprec)} className=\"btn btn-link  text-decoration-none m-0 p-0 ms-1 text-primary\"><i class=\"fa fa-save\"></i></button>\r\n                                <button hidden={props.appData.onKontrol != true || props.mappingRec.userName != myusername || props.mappingRec.Completed != null} onClick={() => removeRecord(apprec.id)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0 text-muted\"><span className=\"text-decoration-none material-icons align-middle text-danger\" >delete</span>\r\n                                </button>\r\n                                </>}\r\n \r\n                        </td>\r\n                    </tr></>\r\n                )}\r\n            </tbody>\r\n        </table>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n    \r\n\r\n    const toPdfJSPDF = () => {\r\n\r\n        var doc = new jsPDF('p', 'pt', \"a4\");\r\n       // doc.addFont(\"Arial\", \"Arial\", \"normal\");\r\n        doc.setFont(\"Arial\", \"normal\");\r\n        doc.setFontSize(14);\r\n        doc.text(15, 40, \"Evrak No:\" + props.appData.id + \"           Başvuru Tarihi:\" + props.appData.basvuruTarihi)\r\n        //doc.text(15, 60, changeTurkceToEnglis(props.appData.mevki) + \"       \" + changeTurkceToEnglis(props.appData.mahalle) + \"       \" + changeTurkceToEnglis(props.appData.ada) + \"       \" + changeTurkceToEnglis(props.appData.basvuruTipi))\r\n        doc.text(15, 60, changeTurkceToEnglis(props.appData.mahalle) + \"  -   \" + changeTurkceToEnglis(props.appData.ada) + \"  -  \" + changeTurkceToEnglis(props.appData.arsaSahibi) + \"  -  \" + changeTurkceToEnglis(props.appData.basvuruTipi)+\" Kontrolor Duzeltmeleri\") \r\n\r\n        doc.text(15, 85,\"\")\r\n        var source = document.getElementById(\"pdfsource\").cloneNode(true);\r\n        source.className = \"\";\r\n        var colElems = source.firstChild.getElementsByClassName(\"buttonCol\");\r\n        for (var i = colElems.length - 1; i >= 0; i--) {\r\n            colElems[i].remove()\r\n        }\r\n        var colElems = source.firstChild.getElementsByClassName(\"checkCol\");\r\n        for (var i = colElems.length - 1; i >= 0; i--) {\r\n            colElems[i].firstChild.className = \"\";\r\n            colElems[i].firstChild.style[\"width\"] = \"12px\";\r\n        }\r\n\r\n        colElems = source.firstChild.getElementsByClassName(\"dateCol\");\r\n        for (var i = colElems.length - 1; i >= 0; i--) {\r\n            colElems[i].innerText = colElems[i].innerText.replace(\"/\", \"\");\r\n            colElems[i].innerText = colElems[i].innerText.replace(\"/\", \"  \");\r\n            colElems[i].innerText = colElems[i].innerText.replace(\":\", \" : \");\r\n        }\r\n\r\n\r\n        colElems = source.firstChild.getElementsByClassName(\"messageCol\");\r\n        if (colElems!=null)\r\n        for (var i = colElems.length - 1; i >= 0; i--) {\r\n            colElems[i].parentNode.innerText = colElems[i].innerText;\r\n        }\r\n\r\n        source.innerHTML = changeTurkceToEnglis(source.innerHTML);\r\n\r\n        source.style[\"font-size\"] = \"10px\";\r\n        source.style[\"font-family\"] = \"Arial\";\r\n        source.style[\"letter-spacing\"] = \"0.0px\";\r\n       // source = source.replaceAll(\"delete\", \"\")\r\n        doc.html(\r\n            source, {\r\n            'x': 15,\r\n                'y': 60,\r\n               \r\n                width: 520,\r\n                //margin:5,\r\n                windowWidth: 520,\r\n                margin: [40, 0, 40, 0],\r\n                callback: function (pdf) {\r\n                    pdf.setFontSize(12);\r\n                    pdf.text(15, 810, changeTurkceToEnglis(\"Kontrolor:  \" + userdata.name + \"   \" + userdata.family))\r\n                pdf.save('duzeltme_listesi.pdf');\r\n                }\r\n\r\n        });\r\n        // window.open(doc.output(\"bloburl\"), \"_blank\");\r\n        //doc.output(\"dataurlnewwindow\");\r\n    }\r\n\r\n\r\n    \r\n   const setNameFamily = (data) => {\r\n       setUserData(data);\r\n    }\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n    }, [])\r\n\r\n\r\n    var listTable = <div className=\"spinner-border\" ></div>;\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n\r\n\r\n    var printbutton = <div className=\"d-flex justify-content-end mt-2 mb-2\">\r\n        <ReactToPdf targetRef={ref} filename=\"pdf_file.pdf\" x={10} y={10} scale={0.7} >\r\n            {({ toPdf }) => (\r\n                <button className=\"btn btn-primary btn-sm text-decoration-none \" onClick={toPdfJSPDF}>PDF Oluştur</button>\r\n            )}\r\n        </ReactToPdf>\r\n    </div>\r\n\r\n    setTimeout(updateTextAreasHeight, 1000);\r\n\r\n    return (\r\n        <div className=\"border rounded-1 ps-2 pe-2\" >\r\n            <div className=\"row pt-2\"  >\r\n                <div className=\"col\">\r\n                    <h6 className=\"text-primary p-0 m-0\">Düzeltmeler</h6 >\r\n             \r\n                </div>\r\n                <div className=\"col text-end\" id=\"userinfo\">\r\n                    \r\n                    <UserLabel user={{ userName: props.user }} setNameFamily={setNameFamily}/>\r\n                </div>\r\n            </div>\r\n\r\n\r\n            <div className=\"row\" ref={ref} >\r\n\r\n                <div className=\"col-12 \" >\r\n                    \r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n            {(props.mappingRec.Started != null || props.mappingRec.duzeltmeDurum == true) ? <div className=\"row mt-1\"  >\r\n                <div className=\"col-11\">\r\n                    <textarea type=\"text\" maxlength=\"3000\" style={{ \"background-color\": \"transparent\" }} className=\"form-control form-control-sm \" id={\"revmessage\" + mappingid} key={mappingid} placeholder=\"Düzeltme Talebi\" name=\"revmessage\" defaultValue=\"\" onChange={(e) => {\r\n                        document.getElementById(\"charcount\" + mappingid).innerHTML = e.target.value.length;\r\n}} />\r\n                    <div className=\"small\"><span id={\"charcount\" + mappingid}></span>/3000</div>\r\n                </div>\r\n                <div className=\"col-1\">\r\n                    <button disabled={props.mappingRec.Completed != null || props.mappingRec.userName != myusername} onClick={Add} className=\"btn btn-sm btn-primary text-decoration-none \">Ekle</button>\r\n                </div>\r\n\r\n            </div> : \"\"}\r\n            <div className=\"row\" >\r\n                <div className=\"col-12\">\r\n                    {printbutton}\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport RevisionReqPanel from './RevisionReqPanel.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { useGlobalState, logout, getDenetimSure, calcBusinessDays, isEmpty, showConfirmMessage, showErrorMessage, sendpost } from '../GlobalState.js';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\n\r\n\r\nexport default function DenetimPaneli(props) {\r\n\r\n    const [appData, setData] = useState(props.appData);\r\n    const [denetimlist, setDenetimlist] = useState(props.denetimlist);\r\n    const [relatedControlors, setRelatedControlors] = useState([]);\r\n    const [apptypeList, setApptypeList] = useState(props.apptypeList);\r\n    const [rec, setRec] = useState(props.rec);\r\n    const [userName, setUserName] = useGlobalState('userName');\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [myusername, setusername] = useGlobalState('userName');\r\n    const [mission, setMission] = useState(props.mission);\r\n    const [commentAfterStart, setCommentAfterStart] = useState(false);\r\n    var havaleEdilecekKisiler = [];\r\n\r\n\r\n\r\n\r\n    window.scroll(0, 0)\r\n    useEffect(() => {\r\n        fetchMappedUsersToRelatedApps();\r\n    }, [])\r\n\r\n\r\n\r\n    const getApp = () => {\r\n        fetch(\"getapp\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: appData.id\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const saveApp = () => {\r\n        fetch(\"saveapplication\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json', 'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(appData)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                window.location = \"/\";\r\n            }\r\n        });\r\n    }\r\n\r\n    const kontrolubaslat = () => {\r\n        showConfirmMessage(\"Kontrolu başlatmak istediğinize emin misiniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"kontrolubaslat\", {\r\n                method: 'POST',\r\n                headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n                body: JSON.stringify(rec.id + \" \" + appData.updateCount)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    response.text().then(value => {\r\n                        if (value.includes(\"EskiVeri\")) {\r\n                            showErrorMessage(\"Başvuru Başka Kullanıcı Tarafından Guncellenmeştir. Listeye Dönerek Güncel Bilgilere Erişebilirsiniz\");\r\n                        }\r\n                    })\r\n                }\r\n                else {\r\n                    response.json().then(async data => {\r\n                        if (data != null) {\r\n                            if (data.id == -1)\r\n                                showErrorMessage(\"Başvuru Başka Kullanıcı Tarafından Guncellenmeştir. Listeye Dönerek Güncel Bilgilere Erişebilirsiniz\");\r\n                            else {\r\n                                data.Completed = data.completed;\r\n                                data.Started = data.started;\r\n                                setRec({ ...rec, ...data });\r\n                                getApp();\r\n                            }\r\n                        }\r\n                    });\r\n                    props.refreshParent();\r\n\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const duzeltmeiste = () => {\r\n        if (commentAfterStart == false) {\r\n            showErrorMessage(\"Düzeltme isteği göndermek için en az bir düzeltme notu eklenmelidir\")\r\n            return;\r\n        }\r\n\r\n        showConfirmMessage(\"Başvuruyu müellife göndererek düzeltme istediğinize emin misiniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n\r\n            fetch(\"duzeltmeiste\", {\r\n                method: 'POST',\r\n                headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n                body: JSON.stringify(rec.id + \" \" + appData.updateCount)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    response.text().then(value => {\r\n                        if (value.includes(\"EskiVeri\")) {\r\n                            showErrorMessage(\"Başvuru Başka Kullanıcı Tarafından Guncellenmeştir. Listeye Dönerek Güncel Bilgilere Erişebilirsiniz\");\r\n                        }\r\n                    })\r\n                }\r\n                else {\r\n                    response.json().then(async data => {\r\n                        if (data != null) {\r\n                            if (data.id == -1)\r\n                                showErrorMessage(\"Başvuru Başka Kullanıcı Tarafından Guncellenmeştir. Listeye Dönerek Güncel Bilgilere Erişebilirsiniz\");\r\n                            else {\r\n                                data.Completed = data.completed;\r\n                                data.Started = data.started;\r\n                                setRec({ ...rec, ...data });\r\n                                getApp();\r\n                            }\r\n                        }\r\n                    });\r\n                    props.refreshParent();\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n\r\n    const getDenetimUpdateCount = () => {\r\n        if (props.denetimlist == null || props.denetimlist.length == 0)\r\n            return \"\";\r\n        var k = props.denetimlist.find(rec => rec.activeDenetim == rec.sira);\r\n        if (k == null)\r\n            return \"\";\r\n        var r = props.apptypeList.find(x => x.id == k.denetimID)\r\n        if (r == null || r.duzeltmeSayi == null || r.duzeltmeSayi == 0) return \"\";\r\n        return \"/\" + r.duzeltmeSayi;\r\n    }\r\n\r\n    const duzeltmeKotasıDoldumu = () => {\r\n        if (props.denetimlist == null || props.denetimlist.length == 0)\r\n            return false;\r\n        var k = props.denetimlist.find(x => rec.denetimID == x.denetimID);\r\n        if (k == null)\r\n            return false;\r\n        var r = props.apptypeList.find(x => x.name == k.Name)\r\n        if (r != null && r.duzeltmeSayi != null && appData.duzeltmeSayi != null)\r\n            if (Number(r.duzeltmeSayi) < Number(appData.duzeltmeSayi))\r\n                return true;\r\n\r\n        if (r == null || r.duzeltmeDeadline == null || r.duzeltmeDeadline == \"\" || appData.sonDuzeltmeTalebiTarihi == null) return false;\r\n        var d = Number(r.duzeltmeDeadline);\r\n        var diffDays = d - calcBusinessDays(new Date(Date.now()), new Date(rec.duzeltmeIste.split(\" \")[0]))\r\n        return diffDays < 0;\r\n    }\r\n\r\n\r\n\r\n    const ForwardToOtherUser = () => {\r\n        \r\n        var message = document.getElementById(\"havaleMessage\").value\r\n\r\n        if (isEmpty(message) ) {\r\n            showErrorMessage(\"Havale açıklaması yazılmalıdır\")\r\n            return;\r\n        }\r\n        if (havaleEdilecekKisiler.length==0) {\r\n            showErrorMessage(\"Havale edilecek kontolör seçilmelidir\")\r\n            return;\r\n        }\r\n        var req = {appID:rec.appID}\r\n        req.id = rec.id;\r\n        req.sira = appData.updateCount\r\n        //req.denetimID = targetkontrolor;\r\n        req.message = message;\r\n        req.userName = havaleEdilecekKisiler.map(x=>x.id).join(',');\r\n\r\n        showConfirmMessage(\"Başvuru seçtiğiniz kontrolörlere ve daha sonra tekrar size havale edilecektir.\", \"\", \"Evet, Devam Et\", \"İptal\", () => {\r\n            sendpost(\"insertmapping\", req, \"myspinner\", (resp) => {\r\n\r\n                resp.json().then(async data => {\r\n                    if (data != null) {\r\n                        if (data.id == -1)\r\n                            showErrorMessage(\"Başvuru Başka Kullanıcı Tarafından Guncellenmeştir. Listeye Dönerek Güncel Bilgilere Erişebilirsiniz\");\r\n                        else {\r\n                            data.Completed = data.completed;\r\n                            data.Started = data.started;\r\n                            setRec({ ...rec, ...data });\r\n                            props.refreshParent();\r\n                        }\r\n                    }\r\n                });\r\n\r\n            }, (resp) => {\r\n                resp.text().then(value => {\r\n                    showErrorMessage(value);\r\n                })\r\n            })\r\n\r\n\r\n        });\r\n    }\r\n\r\n    const fetchMappedUsersToRelatedApps = () => {\r\n        var rids = props.relatedapps.filter(x => x.id != appData.id).map(x => x.id);\r\n        if (rids == null || rids.length == 0)\r\n            return;\r\n\r\n        fetch(\"mappeduserstoproject\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rids.join(','))\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    data = JSON.parse(data);\r\n                    setRelatedControlors(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const sendRevision = (rec) => {\r\n            showConfirmMessage(\"Düzeltmeyi tamamlamak istediğinize emin misiniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n                fetch(\"submitrevision\", {\r\n                    method: 'POST',\r\n                    headers: { 'Accept': 'application/json', 'Content-Type': 'text/json' },\r\n                    body: JSON.stringify(rec)\r\n                }).then(async response => {\r\n                    if (!response.ok) {\r\n                        response.text().then(value => {\r\n\r\n                        })\r\n                    }\r\n                    else {\r\n                        response.json().then(async data => {\r\n                            setRec({ ...rec, ...data });\r\n                        });\r\n                        props.refreshParent();\r\n                    }\r\n                });\r\n            });\r\n        }\r\n\r\n\r\n    const showControlButtons = (rec) => {\r\n\r\n\r\n            if (rec.userName != myusername) {\r\n                return <div className=\"row mt-2 mb-2\"><div className=\"col-12 mt-5 text-danger\"> </div></div>\r\n            }\r\n\r\n            if (rec.activeDenetim != rec.sira) {\r\n                return <div className=\"row mt-2 mb-2\"><div className=\"col-12 mt-5 text-danger\"> Kontrol tamamlanmıştır veya henüz kontrol sırası gelmemiştir. </div></div>\r\n            }\r\n\r\n            if (appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Tahakkuk_Bekleniyor ||\r\n                appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Ucret_Bekleniyor\r\n                || appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Onay_Bekliyor) {\r\n                return <div className=\"col-12 mt-5 text-danger\">Başvuru durumundan dolayı kontrol başlatılamaz</div>\r\n            }\r\n\r\n            {/* <button className=\"btn btn-warning  ms-2 btn-sm\" onClick={appret} disabled={rec.Started != null || rec.Completed != null}>Geri Gönder</button>*/ }\r\n            {/* <button className=\"btn btn-danger  ms-2 btn-sm\" onClick={appiade}>İade Et</button>*/ }\r\n\r\n        \r\n        denetimlist.forEach(rec => rec.itemname = rec.Name + \" (\" + rec.kname + \" \" + rec.kfamily + \")\")\r\n        relatedControlors.forEach(rec =>rec.itemname =\"Başvuru: \"+rec.appID+\" *** \"+  rec.Name + \" (\" + rec.uname + \" \" + rec.Family + \")\" )\r\nvar dlist = denetimlist.concat(relatedControlors)\r\n            return <div>\r\n \r\n                <div className=\"row pt-2 border-top mt-4 \"  >\r\n                    <div className=\"col\">\r\n                        <h6 className=\"text-primary p-0 m-0\">Başka Kontrolöre Havale</h6 >\r\n\r\n                    </div>\r\n                </div>\r\n                <div className=\"row\">\r\n                    <div className=\"col-md-6 col-12 mt-1\" >\r\n                        <textarea type=\"text\" maxlength=\"1000\" style={{ \"background-color\": \"transparent\", height: \"30px\" }} className=\"form-control \" placeholder=\"Havale Açıklaması\" id=\"havaleMessage\" disabled={rec.Started == null || rec.Completed != null} />\r\n                      </div>\r\n                    <div className=\"col-md-6 col-12 mt-1\" >\r\n                        {/*<select className=\"form-select form-select-sm\" id=\"mission\" name=\"denetimId\" disabled={rec.Started == null || rec.Completed != null}>*/}\r\n                        {/*    <option value={-1} > Kontrolör </option>*/}\r\n                        {/*    {denetimlist.map(rec => <option value={rec.id }>{rec.Name} ({rec.kname} {rec.kfamily})*/}\r\n                        {/*    </option>)}*/}\r\n                        {/*</select>*/}\r\n                        <Multiselect className=\"text-dark p-0\"\r\n                            options={dlist}\r\n                            emptyRecordMsg=\"Başka kayıt yok\"\r\n                            isObject={true}\r\n                            displayValue=\"itemname\"\r\n                            selectedValues={[]}\r\n                            avoidHighlightFirstOption={true}\r\n                            onSelect={(selectedList, removedItem) => { havaleEdilecekKisiler = selectedList }} // Function will trigger on select event\r\n                            onRemove={(selectedList, removedItem) => { havaleEdilecekKisiler = selectedList }} // Function will trigger on remove event\r\n                            hidePlaceholder={true}\r\n                            placeholder=\"Kontrolör\"\r\n                            disable={ rec.Started == null || rec.Completed != null } \r\n                        />\r\n                    </div>\r\n                    <div className=\"row mt-4 mb-2\">\r\n                        <div className=\"col-12 d-flex align-items-center\" >\r\n                            <div className=\"btn-group flex-wrap\" role=\"group\" aria-label=\"Basic example\">\r\n                                <button className=\"btn btn-primary border rounded-2 btn-sm flex-shrink-0\" onClick={kontrolubaslat} disabled={rec.Started != null || rec.duzeltmeDurum == true}>Kontrolu Başlat</button>\r\n                                <button className=\"btn btn-danger border rounded-2 ms-1 btn-sm flex-shrink-0\" onClick={duzeltmeiste} disabled={rec.Started == null || rec.Completed != null}>Düzeltme Iste</button>\r\n                                <button className=\"btn btn-primary  border rounded-2 btn-sm ms-1 flex-shrink-0\" onClick={apponayla} disabled={rec.Started == null || rec.Completed != null}>Kontrolu Tamamla</button>\r\n                                <button className=\"btn btn-primary border rounded-2 btn-sm ms-1\" onClick={ForwardToOtherUser} disabled={rec.Started == null || rec.Completed != null}>Kontrolu Tamamla ve Havale Et</button>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                \r\n            </div>\r\n\r\n        }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n        const apponayla = () => {\r\n\r\n            showConfirmMessage(\"Kontrolu tamamlamak istediğinize emin misiniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n                fetch(\"kontrolutamamla\", {\r\n                    method: 'POST',\r\n                    headers: { 'Accept': 'application/json', 'Content-Type': 'text/json' },\r\n                    body: JSON.stringify(rec.id + \" \" + appData.updateCount)\r\n                }).then(async response => {\r\n                    if (!response.ok) {\r\n                        response.text().then(value => {\r\n\r\n                        })\r\n\r\n\r\n                    }\r\n                    else {\r\n                        response.json().then(async data => {\r\n                            if (data != null) {\r\n                                if (data.id == -1)\r\n                                    showErrorMessage(\"Başvuru Başka Kullanıcı Tarafından Guncellenmeştir. Listeye Dönerek Güncel Bilgilere Erişebilirsiniz\");\r\n                                else {\r\n                                    data.Completed = data.completed;\r\n                                    data.Started = data.started;\r\n                                    setRec({ ...rec, ...data });\r\n                                    getApp();\r\n                                }\r\n                            }\r\n                        });\r\n                        props.refreshParent();\r\n                    }\r\n                });\r\n            });\r\n\r\n        }\r\n\r\n\r\n\r\n\r\n        const appiade = () => {\r\n            showConfirmMessage(\"Başvuruyu redd edrek, müellife iade etmek istediğinize emin misiniz?\", \"\", \"Evet\", \"Hayır\", () => setTimeout(() => {\r\n                var comment = window.prompt(\"Lütfen iade etme nedenini açıklayınız\")\r\n                if (comment == null || comment.length == 0) {\r\n                    showErrorMessage(\"Açıklama Boş Olamaz\");\r\n                    return;\r\n                }\r\n\r\n                appData.basvuruDurumu = UserPermConstants.Basvuru_Durumu_Iade_Edildi;\r\n                appData.iadeNedeni = comment;\r\n                appData.iadeEden = userName;\r\n                saveApp();\r\n            }, 100));\r\n\r\n        }\r\n        const commentSent = (rec) => {\r\n\r\n\r\n\r\n        }\r\n\r\n\r\n\r\n\r\n\r\n\r\n        return (\r\n            <div  >\r\n                {/*fix this has error <fieldset disabled={appData[colname] == true || rec.userName != myusername}>*/}\r\n                <fieldset >\r\n                    <div className=\"row \" disabled={rec.userName != myusername}>\r\n                        <div className=\"col-6\">\r\n                            <h5 className=\"text-primary \">{mission} </h5>\r\n                            {rec.duzeltmeDurum == true &&\r\n                                <span className=\"text-danger fw-bold\">({appData.duzeltmeSayi}{getDenetimUpdateCount()} Düzeltme İstendi)</span>\r\n                            }\r\n                            {isEmpty(rec.Completed) && (rec.userName == myusername || role.indexOf(UserPermConstants.Kalan_Sure_Gorme)>-1) &&\r\n                                <div>\r\n                                    <div className=\"text-muted\" >{getDenetimSure(rec, apptypeList, appData, \"Kalan Süre:\")}</div>\r\n                                </div>}\r\n                        </div>\r\n                        {rec.duzeltmeDurum == true && appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Duzeltme_Bekleniyor &&\r\n                            <div className=\"col-6 text-success text-end fw-bold\" >\r\n                                {duzeltmeKotasıDoldumu() == true && role.indexOf(UserPermConstants.Iade_Basvuruyu_Gonderme) == -1 ?\r\n                                    <h6 className=\"text-danger \">Düzeltme Sınırı Aşıldı</h6>\r\n                                    :\r\n                                    <button type=\"button\" className=\"btn btn-sm btn-success\" onClick={() => { sendRevision(rec); }} >\r\n                                        Düzeltmeyi Gönder\r\n                                    </button>}\r\n                            </div>\r\n                        }\r\n\r\n\r\n                        {rec.Completed != null &&\r\n                            <div className=\"col-6 text-success text-end fw-bold\" >\r\n                                Kontrol Tamamlanmıştır.\r\n                            </div>}\r\n                    </div>\r\n                    <div className=\"row \">\r\n                        <div className=\"col-4\">\r\n                            Havale No:{rec.id}\r\n                        </div>\r\n                        <div className=\"col-4\">\r\n                            Havale Eden: {rec.mapperName+\" \"+rec.mapperFamily}\r\n                        </div>\r\n                        <div className=\"col-4\">\r\n                            Tarih: {rec.mappingDate}\r\n                        </div>\r\n\r\n                    </div>\r\n                    {rec.userName == myusername && <div className=\"row \">\r\n                        <div className=\"col-4\">\r\n                            Açıklama: {rec.message}\r\n                        </div>\r\n                    </div>}\r\n\r\n                    <div className=\"row \">\r\n                        <div className=\"col-12\">\r\n                            {isEmpty(rec.Started) == false &&\r\n                                <span className=\"text-secondary \">Kontrol Başlama: {rec.Started}</span>\r\n                            }\r\n                            {rec.duzeltmeDurum == true &&\r\n                                <span className=\"ms-2 text-secondary \">Düzeltme Talebi: {rec.duzeltmeIste}</span>\r\n                            }\r\n                            {isEmpty(rec.Completed) == false &&\r\n                                <span className=\"ms-2 text-secondary \">Kontrol Tamamlanma: {rec.Completed}</span>\r\n                            }\r\n                        </div>\r\n\r\n\r\n                    </div>\r\n                    <div className=\"row mt-2 mb-2\">\r\n                        <div className=\"col-12\">\r\n                            {rec.Message == null ? \"\" : rec.mapperUserName + \": \" + rec.Message}\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"row mt-2 mb-2\">\r\n\r\n                        <div className=\"col-12 \" >\r\n                            <RevisionReqPanel mappingRec={rec} appData={appData} user={rec.userName} setCommentAfterStart={setCommentAfterStart} />\r\n                        </div>\r\n                    </div>\r\n\r\n                    {showControlButtons(rec)}\r\n\r\n\r\n                </fieldset >\r\n            </div >\r\n        );\r\n    }\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom'\r\nimport { ajaxFail, isEmpty, useGlobalState, getappdata, showErrorMessage, showSuccessMessage} from '../GlobalState.js';\r\n\r\nimport NotePanel from './NotePanel.js';\r\nimport EventPanel from \"./EventPanel.js\";\r\nimport FilesPanel from \"./FilesPanel.js\";\r\nimport ApplicationAuthorPanel from \"./ApplicationAuthorPanel.js\";\r\nimport Sharing from './Sharing.js';\r\n//import $ from 'jquery';\r\nimport ApplicationPrint from \"./ApplicationPrint.js\";\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport AppMainData from \"./AppMainData.js\";\r\nimport TarifeMappingList from \"./TarifeMappingList.js\";\r\nimport HavaleYetkiliciPanel from \"./HavaleYetkiliciPanel.js\";\r\nimport BasvuruKabulPanel from \"./BasvuruKabulPanel.js\";\r\nimport OnayYetkilisiPanel from \"./OnayYetkilisiPanel.js\";\r\nimport DenetimPaneli from \"./DenetimPaneli.js\";\r\nimport EImzaList from '../Eimza/EImzaList.js';\r\nimport ApplicationList from './ApplicationList.js';\r\nimport Home from '../Dashboard/Home.js';\r\nimport MaksList from '../MAKS/MaksList.js';\r\n\r\n\r\nexport default function Application(props) {\r\n    const [appData, setData] = useState(props.appData != null ? props.appData : location.state.rec);\r\n    const [onmobile, setOnMobile] = useState(window.innerWidth < 680 ? true : false)\r\n    const changeComponent = props.changeComponent;\r\n    const [backPage, setBackPage] = useState(props.backButton);\r\n    let location = useLocation();\r\n    const [sabitsorulistData, setsabitsorulistData] = useState([]);\r\n    const [userName, setUserName] = useGlobalState('userName');\r\n    const [following, setFollowing] = React.useState();\r\n    const ref = React.createRef();\r\n    const [denetimpaenls, setDenetimPaenls] = useState([]);\r\n\r\n    const [apptypeList, setAppTypeList] = useState(props.denetimList != null ? props.denetimList:[]);\r\n\r\n    const [activePanel, setActivePanel] = useState(null)\r\n      \r\n\r\n    const [relatedapps, setRelatedapps] = useState([]);\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [sharingType, setSharingType] = useState('');\r\n    var appType = apptypeList.find(x => x.name == appData.basvuruTipi && x.isadimi!=true)\r\n\r\n\r\n    const zorunloBosBirakma = role.indexOf(UserPermConstants.Yeni_Basvuruda_Zorunlu_Alanlari_Bos_Birakabilme) == -1;\r\n\r\n    useEffect(() => {\r\n        \r\n        isFollower();\r\n        getRelatedApps();\r\n        if (apptypeList == null || apptypeList.length == 0)\r\n            getDenetimList();\r\n        window.scrollTo(0, 0)\r\n        if (appData != null && isEmpty(appData.temp) == false && appData.temp.includes(\"#\")) {\r\n            setSharingType(appData.temp.split(\"#\")[1]);\r\n               }\r\n    }, [])\r\n\r\n\r\n    if (appData != null && relatedapps != null && relatedapps.length > 0) {\r\n        appData.relatedApps = relatedapps;  //we use this to show related apps file in inlinefile component\r\n        \r\n    }\r\n\r\n\r\n    const getDenetimList = () => {\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setAppTypeList(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    var sidebarPanel = [];\r\n    if (role.indexOf(\"kartPaylasimi\") > -1)\r\n        sidebarPanel.push({ target: \"/appsharing\", state: {}, name: \"Paylaşım\", icon: \"fa fa-share-alt\" })\r\n\r\n\r\n\r\n    //$(window).resize(function () {\r\n\r\n    //    if ($(this).width() < 680 && onmobile == false) {\r\n    //        setOnMobile(true)\r\n    //    }\r\n    //    else if (onmobile == true){\r\n    //        setOnMobile(false)\r\n    //    }\r\n    //});\r\n\r\n\r\n\r\n    const getApp = () => {\r\n        fetch(\"getapp\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: appData.id\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    var operationPanel = [];\r\n    if (role.indexOf(UserPermConstants.Basvuru_Onaylama) >= 0 && appData.archived != true && appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Taslak)\r\n        operationPanel.push({ name: \"Başvuru Kabul\", panel: < BasvuruKabulPanel rec={appData} relatedApps={relatedapps} changeComponent={props.changeComponent} /> });\r\n    if (role.indexOf(UserPermConstants.Havale_Yapma) >= 0\r\n        && appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Taslak\r\n        && appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Duzeltme_Bekleniyor\r\n        && appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Iade_Edildi\r\n        && appData.archived != true)\r\n        operationPanel.push({ name: \"Havale\", panel: <HavaleYetkiliciPanel rec={appData} relatedapps={relatedapps} changeComponent={props.changeComponent} getApp={getApp} refreshParent={() => { getmypermissionsonproject(); getApp(); }} /> });\r\n\r\n    if (role.indexOf(UserPermConstants.Basvuru_Onaylama_Kontrolorden_Sonraki_Biti_Onayi) >= 0\r\n        && appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Taslak\r\n        && appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Duzeltme_Bekleniyor\r\n        && appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Iade_Edildi\r\n        && appData.archived != true)\r\n        operationPanel.push({ name: \"Onay\", panel: <OnayYetkilisiPanel rec={appData} changeComponent={props.changeComponent} /> });\r\n\r\n    //if (role.indexOf(UserPermConstants.Ruhsat_Kesme) >= 0 && appData.onKontrol == true)\r\n    //    pan.push({ name: \"Ruhsat Kesme\", panel: <RuhsatKesmeYetkilisiPanel rec={appData} changeComponent={props.changeComponent} /> });\r\n\r\n    operationPanel = operationPanel.map(x => <div className=\"mt-2\">\r\n        <button type=\"button\" className=\"btn fw-bold  btn-sm text-muted text-decoration-none\" onClick={(e) => { makeBold(e); setActivePanel(x.panel) }}>\r\n            {x.name}\r\n        </button>\r\n    </div>)\r\n\r\n\r\n    const isFollower = () => {\r\n        fetch(\"isfollower\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: appData.id\r\n        }).then(async response => {\r\n            if (!response.ok) { ajaxFail(response); }\r\n            else { setFollowing(true); }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const changeFollow = (targeturl) => {\r\n        fetch(targeturl, {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: appData.id\r\n        }).then(async response => {\r\n            if (!response.ok) { ajaxFail(response); }\r\n            else { }\r\n        });\r\n    }\r\n\r\n    const getRelatedApps = () => {\r\n        fetch(\"getrelatedapps\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(appData.securityToken)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setRelatedapps(value)\r\n                    getmypermissionsonproject();\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const handleFollowingChange = (event) => {\r\n        const target = event.target;\r\n        if (target.checked)\r\n            changeFollow(\"followapp\");\r\n        else\r\n            changeFollow(\"disfollowapp\");\r\n\r\n    }\r\n\r\n\r\n\r\n    const getmypermissionsonproject = (callback) => {\r\n        fetch(\"getmypermissionsonproject\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: appData.id\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    if (data != null && data.length > 0) {\r\n                        data = JSON.parse(data);\r\n                        setDenetimPaenls(data);\r\n\r\n                    }\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const makeBold = (e) => {\r\n        var btns = document.getElementById(\"buttonsbox\").querySelectorAll(\".btn\");\r\n        btns.forEach(x => { if (x.classList.contains(\"btn-link\") == false) { x.classList.remove(\"btn-primary\"); x.classList.add(\"text-muted\") } })\r\n        if (e == null) return;\r\n        var b = e.target;\r\n        b.classList.remove(\"text-muted\")\r\n        b.classList.add(\"btn-primary\")\r\n    }\r\n\r\n    const zorunlu = (name) => {\r\n        var r = sabitsorulistData.filter(x => x.name.toUpperCase() == name.toUpperCase() && x.basvuruTipi != null && x.basvuruTipi.includes(appData.basvuruTipi));\r\n        if (r.length == 0)\r\n            return \"*\";\r\n\r\n        if (r[0].zorunlu == true)\r\n            return \"\"\r\n        return \"*\";\r\n    }\r\n\r\n\r\n\r\n\r\n    const saveApp = () => {\r\n        fetch(\"saveapplication\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(appData)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async newapp => {\r\n                    if (newapp.updateCount < 0) {\r\n                        showErrorMessage(newapp.temp);\r\n                        getappdata(newapp.id, setData);\r\n\r\n                    }\r\n                    else {\r\n                        changeComponent(<ApplicationList changeComponent={changeComponent} />)\r\n                    }\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const handleRelatedAppSelect = (event) => {\r\n        if (event.target.value == -1) return;\r\n        props.changeComponent(<Application key={relatedapps[event.target.value].id} appData={relatedapps[event.target.value]} changeComponent={props.changeComponent}\r\n            backButton={<Application key={appData.id} appData={appData} changeComponent={props.changeComponent} />} />)\r\n    }\r\n\r\n\r\n    const submitApp = (eimza) => {\r\n\r\n        var appType = apptypeList.find(x => x.name == appData.basvuruTipi)\r\n\r\n        if (document.getElementById(\"basvuruYapan\") == null) {\r\n            setActivePanel(<AppMainData key={appData} surecList={props.surecList} appData={appData} denetimlist={denetimpaenls} changeComponent={changeComponent} setsabitsorulistData={setsabitsorulistData} apptypeList={apptypeList} refreshParent={() => { getmypermissionsonproject(); getApp(); }} />)\r\n\r\n        }\r\n\r\n        appData.eimzagonder = eimza;\r\n\r\n\r\n        if (isEmpty(appData.basvuruTipi)) {\r\n            showErrorMessage(\"başvuru tipi boş olamaz\"); return;\r\n        }\r\n\r\n        if (appData.changed == true) {\r\n            showErrorMessage(\"Başvuru bilgileri değiştiğinden dolayı göndermeden önce Kaydet butonuna basarak başvuruyu kaydediniz\"); return;\r\n        }\r\n\r\n\r\n\r\n        if (isEmpty(appData.basvuruYapan) && zorunlu(\"basvuruYapan\") == \"*\" && zorunloBosBirakma) {\r\n            showErrorMessage(\"başvuru yapan boş olamaz\"); return;\r\n        }\r\n        if (isEmpty(appData.arsaSahibi) && appType.tasinamazSahibiZorunlu==true && zorunloBosBirakma) {\r\n            showErrorMessage(\"Taşınmaz sahibi boş olamaz\"); return;\r\n        }\r\n        if (isEmpty(appData.arsaSahibiTel) && appType.tasinamazSahibiZorunlu == true && zorunloBosBirakma) {\r\n            showErrorMessage(\"Taşınmaz sahibi telefonu boş olamaz\"); return;\r\n        }\r\n        if (isEmpty(appData.arsaSahibiTC) && appType.tasinamazSahibiZorunlu == true && zorunloBosBirakma) {\r\n            showErrorMessage(\"Taşınmaz sahibi T.C boş olamaz\"); return;\r\n        }\r\n        //if (isEmpty(appData.mevki) && zorunlu(\"Mevki\") == \"*\" && zorunloBosBirakma) {\r\n        //    alert(\"mevki boş olamaz\"); return;\r\n        //}\r\n        if (isEmpty(appData.mahalle) && appType.mahalleZorunlu == true && zorunloBosBirakma) {\r\n            showErrorMessage(\"mahalle boş olamaz\"); return;\r\n        }\r\n        if (isEmpty(appData.ada) && appType.adaZorunlu == true && zorunloBosBirakma) {\r\n            showErrorMessage(\"ada boş olamaz\"); return;\r\n        }\r\n        //if (isEmpty(appData.idariMahalle) && zorunlu(\"IdariMahalle\") == \"*\" && zorunloBosBirakma) {\r\n        //    alert(\"idari mahalle boş olamaz\"); return;\r\n        //}\r\n        if (isEmpty(appData.sokak) && appType.sokakZorunlu == true && zorunloBosBirakma) {\r\n            showErrorMessage(\"sokak boş olamaz\"); return;\r\n        }\r\n        if (isEmpty(appData.no) && appType.noZorunlu == true && zorunloBosBirakma) {\r\n            showErrorMessage(\"no boş olamaz\"); return;\r\n        }\r\n\r\n        if (eimza == true)\r\n            document.getElementById(\"eimzagonderbuttonSpinner\").hidden = false;\r\n        else\r\n            document.getElementById(\"gonderbuttonSpinner\").hidden = false;\r\n\r\n        fetch(\"submitapplication\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(appData)\r\n        }).then(async response => {\r\n            var eimzab1 = document.getElementById(\"eimzagonderbuttonSpinner\");\r\n            if (eimzab1 != null)\r\n                eimzab1.hidden = true;\r\n\r\n            eimzab1 = document.getElementById(\"gonderbuttonSpinner\");\r\n            if (eimzab1 != null)\r\n                eimzab1.hidden = true;\r\n\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async newapp => {\r\n                    if (newapp.updateCount == -1) {\r\n                        showErrorMessage(\"Başvuru bilgileri başka kullanıcı tarafından değiştiği için başvuru gönderilmedi. Lütfen sayfayı yenileyiniz.\");\r\n                        getappdata(newapp.id, setData);\r\n                    }\r\n                    else if (newapp.updateCount == -2) {\r\n                        showErrorMessage(\"Başvuruya devam edebilmek için kırmızı olarak işaretlenen zorunlu dosyaları yüklemeniz gerekmektedir.\", \"Zorunlu dosyaları (\" + newapp.temp + \") yükledikten sonra başvuruyu gönderebilirsiniz.\");\r\n                        newapp.temp = \"\";\r\n                        getappdata(newapp.id, setData);\r\n                    }\r\n                    else if (newapp.updateCount == -3) {\r\n                        showErrorMessage(newapp.temp);\r\n                        newapp.temp = \"\";\r\n                        getappdata(newapp.id, setData);\r\n                    }\r\n                    else {\r\n                        setTimeout(function () {\r\n                            showSuccessMessage(\"Başvurunuz Gönderilmiştir\",\"\",()=>changeComponent(<ApplicationList changeComponent={changeComponent} />))\r\n                            \r\n                        }, 10)\r\n                    }\r\n                });\r\n\r\n\r\n\r\n\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n    const getControllorColor = (rec) => {\r\n        if (isEmpty(rec.Completed) == false) return \"text-success\";\r\n        if (rec.activeDenetim == rec.sira && rec.duzeltmeDurum == true) return \"text-warning\";\r\n        if (rec.activeDenetim == rec.sira) return \"text-primary\";\r\n        return \"text-muted\";\r\n    }\r\n    const getControllorDurumText = (rec) => {\r\n        if (isEmpty(rec.Completed) == false) return <span class=\"badge rounded-pill bg-success ps-1\" title=\"Kontrol tamamlandı\">Kontrol Tamamlandı</span>;\r\n        if (rec.activeDenetim == rec.sira && rec.duzeltmeDurum == true) return <span class=\"badge rounded-pill bg-warning  ps-1\" title=\"Kontrolor düzeltme istemiş\">Düzeltme Bekleniyor</span>;\r\n        if (rec.activeDenetim == rec.sira) return <span class=\"badge rounded-pill bg-primary  ps-1\" title=\"Kontrol devam ediyor\">Kontrol Aşamasında</span>;\r\n        return <span class=\"badge bg-secondary  ps-1\" title=\"Sıra bekleniyor\">Sırada</span>;\r\n    }\r\n\r\n    var gonder = \"\";\r\n    if (role.indexOf(UserPermConstants.BASKA_BASVURU_GONDERME) > -1 || appData.basvuruYapan == userName\r\n        ||  sharingType == \"Düzenleme\") {\r\n        if (isEmpty(appData.temp) == true || appData.temp.includes(\"Görüntüleme\") == false) {\r\n\r\n            if (appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Taslak\r\n                || appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Ucret_Bekleniyor\r\n                || appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_GeriGonderildi) {\r\n                gonder = <span id=\"GonderButton\" className=\"text-danger\"><button type=\"button\" className=\"btn btn-success rounded btn-sm m-1\" onClick={() => { submitApp(false) }}>\r\n                    Gönder\r\n                    <span class=\"ms-1 spinner-border spinner-border-sm\" id=\"gonderbuttonSpinner\" hidden></span>\r\n                </button>\r\n                    {/*{role.indexOf(\"TC$EIMZA$\") > -1 && role.indexOf(UserPermConstants.EImzali_Gonderme) > -1 && < button type=\"button\" className=\"btn btn-success  btn-sm \" onClick={() => { submitApp(true) }}>*/}\r\n                    {/*    E-İmza ile Gönder*/}\r\n                    {/*    <span class=\"ms-1 spinner-border spinner-border-sm\" id=\"eimzagonderbuttonSpinner\" hidden></span>*/}\r\n\r\n                    {/*</button>}*/}\r\n\r\n                </span>\r\n            }\r\n        }\r\n    }\r\n\r\n\r\n    const getArchiveButton = () => {\r\n        if (appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Ruhsat_Verildi || appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Onay_Verildi ||\r\n            appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Iade_Edildi) {\r\n            if (appData.archived != true && role.indexOf(UserPermConstants.Basvuru_Arsiv) != -1) { return <button className=\"btn btn-sm btn-primary rounded m-1\" onClick={() => { appData.archived = true; saveApp(); }}>  Arşivle</button> }\r\n        }\r\n        if (appData.archived == true && role.indexOf(UserPermConstants.Basvuru_Arsiv_Cikar) != -1)  return <button className=\"btn btn-sm btn-primary rounded m-1\" onClick={() => { appData.archived = false; saveApp(); }}>  Arşivden Çıkar</button>\r\n        return \"\";\r\n    }\r\n\r\n\r\n\r\n    const isVisibleForUser = () => {\r\n        try {\r\n            if (appData.basvuruYapan == userName)\r\n                return true;\r\n            if (denetimpaenls != null && denetimpaenls.some(x => x.userName == userName))\r\n                return true;\r\n\r\n            if (role.indexOf(UserPermConstants.Havale_Yapma) > -1 || role.indexOf(UserPermConstants.Basvuru_Liste) > -1)\r\n                return true;\r\n\r\n\r\n            // müellif listesinde varsa dosyayı gostermiyoruz\r\n            if (isEmpty(appData.müellifKullanıcıAdı) == false && appData.müellifKullanıcıAdı.includes(userName + \" \"))\r\n                return false;\r\n           /* if (rec.appId == appData.id || role.indexOf(UserPermConstants.Basvuru_Onaylama) > -1)\r\n                return true;\r\n            if (appData.relatedApps != null && appData.relatedApps.map(x => x.id).includes(rec.appId) && role.indexOf(UserPermConstants.Ilgili_Basvurulari_Gorme) > -1)\r\n                return true;*/\r\n            return true;\r\n        }\r\n        catch (ex) {\r\n            console.log(ex);\r\n        }\r\n        return false;\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n    return <div className=\"row p-2 pb-5\" style={{ \"background-color\": \"#ebebeb\" }} >\r\n\r\n        <div className=\"row mb-2 p-0\" >\r\n            <div className=\"col-12 col-5 col-md-5 text-danger fw-bold\">\r\n                {appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Duzeltme_Bekleniyor &&\r\n                    \"Başvuru, Düzeltme Bekleniyor aşamasındadır. Düzeltmeler tamamlandıktan sonra ilgili kontrol panelinden “DÜZELTMEYİ GÖNDER” tuşuna basılması gerekmektedir. \"\r\n                }\r\n                {appData.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Iade_Edildi ? (\"İade Nedeni: \"+appData.iadeNotu):\"\"\r\n                    \r\n                }\r\n            </div>\r\n            <div className=\"col-12  col-md-7 align-items-end justify-content-end  text-end\">\r\n\r\n                <div class=\"btn-group flex-wrap\" data-toggle=\"buttons\" role=\"group\">\r\n\r\n\r\n\r\n\r\n                    <button className=\"btn btn-sm btn-primary rounded m-1\" onClick={() => { changeComponent(backPage != null ? backPage : <Home changeComponent={props.changeComponent} />) }}> <i className=\"fa fa-arrow-circle-left pe-1\"></i> Geri Don</button>\r\n\r\n\r\n                    {getArchiveButton()}\r\n                    {appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Taslak && appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Taslak &&apptypeList!=null&&\r\n                        <button className=\"btn btn-sm btn-primary rounded m-1 ps-3 pe-3\" onClick={() => { changeComponent(<ApplicationPrint rec={appData} changeComponent={changeComponent} backButton={props.backButton} appTypes={apptypeList} />) }}> <i className=\"fa fa-print pe-1\"></i> Dilekçe</button>}\r\n\r\n\r\n                    {gonder}\r\n\r\n\r\n                    {isVisibleForUser() &&\r\n                        <button className=\"btn btn-sm btn-primary rounded m-1\" onClick={() => { changeComponent(<Sharing rec={appData} changeComponent={changeComponent} backButton={props.backButton} />) }}>\r\n                            <i className=\"fa fa-share-alt pe-1\"></i>\r\n                            Paylaş</button>\r\n                    }\r\n\r\n                    <div class=\"form-check form-switch  text-primary pt-1 pe-3\">\r\n                        Takip Et<input class=\"form-check-input\" type=\"checkbox\" id=\"mySwitch\" name=\"darkmode\" value=\"yes\" defaultChecked={following} onClick={handleFollowingChange} />\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div className=\"row\" >\r\n\r\n            <div className=\"col-md-3 col-12\" id=\"buttonsbox\">\r\n\r\n                <div className=\"bg-white rounded-3 p-3 \" >\r\n                    <div>{appType!=null&&\r\n                        <div className=\"fw-bold text-black text-center mb-1\"> {(appType.adaAktif == true || isEmpty(appData.ada) == false) ? appData.ada + \"-\" + appData.arsaSahibi : appData.basvuruTipi} < span className=\"ps-3 text-muted fw-bold text-end\"> {appData.id} </span></div>\r\n                    }\r\n                        </div>\r\n                    <div>\r\n                        {onmobile == true && <div className=\"text-black text-center mb-3\"> {appData.basvuruTipi}</div>}\r\n                    </div>\r\n                    <div className=\"mt-2\">\r\n                        <button type=\"button\" className={\"btn fw-bold  btn-sm  text-decoration-none text-left \" + (props.targetEimza == null ? \" btn-primary\" : \"text-muted\")} onClick={(e) => { makeBold(e); setActivePanel(<AppMainData key={appData} surecList={props.surecList} appData={appData} apptypeList={apptypeList} denetimlist={denetimpaenls} changeComponent={changeComponent} setsabitsorulistData={setsabitsorulistData} refreshParent={() => { getmypermissionsonproject(); getApp(); }} />) }}>\r\n                            Başvuru Bilgileri\r\n                        </button>\r\n\r\n                    </div>\r\n                    <div className=\"mt-2\">\r\n                        <button type=\"button\" className=\"btn fw-bold  btn-sm text-muted text-decoration-none \" onClick={(e) => { makeBold(e); setActivePanel(<NotePanel appData={appData} />) }}>\r\n                            Notlar\r\n                        </button>\r\n\r\n                    </div>\r\n                    <div className=\"mt-2\">\r\n                        <button type=\"button\" className=\"btn fw-bold btn-sm text-muted text-decoration-none \" onClick={(e) => { makeBold(e); setActivePanel(<EventPanel appData={appData} />) }}>\r\n                            Geçmiş Aktiviteler\r\n                        </button>\r\n                    </div>\r\n                    {appType!=null&&appType.muellifAktif == true && <div className=\"mt-2\">\r\n                        <button type=\"button\" className=\"btn fw-bold  btn-sm text-muted text-decoration-none \" onClick={(e) => {\r\n                            makeBold(e); setActivePanel(<ApplicationAuthorPanel appData={appData} setActivePanel={setActivePanel} denetimpaenls={denetimpaenls} />)\r\n                        }}>\r\n                            Müellif Listesi\r\n                        </button>\r\n                    </div>}\r\n\r\n                    <div className=\"mt-2\">\r\n                        <button type=\"button\" className=\"btn fw-bold  btn-sm text-muted text-decoration-none \" onClick={(e) => { makeBold(e); setActivePanel(<FilesPanel appData={appData} showAll={true} setActivePanel={setActivePanel} changeComponent={changeComponent} kontrolorList={denetimpaenls} />) }}>\r\n                            Dosyalar\r\n                        </button>\r\n                    </div>\r\n\r\n\r\n                    <div className=\"mt-2\">\r\n                        <button type=\"button\" className={\"btn fw-bold  btn-sm  text-decoration-none \" + (props.targetEimza != null ? \" btn-primary\" : \"text-muted\")} id=\"EimzaButton\" onClick={(e) => { makeBold(e); setActivePanel(<EImzaList appData={appData} setActivePanel={setActivePanel} changeComponent={changeComponent} />) }}>\r\n                            E-İmza\r\n                        </button>\r\n                    </div>\r\n                    {role.indexOf(UserPermConstants.Tarife_Gorme) > -1 && \r\n                    <div className=\"mt-2\">\r\n                        <button type=\"button\" className={\"btn fw-bold  btn-sm  text-decoration-none \" + (props.targetEimza != null ? \" btn-primary\" : \"text-muted\")} id=\"TarifeButton\" onClick={(e) => { makeBold(e); setActivePanel(<TarifeMappingList appData={appData} setActivePanel={setActivePanel} changeComponent={changeComponent} />) }}>\r\n                            Tarifeler\r\n                        </button>\r\n                    </div>}\r\n\r\n                    {role.indexOf(UserPermConstants.MAKS_Veri_Girisi) >= 0 && <div className=\"mt-2 mb-5\">\r\n                        <button type=\"button\" className=\"btn fw-bold  btn-sm text-muted text-decoration-none \" id=\"MaksButton\" onClick={(e) => { makeBold(e); setActivePanel(<MaksList appData={appData} setActivePanel={setActivePanel} />) }}>\r\n                            MAKS\r\n                        </button>\r\n                    </div>\r\n                    }\r\n\r\n\r\n                    <div className='row mt-4 mb-5 pb-3 border-top' >\r\n                        {(relatedapps.length > 0 && appData.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Taslak\r\n                            && role.indexOf(UserPermConstants.Ilgili_Basvurulari_Gorme) > -1) && isEmpty(appData.ada)==false && isEmpty(appData.mahalle)==false && < div className=\"col-12 ps-2 pt-1\">\r\n                                <label htmlFor=\"relatedapps\" className=\"form-label\">İlgili Başvurular</label>\r\n                                <div >\r\n                                    <select className=\"form-select form-select-sm\" id=\"relatedapps\" name=\"relatedapps\" onChange={handleRelatedAppSelect} >\r\n                                        {relatedapps.map((r, idx) => <option value={idx} selected={r.id == appData.id}>{r.basvuruTipi + \" (\" + r.id + \")\"}</option>)}\r\n                                    </select>\r\n                                </div>\r\n                            </div>}\r\n                    </div>\r\n\r\n                    <div className=\"border-top\" >\r\n                        {operationPanel}\r\n                    </div>\r\n\r\n\r\n                    <div className='row mt-5 mb-5 pb-4'>\r\n                        {denetimpaenls.map(rec => <div key={ rec.id} className='row mt-4 border-top pt-1'>\r\n                            <div className=\"col-12 text-center\">\r\n                                {getControllorDurumText(rec)}\r\n                            </div>\r\n                            <div className=\"col-12 ps-1\">\r\n                                <div className=\"text-dark  small\">\r\n                                    {rec.kname} {rec.kfamily }\r\n                                </div>\r\n                                <button type=\"button\" className={getControllorColor(rec) + \" btn fw-bold btn-link btn-sm  text-decoration-none p-0\"}\r\n                                    onClick={() => { makeBold(null); setActivePanel(<DenetimPaneli key={rec.id} rec={rec} appData={appData} mission={rec.Name} relatedapps={relatedapps} apptypeList={apptypeList} refreshParent={() => { getmypermissionsonproject(); getApp(); }} denetimlist={denetimpaenls} changeComponent={props.changeComponent} />) }}>\r\n                                    {rec.Name == null ? <i className=\"fa fa-question-circle text-danger\" style={{fontSize:\"24px\"}}></i> :rec.Name}\r\n                                </button>\r\n                                {rec.Name == null && <div className=\"text-danger small\">{rec.denetimID} numaralı iş adımı bulunamadı</div>}\r\n                            </div>\r\n                        </div>)}\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n\r\n            <div className=\"col-md-9 col-12 rounded-3\">\r\n\r\n                <div className=\"bg-white rounded-3 p-2\" >\r\n\r\n                   \r\n\r\n                    {activePanel != null ? activePanel :\r\n                        props.targetEimza == null ?\r\n                            <AppMainData key={appData} appData={appData} surecList={props.surecList} denetimlist={denetimpaenls} apptypeList={apptypeList} changeComponent={changeComponent} setsabitsorulistData={setsabitsorulistData} setData={setData} refreshParent={() => { getmypermissionsonproject(); getApp(); }} />\r\n                            : < EImzaList appData={appData} targetEimza={props.targetEimza} setActivePanel={setActivePanel} changeComponent={changeComponent}/>}\r\n                </div>\r\n\r\n\r\n            </div> </div>\r\n    </div>\r\n\r\n}\r\n\r\n\r\n\r\n","\r\n\r\nimport React, { useState, useEffect } from 'react';\r\n\r\n\r\nexport default function VTable(props) {\r\n    const data = props.data;\r\n    const cols = props.cols;\r\n    const headers = props.headers;\r\n    const showRowNumber = props.showRowNumber;\r\n    const rowClick = props.rowClick;\r\n    const href = props.href;\r\n    const rowDelete = props.rowDelete;\r\n\r\n\r\n        return <div  >\r\n            <div className=\"mt-1\" >\r\n                <div className=\"table-responsive\">\r\n                    <table className='table mt-3 table-vdstriped' aria-labelledby=\"tabelLabel\">\r\n                        {headers != null && <thead >\r\n                            {headers.map(col => <th className='text-start fw-bold'>  <a className=\"text-decoration-none\" href=\"#\" >   {col}   </a>    </th>)}\r\n                        </thead>}\r\n                        <tbody>\r\n                            {data.map((rec, idx) =>\r\n                                <tr>\r\n                                    {showRowNumber == true && <td>\r\n                                        {idx + 1}\r\n                                    </td>}\r\n                                    {cols.map(col => <td>  <a className=\"text-decoration-none\" href={href == null ? \"#\" : href + \"\" + rec[props.hrefid]} onClick={() => { if (rowClick) rowClick(idx, rec, col) }}>   {rec[col]}   </a>    </td>)}\r\n                                    {rowDelete != null &&\r\n                                        <td className=\"text-end\">  <a className=\"text-decoration-none material-icons align-middle\" href=\"#\"  onClick={() => { rowDelete(idx, rec) }}>  delete   </a>    </td>}\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, chartColors, useGlobalState, isEmpty, exportExcel } from '../GlobalState.js';\r\nimport ReactDOM from 'react-dom';\r\nexport default function AppMonthStatistic(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [records, setRecords] = useState(null);\r\n    const [yil, setYil] = useState(-1);\r\n    const [years, setYears] = useState([]);\r\n    const [appTypeGroups, setappTypeGroups] = useState([]);\r\n    const [appTypes, setappTypes] = useState([]);\r\n\r\n    const [selectedappTypeGroup, setselectedAppTypeGroup] = useState(null);\r\n    const [selectedappType, setSelectedappType] = useState(null);\r\n\r\n    \r\n    var sortField = null;\r\n    var sortDirection = {}\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchAppTypeGrupList();\r\n        \r\n\r\n        const script = document.createElement(\"script\");\r\n        script.src = \"https://www.gstatic.com/charts/loader.js\";\r\n        script.async = true;\r\n        document.getElementById(\"myscript\").appendChild(script);\r\n        script.onload = () => {\r\n            var sp = document.getElementById(\"loadspin\");\r\n            if (sp != null)\r\n                sp.hidden = false;\r\n            window.google.charts.load(\"current\", { packages: ['corechart'] });\r\n            window.google.charts.setOnLoadCallback(getAppTypes);\r\n            \r\n        }\r\n\r\n    }, [])\r\n\r\n\r\n    const myCompare = (a, b) => {\r\n        if (sortField == null)\r\n            sortField = \"transactionUUID\"\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n        if (av == null && bv == null)\r\n            return 0;\r\n        if (av == null && bv != null)\r\n            return -1 * sortDirection[sortField];\r\n        if (av != null && bv == null)\r\n            return 1 * sortDirection[sortField];\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * sortDirection[sortField];\r\n\r\n        if (av < bv) {\r\n            return -1 * sortDirection[sortField];\r\n        }\r\n        if (av > bv) {\r\n            return 1 * sortDirection[sortField];\r\n        }\r\n        return 0;\r\n    }\r\n\r\n\r\n    const sortList = (fildname, data) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == -1) {\r\n            sortDirection[sortField] = 1;\r\n        }\r\n        else {\r\n            sortDirection[sortField] = -1;\r\n        }\r\n        let sortablelist = [];\r\n\r\n        data.forEach(function (item) {\r\n            var obj = {};\r\n            obj.ay = item[0];\r\n            obj.toplam = item[1];\r\n            sortablelist.push(obj);   \r\n        })\r\n        sortablelist.sort(myCompare);\r\n\r\n        let temp = [[\"this will be removed by generatetable\"]]\r\n        sortablelist.forEach(function (item) {\r\n            temp.push([item.ay, item.toplam]);\r\n        })\r\n        ReactDOM.render(generateTable(temp), document.getElementById(\"tablePart\"))\r\n    }\r\n\r\n\r\n    const fetchAppTypeGrupList = () => {\r\n        fetch(\"apptypegroupslist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setappTypeGroups(value);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const getAppTypes = () => {\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    value = value.filter(x => x.isadimi != true);\r\n                    setappTypes(value);\r\n                    populateProjectData();\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const generateTable = (data) => {\r\n        data.shift();\r\n        return <div className=\"table-responsive\">\r\n            <table className='table  mt-3 table-vdstriped p-0' aria-labelledby=\"tabelLabel\" id=\"reportTable\">\r\n                <thead >\r\n                    <th>\r\n\r\n                    </th>\r\n                    <th className=\"text-start\">\r\n                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"ay\", data)} > Ay </button>\r\n                    </th>\r\n                    <th className=\"text-start\">\r\n                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"toplam\", data)} > Toplam Başvuru </button>\r\n                    </th>\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n                    {data.map((rec, idx) =>\r\n                        <tr>\r\n                            <td className=\"text-start\">\r\n                                {idx + 1}\r\n                            </td>\r\n                            <td className=\"text-start\">\r\n                                {rec[0]}\r\n                            </td >\r\n                            <td className=\"text-start\">\r\n                                {rec[1]}\r\n                            </td>\r\n                        </tr>\r\n                    )}\r\n                    <tr className=\"text-start text-success fw-bold\">\r\n                       \r\n                        <td ></td>\r\n                        <td className=\"text-start\">\r\n                            Toplam\r\n                        </td>\r\n                        <td className=\"text-start\">\r\n                            {data.reduce((s, rec) => s + rec[1], 0)}\r\n                        </td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    const drawChart = (dataarray, target, ftitle) => {\r\n        var data = window.google.visualization.arrayToDataTable(dataarray);\r\n        var options = {\r\n            chartArea: {\r\n                // leave room for y-axis labels\r\n                width: '90%',\r\n                height: '90%'\r\n            },\r\n            lineWidth: 4,\r\n            \r\n            curveType: 'function',\r\n            width: '100%',\r\n            /*title: ftitle,*/\r\n            legend: { position: 'none' },\r\n            vAxis: {\r\n                minValue: 0,\r\n                gridlines: {\r\n                    color: \"EEF8FB\"\r\n                },\r\n\r\n                minorGridlines: {\r\n                    color: 'transparent'\r\n\r\n                },\r\n               \r\n            },\r\n animation: {\r\n                    duration: 1200,\r\n                    easing: 'out',\r\n                    \"startup\": true\r\n                },\r\n\r\n        };\r\n        var chart = new window.google.visualization.AreaChart(document.getElementById(target));\r\n        chart.draw(data, options);\r\n        ReactDOM.render(generateTable(dataarray), document.getElementById(\"tablePart\"));\r\n    }\r\n\r\n\r\n\r\n\r\n    const populateProjectData = () => {\r\n        fetch(\"getuserapps\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n\r\n                response.json().then(async data => {\r\n                    data = JSON.parse(data);\r\n                    const years = [...new Set(data.map(item => {\r\n                        const date = item.basvuruTarihi;\r\n                        return date ? date.split(/[./]/)[0] : null; \r\n                    }).filter(year => year !== null))]; \r\n\r\n                    setYears(years.sort());\r\n                    setRecords(data)\r\n\r\n                   \r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    if (records != null) {\r\n        var dataarray = [];\r\n        var colors = chartColors;\r\n        var aylar = ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temuz', 'Ağustos', 'Eylul', 'Ekim', 'Kasım', 'Aralık'];\r\n\r\n\r\n        dataarray.push(['Durum', 'Toplam', { role: \"style\" }]);\r\n        var temp = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\r\n        var rec = 0;\r\n        for (var i = 0; i < records.length; i++) {\r\n\r\n            if (!isEmpty(records[i].basvuruTarihi) && records[i].basvuruDurumu != 1) {\r\n\r\n                if (yil != -1 && !records[i].basvuruTarihi.includes(yil))\r\n                    continue;\r\n\r\n                if (selectedappType != null && selectedappType != -1 && records[i].basvuruTipi != selectedappType)\r\n                    continue;\r\n                if (selectedappTypeGroup != null && selectedappTypeGroup!=-1) {\r\n                    var apptypes = appTypes.filter(x => x.grup == selectedappTypeGroup).map(x=>x.name)\r\n                    if (!apptypes.includes(records[i].basvuruTipi))\r\n                        continue;\r\n                }\r\n                var dt = Number(records[i].basvuruTarihi.substring(5, 7));\r\n                temp[dt] = temp[dt] + 1;\r\n\r\n            }\r\n        }\r\n\r\n        for (var i = 0; i < 12; i++) {\r\n            dataarray.push([aylar[i], temp[i + 1], colors[i]]);\r\n        }\r\n\r\n        drawChart(dataarray, 'mychart', '2022 Genel Durum');\r\n    }\r\n\r\n    //appData.basvuruDurumu != \"Kontrol Ediliyor\"\r\n    return (\r\n        <div className=\" p-1 mt-1 me-2 border rounded-1\" >\r\n            <div id=\"myscript\"></div>\r\n            <div className=\"row\">\r\n                <div className=\"col-11\">\r\n                    <h4>Aylık Başvuru Sayısı</h4>\r\n                </div>\r\n                <div className=\"col-1 text-end\">\r\n                    <a download=\"report.csv\" id=\"downloadlink\" onClick={() => { exportExcel(\"reportTable\", \"downloadlink\") }} href=\"#\" className=\"btn btn-link btn-sm text-decoration-none text-success\"><i class=\"fa fa-file-excel-o\" aria-hidden=\"true\"></i></a>\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row\">\r\n                <div className=\"col-md-3 col-12\">\r\n                    Başvuru Yılı\r\n                    <select className=\"form-select form-select-sm\" id=\"basvurutipleri\" name=\"basvuruTipi\" required={true} onChange={(e) => setYil(e.target.value)}>\r\n                        <option value={-1}> </option>\r\n                        {years.map(y=>\r\n                            <option key={y} value={y}>\r\n                                {y}\r\n                            </option>\r\n                        )}\r\n                    </select>\r\n                </div>\r\n                <div className=\"col-md-3 col-12\">\r\n                    Başvuru Gurubu\r\n                    <select className=\"form-select form-select-sm\" id=\"grup\" name=\"grup\" required={true} onChange={\r\n                        (e) => {\r\n                            document.getElementById(\"apptype\").selectedIndex = 0;\r\n                            setselectedAppTypeGroup(e.target.value);\r\n                            setSelectedappType(null);\r\n                        }} >\r\n                        <option value={-1}> </option>\r\n                        {appTypeGroups.map(x => <option value={x.id}>{x.name}</option>)}\r\n                    </select>\r\n                </div>\r\n                <div className=\"col-md-3 col-12\">\r\n                    Başvuru Tipi\r\n                    <select className=\"form-select form-select-sm\" id=\"apptype\" name=\"appType\" required={true} onChange={(e) => {\r\n                        document.getElementById(\"grup\").selectedIndex = 0;\r\n                        setselectedAppTypeGroup(null);\r\n                        setSelectedappType(e.target.value);\r\n                    }\r\n                    } >\r\n                        <option value={-1}> </option>\r\n                        {appTypes.map(x => <option value={x.name}>{x.name}</option>)}\r\n                    </select>\r\n                </div>\r\n            </div>\r\n\r\n\r\n            <div className=\"row \">\r\n                <div className=\"col-12 ps-2 m-0 text-center\">\r\n                    <div id=\"mychart\" style={{ \"height\": \"600px\" }}>\r\n                        <div class=\"spinner-border\" id=\"mevki_snipper\"></div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <div className=\"row mt-3\">\r\n                <div className=\"col-12 ps-2 m-0 text-center\">\r\n                    <div id=\"tablePart\" className=\"w-100  text-center\"><div class=\"spinner-border\" id=\"loadspin\" hidden></div></div>\r\n                </div>\r\n            </div>\r\n\r\n           \r\n        </div>\r\n    );\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport MessagePanel from '../User/MessagePanel';\r\nimport { ajaxFail } from '../GlobalState.js';\r\n\r\nexport default function MessageMenu(props) {\r\n\r\n\r\n\r\n    const [msglist, setMessages] = React.useState(null);\r\n\r\n    useEffect(() => {\r\n        getMessageList();\r\n    }, []);\r\n\r\n\r\n\r\n    const getMessageList = () => {\r\n        fetch(\"getmymessages\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setMessages(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    var cc = 0;\r\n    var menutxt = <span id=\"unreadmessagecount\" class=\"badge rounded-pill \" > {cc}</span>;\r\n    if (msglist != null) {\r\n        for (let i = 0; i < msglist.length; i++)\r\n            if (msglist[i].opened != true)\r\n                cc++;\r\n        if (cc > 0)\r\n            menutxt = <span id=\"unreadmessagecount\" class=\"badge rounded-pill bg-primary\" > {cc}</span>;\r\n    }\r\n\r\n\r\n    return <a href=\"#\" onClick={() => { props.changeComponent(<MessagePanel messages={msglist} changeComponent={props.changeComponent}/>) }}> <i className=\"fa fa-comment-o\"></i> Mesajlarım {menutxt}</a>\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function MAKSGorevli(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n    const userData = props.userData;\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmel istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemaksgorevli\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"maksgorevlilist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n            ,\r\n            body: maksrec.id\r\n        }).then(async response => {\r\n\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (userData == null)\r\n            return \"\";\r\n        return userData[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n\r\n        fetch(\"savemaksgorevli\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    $('.root').find('select').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    var recid = getDefult(\"id\");\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n    const getName = (value) => {\r\n        if (value == 1) return value + \"- Düzenleyen Teknik Eleman\";\r\n        if (value == 2) return value + \"- Kontrol Eden \"\r\n        if (value == 3) return value + \"- Onaylayan \"\r\n        return \"\";\r\n\r\n    }\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n\r\n\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                        {getName(apprec.gorevliTip)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.ad}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.soyad}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.tc}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.unvan}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.tarih}\r\n                                    </td>\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            Görevli eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                    Görevli\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Görevli Tipi</label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"gorevliTip\")} id=\"gorevliTip\" name=\"gorevliTip\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Düzenleyen Teknik Eleman</option>\r\n                        <option value=\"2\">Kontrol Eden</option>\r\n                        <option value=\"3\">Onaylayan</option>\r\n\r\n                    </select>\r\n\r\n                </div>\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Ad </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"ad\" name=\"ad\" defaultValue={userData[\"name\"]} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Soyad </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"soyad\" name=\"soyad\" defaultValue={userData[\"family\"]} onChange={handleInputChange} />\r\n                </div>\r\n\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">TC </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"tc\" name=\"tc\" defaultValue={userData[\"tc\"]} onChange={handleInputChange} />\r\n                </div>\r\n             </div>\r\n            <div className=\"row mt-1\">\r\n               \r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Unvan </label>\r\n                    <select class=\"form-select form-select-sm\" id=\"unvan\" name=\"unvan\" onChange={handleInputChange} >\r\n                        <option value=\"\" selected></option>\r\n                        {userData.userType.split(\",\").map(x => <option value={x}>{x}</option>)}\r\n                    </select>\r\n\r\n                </div>\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Tarih </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"tarih\" name=\"tarih\" defaultValue={userData[\"tarih\"]} onChange={handleInputChange} />\r\n                </div>\r\n\r\n                <div className=\"text-end col-6\">\r\n                    <br />\r\n                    <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                </div>\r\n            </div>\r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function MaksProje(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n    const adres = props.adres;\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmel istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemaksproje\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"maksprojelist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: maksrec.id\r\n        }).then(async response => {\r\n\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n\r\n        fetch(\"savemaksproje\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    var recid = getDefult(\"id\");\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n\r\n    const getName = (value) => {\r\n        if (value == 1) return value + \"- Mimari\";\r\n        if (value == 2) return value + \"- Statik \"\r\n        if (value == 3) return value + \"- Elektrik \"\r\n        if (value == 4) return value + \"- Diğer \"\r\n        return \"\";\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n                        {/*<thead>*/}\r\n                        {/*    <tr >*/}\r\n                        {/*        <th className=\"text-start\">Id</th>*/}\r\n                        {/*        <th className=\"text-start\">Kaytı Tarihi</th>*/}\r\n                        {/*        <th className=\"text-start\">Pafta</th>*/}\r\n                        {/*        <th className=\"text-start\">Ada</th>*/}\r\n                        {/*        <th className=\"text-start\">Parsel</th>*/}\r\n                        {/*        <th className=\"text-start\">Dış Kapı</th>*/}\r\n                        {/*        <th className=\"text-start\">Arsa Sahibi</th>*/}\r\n                        {/*        <th className=\"text-start\">TC</th>*/}\r\n                        {/*        <th className=\"text-start\"></th>*/}\r\n                        {/*    </tr>*/}\r\n                        {/*</thead>*/}\r\n\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                        {getName(apprec.projeOnayKonuKod)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n  \r\n                                    <td>\r\n                                        {apprec.soyad}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.tc}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.acikAdres}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.projeOnayKonuDiger}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.onayTarih}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.bagimsizBolumKimlikNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.odaSicilNo}\r\n                                    </td>\r\n\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            Proje eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                    Proje\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Proje Onay Konu </label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"projeOnayKonuKod\")} id=\"projeOnayKonuKod\" name=\"projeOnayKonuKod\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Mimari</option>\r\n                        <option value=\"2\">Statik</option>\r\n                        <option value=\"3\">Elektrik</option>\r\n                        <option value=\"3\">Diğer</option>\r\n\r\n                    </select>\r\n\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Ad </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"ad\" name=\"ad\" defaultValue={getDefult(\"ad\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Soyad </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"soyad\" name=\"soyad\" defaultValue={getDefult(\"soyad\")} onChange={handleInputChange} />\r\n                </div>\r\n\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">TC </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"tc\" name=\"tc\" defaultValue={getDefult(\"tc\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">OdaSicilNo </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"odaSicilNo\" name=\"odaSicilNo\" defaultValue={getDefult(\"odaSicilNo\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Onay Tarih </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"onayTarih\" name=\"onayTarih\" defaultValue={getDefult(\"onayTarih\")} onChange={handleInputChange} />\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Açık Adres </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"acikAdres\" name=\"acikAdres\" defaultValue={getDefult(\"acikAdres\")} onChange={handleInputChange} />\r\n                </div>\r\n\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Onay Konu Diger </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"projeOnayKonuDiger\" name=\"projeOnayKonuDiger\" defaultValue={getDefult(\"projeOnayKonuDiger\")} onChange={handleInputChange} />\r\n                </div>\r\n\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Bagimsiz Bolum Kimlik No </label>\r\n                    <input  autocomplete={true} id=\"bagimsizBolumKimlikNo\" name=\"bagimsizBolumKimlikNo\" list=\"adreslistesi\" className=\"form-control form-control-sm\" onChange={handleInputChange} />\r\n                    <datalist id=\"adreslistesi\">\r\n                        <option ></option>\r\n                        {adres.map(x => <option value={x.bagimsizbolkimlikno}>{x.bagimsizbolkimlikno}</option>)}\r\n                    </datalist>\r\n\r\n\r\n\r\n                    {/*    <input type=\"text\" className=\"form-control form-control-sm\" id=\"bagimsizBolumKimlikNo\" name=\"bagimsizBolumKimlikNo\" defaultValue={getDefult(\"bagimsizBolumKimlikNo\")} onChange={handleInputChange} />*/}\r\n                </div>\r\n                <div className=\"text-end col-4\">\r\n                    <br />\r\n                    <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                </div>\r\n            </div>\r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function MaksDuvardolgu(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmel istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemaksduvardolgu\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"maksduvardolgulist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(maksrec.id)\r\n        }).then(async response => {\r\n\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n\r\n        fetch(\"savemaksduvardolgu\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    var recid = getDefult(\"id\");\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n    const getName = (value) => {\r\n        if (value == 1) return value + \"- Briket\";\r\n        if (value == 2) return value + \"- Tuğla \"\r\n        if (value == 3) return value + \"- Taş \"\r\n        if (value == 4) return value + \"- Ahşap \"\r\n        if (value == 5) return value + \"- Kerpiç \"\r\n        if (value == 6) return value + \"- Gazbeton\"\r\n        if (value == 7) return value + \"- Beton blok\";\r\n        if (value == 8) return value + \"- Hafif panel\"\r\n        if (value == 9) return value + \"- Diğer\"\r\n        return \"\";\r\n\r\n    }\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                        {getName(apprec.duvarDolguKod)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.kayitNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.diger}\r\n                                    </td>\r\n\r\n\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            Duvar Dolgu eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                    Duvar Dolgu\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Duvar Dolgu Kod </label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"duvarDolguKod\")} id=\"duvarDolguKod\" name=\"duvarDolguKod\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Briket</option>\r\n                        <option value=\"2\">Tuğla</option>\r\n                        <option value=\"3\">Taş</option>\r\n                        <option value=\"4\">Ahşap</option>\r\n                        <option value=\"5\">Kerpiç</option>\r\n                        <option value=\"6\">Gazbeton</option>\r\n                        <option value=\"7\">Beton blok</option>\r\n                        <option value=\"8\">Hafif panel</option>\r\n                        <option value=\"9\">Diğer</option>\r\n\r\n                    </select>\r\n\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Kayit No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"kayitNo\" name=\"kayitNo\" defaultValue={getDefult(\"kayitNo\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Diğer </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"diger\" name=\"diger\" defaultValue={getDefult(\"diger\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-end col-6\">\r\n                    <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                </div>\r\n\r\n            </div>\r\n\r\n           \r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\n\r\nexport default function MaksDoseme(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmel istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemaksdoseme\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"maksdosemelist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n            ,\r\n            body: JSON.stringify(maksrec.id)\r\n        }).then(async response => {\r\n\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n\r\n        fetch(\"savemaksdoseme\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const getName = (value) =>{\r\n        if (value == 1) return value + \"- Plak kiriş\";\r\n        if (value == 2) return value + \"- Mantar döşeme\"                \r\n        if (value == 3) return value + \"- Asmolen\"              \r\n        if (value == 4) return value + \"- Ahşap\"               \r\n        if (value == 5) return value + \"- Hazır yapı elemanı\"            \r\n        if (value == 6) return value + \"- Diğer\"   \r\n        return \"\";\r\n\r\n    }\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    var recid = getDefult(\"id\");\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n                        {/*<thead>*/}\r\n                        {/*    <tr >*/}\r\n                        {/*        <th className=\"text-start\">Id</th>*/}\r\n                        {/*        <th className=\"text-start\">Kaytı Tarihi</th>*/}\r\n                        {/*        <th className=\"text-start\">Pafta</th>*/}\r\n                        {/*        <th className=\"text-start\">Ada</th>*/}\r\n                        {/*        <th className=\"text-start\">Parsel</th>*/}\r\n                        {/*        <th className=\"text-start\">Dış Kapı</th>*/}\r\n                        {/*        <th className=\"text-start\">Arsa Sahibi</th>*/}\r\n                        {/*        <th className=\"text-start\">TC</th>*/}\r\n                        {/*        <th className=\"text-start\"></th>*/}\r\n                        {/*    </tr>*/}\r\n                        {/*</thead>*/}\r\n\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                        {getName(apprec.dosemeKod)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.kayitNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.diger}\r\n                                    </td>\r\n\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            Doşeme eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                    Doşeme\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Doşeme Kod </label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"dosemeKod\")} id=\"dosemeKod\" name=\"dosemeKod\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Plak kiriş</option>\r\n                        <option value=\"2\">Mantar döşeme</option>\r\n                        <option value=\"3\">Asmolen</option>\r\n                        <option value=\"3\">Ahşap</option>\r\n                        <option value=\"4\">Hazır yapı elemanı</option>\r\n                        <option value=\"5\">Diğer</option>\r\n\r\n                    </select>\r\n\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">kayit No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"kayitNo\" name=\"kayitNo\" defaultValue={getDefult(\"kayitNo\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Diğer </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"diger\" name=\"diger\" defaultValue={getDefult(\"diger\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-end col-6\">\r\n                    <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                </div>\r\n            </div>\r\n\r\n         \r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function MaksOrtakAlan(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmel istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemaksortakalan\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"maksortakalanlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n            ,\r\n            body: JSON.stringify(maksrec.id)\r\n        }).then(async response => {\r\n\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n\r\n        fetch(\"savemaksortakalan\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    var recid = getDefult(\"id\");\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n \r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                        {getName(apprec.ortakAlanKod)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n                                  \r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            Ortak alan eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    const getName = (value) => {\r\n        if (value == 1) return value + \"- Asansör\";\r\n        if (value == 2) return value + \"- Bekçi kulübesi\"\r\n        if (value == 3) return value + \"- Açık otopark\"\r\n        if (value == 4) return value + \"- Kapalı otopark\"\r\n        if (value == 5) return value + \"- Kapıcı dairesi\"\r\n        if (value == 6) return value + \"- Kömürlük\"\r\n        if (value == 7) return value + \"- Ortak Depo\";\r\n        if (value == 8) return value + \"- Sığınak\"\r\n        if (value == 9) return value + \"- Su deposu\"\r\n        if (value == 10) return value + \"- Yangın merdiveni\"\r\n        if (value == 11) return value + \"- Yüzme havuzu\"\r\n        if (value == 12) return value + \"- Diğer\"\r\n        return \"\";\r\n\r\n    }\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                    Ortak Alan\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Ortak Alan Kod </label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"ortakAlanKod\")} id=\"ortakAlanKod\" name=\"ortakAlanKod\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Asansör</option>\r\n                        <option value=\"2\">Bekçi kulübesi</option>\r\n                        <option value=\"3\">Açık otopark</option>\r\n                        <option value=\"4\">Kapalı otopark</option>\r\n                        <option value=\"5\">Kapıcı dairesi</option>\r\n                        <option value=\"6\">Kömürlük</option>\r\n                        <option value=\"7\">Ortak Depo</option>\r\n                        <option value=\"8\">Sığınak</option>\r\n                        <option value=\"9\">Su deposu</option>\r\n                        <option value=\"10\">Yangın merdiveni</option>\r\n                        <option value=\"11\">Yüzme havuzu</option>\r\n                        <option value=\"12\">Diğer</option>\r\n\r\n                    </select>\r\n\r\n                </div>\r\n                <div className=\"text-end col-10\">\r\n                    <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                </div>\r\n            </div>\r\n\r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function MaksIcmesu(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmel istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemaksicmesu\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"maksicmesulist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n            ,\r\n            body: JSON.stringify(maksrec.id)\r\n        }).then(async response => {\r\n\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n\r\n        fetch(\"savemaksicmesu\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    var recid = getDefult(\"id\");\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n\r\n    const getName = (value) => {\r\n        if (value == 1) return value + \"- Şehir suyu\";\r\n        if (value == 2) return value + \"- Pınar suyu\"\r\n        if (value == 3) return value + \"- Taşıma suyu\"\r\n        return \"\";\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                       {getName(apprec.icmeSuKod)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n                                   \r\n                                    <td>\r\n                                        {apprec.kayitNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.diger}\r\n                                    </td>\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            İçme Su eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                    İçme Su\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">İçme Su Kod </label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"icmeSuKod\")} id=\"icmeSuKod\" name=\"icmeSuKod\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Şehir suyu</option>\r\n                        <option value=\"2\">Kuyu suyu</option>\r\n                        <option value=\"3\">Pınar suyu</option>\r\n                        <option value=\"3\">Taşıma suyu</option>\r\n\r\n                    </select>\r\n  </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Kayit No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"kayitNo\" name=\"kayitNo\" defaultValue={getDefult(\"kayitNo\")} onChange={handleInputChange} />\r\n                </div>              \r\n\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Diğer </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"diger\" name=\"diger\" defaultValue={getDefult(\"diger\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-end col-6\">\r\n                    <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                </div>\r\n            </div>\r\n\r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function MaksAtiksu(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmel istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemaksatiksu\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"maksatiksulist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n            ,\r\n            body: JSON.stringify(maksrec.id)\r\n        }).then(async response => {\r\n\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n\r\n        fetch(\"savemaksatiksu\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    var recid = getDefult(\"id\");\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n                        {/*<thead>*/}\r\n                        {/*    <tr >*/}\r\n                        {/*        <th className=\"text-start\">Id</th>*/}\r\n                        {/*        <th className=\"text-start\">Kaytı Tarihi</th>*/}\r\n                        {/*        <th className=\"text-start\">Pafta</th>*/}\r\n                        {/*        <th className=\"text-start\">Ada</th>*/}\r\n                        {/*        <th className=\"text-start\">Parsel</th>*/}\r\n                        {/*        <th className=\"text-start\">Dış Kapı</th>*/}\r\n                        {/*        <th className=\"text-start\">Arsa Sahibi</th>*/}\r\n                        {/*        <th className=\"text-start\">TC</th>*/}\r\n                        {/*        <th className=\"text-start\"></th>*/}\r\n                        {/*    </tr>*/}\r\n                        {/*</thead>*/}\r\n\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                      {apprec.atikSuKod} -  {apprec.atikSuKod == 1 ? \"Kanalizasyon\" : (apprec.atikSuKod == 2 ? \"Fosseptik\" : \"\")}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n                                    \r\n                                    <td>\r\n                                        {apprec.kayitNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.diger}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.odaSicilNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            Atık Su eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                    Atık Su\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Atık Su Kod </label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"atikSuKod\")} id=\"atikSuKod\" name=\"atikSuKod\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Kanalizasyon</option>\r\n                        <option value=\"2\">Fosseptik</option>\r\n                    </select>\r\n\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Kayit No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"kayitNo\" name=\"kayitNo\" defaultValue={getDefult(\"kayitNo\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Diğer </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"diger\" name=\"diger\" defaultValue={getDefult(\"diger\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-end col-6\">\r\n                    <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                </div>\r\n            </div>\r\n\r\n            \r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function MaksMuhtelifGelir(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmek istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemaksmuhtelifgelir\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"maksmuhtelifgelirlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n            ,\r\n            body: JSON.stringify(maksrec.id)\r\n        }).then(async response => {\r\n\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n\r\n        fetch(\"savemaksmuhtelifgelir\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    var recid = getDefult(\"id\");\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n    const getName = (value) => {\r\n        if (value == 1) return value + \"- Yol Kanal Harcı\";\r\n        if (value == 2) return value + \"- Bina İnşaat Harcı\"\r\n        if (value == 3) return value + \"- Otopark Bedeli\"\r\n        if (value == 4) return value + \"- Ceza\"\r\n        if (value == 5) return value + \"- Diğer\"\r\n        return \"\";\r\n\r\n    }\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                        {getName(apprec.mahiyetKod)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n                                   \r\n                                    <td>\r\n                                        {apprec.kayitNo}\r\n                                    </td>\r\n                                   \r\n                                    <td>\r\n                                        {apprec.makbuzNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.makbuzTarih}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.tutar}\r\n                                    </td>\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            Atık Su eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                    Muhtelif Gelir\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Mahiye tKod </label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"mahiyetKod\")} id=\"mahiyetKod\" name=\"mahiyetKod\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Yol Kanal Harcı</option>\r\n                        <option value=\"2\">Bina İnşaat Harcı</option>\r\n                        <option value=\"3\">Otopark Bedeli</option>\r\n                        <option value=\"4\">Ceza</option>\r\n                        <option value=\"5\">Diğer</option>\r\n                    </select>\r\n\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Kayit No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"kayitNo\" name=\"kayitNo\" defaultValue={getDefult(\"kayitNo\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Makbuz No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"makbuzNo\" name=\"makbuzNo\" defaultValue={getDefult(\"makbuzNo\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Makbuz Tarih </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"makbuzTarih\" name=\"makbuzTarih\" defaultValue={getDefult(\"makbuzTarih\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Tutar </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"tutar\" name=\"tutar\" defaultValue={getDefult(\"tutar\")} onChange={handleInputChange} />\r\n                </div>\r\n\r\n                <div className=\"text-end col-2\">\r\n                    <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                </div>\r\n            </div>\r\n\r\n\r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function MaksYapiDenetim(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmek istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemaksyapidenetim\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"maksyapidenetimlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n            ,\r\n            body: JSON.stringify(maksrec.id)\r\n        }).then(async response => {\r\n\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n        fetch(\"savemaksyapidenetim\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    var recid = getDefult(\"id\");\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n    const getName = (value) => {\r\n      \r\n        if (value == 1) return value + \"- Mimari\";\r\n        if (value == 2) return value + \"- Statik\";\r\n        if (value == 3) return value + \"- Elektrik\"\r\n        if (value == 4) return value + \"- Mekanik Tesisat\"\r\n        if (value == 5) return value + \"- Diğer\"\r\n        return \"\";\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                        {getName(apprec.yapiDenetimTurKod)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.kayitNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.tcKimlikNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.ad}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.soyad}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.acikAdres}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.yapiDenetimTurDiger}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.bagimsizBolumKimlikNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.odaSicilNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            Atık Su eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                    Yapı Denetim Bilgileri\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Onay Konu </label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"yapiDenetimTurKod\")} id=\"yapiDenetimTurKod\" name=\"yapiDenetimTurKod\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Mimari</option>\r\n                        <option value=\"2\">Statik</option>\r\n                        <option value=\"3\">Elektrik</option>\r\n                        <option value=\"4\">Mekanik Tesisat</option>\r\n                        <option value=\"5\">Diğer</option>\r\n                    </select>\r\n                </div>\r\n               \r\n\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">TC Kimlik No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"tcKimlikNo\" name=\"tcKimlikNo\" defaultValue={getDefult(\"tcKimlikNo\")} onChange={handleInputChange} />\r\n                </div>\r\n\r\n\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Ad </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"ad\" name=\"ad\" defaultValue={getDefult(\"ad\")} onChange={handleInputChange} />\r\n                </div>\r\n\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Soyad </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"soyad\" name=\"soyad\" defaultValue={getDefult(\"soyad\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Oda Sicil No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"odaSicilNo\" name=\"odaSicilNo\" defaultValue={getDefult(\"odaSicilNo\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Kayit No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"kayitNo\" name=\"kayitNo\" defaultValue={getDefult(\"kayitNo\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Açık Adres </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"acikAdres\" name=\"acikAdres\" defaultValue={getDefult(\"acikAdres\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Tur Diger</label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiDenetimTurDiger\" name=\"yapiDenetimTurDiger\" defaultValue={getDefult(\"yapiDenetimTurDiger\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Bagimsiz Bolum Kimlik No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"bagimsizBolumKimlikNo\" name=\"bagimsizBolumKimlikNo\" defaultValue={getDefult(\"bagimsizBolumKimlikNo\")} onChange={handleInputChange} />\r\n                </div>\r\n\r\n\r\n                <div className=\"text-end col-9 pt-3\">\r\n                    <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                </div>\r\n            </div>\r\n\r\n\r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function MaksBagimsizBolum(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmel istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemaksbagimsizbolum\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"maksbagimsizbolumlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n            ,\r\n            body: JSON.stringify(maksrec.id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n        fetch(\"savemaksbagimsizbolum\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n    const getIslemName = (value) => {\r\n        if (value == \"1\") return \"Yapıya Eklenecek\"\r\n        if (value == \"2\") return \"Belgede Bulunacak\"\r\n        if (value == \"3\") return \"Yapıdan Silinecek\"\r\n        if (value == \"4\") return \"Belgede Bulunmayacak\"\r\n    }\r\n\r\n    const getDurumName = (value) => {\r\n        if (value == \"1\") return \"Bilinmeyen\"\r\n        if (value == \"2\") return \"Proje\"\r\n        if (value == \"3\") return \"İnşaat\"\r\n        if (value == \"4\") return \"İskan\"\r\n        if (value == \"5\") return \"Ruhsatsız\"\r\n        if (value == \"6\") return \"Yanan Yıkılan\"\r\n        if (value == \"7\") return \"Yapı Kayıt Belgeli\"\r\n        if (value == \"8\") return \"MAKS Sürecinde\"\r\n        if (value == \"9\") return \"Geçici 11 Madde\"\r\n\r\n    }\r\n\r\n\r\n    const getKullanımName = (value) => {\r\n        if (value == \"0\") return \"Yok\"\r\n        if (value == \"1110\") return \"Mesken\"\r\n        if (value == \"12111\") return \"Küçük misafir\"\r\n        if (value == \"12111\") return \"Otel\"\r\n        if (value == \"12111\") return \"Pansiyon\"\r\n        if (value == \"12111\") return \"Restorantlı veya restorantsız otel\"\r\n        if (value == \"12112\") return \"Bar\"\r\n        if (value == \"12112\") return \"Bar(ayrı bina olarak)\"\r\n\r\n    }\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n                                    <td>\r\n                                        {getIslemName(apprec.yapilanIslem)}\r\n                                    </td>\r\n\r\n\r\n                                    <td>\r\n                                        {getDurumName(apprec.bagimsizDurum)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.icKapiNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.yuzolcum}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.arsaPay}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.arsaPayda}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.bagimsizBolumKimlikNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.bagimsizBolumTip == 1 ? \"Kamu\" : apprec.bagimsizBolumTip == 2?\"Özel\":\"\"}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.binaKimlikNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.brutYuzolcum}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.katNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.kayitNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {getKullanımName(apprec.kullanimAmac)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.numaratajKimlikNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.tadilataKonuOlsunMu}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.tapuBagimsizBolumNo}\r\n                                    </td>\r\n\r\n\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            Atık Su eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                    Yapı Belge Bağımsız Bolum\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Yapılan İşlem </label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"yapilanIslem\")} id=\"yapilanIslem\" name=\"yapilanIslem\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Yapıya Eklenecek</option>\r\n                        <option value=\"2\">Belgede Bulunacak</option>\r\n                        <option value=\"3\">Yapıdan Silinecek</option>\r\n                        <option value=\"4\">Belgede Bulunmayacak</option>\r\n                    </select>\r\n                </div>\r\n\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Durum</label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"bagimsizDurum\")} id=\"bagimsizDurum\" name=\"bagimsizDurum\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Bilinmeyen</option>\r\n                        <option value=\"2\">Proje</option>\r\n                        <option value=\"3\">İnşaat</option>\r\n                        <option value=\"4\">İskan</option>\r\n                        <option value=\"5\">Ruhsatsız</option>\r\n                        <option value=\"6\">Yanan Yıkılan</option>\r\n                        <option value=\"7\">Yapı Kayıt Belgeli</option>\r\n                        <option value=\"8\">MAKS Sürecinde</option>\r\n                        <option value=\"9\">Geçici 11 Madde</option>\r\n                    </select>\r\n                </div>\r\n\r\n\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">İç Kapı No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"icKapiNo\" name=\"icKapiNo\" defaultValue={getDefult(\"icKapiNo\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Yüz Ölçum </label>\r\n                    <input type=\"number\" className=\"form-control form-control-sm\" id=\"yuzolcum\" name=\"yuzolcum\" defaultValue={getDefult(\"yuzolcum\")} onChange={handleInputChange} />\r\n                </div>\r\n\r\n                <div className=\"row mt-1\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Arsa Pay</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"arsaPay\" name=\"arsaPay\" defaultValue={getDefult(\"arsaPay\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Arsa Payda </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"arsaPayda\" name=\"arsaPayda\" defaultValue={getDefult(\"arsaPayda\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Kimlik No </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"bagimsizBolumKimlikNo\" name=\"bagimsizBolumKimlikNo\" defaultValue={getDefult(\"bagimsizBolumKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Tip </label>\r\n                        <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"bagimsizBolumTip\")} id=\"bagimsizBolumTip\" name=\"bagimsizBolumTip\" onChange={handleInputChange} >\r\n                            <option selected></option>\r\n                            <option value=\"1\">Kamu</option>\r\n                            <option value=\"2\">Özel</option>\r\n                        </select>\r\n                    </div>\r\n\r\n                </div>\r\n\r\n\r\n                <div className=\"row mt-1\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Bina Kimlik No</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"binaKimlikNo\" name=\"binaKimlikNo\" defaultValue={getDefult(\"binaKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Brut Yuz Ölçum</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"brutYuzolcum\" name=\"brutYuzolcum\" defaultValue={getDefult(\"brutYuzolcum\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Kat No</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"katNo\" name=\"katNo\" defaultValue={getDefult(\"katNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Kayit No</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"kayitNo\" name=\"kayitNo\" defaultValue={getDefult(\"kayitNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n\r\n                <div className=\"row mt-1\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Kullanım Amaç </label>\r\n                        <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"kullanimAmac\")} id=\"kullanimAmac\" name=\"kullanimAmac\" onChange={handleInputChange} >\r\n                            <option selected></option>\r\n                            <option value=\"0\">Yok</option>\r\n                            <option value=\"1110\">Mesken</option>\r\n                            <option value=\"12111\">Küçük misafir</option>\r\n                            <option value=\"12111\">Motel</option>\r\n                            <option value=\"12111\">Otel ve bunlara benzer misafir evi</option>\r\n                            <option value=\"12111\">Pansiyon</option>\r\n                            <option value=\"12111\">Restorantlı veya restorantsız otel</option>\r\n                            <option value=\"12112\">Bar</option>\r\n                            <option value=\"12112\">Bar(ayrı bina olarak)</option>\r\n                        </select>\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Numarataj Kimlik No</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"numaratajKimlikNo\" name=\"numaratajKimlikNo\" defaultValue={getDefult(\"numaratajKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Tadilata Konu Olsun Mu</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"tadilataKonuOlsunMu\" name=\"tadilataKonuOlsunMu\" defaultValue={getDefult(\"tadilataKonuOlsunMu\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Tapu Bagimsiz Bolum No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"tapuBagimsizBolumNo\" name=\"tapuBagimsizBolumNo\" defaultValue={getDefult(\"tapuBagimsizBolumNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n\r\n\r\n\r\n                <div className=\"row mt-1\">\r\n\r\n                    <div className=\"text-end col-12 text-end\">\r\n                        <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n\r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function Maksisitma(props) {\r\n\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmel istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemaksisitma\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"maksisitmalist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n            ,\r\n            body: JSON.stringify(maksrec.id)\r\n        }).then(async response => {\r\n\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n\r\n        fetch(\"savemaksisitma\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    var recid = getDefult(\"id\");\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n\r\n    const getName = (value) => {\r\n        if (value == 1) return value + \"- Merkezi ısıtmalı kaloriferu\";\r\n        if (value == 2) return value + \"- Bina içi kalorifer\"\r\n        if (value == 3) return value + \"- Kat kaloriferi\"\r\n        if (value == 4) return value + \"- Soba\";\r\n        if (value == 5) return value + \"- Doğalgaz sobası\"\r\n        if (value == 6) return value + \"- Klimau\";\r\n        if (value == 7) return value + \"- Diğer\";\r\n\r\n        return \"\";\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                        {getName(apprec.isitmaSistemKod)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n\r\n                                    <td>\r\n                                        {apprec.kayitNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.diger}\r\n                                    </td>\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            İçme Su eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                   Isıtma\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Isıtma Kod </label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"isitmaSistemKod\")} id=\"isitmaSistemKod\" name=\"isitmaSistemKod\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Merkezi ısıtmalı kalorifer</option>\r\n                        <option value=\"2\">Bina içi kalorifer</option>\r\n                        <option value=\"3\">Kat kaloriferi</option>\r\n                        <option value=\"4\">Soba</option>\r\n                        <option value=\"5\">Doğalgaz sobası</option>\r\n                        <option value=\"6\">Klima</option>\r\n                        <option value=\"7\">Diğer</option>\r\n\r\n                    </select>\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Kayit No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"kayitNo\" name=\"kayitNo\" defaultValue={getDefult(\"kayitNo\")} onChange={handleInputChange} />\r\n                </div>\r\n\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Diğer </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"diger\" name=\"diger\" defaultValue={getDefult(\"diger\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-end col-6\">\r\n                    <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                </div>\r\n            </div>\r\n\r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function MaksisitmaYakit(props) {\r\n\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmel istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemaksisitmayakit\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"maksisitmayakitlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n            ,\r\n            body: JSON.stringify(maksrec.id)\r\n        }).then(async response => {\r\n\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n\r\n        fetch(\"savemaksisitmayakit\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    var recid = getDefult(\"id\");\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n\r\n    const getName = (value) => {\r\n        if (value == 1) return value + \"- Katı yakıt\";\r\n        if (value == 2) return value + \"- Fuel-oil\"\r\n        if (value == 3) return value + \"- Doğalgaz\"\r\n        if (value == 4) return value + \"- LPG\";\r\n        if (value == 5) return value + \"- Elektrik\"\r\n        if (value == 6) return value + \"- Güneş\";\r\n        if (value == 7) return value + \"- Termal\";\r\n        if (value == 8) return value + \"- Rüzgar\";\r\n        if (value == 9) return value + \"- Diğer\";\r\n        return \"\";\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                        {getName(apprec.isitmaYakitKod)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n\r\n                                    <td>\r\n                                        {apprec.kayitNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.diger}\r\n                                    </td>\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            İçme Su eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                    Isıtma Yakıt Cinsi\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\"> Yakıt Cinsi </label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"isitmaYakitKod\")} id=\"isitmaYakitKod\" name=\"isitmaYakitKod\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Katı yakıt</option>\r\n                        <option value=\"2\">Fuel-oil</option>\r\n                        <option value=\"3\">Doğalgaz</option>\r\n                        <option value=\"4\">LPG</option>\r\n                        <option value=\"5\">Elektrik</option>\r\n                        <option value=\"6\">Güneş</option>\r\n                        <option value=\"7\">Termal</option>\r\n                        <option value=\"8\">Rüzgar</option>\r\n                        <option value=\"9\">Diğer</option>\r\n\r\n                    </select>\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Kayit No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"kayitNo\" name=\"kayitNo\" defaultValue={getDefult(\"kayitNo\")} onChange={handleInputChange} />\r\n                </div>\r\n\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Diğer </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"diger\" name=\"diger\" defaultValue={getDefult(\"diger\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-end col-6\">\r\n                    <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                </div>\r\n            </div>\r\n\r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function MaksSuTemin(props) {\r\n\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmel istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemakssutemin\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"makssuteminlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n            ,\r\n            body: JSON.stringify(maksrec.id)\r\n        }).then(async response => {\r\n\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n\r\n        fetch(\"savemakssutemin\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    var recid = getDefult(\"id\");\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n    const getName = (value) => {\r\n        if (value == 1) return value + \"- Termosifon\";\r\n        if (value == 2) return value + \"- Şofben\"\r\n        if (value == 3) return value + \"- Güneş kollektörü\"\r\n        if (value == 4) return value + \"- Kombi\";\r\n        if (value == 5) return value + \"- Müşterek\"\r\n        if (value == 6) return value + \"- Diğer\";\r\n        return \"\";\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                        {getName(apprec.suTeminKod)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n\r\n                                    <td>\r\n                                        {apprec.kayitNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.diger}\r\n                                    </td>\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            İçme Su eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                   Sıcak Su Temin Sistemi\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\"> Sıcak Su Temin Sistemi</label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"suTeminKod\")} id=\"suTeminKod\" name=\"suTeminKod\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Termosifon</option>\r\n                        <option value=\"2\">Şofben</option>\r\n                        <option value=\"3\">Güneş kollektörü</option>\r\n                        <option value=\"4\">Kombi</option>\r\n                        <option value=\"5\">Müşterek</option>\r\n                        <option value=\"6\">Diğer</option>\r\n\r\n                    </select>\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Kayit No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"kayitNo\" name=\"kayitNo\" defaultValue={getDefult(\"kayitNo\")} onChange={handleInputChange} />\r\n                </div>\r\n\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Diğer </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"diger\" name=\"diger\" defaultValue={getDefult(\"diger\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-end col-5\">\r\n                    <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                </div>\r\n            </div>\r\n\r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function MaksSuYakit(props) {\r\n\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmel istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemakssuyakit\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"makssuyakitlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n            ,\r\n            body: JSON.stringify(maksrec.id)\r\n        }).then(async response => {\r\n\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n\r\n        fetch(\"savemakssuyakit\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    var recid = getDefult(\"id\");\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n    const getName = (value) => {\r\n        if (value == 1) return value + \"- Doğalgaz\";\r\n        if (value == 2) return value + \"- LPG\"\r\n        if (value == 3) return value + \"- Fuel-oil\"\r\n        if (value == 4) return value + \"- Elektrik\";\r\n        if (value == 5) return value + \"- Katı Yakıt\"\r\n        if (value == 6) return value + \"- Termal\";\r\n        if (value == 7) return value + \"- Diğer\";\r\n        return \"\";\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                        {getName(apprec.suYakitKod)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n\r\n                                    <td>\r\n                                        {apprec.kayitNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.diger}\r\n                                    </td>\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            İçme Su eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                    Sıcak Su Yakıt Cinsi\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\"> Sıcak Su Yakıt Cinsi</label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"suYakitKod\")} id=\"suYakitKod\" name=\"suYakitKod\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Doğalgaz</option>\r\n                        <option value=\"2\">LPG</option>\r\n                        <option value=\"3\">Fuel-oil</option>\r\n                        <option value=\"4\">Elektrik</option>\r\n                        <option value=\"5\">Katı Yakıt</option>\r\n                        <option value=\"6\">Termal</option>\r\n                        <option value=\"7\">Diğer</option>\r\n\r\n                    </select>\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Kayit No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"kayitNo\" name=\"kayitNo\" defaultValue={getDefult(\"kayitNo\")} onChange={handleInputChange} />\r\n                </div>\r\n\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Diğer </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"diger\" name=\"diger\" defaultValue={getDefult(\"diger\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-end col-5\">\r\n                    <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                </div>\r\n            </div>\r\n\r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function MaksTesisat(props) {\r\n\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmel istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemakstesisat\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"makstesisatlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n            ,\r\n            body: JSON.stringify(maksrec.id)\r\n        }).then(async response => {\r\n\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n\r\n        fetch(\"savemakstesisat\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    var recid = getDefult(\"id\");\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n    const getName = (value) => {\r\n        if (value == 1) return value + \"- Arıtma\";\r\n        if (value == 2) return value + \"- Baz istasyonu\"\r\n        if (value == 3) return value + \"- Doğalgaz\"\r\n        if (value == 4) return value + \"- Elektrik\";\r\n        if (value == 5) return value + \"- Haberleşme\"\r\n        if (value == 6) return value + \"- Pis su\";\r\n        if (value == 7) return value + \"- Temiz su\";\r\n        if (value == 8) return value + \"- Hidrofor\";\r\n        if (value == 9) return value + \"- Jeneratör\";\r\n        if (value == 10) return value + \"- Paratoner\";\r\n        if (value == 11) return value + \"- Yangın tesisatı\";\r\n        if (value == 12) return value + \"- Diğer\";\r\n\r\n\r\n        return \"\";\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                        {getName(apprec.tesisatKod)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n\r\n                                    <td>\r\n                                        {apprec.kayitNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.diger}\r\n                                    </td>\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            İçme Su eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                   Tesisat\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Tesisat </label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"tesisatKod\")} id=\"tesisatKod\" name=\"tesisatKod\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n                        <option value=\"1\">Arıtma</option>\r\n                        <option value=\"2\">Baz istasyonu</option>\r\n                        <option value=\"3\">Doğalgaz</option>\r\n                        <option value=\"4\">Elektrik</option>\r\n                        <option value=\"5\">Haberleşme</option>\r\n                        <option value=\"6\">Pis su</option>\r\n                        <option value=\"7\">Temiz su</option>\r\n                        <option value=\"8\">Hidrofor</option>\r\n                        <option value=\"9\">Jeneratör</option>\r\n                        <option value=\"10\">Paratoner</option>\r\n                        <option value=\"11\">Yangın tesisatı</option>\r\n                        <option value=\"12\">Diğer</option>\r\n                    </select>\r\n                </div>\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Kayit No </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"kayitNo\" name=\"kayitNo\" defaultValue={getDefult(\"kayitNo\")} onChange={handleInputChange} />\r\n                </div>\r\n\r\n                <div className=\"text-start col-2\">\r\n                    <label className=\"form-label\">Diğer </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"diger\" name=\"diger\" defaultValue={getDefult(\"diger\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-end col-6\">\r\n                    <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                </div>\r\n            </div>\r\n\r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function MaksTasiyici(props) {\r\n\r\n    const [rec, setRec] = useState({});\r\n    const [maksrec, setMaksRec] = useState(props.rec);\r\n    const [takiplist, setTakiplist] = useState(null);\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const remove = (id) => {\r\n\r\n        showConfirmMessage(\"Silmel istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removemakstasiyici\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setTakiplist(value)\r\n                    })\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const fetchList = (e) => {\r\n        fetch(\"makstasiyicilist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n            ,\r\n            body: JSON.stringify(maksrec.id)\r\n        }).then(async response => {\r\n\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.maksBasvuruId = maksrec.id;\r\n\r\n        fetch(\"savemakstasiyici\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    $('.root').find('input').val('');\r\n                    setTakiplist(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        rec[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n    var recid = getDefult(\"id\");\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n    const getName = (value) => {\r\n        if (value == 1) return value + \"- Yok\";\r\n        if (value == 2) return value + \"- İskelet(Karkas)\"\r\n        if (value == 3) return value + \"- Yığma(Kagir)\"\r\n        if (value == 4) return value + \"- Prefabrik\";\r\n        if (value == 5) return value + \"- Yarı Prefabrike\"\r\n        if (value == 6) return value + \"- Karma\"\r\n        if (value == 7) return value + \"- Diğer\";\r\n        if (value == 8) return value + \"- İskelet(Karkas) --> Betonarme\";\r\n        if (value == 9) return value + \"- İskelet(Karkas) --> Ahşap\";\r\n        if (value == 10) return value + \"- İskelet(Karkas) --> Çelik\";\r\n        if (value == 11) return value + \"- İskelet(Karkas) --> Betonarme --> Çerçeveli Sistem\";\r\n        if (value == 12) return value + \"- İskelet(Karkas) --> Betonarme --> Perdeli Sistem\";\r\n        if (value == 13) return value + \"- İskelet(Karkas) --> Betonarme --> Çerçeveli + Perdeli Sistem\";\r\n\r\n        return \"\";\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1 \">\r\n                <div className=\"table-responsive \">\r\n                    <table className='table table-vdstriped border' aria-labelledby=\"tabelLabel\">\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} style={{ \"height\": \"25px\" }}>\r\n                                    <td>\r\n                                        {getName(apprec.tasiyiciKod)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.regDate}\r\n                                    </td>\r\n\r\n                                    <td>\r\n                                        {apprec.kayitNo}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.diger}\r\n                                    </td>\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {<a href=\"#\" className=\" text-decoration-none \" onClick={() => { remove(apprec.id) }}> <i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                        </div>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (maksrec == null || maksrec.id == null) {\r\n        return <div className=\"text-start  text-muted \">\r\n            İçme Su eklemek için önce başvuruyu kayediniz\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"mb-2 root\">\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-12 fw-bold text-primary\">\r\n                    Tasiyici Sistem\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Tasiyici Sistem </label>\r\n                    <select class=\"form-select form-select-sm\" defaultValue={getDefult(\"tasiyiciKod\")} id=\"tasiyiciKod\" name=\"tasiyiciKod\" onChange={handleInputChange} >\r\n                        <option selected></option>\r\n\r\n                            <option value=\"1\">Yok</option>\r\n                            <option value=\"2\" >İskelet(Karkas)</option>\r\n                            <option value=\"3\" >Yığma(Kagir)</option>\r\n                            <option value=\"4\" >Prefabrik</option>\r\n                            <option value=\"5\">Yarı Prefabrik</option>\r\n                            <option value=\"6\" >Karma</option>\r\n                            <option value=\"7\">Diğer</option>\r\n                            <option value=\"8\">İskelet(Karkas) --> Betonarme</option>\r\n                            <option value=\"9\">İskelet(Karkas) --> Ahşap</option>\r\n                            <option value=\"10\">İskelet(Karkas) --> Çelik</option>\r\n                            <option value=\"11\">İskelet(Karkas) --> Betonarme --> Çerçeveli Sistem</option>\r\n                            <option value=\"12\">İskelet(Karkas) --> Betonarme --> Perdeli Sistem</option>\r\n                            <option value=\"13\">İskelet(Karkas) --> Betonarme --> Çerçeveli + Perdeli Sistem</option>\r\n                       \r\n                    </select>\r\n                </div>\r\n                <div className=\"text-start col-3\">\r\n                    <label className=\"form-label\">Diğer </label>\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"diger\" name=\"diger\" defaultValue={getDefult(\"diger\")} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"text-end col-6\">\r\n                    <button className=\"btn btn-sm btn-link\" onClick={() => { save() }} ><i className=\"fa fa-plus align-middle\" style={{ \"font-size\": \"20px\" }}></i></button>\r\n                </div>\r\n            </div>\r\n\r\n            {renderToList()}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, sendpost, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function MAKSAdres(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const boxid = props.adressId;\r\n    const bagimsizBolumId = props.bagimsizBolumId;\r\n    const adressId = props.adressId;\r\n    const setRec = props.setRec;\r\n    var adres = \"\";\r\n    var bid = \"\";\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n    const handleIlChange = () => {\r\n        var il = document.getElementById(\"il\" + boxid).value;\r\n        var req = {requestType:2,parentId:il}\r\n        sendpost(\"getmaksadrescomponent\", req, \"adresspiner\", (response) => {\r\n            response.json().then(value => {\r\n                var ilce = document.getElementById(\"ilce\" + boxid);\r\n                ilce.innerHTML = \"<option selected value={-1}></option>\";\r\n                var data = JSON.parse(value);\r\n                data.forEach(i => {\r\n                    var opt = document.createElement('option');\r\n                    opt.value = i.Id;\r\n                    opt.innerHTML = i.Ad;\r\n                    ilce.appendChild(opt);\r\n                })\r\n            })\r\n        })\r\n    }\r\n    const handleIlceChange = () => {\r\n        var ilce = document.getElementById(\"ilce\" + boxid).value;\r\n        var req = { requestType: 64, parentId: ilce }\r\n        sendpost(\"getmaksadrescomponent\", req, \"adresspiner\", (response) => {\r\n            response.json().then(value => {\r\n                var mahalle = document.getElementById(\"mahalle\" + boxid);\r\n                mahalle.innerHTML = \"<option selected value={-1}></option>\";\r\n                var data = JSON.parse(value);\r\n                data.forEach(i => {\r\n                    var opt = document.createElement('option');\r\n                    opt.value = i.Id;\r\n                    opt.innerHTML = i.Ad;\r\n                    mahalle.appendChild(opt);\r\n                })\r\n            })\r\n        })\r\n    }\r\n\r\n\r\n    const handleMahalleChange = () => {\r\n        var ilce = document.getElementById(\"mahalle\" + boxid).value;\r\n        var req = { requestType: 128, parentId: ilce }\r\n        sendpost(\"getmaksadrescomponent\", req, \"adresspiner\", (response) => {\r\n            response.json().then(value => {\r\n                var yol = document.getElementById(\"yol\" + boxid);\r\n                yol.innerHTML = \"<option selected value={-1}></option>\";\r\n                var data = JSON.parse(value);\r\n                data.forEach(i => {\r\n                    var opt = document.createElement('option');\r\n                    opt.value = i.Id;\r\n                    opt.innerHTML = i.Ad;\r\n                    yol.appendChild(opt);\r\n                })\r\n            })\r\n        })\r\n    }\r\n\r\n\r\n\r\n    const handleYolChange = () => {\r\n        var ilce = document.getElementById(\"yol\" + boxid).value;\r\n        var req = { requestType: 1024, parentId: ilce }\r\n        sendpost(\"getmaksadrescomponent\", req, \"adresspiner\", (response) => {\r\n            response.json().then(value => {\r\n                var mahalle = document.getElementById(\"bina\" + boxid);\r\n                mahalle.innerHTML = \"<option selected value={-1}></option>\";\r\n                var data = JSON.parse(value);\r\n                data.forEach(i => {\r\n                    var opt = document.createElement('option');\r\n                    opt.value = i.Id;\r\n                    opt.innerHTML = i.Ad;\r\n                    mahalle.appendChild(opt);\r\n                })\r\n            })\r\n        })\r\n    }\r\n\r\n       const handleBinaChange = () => {\r\n        var ilce = document.getElementById(\"bina\" + boxid);\r\n        var req = { requestType: 4096, parentId: ilce.value }\r\n        sendpost(\"getmaksadrescomponent\", req, \"adresspiner\", (response) => {\r\n            response.json().then(value => {\r\n                var mahalle = document.getElementById(\"bagimsiz\" + boxid);\r\n                mahalle.innerHTML = \"<option selected value={-1}></option>\";\r\n                var data = JSON.parse(value);\r\n                var data = JSON.parse(value);\r\n                if (data.length == 0) {\r\n                    var opt = document.createElement('option');\r\n                    opt.value = ilce.value; \r\n                    opt.innerHTML = ilce.options[ilce.selectedIndex].text;\r\n                    mahalle.appendChild(opt);\r\n\r\n                    return;\r\n                }\r\n                data.forEach(i => {\r\n                    var opt = document.createElement('option');\r\n                    opt.value = i.Id;\r\n                    opt.innerHTML = isEmpty(i.Ad) ? ilce.options[ilce.selectedIndex].text : i.Ad; \r\n                    mahalle.appendChild(opt);\r\n                })\r\n            })\r\n        })\r\n    } \r\n\r\n    const handleBagimsizChange = () => {\r\n        var v = document.getElementById(\"bagimsiz\" + boxid).value;\r\n        var req = { requestType: 1001, parentId: v }\r\n        sendpost(\"getmaksadrescomponent\", req, \"adresspiner\", (response) => {\r\n            response.json().then(value => {\r\n                var data = JSON.parse(value);\r\n                adres = data[v + \"\"].AcikAdres;\r\n                bid = v;\r\n            })\r\n        })\r\n    } \r\n\r\n    const saveAdres = () => {\r\n        if (isEmpty(adres) || isEmpty(bid) || bid == -1) {\r\n            showErrorMessage(\"Adres Alınamadı\")\r\n        }\r\n        document.getElementById(adressId).value = adres;\r\n        document.getElementById(bagimsizBolumId).value = bid;\r\n        setRec(bid,adres)\r\n       \r\n    } \r\n\r\n   \r\n\r\n\r\n    return (<div>\r\n        <button type=\"button\" className=\"btn btn-primary btn-sm\" data-bs-toggle=\"modal\" data-bs-target={\"#Modal\" + boxid}>\r\n            Adres Seç\r\n        </button>\r\n\r\n\r\n        <div className=\"modal fade\" tabindex=\"-1\"  id={\"Modal\" + boxid}>\r\n            <div className=\"modal-dialog\">\r\n                <div className=\"modal-content\">\r\n                    <div className=\"modal-header\">\r\n                        <span className=\"modal-title h5\">Adres Seç</span>\r\n                        <span className=\"spinner-border spinner-border-sm ms-3\" id=\"adresspiner\" hidden>   </span>\r\n                         <button type=\"button\" className=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\r\n                    </div>\r\n                    <div class=\"modal-body\">\r\n                                İl\r\n                        <select className=\"form-select form-select-sm\" onChange={handleIlChange} id={\"il\" + boxid}>\r\n                                    <option selected value={-1}></option>\r\n                                    <option value=\"1\">Adana</option>\r\n                                    <option value=\"2\">Adıyaman</option>\r\n                                    <option value=\"3\">Afyonkarahisar</option>\r\n                                    <option value=\"4\">Ağrı</option>\r\n                                    <option value=\"68\">Aksaray</option>\r\n                                    <option value=\"5\">Amasya</option>\r\n                                    <option value=\"6\">Ankara</option>\r\n                                    <option value=\"7\">Antalya</option>\r\n                                    <option value=\"75\">Ardahan</option>\r\n                                    <option value=\"8\">Artvin</option>\r\n                                    <option value=\"9\">Aydın</option>\r\n                                    <option value=\"10\">Balıkesir</option>\r\n                                    <option value=\"74\">Bartın</option>\r\n                                    <option value=\"72\">Batman</option>\r\n                                    <option value=\"69\">Bayburt</option>\r\n                                    <option value=\"11\">Bilecik</option>\r\n                                    <option value=\"12\">Bingöl</option>\r\n                                    <option value=\"13\">Bitlis</option>\r\n                                    <option value=\"14\">Bolu</option>\r\n                                    <option value=\"15\">Burdur</option>\r\n                                    <option value=\"16\">Bursa</option>\r\n                                    <option value=\"17\">Çanakkale</option>\r\n                                    <option value=\"18\">Çankırı</option>\r\n                                    <option value=\"19\">Çorum</option>\r\n                                    <option value=\"20\">Denizli</option>\r\n                                    <option value=\"21\">Diyarbakır</option>\r\n                                    <option value=\"81\">Düzce</option>\r\n                                    <option value=\"22\">Edirne</option>\r\n                                    <option value=\"23\">Elazığ</option>\r\n                                    <option value=\"24\">Erzincan</option>\r\n                                    <option value=\"25\">Erzurum</option>\r\n                                    <option value=\"26\">Eskişehir</option>\r\n                                    <option value=\"27\">Gaziantep</option>\r\n                                    <option value=\"28\">Giresun</option>\r\n                                    <option value=\"29\">Gümüşhane</option>\r\n                                    <option value=\"30\">Hakkâri</option>\r\n                                    <option value=\"31\">Hatay</option>\r\n                                    <option value=\"76\">Iğdır</option>\r\n                                    <option value=\"32\">Isparta</option>\r\n                                    <option value=\"34\">İstanbul</option>\r\n                                    <option value=\"35\">İzmir</option>\r\n                                    <option value=\"46\">Kahramanmaraş</option>\r\n                                    <option value=\"78\">Karabük</option>\r\n                                    <option value=\"70\">Karaman</option>\r\n                                    <option value=\"36\">Kars</option>\r\n                                    <option value=\"37\">Kastamonu</option>\r\n                                    <option value=\"38\">Kayseri</option>\r\n                                    <option value=\"71\">Kırıkkale</option>\r\n                                    <option value=\"39\">Kırklareli</option>\r\n                                    <option value=\"40\">Kırşehir</option>\r\n                                    <option value=\"79\">Kilis</option>\r\n                                    <option value=\"41\">Kocaeli</option>\r\n                                    <option value=\"42\">Konya</option>\r\n                                    <option value=\"43\">Kütahya</option>\r\n                                    <option value=\"44\">Malatya</option>\r\n                                    <option value=\"45\">Manisa</option>\r\n                                    <option value=\"47\">Mardin</option>\r\n                                    <option value=\"33\">Mersin</option>\r\n                                    <option value=\"48\">Muğla</option>\r\n                                    <option value=\"49\">Muş</option>\r\n                                    <option value=\"50\">Nevşehir</option>\r\n                                    <option value=\"51\">Niğde</option>\r\n                                    <option value=\"52\">Ordu</option>\r\n                                    <option value=\"80\">Osmaniye</option>\r\n                                    <option value=\"53\">Rize</option>\r\n                                    <option value=\"54\">Sakarya</option>\r\n                                    <option value=\"55\">Samsun</option>\r\n                                    <option value=\"56\">Siirt</option>\r\n                                    <option value=\"57\">Sinop</option>\r\n                                    <option value=\"58\">Sivas</option>\r\n                                    <option value=\"63\">Şanlıurfa</option>\r\n                                    <option value=\"73\">Şırnak</option>\r\n                                    <option value=\"59\">Tekirdağ</option>\r\n                                    <option value=\"60\">Tokat</option>\r\n                                    <option value=\"61\">Trabzon</option>\r\n                                    <option value=\"62\">Tunceli</option>\r\n                                    <option value=\"64\">Uşak</option>\r\n                                    <option value=\"65\">Van</option>\r\n                                    <option value=\"77\">Yalova</option>\r\n                                    <option value=\"66\">Yozgat</option>\r\n                                    <option value=\"67\">Zonguldak</option>\r\n                                </select>\r\n                           \r\n                                İlçe\r\n                        <select class=\"form-select form-select-sm\" id={\"ilce\" + boxid} onChange={handleIlceChange}>\r\n                                    <option selected value={-1}></option>\r\n                                   \r\n                                </select>\r\n                          \r\n                                Mahalle\r\n                        <select class=\"form-select form-select-sm\" id={\"mahalle\" + boxid} onChange={handleMahalleChange}  >\r\n                                    <option selected value={-1}></option>\r\n                                   \r\n                                </select>\r\n                           \r\n                                Yol\r\n                        <select class=\"form-select form-select-sm\" onChange={handleYolChange} id={\"yol\" + boxid}>\r\n                                    <option selected value={-1}></option>\r\n                                    \r\n                                </select>\r\n                           \r\n                       \r\n                                Bina\r\n                        <select className=\"form-select form-select-sm\" onChange={handleBinaChange} id={\"bina\" + boxid}>\r\n                                    <option selected value={-1}></option>\r\n                                   \r\n                                </select>\r\n\r\n                        Bağımsız Bolum\r\n                        <select className=\"form-select form-select-sm\" onChange={handleBagimsizChange} id={\"bagimsiz\" + boxid}>\r\n                            <option selected value={-1}></option>\r\n\r\n                        </select>\r\n\r\n\r\n\r\n                    </div>\r\n                    <div className=\"modal-footer\">\r\n                        <button type=\"button\" className=\"btn btn-secondary\" data-bs-dismiss=\"modal\">Vazgeç</button>\r\n\r\n                        <button type=\"button\" className=\"btn btn-primary\" data-bs-dismiss=\"modal\" onClick={saveAdres}>Kaydet</button>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n\r\n\r\n    </div >\r\n    );\r\n}\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, setVisible, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\nimport MaksGorevli from './MaksGorevli';\r\nimport MaksProje from './MaksProje.js';\r\nimport MaksDuvardolgu from './MaksDuvardolgu.js';\r\nimport MaksDoseme from './MaksDoseme.js';\r\nimport MaksOrtakAlan from './MaksOrtakAlan.js';\r\nimport MaksIcmesu from './MaksIcmesu.js';\r\nimport MaksAtiksu from './MaksAtiksu.js';\r\nimport MaksMuhtelifGelir from './MaksMuhtelifGelir.js';\r\nimport MaksYapiDenetim from './MaksYapiDenetim.js';\r\nimport MaksBagimsizBolum from './MaksBagimsizBolum.js';\r\nimport Maksisitma from './Maksisitma.js';\r\nimport MaksisitmaYakit from './MaksisitmaYakit.js';\r\nimport MaksSuTemin from './MaksSuTemin.js';\r\nimport MaksSuYakit from './MaksSuYakit.js';\r\nimport MaksTesisat from './MaksTesisat.js';\r\nimport MaksTasiyici from './MaksTasiyici.js';\r\nimport MAKSAdres from './MAKSAdres.js';\r\n\r\n\r\nexport default function MAKS(props) {\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [rec, setRec] = useState(props.MaksApp);\r\n\r\n    const [maksMahalleList, setmaksMahalleList] = useState([]);\r\n    const [maksAdresList, setMaksAdresList] = useState([]);\r\n    const [yollist, setYols] = useState([]);\r\n    const [numarajlist, setNumaratjList] = useState([]);\r\n    const [selectedAdres, setSelectedAdres] = useState([]);\r\n\r\n    const [userData, setUserData] = useState(null);\r\n    const [userName, setuserName] = useGlobalState('userName');\r\n    const appData = props.appData;\r\n\r\n    useEffect(() => {\r\n        // load();\r\n        fetchUserData();\r\n        fetchMaksMahalle();\r\n    }, [])\r\n\r\n\r\n\r\n\r\n    const handleMahalleChange = (event) => {\r\n        var idx = document.getElementById(\"maksmahalle\").selectedIndex;\r\n        document.getElementById(\"yapiBelgeAdres_MahalleKimlikNo\").value = document.getElementById(\"maksmahalle\").options[idx].value\r\n        document.getElementById(\"yapiBelgeAdres_MahalleAdi\").value = document.getElementById(\"maksmahalle\").options[idx].innerHTML\r\n        fetchMaksYol(document.getElementById(\"maksmahalle\").options[idx].value);\r\n    }\r\n\r\n    const handleYolChange = (event) => {\r\n        var idx = document.getElementById(\"maksyol\").selectedIndex;\r\n        var yolad = document.getElementById(\"maksyol\").options[idx].innerHTML;\r\n        setNumaratjList(maksAdresList.filter(x => x.yolad == yolad).map(x => x.kapino));\r\n    }\r\n\r\n    const handleNumaratjChange = (event) => {\r\n        var idx = document.getElementById(\"maksnumaratj\").selectedIndex;\r\n        var k = document.getElementById(\"maksnumaratj\").options[idx].innerHTML;\r\n        idx = document.getElementById(\"maksyol\").selectedIndex;\r\n        var yolad = document.getElementById(\"maksyol\").options[idx].innerHTML;\r\n\r\n        var adres = maksAdresList.filter(x => x.yolad == yolad && x.kapino == k);\r\n        if (adres.length == 0) {\r\n            showErrorMessage(\"Seçilen Numarataja Kimlik No Bulunamadı !\");\r\n            return;\r\n\r\n        }\r\n        /* if (adres.length > 0) {\r\n             showErrorMessage(\"Seçilen Numarataja Birden Fazla Kimlik No bulundu !\");\r\n             return;\r\n         }*/\r\n\r\n        document.getElementById(\"adresinfo\").innerHTML = \"Adres: \" + adres.length + \" , Numarataj: \" + adres[0].numarataj + \" , Yapı K. No\" + adres[0].yapikimlikno + \" , Bagimsiz Bol K. No:\" + adres[0].bagimsizbolkimlikno + \" , Bagimsiz Bol No:\" + adres[0].yapiBelgeAdres_BagimsizBolumNo;\r\n        document.getElementById(\"yapiBelgeYapi_YapiKimlikNo\").value = adres[0].yapikimlikno;\r\n        document.getElementById(\"yapiBelgeAdres_BagimsizBolumKimlikNo\").value = adres[0].bagimsizbolkimlikno;\r\n        document.getElementById(\"yapiBelgeAdres_BagimsizBolumNo\").value = adres[0].bagimsizbolumno;\r\n        document.getElementById(\"yapiBelgeAdres_NumaratajKimlikNo\").value = k;\r\n\r\n        setSelectedAdres(adres);\r\n\r\n\r\n    }\r\n\r\n\r\n\r\n    const getDefult = (name) => {\r\n        if (rec == null)\r\n            return \"\";\r\n        return rec[name];\r\n    }\r\n\r\n\r\n\r\n    const fetchUserData = () => {\r\n        fetch(\"getuser?user=\" + userName, {\r\n            method: 'GET'\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setUserData(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const fetchMaksMahalle = () => {\r\n        fetch(\"getmaksmahallelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setmaksMahalleList(value);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchMaksYol = (id) => {\r\n        fetch(\"getmaksyollist?mahalleid=\" + id, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setMaksAdresList(value)\r\n                    const yols = new Set();\r\n                    value.forEach(x => yols.add(x.yolad));\r\n\r\n                    setYols([...yols]);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const senToMAKS = () => {\r\n        setVisible(\"myspinner\", true)\r\n        fetch(\"yapiruhsatkaydet\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n            ,\r\n            body: rec.id\r\n        }).then(async response => {\r\n            setVisible(\"myspinner\", false)\r\n            try {\r\n                response.text().then(value => {\r\n                    value = value.replace(\"\\\\n\", \" \").replace(\"\\n\", \" \").replace(\"\\n\", \" \").replace(\"\\r\", \" \");\r\n                    showSuccessMessage(value);\r\n                })\r\n            }\r\n            catch (ex) {\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    /*   const load = () => {\r\n   \r\n           fetch(\"getmaksapp\", {\r\n               method: 'POST',\r\n               headers: {\r\n                   'Accept': 'application/json',\r\n                   'Content-Type': 'application/json'\r\n               },\r\n               body: JSON.stringify(\"app \" + appData.id)\r\n           }).then(async response => {\r\n               if (!response.ok) {\r\n                   ajaxFail(response)\r\n               }\r\n               else {\r\n                   try {\r\n                       response.json().then(value => {\r\n                           if (value.length > 0)\r\n                               setRec(value[0]);\r\n                       })\r\n                   }\r\n                   catch (ex) {\r\n                       showErrorMessage(ex);\r\n                   }\r\n               }\r\n           });\r\n       }*/\r\n\r\n\r\n\r\n    const save = () => {\r\n        rec.appId = appData.id;\r\n        setVisible(\"myspinner\", true)\r\n        fetch(\"savemaksapp\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            setVisible(\"myspinner\", false)\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                try {\r\n                    response.json().then(value => {\r\n\r\n                        showSuccessMessage(\"Başvuru kaydedilmiştir\", \"Başvuru No: \" + value.id);\r\n                        setRec(value);\r\n                    })\r\n                }\r\n                catch (ex) {\r\n\r\n                }\r\n            }\r\n        });\r\n    }\r\n\r\n    const Oku = () => {\r\n        rec.appId = appData.id;\r\n\r\n        var bultenno = document.getElementById(\"yapiBelge_BultenNo\").value;\r\n        setVisible(\"myspinner\", true)\r\n        fetch(\"readfrommaks?maksid=\" + rec.id + \"&bultenno=\" + bultenno, {\r\n            method: 'GET'\r\n\r\n        }).then(async response => {\r\n            setVisible(\"myspinner\", false)\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                try {\r\n                    response.json().then(value => {\r\n                        showSuccessMessage(bultenno + \" bulten numaralı başvuru MAKS servisinden alınmıştır\")\r\n                        setRec(value);\r\n                    })\r\n                }\r\n                catch (ex) {\r\n\r\n                }\r\n            }\r\n        });\r\n    }\r\n\r\n    const Onayla = () => {\r\n        setVisible(\"myspinner\", true)\r\n        fetch(\"approveRuhsat\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec.id)\r\n\r\n        }).then(async response => {\r\n            setVisible(\"myspinner\", false)\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                try {\r\n                    response.text().then(value => {\r\n                        showSuccessMessage(value);\r\n                    })\r\n                }\r\n                catch (ex) {\r\n\r\n                }\r\n            }\r\n        });\r\n    }\r\n\r\n    const SantiyeSefiSorgula = () => {\r\n        document.getElementById(\"santiyeSefSonuc\").innerHTML = \"Yanıt Bekleniyor ...\";\r\n        setVisible(\"myspinner\", true)\r\n        fetch(\"santiyesefisorgula\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec.id)\r\n\r\n        }).then(async response => {\r\n            setVisible(\"myspinner\", false)\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                try {\r\n                    response.text().then(value => {\r\n                        document.getElementById(\"santiyeSefSonuc\").innerHTML = value;\r\n                    })\r\n                }\r\n                catch (ex) {\r\n\r\n                }\r\n            }\r\n        });\r\n    }\r\n\r\n    const YambisSorgula = () => {\r\n        document.getElementById(\"YambisSorgula\").innerHTML = \"Yanıt Bekleniyor ...\";\r\n        setVisible(\"myspinner\", true)\r\n        fetch(\"yambisSorgula\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec.id)\r\n\r\n        }).then(async response => {\r\n            setVisible(\"myspinner\", false)\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                try {\r\n                    response.text().then(value => {\r\n                        value = value.replaceAll('\\\\n', \"\").replaceAll('\"', \"    \").replaceAll(\"\\\\\", \" \").replaceAll(\"{\", \"\").replaceAll(\"}\", \"\").replaceAll(\",\", \"<br/>\");\r\n                        document.getElementById(\"YambisSorgula\").innerHTML = value;\r\n                    })\r\n                }\r\n                catch (ex) {\r\n\r\n                }\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        if (isEmpty(value) == false)\r\n            rec[target.name] = value;\r\n        else\r\n            rec[target.name] = null;\r\n    }\r\n\r\n    var mainbuttons = <div className=\"row mt-1\">\r\n\r\n        <div className=\"col-12 col-md-6\">\r\n            <h5 className=\"text-primary mb-0\" >MAKS Yapı Ruhsat Belgesi </h5>\r\n            {isEmpty(recid) ? \"\" : \"ID: \" + recid}&nbsp;&nbsp;&nbsp;&nbsp;\r\n            {isEmpty(appid) ? \"\" : \"AppID: \" + appid}\r\n        </div>\r\n        <div className=\"col-12 col-md-1 text-end\">\r\n            <div class=\"spinner-border spinner-border-sm\" id=\"myspinner\" hidden>\r\n            </div>\r\n        </div>\r\n        <div className=\"col-12 col-md-5 text-end\">\r\n            <button type=\"button\" className=\"ms-1 btn btn-primary  btn-sm  text-decoration-none \" style={{ \"border-radius\": \"8px\" }} onClick={save}>\r\n                {rec.id > 0 ? \"Kaydet\" : \"Yeni Başvuru Oluştur\"}\r\n            </button>\r\n        </div>\r\n    </div>\r\n\r\n    var recid = getDefult(\"id\");\r\n    var appid = getDefult(\"appId\");\r\n    if (userData == null)\r\n        return <div class=\"spinner-border spinner-border-sm\">   </div>\r\n\r\n    if (rec.id == null || rec.id <= 0)\r\n        return mainbuttons;\r\n\r\n\r\n    return (\r\n        <div className=\"mb-5 rounded-3 pt-2 pb-3 ps-3 pe-3\" style={{ \"background-color\": \"#ebebeb\", \"min-height\": \"100vh\" }}>\r\n\r\n            {mainbuttons}\r\n\r\n            <div className=\"row\">\r\n                <div className=\"col-2\">\r\n                    <button disabled={rec == null || !(rec.id > 0)} type=\"button\" className=\"ms-1 btn btn-success  btn-sm  text-decoration-none w-100\" style={{ \"border-radius\": \"8px\" }} onClick={senToMAKS}>\r\n                        Gönder\r\n                    </button>\r\n                </div>\r\n                <div className=\"col-2\">\r\n                    <button disabled={rec == null || !(rec.id > 0)} type=\"button\" className=\"ms-1 btn btn-success  btn-sm  text-decoration-none w-100\" style={{ \"border-radius\": \"8px\" }} onClick={senToMAKS}>\r\n                        Güncelle\r\n                    </button>\r\n                </div>\r\n                <div className=\"col-2\">\r\n                    <button disabled={rec == null || !(rec.id > 0)} type=\"button\" className=\"ms-1 btn btn-success  btn-sm  text-decoration-none w-100\" style={{ \"border-radius\": \"8px\" }} onClick={Oku}>\r\n                        Oku\r\n                    </button>\r\n                </div>\r\n\r\n                <div className=\"col-2\">\r\n                    <button disabled={rec == null || !(rec.id > 0)} type=\"button\" className=\"ms-1 btn btn-success  btn-sm  text-decoration-none w-100\" style={{ \"border-radius\": \"8px\" }} onClick={Onayla}>\r\n                        Onayla\r\n                    </button>\r\n                </div>\r\n                <div className=\"col-2\">\r\n                    <a disabled={rec == null || !(rec.id > 0)} type=\"button\" className=\"ms-1 btn btn-success  btn-sm  text-decoration-none w-100\" style={{ \"border-radius\": \"8px\" }} download=\"ruhsat.pdf\" href={\"/getRuhsatPDF?id=\" + rec.id}>\r\n                        Ruhsatı İndir\r\n                    </a>\r\n\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row mt-2\">\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#BAŞVURUBİLGİLERİ\">Başvuru Bilgileri</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#YapıSahipiBilgileri\">Yapı Sahipi Bilgileri</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#YapıBelgeBilgileri\">Yapı Belge Bilgileri</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#YapiBelgeAdresBilgileri\">Yapi Belge Adres Bilgileri</a>\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#Ruhsat\">Ruhsat</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#YapıMütahhitBilgileri\">Mütahhit Bilgileri</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#ŞantiyeŞefiBilgileri\">Şantiye Şefi</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#YapiBelgeAdresBilgileri\">Bagimsiz Bolum</a>\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#YapiOzellikBilgileri\">Yapi Ozellik Bilgileri</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#MaksTasiyici\">Tasiyici</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#YapıDenetimKuruluşBilgileri\">Yapı Denetim Kuruluş</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#YapıToprakBilgileri\"> Toprak Bilgileri</a>\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#YapiBelgeDigerHusus\">Diger Husus</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#YapiİşYeriBilgileri\">Yapi İşYeri Bilgileri</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#Maksisitma\">Isitma</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#MaksisitmaYakit\"> Isitma Yakit</a>\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#MaksSuTemin\">Sıcak Su Temin</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#MaksSuYakit\">Sıcak Su Temin Yakit</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#MaksIcmesu\">Içme Su</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#MaksAtiksu\"> Maks Atik Su</a>\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#MaksGorevli\">Gorevli</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#MaksProje\">Proje</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#MaksDuvardolgu\">Duvardolgu</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#MaksDoseme\"> Doseme</a>\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#MaksOrtakAlan\">Ortak Alan</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#MaksTesisat\">Tesisat</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#MaksMuhtelifGelir\">Muhtelif Gelir</a>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <a className=\"text-decoration-none\" href=\"#MaksYapiDenetim\">Yapi Denetim</a>\r\n                </div>\r\n            </div>\r\n\r\n            {/*--------------------------------------------------------ADRES -------------------------------*/}\r\n\r\n\r\n            <div className=\"bg-white rounded-3 p-2 mt-2 shadow-sm\">\r\n                <div className=\"row\" id=\"BAŞVURUBİLGİLERİ\">\r\n                    <div className=\"text-start col-12 fw-bold text-primary \">\r\n                        Başvuru Bilgileri\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-12 text-success\">\r\n                        {rec.yapiBelgeAdres_MahalleAdi}( {rec.yapiBelgeAdres_MahalleKimlikNo}) / {rec.yol} /  {rec.yapiBelgeAdres_DisKapiNo}\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-1\">\r\n                    <div className=\"text-start col-3 pt-3\">\r\n                        <input type=\"checkbox\" className=\"form-check-input\" id=\"yapiBelge_YapiDenetimTabi\" name=\"yapiBelge_YapiDenetimTabi\" defaultChecked={getDefult(\"yapiBelge_YapiDenetimTabi\") == true} key={getDefult(\"yapiBelge_YapiDenetimTabi\")} onChange={handleInputChange} key={rec.yapiBelge_YapiDenetimTabi} /> Bina Yapı Denetime tabi değil\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yibf No</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiBelge_YibfNo\" name=\"yapiBelge_YibfNo\" defaultValue={getDefult(\"yapiBelge_YibfNo\")} key={getDefult(\"yapiBelge_YibfNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n\r\n                <div className=\"row mt-3\">\r\n\r\n                </div>\r\n            </div>\r\n\r\n\r\n            {/*--------------------------------------------------------Yapı Belge Bilgileri -------------------------------*/}\r\n\r\n\r\n            <div className=\"bg-white rounded-3 p-2 mt-2 shadow-sm\">\r\n                <div className=\"row\" id=\"YapıBelgeBilgileri\">\r\n                    <div className=\"text-start col-12 fw-bold text-primary \">\r\n                        Yapı Belge Bilgileri\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yapi Belge Tipi</label>\r\n                        <select disabled class=\"form-select form-select-sm\" aria-label=\"Default select example\" id=\"yapiBelge_YapiBelgeTipKod\" name=\"yapiBelge_YapiBelgeTipKod\" defaultValue={getDefult(\"yapiBelge_YapiBelgeTipKod\")} key={getDefult(\"yapiBelge_YapiBelgeTipKod\")} onChange={handleInputChange} >\r\n                            <option selected ></option>\r\n                            <option value=\"1\" selected={getDefult(\"yapiBelge_YapiBelgeTipKod\") == \"1\"}>Yapi Ruhsat Belgesi</option>\r\n                            <option value=\"2\" selected={getDefult(\"yapiBelge_YapiBelgeTipKod\") == \"2\"}>Yapi Kullanma Izin Belgesi</option>\r\n                            <option value=\"3\" selected={getDefult(\"yapiBelge_YapiBelgeTipKod\") == \"3\"}>Yanan Yikilan Yapi Formu</option>\r\n                            <option value=\"4\" selected={getDefult(\"yapiBelge_YapiBelgeTipKod\") == \"4\"}>Yikim Ruhsat Belgesi</option>\r\n                        </select>\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yapi Kimlik No</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiBelgeYapi_YapiKimlikNo\" name=\"yapiBelgeYapi_YapiKimlikNo\" defaultValue={getDefult(\"yapiBelgeYapi_YapiKimlikNo\")} key={getDefult(\"yapiBelgeYapi_YapiKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yapi Belge Durum Kod</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelge_YapiBelgeDurumKod\" name=\"yapiBelge_YapiBelgeDurumKod\" defaultValue={getDefult(\"yapiBelge_YapiBelgeDurumKod\")} key={getDefult(\"yapiBelge_YapiBelgeDurumKod\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Bulten No</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiBelge_BultenNo\" name=\"yapiBelge_BultenNo\" defaultValue={getDefult(\"yapiBelge_BultenNo\")} key={getDefult(\"yapiBelge_BultenNo\")} onChange={handleInputChange} />\r\n\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Onay Kod</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiBelge_OnayKod\" name=\"yapiBelge_OnayKod\" defaultValue={getDefult(\"yapiBelge_OnayKod\")} key={getDefult(\"yapiBelge_OnayKod\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Sistem Onay Tarih</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelge_SistemOnayTarih\" name=\"yapiBelge_SistemOnayTarih\" defaultValue={getDefult(\"yapiBelge_SistemOnayTarih\")} key={getDefult(\"yapiBelge_SistemOnayTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n            </div>\r\n\r\n            {/*-------------------------------------------------------------------Yapı Sahipi Bilgileri-----------------------------------------------*/}\r\n            <div className=\"bg-white rounded-3 p-2 mt-2 shadow-sm\">\r\n                <div className=\"row\" id=\"YapıSahipiBilgileri\">\r\n                    <div className=\"text-start col-12 fw-bold text-primary \">\r\n                        Yapı Sahipi Bilgileri\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Kurum Tur</label>\r\n                        <select class=\"form-select form-select-sm\" id=\"yapiSahip_YapiSahipKurumTurKod\" name=\"yapiSahip_YapiSahipKurumTurKod\" defaultValue={getDefult(\"yapiSahip_YapiSahipKurumTurKod\")} key={getDefult(\"yapiSahip_YapiSahipKurumTurKod\")} onChange={handleInputChange} >\r\n                            <option  ></option>\r\n                            <option value=\"1\" selected={getDefult(\"yapiSahip_YapiSahipKurumTurKod\") == \"1\"}>Özel</option>\r\n                            <option value=\"2\" selected={getDefult(\"yapiSahip_YapiSahipKurumTurKod\") == \"2\"}>Kamu</option>\r\n                            <option value=\"3\" selected={getDefult(\"yapiSahip_YapiSahipKurumTurKod\") == \"3\"}>Yabancı</option>\r\n                        </select>\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Kurum Kod</label>\r\n                        <select class=\"form-select form-select-sm\" id=\"yapiSahip_YapiSahipKurumKod\" name=\"yapiSahip_YapiSahipKurumKod\" defaultValue={getDefult(\"yapiSahip_YapiSahipKurumKod\")} key={getDefult(\"yapiSahip_YapiSahipKurumKod\")} onChange={handleInputChange} >\r\n                            <option  ></option>\r\n                            <option value=\"1\" selected={getDefult(\"yapiSahip_YapiSahipKurumKod\") == \"481\"}>Özel Kişiler</option>\r\n                            <option value=\"2\" selected={getDefult(\"yapiSahip_YapiSahipKurumKod\") == \"482\"}>Özel Kuruluşlar</option>\r\n                            <option value=\"3\" selected={getDefult(\"yapiSahip_YapiSahipKurumKod\") == \"467\"}>Yapı Koopratifleri</option>\r\n                            <option value=\"3\" selected={getDefult(\"yapiSahip_YapiSahipKurumKod\") == \"485\"}>Ortaklık</option>\r\n                        </select>\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Ad</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiSahip_Ad\" name=\"yapiSahip_Ad\" defaultValue={getDefult(\"yapiSahip_Ad\")} key={getDefult(\"yapiSahip_Ad\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Soyad </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiSahip_Soyad\" name=\"yapiSahip_Soyad\" defaultValue={getDefult(\"yapiSahip_Soyad\")} key={getDefult(\"yapiSahip_Soyad\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">TC Kimlik No</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiSahip_TCKimlikNo\" name=\"yapiSahip_TCKimlikNo\" defaultValue={getDefult(\"yapiSahip_TCKimlikNo\")} key={getDefult(\"yapiSahip_TCKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Unvan</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiSahip_Unvan\" name=\"yapiSahip_Unvan\" defaultValue={getDefult(\"yapiSahip_Unvan\")} key={getDefult(\"yapiSahip_Unvan\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Vergi Dairesi</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiSahip_VergiDaire\" name=\"yapiSahip_VergiDaire\" defaultValue={getDefult(\"yapiSahip_VergiDaire\")} key={getDefult(\"yapiSahip_VergiDaire\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Vergi No</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiSahip_VergiNo\" name=\"yapiSahip_VergiNo\" defaultValue={getDefult(\"yapiSahip_VergiNo\")} key={getDefult(\"yapiSahip_VergiNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                   \r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Bagimsiz Bolum Kimlik No</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" disabled id=\"yapiSahip_BagimsizBolumKimlikNo\" name=\"yapiSahip_BagimsizBolumKimlikNo\" defaultValue={getDefult(\"yapiSahip_BagimsizBolumKimlikNo\")} key={getDefult(\"yapiSahip_BagimsizBolumKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-6\">\r\n                        <label className=\"form-label\">Acik Adres</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" disabled id=\"yapiSahip_AcikAdres\" name=\"yapiSahip_AcikAdres\" defaultValue={getDefult(\"yapiSahip_AcikAdres\")} key={getDefult(\"yapiSahip_AcikAdres\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3 pt-2\">\r\n                    <br/>\r\n                        <MAKSAdres adressId=\"yapiSahip_AcikAdres\" setRec={(b, a) => { rec.yapiSahip_BagimsizBolumKimlikNo = b; rec.yapiSahip_AcikAdres = a; }} bagimsizBolumId=\"yapiSahip_BagimsizBolumKimlikNo\" key=\"yapiSahip_BagimsizBolumKimlikNo\" />\r\n                     </div>\r\n                </div>\r\n            </div>\r\n\r\n            \r\n\r\n          \r\n\r\n\r\n            {/*-------------------------------------------------------------------Yapi Belge Adres Bilgileri------------------------------------------*/}\r\n            <div className=\"bg-white rounded-3 p-2 mt-4 shadow-sm\">\r\n                <div className=\"row\" id=\"YapiBelgeAdresBilgileri\">\r\n                    <div className=\"text-start col-12 fw-bold text-primary\">\r\n                        Yapi Belge Adres Bilgileri\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\"> Il</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_IlAdi\" name=\"yapiBelgeAdres_IlAdi\" defaultValue={getDefult(\"yapiBelgeAdres_IlAdi\")} key={getDefult(\"yapiBelgeAdres_IlAdi\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Il Kimlik No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_IlKimlikNo\" name=\"yapiBelgeAdres_IlKimlikNo\" value={getDefult(\"yapiBelgeAdres_IlKimlikNo\")} key={getDefult(\"yapiBelgeAdres_IlKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Ilçe</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_IlceAdi\" name=\"yapiBelgeAdres_IlceAdi\" defaultValue={getDefult(\"yapiBelgeAdres_IlceAdi\")} key={getDefult(\"yapiBelgeAdres_IlceAdi\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Ilce Kimlik No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_IlceKimlikNo\" name=\"yapiBelgeAdres_IlceKimlikNo\" defaultValue={getDefult(\"yapiBelgeAdres_IlceKimlikNo\")} key={getDefult(\"yapiBelgeAdres_IlceKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n\r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Mevki</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_MezraMevkiAd\" name=\"yapiBelgeAdres_MezraMevkiAd\" defaultValue={getDefult(\"yapiBelgeAdres_MezraMevkiAd\")} key={getDefult(\"yapiBelgeAdres_MezraMevkiAd\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Mahalle</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_MahalleAdi\" name=\"yapiBelgeAdres_MahalleAdi\" defaultValue={getDefult(\"yapiBelgeAdres_MahalleAdi\")} key={getDefult(\"yapiBelgeAdres_MahalleAdi\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Mahalle Kimlik No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_MahalleKimlikNo\" name=\"yapiBelgeAdres_MahalleKimlikNo\" defaultValue={getDefult(\"yapiBelgeAdres_MahalleKimlikNo\")} key={getDefult(\"yapiBelgeAdres_MahalleKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Mahalle Tanıtım Kod</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_MahalleTanitimKod\" name=\"yapiBelgeAdres_MahalleTanitimKod\" defaultValue={getDefult(\"yapiBelgeAdres_MahalleTanitimKod\")} key={getDefult(\"yapiBelgeAdres_MahalleTanitimKod\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Belediye</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_KurumAdi\" name=\"yapiBelgeAdres_KurumAdi\" defaultValue={getDefult(\"yapiBelgeAdres_KurumAdi\")} key={getDefult(\"yapiBelgeAdres_KurumAdi\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Belediye Kimlik No</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiBelge_KurumKimlikNo\" name=\"yapiBelge_KurumKimlikNo\" defaultValue={getDefult(\"yapiBelge_KurumKimlikNo\")} key={getDefult(\"yapiBelge_KurumKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Bucak</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_BucakAdi\" name=\"yapiBelgeAdres_BucakAdi\" defaultValue={getDefult(\"yapiBelgeAdres_BucakAdi\")} key={getDefult(\"yapiBelgeAdres_BucakAdi\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Bucak Kimlik No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_BucakKimlikNo\" name=\"yapiBelgeAdres_BucakKimlikNo\" defaultValue={getDefult(\"yapiBelgeAdres_BucakKimlikNo\")} key={getDefult(\"yapiBelgeAdres_BucakKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n\r\n\r\n                </div>\r\n\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                   <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Köy</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_KoyAdi\" name=\"yapiBelgeAdres_KoyAdi\" defaultValue={getDefult(\"yapiBelgeAdres_KoyAdi\")} key={getDefult(\"yapiBelgeAdres_KoyAdi\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Köy Kimlik No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_KoyKimlikNo\" name=\"yapiBelgeAdres_KoyKimlikNo\" defaultValue={getDefult(\"yapiBelgeAdres_KoyKimlikNo\")} key={getDefult(\"yapiBelgeAdres_KoyKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n \r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Cadde/Sokak Tanıtım Kod</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_CsbmTanitimKod\" name=\"yapiBelgeAdres_CsbmTanitimKod\" defaultValue={getDefult(\"yapiBelgeAdres_CsbmTanitimKod\")} key={getDefult(\"yapiBelgeAdres_CsbmTanitimKod\")} onChange={handleInputChange} />\r\n                    </div>\r\n \r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Bagımsız Bolum Kimlik No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_BagimsizBolumKimlikNo\" name=\"yapiBelgeAdres_BagimsizBolumKimlikNo\" defaultValue={getDefult(\"yapiBelgeAdres_BagimsizBolumKimlikNo\")} key={getDefult(\"yapiBelgeAdres_BagimsizBolumKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Adres No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_AdresNo\" name=\"yapiBelgeAdres_AdresNo\" defaultValue={getDefult(\"yapiBelgeAdres_AdresNo\")} key={getDefult(\"yapiBelgeAdres_AdresNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Kısmi Bagımsız Bolum No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_KismiBagimsizBolumNo\" name=\"yapiBelgeAdres_KismiBagimsizBolumNo\" defaultValue={getDefult(\"yapiBelgeAdres_KismiBagimsizBolumNo\")} key={getDefult(\"yapiBelgeAdres_KismiBagimsizBolumNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Blok No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_BlokNo\" name=\"yapiBelgeAdres_BlokNo\" defaultValue={getDefult(\"yapiBelgeAdres_BlokNo\")} key={getDefult(\"yapiBelgeAdres_BlokNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Bina Kimlik No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_BinaKimlikNo\" name=\"yapiBelgeAdres_BinaKimlikNo\" defaultValue={getDefult(\"yapiBelgeAdres_BinaKimlikNo\")} key={getDefult(\"yapiBelgeAdres_BinaKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Pafta No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_PaftaNo\" name=\"yapiBelgeAdres_PaftaNo\" defaultValue={getDefult(\"yapiBelgeAdres_PaftaNo\")} key={getDefult(\"yapiBelgeAdres_PaftaNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Ada No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_AdaNo\" name=\"yapiBelgeAdres_AdaNo\" defaultValue={getDefult(\"yapiBelgeAdres_AdaNo\")} key={getDefult(\"yapiBelgeAdres_AdaNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Parsel No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_ParselNo\" name=\"yapiBelgeAdres_ParselNo\" defaultValue={getDefult(\"yapiBelgeAdres_ParselNo\")} key={getDefult(\"yapiBelgeAdres_ParselNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Dış Kapi No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_DisKapiNo\" name=\"yapiBelgeAdres_DisKapiNo\" defaultValue={getDefult(\"yapiBelgeAdres_DisKapiNo\")} key={getDefult(\"yapiBelgeAdres_DisKapiNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Numarataj Kimlik No</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiBelgeAdres_NumaratajKimlikNo\" name=\"yapiBelgeAdres_NumaratajKimlikNo\" defaultValue={getDefult(\"yapiBelgeAdres_NumaratajKimlikNo\")} key={getDefult(\"yapiBelgeAdres_NumaratajKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n\r\n               {/* <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Bagimsiz Bolum No</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" disabled id=\"yapiBelgeAdres_BagimsizBolumNo\" name=\"yapiBelgeAdres_BagimsizBolumNo\" defaultValue={getDefult(\"yapiBelgeAdres_BagimsizBolumNo\")} key={getDefult(\"yapiBelgeAdres_BagimsizBolumNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-6\">\r\n                        <label className=\"form-label\">Açık Adres</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" disabled id=\"yapiBelgeAdres_AcikAdres\" name=\"yapiBelgeAdres_AcikAdres\" defaultValue={getDefult(\"yapiBelgeAdres_AcikAdres\")} key={getDefult(\"yapiBelgeAdres_AcikAdres\")} onChange={handleInputChange} />\r\n                    </div>\r\n                <div className=\"text-start col-3 pt-2\">\r\n                    <br />\r\n                        <MAKSAdres adressId=\"yapiBelgeAdres_AcikAdres\" bagimsizBolumId=\"yapiBelgeAdres_BagimsizBolumNo\" key=\"yapiBelgeAdres_AcikAdres\" setRec={(b, a) => { rec.yapiBelgeAdres_BagimsizBolumNo = b; rec.yapiBelgeAdres_AcikAdres = a; }} />\r\n                </div>\r\n                </div>*/}\r\n\r\n\r\n\r\n\r\n            </div>\r\n\r\n\r\n            {/*----------------------------------------------------Ruhsat---------------------------------------------------------*/}\r\n\r\n\r\n\r\n\r\n\r\n            <div className=\"bg-white rounded-3 p-2 mt-4 shadow-sm\">\r\n\r\n                <div className=\"row\" id=\"Ruhsat\">\r\n                    <div className=\"text-start col-12 fw-bold text-primary \">\r\n                        Ruhsat\r\n                    </div>\r\n\r\n                </div>\r\n                <div className=\"row mt-1\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Ruhsat Verilis Amaç</label>\r\n                        <select disabled class=\"form-select form-select-sm\" aria-label=\"Default select example\" id=\"ruhsat_RuhsatVerilisAmacKod\" name=\"ruhsat_RuhsatVerilisAmacKod\" onChange={handleInputChange} >\r\n                            <option selected={\"\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")}></option>\r\n                            <option selected={\"1\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"1\">YeniYapi</option>\r\n                            <option selected={\"2\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"2\">Yenileme</option>\r\n                            <option selected={\"3\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"3\">Yeniden</option>\r\n                            <option selected={\"4\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"4\">Ek Bina</option>\r\n                            <option selected={\"5\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"5\">Kat Ilavesi</option>\r\n                            <option selected={\"6\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"6\">Ilave</option>\r\n                            <option selected={\"7\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"7\">Gecici</option>\r\n                            <option selected={\"8\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"8\">Tadilat</option>\r\n                            <option selected={\"9\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"9\">Dolgu</option>\r\n                            <option selected={\"10\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"10\">Restorasyon</option>\r\n                            <option selected={\"11\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"11\">Guclendirme</option>\r\n                            <option selected={\"12\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"12\">Kullanim Degisimi</option>\r\n                            <option selected={\"13\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"13\">Fosseptik</option>\r\n                            <option selected={\"14\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"14\">Mekanik Tesisat</option>\r\n                            <option selected={\"15\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"15\">Elektrik Tesisati</option>\r\n                            <option selected={\"16\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"16\">Isim Degisikligi</option>\r\n                            <option selected={\"17\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"17\">Istinat Duvari</option>\r\n                            <option selected={\"18\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"18\">Bahce Duvari</option>\r\n                            <option selected={\"19\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"19\">Diger</option>\r\n                            <option selected={\"20\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"20\">Diger Kacak Yapi</option>\r\n                            <option selected={\"21\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"21\">Diger Iksa</option>\r\n                            <option selected={\"22\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"22\">Diger 775 Sayili Gece kondu Kanunu</option>\r\n                            <option selected={\"23\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"23\">Diger Hes</option>\r\n                            <option selected={\"24\" == getDefult(\"ruhsat_RuhsatVerilisAmacKod\")} value=\"24\">Diger Baz</option>\r\n                        </select>\r\n\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Ruhsat No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_RuhsatNo\" name=\"ruhsat_RuhsatNo\" defaultValue={getDefult(\"ruhsat_RuhsatNo\")} key={getDefult(\"ruhsat_RuhsatNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Ruhsat Onay Tarih</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_RuhsatOnayTarih\" name=\"ruhsat_RuhsatOnayTarih\" defaultValue={getDefult(\"ruhsat_RuhsatOnayTarih\")} key={getDefult(\"ruhsat_RuhsatOnayTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Ilk Ruhsat Tarih </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_IlkRuhsatTarih\" name=\"ruhsat_IlkRuhsatTarih\" defaultValue={getDefult(\"ruhsat_IlkRuhsatTarih\")} key={getDefult(\"ruhsat_IlkRuhsatTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Ilk Ruhsat No </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_IlkRuhsatNo\" name=\"ruhsat_IlkRuhsatNo\" defaultValue={getDefult(\"ruhsat_IlkRuhsatNo\")} key={getDefult(\"ruhsat_IlkRuhsatNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Imar Plan Onay Tarihi</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_ImarPlanOnayTarih\" name=\"ruhsat_ImarPlanOnayTarih\" defaultValue={getDefult(\"ruhsat_ImarPlanOnayTarih\")} key={getDefult(\"ruhsat_ImarPlanOnayTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Imar Durum Tarihi </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_ImarDurumTarih\" name=\"ruhsat_ImarDurumTarih\" defaultValue={getDefult(\"ruhsat_ImarDurumTarih\")} key={getDefult(\"ruhsat_ImarDurumTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Imar Durum No </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_ImarDurumNo\" name=\"ruhsat_ImarDurumNo\" defaultValue={getDefult(\"ruhsat_ImarDurumNo\")} key={getDefult(\"ruhsat_ImarDurumNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Zemin Etud Onay Tarih</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_ZeminEtudOnayTarih\" name=\"ruhsat_ZeminEtudOnayTarih\" defaultValue={getDefult(\"ruhsat_ZeminEtudOnayTarih\")} key={getDefult(\"ruhsat_ZeminEtudOnayTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Parselasyon Onay Tarih</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_ParselasyonPlanOnayTarih\" name=\"ruhsat_ParselasyonPlanOnayTarih\" defaultValue={getDefult(\"ruhsat_ParselasyonPlanOnayTarih\")} key={getDefult(\"ruhsat_ParselasyonPlanOnayTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Parsel Kullanma Amac </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_ParselKullanmaAmac\" name=\"ruhsat_ParselKullanmaAmac\" defaultValue={getDefult(\"ruhsat_ParselKullanmaAmac\")} key={getDefult(\"ruhsat_ParselKullanmaAmac\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Parsel Alan (m2) </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"ruhsat_ParselAlan\" name=\"ruhsat_ParselAlan\" defaultValue={getDefult(\"ruhsat_ParselAlan\")} key={getDefult(\"ruhsat_ParselAlan\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n\r\n\r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Tapu Tescil Belge Kurum</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_TapuTescilBelgeVerenKurum\" name=\"ruhsat_TapuTescilBelgeVerenKurum\" defaultValue={getDefult(\"ruhsat_TapuTescilBelgeVerenKurum\")} key={getDefult(\"ruhsat_TapuTescilBelgeVerenKurum\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Tapu Tescil Belge Tarih</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_TapuTescilBelgeTarih\" name=\"ruhsat_TapuTescilBelgeTarih\" defaultValue={getDefult(\"ruhsat_TapuTescilBelgeTarih\")} key={getDefult(\"ruhsat_TapuTescilBelgeTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Tapu Tescil Belge No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_TapuTescilBelgeNo\" name=\"ruhsat_TapuTescilBelgeNo\" defaultValue={getDefult(\"ruhsat_TapuTescilBelgeNo\")} key={getDefult(\"ruhsat_TapuTescilBelgeNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Çed Rapor Onay Tarihi </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_CedRaporOnayTarih\" name=\"ruhsat_CedRaporOnayTarih\" defaultValue={getDefult(\"ruhsat_CedRaporOnayTarih\")} key={getDefult(\"ruhsat_CedRaporOnayTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n\r\n                <div className=\"row mt-4\">\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Planlanan Insaat Baslama Tarih</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_PlanlananInsaatBaslamaTarih\" name=\"ruhsat_PlanlananInsaatBaslamaTarih\" defaultValue={getDefult(\"ruhsat_PlanlananInsaatBaslamaTarih\")} key={getDefult(\"ruhsat_PlanlananInsaatBaslamaTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Planlanan Insaat Bitirme Tarih</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_PlanlananInsaatBitirmeTarih\" name=\"ruhsat_PlanlananInsaatBitirmeTarih\" defaultValue={getDefult(\"ruhsat_PlanlananInsaatBitirmeTarih\")} key={getDefult(\"ruhsat_PlanlananInsaatBitirmeTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Ruhsat Gecerlilik Tarih</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_RuhsatGecerlilikTarih\" name=\"ruhsat_RuhsatGecerlilikTarih\" defaultValue={getDefult(\"ruhsat_RuhsatGecerlilikTarih\")} key={getDefult(\"ruhsat_RuhsatGecerlilikTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Insaat Baslama Tarihi </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_InsaatBaslamaTarih\" name=\"ruhsat_InsaatBaslamaTarih\" defaultValue={getDefult(\"ruhsat_InsaatBaslamaTarih\")} key={getDefult(\"ruhsat_InsaatBaslamaTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Insaat Baslama Tarihi </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_InsaatBaslamaTutanakSayi\" name=\"ruhsat_InsaatBaslamaTutanakSayi\" defaultValue={getDefult(\"ruhsat_InsaatBaslamaTutanakSayi\")} key={getDefult(\"ruhsat_InsaatBaslamaTutanakSayi\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Insaat Bitirme Tarihi</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"ruhsat_InsaatBitirmeTarih\" name=\"ruhsat_InsaatBitirmeTarih\" defaultValue={getDefult(\"ruhsat_InsaatBitirmeTarih\")} key={getDefult(\"ruhsat_InsaatBitirmeTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n            {/*-------------------------------------------------------------------Yapı Mütahhit Bilgileri-----------------------------------------------*/}\r\n            <div className=\"bg-white rounded-3 p-2 mt-4 shadow-sm\">\r\n                <div className=\"row\" id=\"YapıMütahhitBilgileri\">\r\n                    <div className=\"text-start col-8 fw-bold text-primary \">\r\n                        Yapı Mütahhit Bilgileri\r\n                    </div>\r\n                    <div className=\"text-start col-4 text-end\">\r\n                        <button type=\"button\" className=\" btn btn-success  btn-sm text-decoration-none \" style={{ \"border-radius\": \"8px\" }} onClick={YambisSorgula}>\r\n                            YAMBIS Sorgula\r\n                        </button>\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Hukuki Varlık Kod </label>\r\n\r\n                        <select class=\"form-select form-select-sm\" id=\"yapiMuteahhit_HukukiVarlikKod\" name=\"yapiMuteahhit_HukukiVarlikKod\" defaultValue={getDefult(\"yapiMuteahhit_HukukiVarlikKod\")} key={getDefult(\"yapiMuteahhit_HukukiVarlikKod\")} onChange={handleInputChange} >\r\n                            <option  ></option>\r\n                            <option value=\"1\" selected={getDefult(\"yapiMuteahhit_HukukiVarlikKod\") == \"1\"}>Tuzel</option>\r\n                            <option value=\"2\" selected={getDefult(\"yapiMuteahhit_HukukiVarlikKod\") == \"2\"}>Gerçek</option>\r\n                            <option value=\"3\" selected={getDefult(\"yapiMuteahhit_HukukiVarlikKod\") == \"3\"}>Yabancı</option>\r\n                        </select>\r\n\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">TC Kimlik No </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiMuteahhit_TCKimlikNo\" name=\"yapiMuteahhit_TCKimlikNo\" defaultValue={getDefult(\"yapiMuteahhit_TCKimlikNo\")} key={getDefult(\"yapiMuteahhit_TCKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Ad </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiMuteahhit_Ad\" name=\"yapiMuteahhit_Ad\" defaultValue={getDefult(\"yapiMuteahhit_Ad\")} key={getDefult(\"yapiMuteahhit_Ad\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Soyad </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiMuteahhit_Soyad\" name=\"yapiMuteahhit_Soyad\" defaultValue={getDefult(\"yapiMuteahhit_Soyad\")} key={getDefult(\"yapiMuteahhit_Soyad\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Unvan </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiMuteahhit_Unvan\" name=\"yapiMuteahhit_Unvan\" defaultValue={getDefult(\"yapiMuteahhit_Unvan\")} key={getDefult(\"yapiMuteahhit_Unvan\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Oda Sicil No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiMuteahhit_OdaSicilNo\" name=\"yapiMuteahhit_OdaSicilNo\" defaultValue={getDefult(\"yapiMuteahhit_OdaSicilNo\")} key={getDefult(\"yapiMuteahhit_OdaSicilNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Vergi Daire </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiMuteahhit_VergiDaire\" name=\"yapiMuteahhit_VergiDaire\" defaultValue={getDefult(\"yapiMuteahhit_VergiDaire\")} key={getDefult(\"yapiMuteahhit_VergiDaire\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Vergi Kimlik No </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiMuteahhit_VergiKimlikNo\" name=\"yapiMuteahhit_VergiKimlikNo\" defaultValue={getDefult(\"yapiMuteahhit_VergiKimlikNo\")} key={getDefult(\"yapiMuteahhit_VergiKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Sigorta Sicil No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiMuteahhit_SigortaSicilNo\" name=\"yapiMuteahhit_SigortaSicilNo\" defaultValue={getDefult(\"yapiMuteahhit_SigortaSicilNo\")} key={getDefult(\"yapiMuteahhit_SigortaSicilNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yetki Belge No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiMuteahhit_YetkiBelgeNo\" name=\"yapiMuteahhit_YetkiBelgeNo\" defaultValue={getDefult(\"yapiMuteahhit_YetkiBelgeNo\")} key={getDefult(\"yapiMuteahhit_YetkiBelgeNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Sözleşme Tarih</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiMuteahhit_SSozlesmeTarih\" name=\"yapiMuteahhit_SSozlesmeTarih\" defaultValue={getDefult(\"yapiMuteahhit_SSozlesmeTarih\")} key={getDefult(\"yapiMuteahhit_SSozlesmeTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Sözleşme No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiMuteahhit_SozlesmeNo\" name=\"yapiMuteahhit_SozlesmeNo\" defaultValue={getDefult(\"yapiMuteahhit_SozlesmeNo\")} key={getDefult(\"yapiMuteahhit_SozlesmeNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n\r\n\r\n                </div>\r\n  \r\n                <div className=\"row mt-2\">\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Bagimsiz Bolum Kimlik No</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" disabled id=\"yapiMuteahhit_BagimsizBolumKimlikNo\" name=\"yapiMuteahhit_BagimsizBolumKimlikNo\" defaultValue={getDefult(\"yapiMuteahhit_BagimsizBolumKimlikNo\")} key={getDefult(\"yapiMuteahhit_BagimsizBolumKimlikNo\")} onChange={handleInputChange} disabled />\r\n                    </div>\r\n                    <div className=\"text-start col-6\">\r\n                        <label className=\"form-label\">Acik Adres </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" disabled id=\"yapiMuteahhit_AcikAdres\" name=\"yapiMuteahhit_AcikAdres\" defaultValue={getDefult(\"yapiMuteahhit_AcikAdres\")} key={getDefult(\"yapiMuteahhit_AcikAdres\")} onChange={handleInputChange} disabled />\r\n\r\n                    </div>\r\n                    <div className=\"text-start col-3 mt-2\">\r\n                        <br />\r\n                        <MAKSAdres adressId=\"yapiMuteahhit_AcikAdres\" bagimsizBolumId=\"yapiMuteahhit_BagimsizBolumKimlikNo\" setRec={(b, a) => { rec.yapiMuteahhit_BagimsizBolumKimlikNo = b; rec.yapiMuteahhit_AcikAdres = a; }} />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-1\">\r\n                    <div className=\"text-start col-12\" id=\"YambisSorgula\">\r\n\r\n                    </div>\r\n\r\n                </div>\r\n            </div>\r\n\r\n            {/* -------------------------------------------------------------  Şantiye Şefi Bilgileri--------------*/}\r\n            <div className=\"bg-white rounded-3 p-2 mt-4 shadow-sm\">\r\n\r\n                <div className=\"row\" id=\"ŞantiyeŞefiBilgileri\">\r\n                    <div className=\"text-start col-8 fw-bold text-primary \">\r\n                        Şantiye Şefi Bilgileri\r\n                    </div>\r\n                    <div className=\"text-end col-4 \">\r\n                        <button type=\"button\" className=\"btn btn-success  btn-sm text-decoration-none \" style={{ \"border-radius\": \"8px\" }} onClick={SantiyeSefiSorgula}>\r\n                            Sorgula\r\n                        </button>\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">Adı </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"santiyeSef_Ad\" name=\"santiyeSef_Ad\" defaultValue={getDefult(\"santiyeSef_Ad\")} key={getDefult(\"santiyeSef_Ad\")} onChange={handleInputChange} />\r\n\r\n\r\n                    </div>\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">Soyadı </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"santiyeSef_Soyad\" name=\"santiyeSef_Soyad\" defaultValue={getDefult(\"santiyeSef_Soyad\")} key={getDefult(\"santiyeSef_Soyad\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">TC. Kimlik Numarası </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"santiyeSef_TC\" name=\"santiyeSef_TC\" defaultValue={getDefult(\"santiyeSef_TC\")} key={getDefult(\"santiyeSef_TC\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">Unvanı </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"santiyeSef_Unvan\" name=\"santiyeSef_Unvan\" defaultValue={getDefult(\"santiyeSef_Unvan\")} key={getDefult(\"santiyeSef_Unvan\")} onChange={handleInputChange} />\r\n\r\n\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">Meslek</label><br />\r\n\r\n                        <select class=\"form-select form-select-sm\" id=\"santiyeSef_Meslek\" name=\"santiyeSef_Meslek\" onChange={handleInputChange} >\r\n                            <option  ></option>\r\n                            <option value=\"4419\" selected={getDefult(\"santiyeSef_Meslek\") == \"4419\"}>İnşaat Mühendisi</option>\r\n                            <option value=\"4420\" selected={getDefult(\"santiyeSef_Meslek\") == \"4420\"}>Makine Mühendisi</option>\r\n                            <option value=\"4421\" selected={getDefult(\"santiyeSef_Meslek\") == \"4421\"}>Elektrik Mühendisi</option>\r\n                            <option value=\"4422\" selected={getDefult(\"santiyeSef_Meslek\") == \"4422\"}>Elektrik Elektronik Mühendisi</option>\r\n                            <option value=\"4423\" selected={getDefult(\"santiyeSef_Meslek\") == \"4423\"}>Mimar</option>\r\n                            <option value=\"4424\" selected={getDefult(\"santiyeSef_Meslek\") == \"4424\"}>Teknik Öğretmen</option>\r\n                            <option value=\"4425\" selected={getDefult(\"santiyeSef_Meslek\") == \"4425\"}>Tekniker</option>\r\n                        </select>\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">Oda Sicil No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"santiyeSef_OdaSicilNo\" name=\"santiyeSef_OdaSicilNo\" defaultValue={getDefult(\"santiyeSef_OdaSicilNo\")} key={getDefult(\"santiyeSef_OdaSicilNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">Sözleşme Tarihi </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"santiyeSef_SozlesmeTarih\" name=\"santiyeSef_SozlesmeTarih\" defaultValue={getDefult(\"santiyeSef_SozlesmeTarih\")} key={getDefult(\"santiyeSef_SozlesmeTarih\")} onChange={handleInputChange} />\r\n\r\n\r\n                    </div>\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">Seözleşme No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"santiyeSef_SozlesmeNo\" name=\"santiyeSef_SozlesmeNo\" defaultValue={getDefult(\"santiyeSef_SozlesmeNo\")} key={getDefult(\"santiyeSef_SozlesmeNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">Sigorta Sicil No</label><br />\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"santiyeSef_SigortaSicilNo\" name=\"santiyeSef_SigortaSicilNo\" defaultValue={getDefult(\"santiyeSef_SigortaSicilNo\")} key={getDefult(\"santiyeSef_SigortaSicilNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">Bagimsiz BolumKimlik No</label><br />\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" disabled id=\"santiyeSef_BagimsizBolumKimlikNo\" name=\"santiyeSef_BagimsizBolumKimlikNo\" defaultValue={getDefult(\"santiyeSef_BagimsizBolumKimlikNo\")} key={getDefult(\"santiyeSef_BagimsizBolumKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-6\">\r\n                        <label className=\"form-label\">Adres</label><br />\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" disabled id=\"santiyeSef_Adres\" name=\"santiyeSef_Adres\" defaultValue={getDefult(\"santiyeSef_Adres\")} key={getDefult(\"santiyeSef_Adres\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-2 pt-2\">\r\n                        <br />\r\n                        <MAKSAdres adressId=\"santiyeSef_Adres\" bagimsizBolumId=\"santiyeSef_BagimsizBolumKimlikNo\" setRec={(b, a) => { rec.santiyeSef_BagimsizBolumKimlikNo = b; rec.santiyeSef_Adres = a; }} />\r\n                    </div>\r\n                </div>\r\n\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-12\" id=\"santiyeSefSonuc\">\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n            {/* -------------------------------------------------------------Bagimsiz Bolum--------------*/}\r\n            <div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"MaksBagimsizBolum\">\r\n                <MaksBagimsizBolum rec={rec} key={rec.id} userData={userData} />\r\n            </div>\r\n\r\n            {/* ------------------------------------------------------------- Yapi Ozellik Bilgileri--------------*/}\r\n\r\n            <div className=\"bg-white rounded-3 p-2 mt-4 shadow-sm\">\r\n\r\n                <div className=\"row\" id=\"YapiOzellikBilgileri\">\r\n                    <div className=\"text-start col-12 fw-bold text-primary\">\r\n                        Yapi Ozellik Bilgileri\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Benzer Yapı Sayı</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiOzellik_BenzerYapiSayi\" name=\"yapiOzellik_BenzerYapiSayi\" defaultValue={getDefult(\"yapiOzellik_BenzerYapiSayi\")} key={getDefult(\"yapiOzellik_BenzerYapiSayi\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Bagimsiz Bolum Sayi </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_BagimsizBolumSayi\" name=\"yapiOzellik_BagimsizBolumSayi\" defaultValue={getDefult(\"yapiOzellik_BagimsizBolumSayi\")} key={getDefult(\"yapiOzellik_BagimsizBolumSayi\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Konut Birim Sayi </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_KonutBirimSayi\" name=\"yapiOzellik_KonutBirimSayi\" defaultValue={getDefult(\"yapiOzellik_KonutBirimSayi\")} key={getDefult(\"yapiOzellik_KonutBirimSayi\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Taban Alan </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_TabanAlan\" name=\"yapiOzellik_TabanAlan\" defaultValue={getDefult(\"yapiOzellik_TabanAlan\")} key={getDefult(\"yapiOzellik_TabanAlan\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yapi Insaat Alan </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_YapiInsaatAlan\" name=\"yapiOzellik_YapiInsaatAlan\" defaultValue={getDefult(\"yapiOzellik_YapiInsaatAlan\")} key={getDefult(\"yapiOzellik_YapiInsaatAlan\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Toplam Yapı Sayı </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiOzellik_ToplamYapiSayi\" name=\"yapiOzellik_ToplamYapiSayi\" defaultValue={getDefult(\"yapiOzellik_ToplamYapiSayi\")} key={getDefult(\"yapiOzellik_ToplamYapiSayi\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Toplam Bagimsiz Bolum </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_ToplamBBSayi\" name=\"yapiOzellik_ToplamBBSayi\" defaultValue={getDefult(\"yapiOzellik_ToplamBBSayi\")} key={getDefult(\"yapiOzellik_ToplamBBSayi\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Toplam Konut Birimi </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_ToplamKonutBirimSayi\" name=\"yapiOzellik_ToplamKonutBirimSayi\" defaultValue={getDefult(\"yapiOzellik_ToplamKonutBirimSayi\")} key={getDefult(\"yapiOzellik_ToplamKonutBirimSayi\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Toplam Taban Alan </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_ToplamTabanAlan\" name=\"yapiOzellik_ToplamTabanAlan\" defaultValue={getDefult(\"yapiOzellik_ToplamTabanAlan\")} key={getDefult(\"yapiOzellik_ToplamTabanAlan\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Toplam Yapi Insaat Alan </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_ToplamYapiInsaatAlan\" name=\"yapiOzellik_ToplamYapiInsaatAlan\" defaultValue={getDefult(\"yapiOzellik_ToplamYapiInsaatAlan\")} key={getDefult(\"yapiOzellik_ToplamYapiInsaatAlan\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yol Kot Alt Kat Sayi </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_YolKotAltKatSayi\" name=\"yapiOzellik_YolKotAltKatSayi\" defaultValue={getDefult(\"yapiOzellik_YolKotAltKatSayi\")} key={getDefult(\"yapiOzellik_YolKotAltKatSayi\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yol Kot Ust Kat Sayi</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_YolKotUstKatSayi\" name=\"yapiOzellik_YolKotUstKatSayi\" defaultValue={getDefult(\"yapiOzellik_YolKotUstKatSayi\")} key={getDefult(\"yapiOzellik_YolKotUstKatSayi\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Toplam Kat Sayi </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_ToplamKatSayi\" name=\"yapiOzellik_ToplamKatSayi\" defaultValue={getDefult(\"yapiOzellik_ToplamKatSayi\")} key={getDefult(\"yapiOzellik_ToplamKatSayi\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Toplam Yukseklik </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_ToplamYukseklik\" name=\"yapiOzellik_ToplamYukseklik\" defaultValue={getDefult(\"yapiOzellik_ToplamYukseklik\")} key={getDefult(\"yapiOzellik_ToplamYukseklik\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yol Kot Ust Yukseklik </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_YolKotUstYukseklik\" name=\"yapiOzellik_YolKotUstYukseklik\" defaultValue={getDefult(\"yapiOzellik_YolKotUstYukseklik\")} key={getDefult(\"yapiOzellik_YolKotUstYukseklik\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yol Kot Alt Yukseklik </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_YolKotAltYukseklik\" name=\"yapiOzellik_YolKotAltYukseklik\" defaultValue={getDefult(\"yapiOzellik_YolKotAltYukseklik\")} key={getDefult(\"yapiOzellik_YolKotAltYukseklik\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n\r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Ilave Kat Sayı </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_IlaveKatSayi\" name=\"yapiOzellik_IlaveKatSayi\" defaultValue={getDefult(\"yapiOzellik_IlaveKatSayi\")} key={getDefult(\"yapiOzellik_IlaveKatSayi\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Ilave Kat Yukseklik </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_IlaveKatYukseklik\" name=\"yapiOzellik_IlaveKatYukseklik\" defaultValue={getDefult(\"yapiOzellik_IlaveKatYukseklik\")} key={getDefult(\"yapiOzellik_IlaveKatYukseklik\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n                <div className=\"row mt-2\" >\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yapı Sınıfı </label>\r\n                        <select class=\"form-select form-select-sm\" id=\"yapiOzellik_Sinif_Kod\" name=\"yapiOzellik_Sinif_Kod\" onChange={handleInputChange} >\r\n                            <option ></option>\r\n                            <option value=\"1\" selected={getDefult(\"yapiOzellik_Sinif_Kod\") == \"1\"}>I</option>\r\n                            <option value=\"2\" selected={getDefult(\"yapiOzellik_Sinif_Kod\") == \"2\"}>II</option>\r\n                            <option value=\"3\" selected={getDefult(\"yapiOzellik_Sinif_Kod\") == \"3\"}>III</option>\r\n                            <option value=\"4\" selected={getDefult(\"yapiOzellik_Sinif_Kod\") == \"4\"}>IV</option>\r\n                            <option value=\"5\" selected={getDefult(\"yapiOzellik_Sinif_Kod\") == \"5\"}>V</option>\r\n                        </select>\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Grup No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiOzellik_GrupNo\" name=\"yapiOzellik_GrupNo\" defaultValue={getDefult(\"yapiOzellik_GrupNo\")} key={getDefult(\"yapiOzellik_GrupNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Grup</label>\r\n                        <select class=\"form-select form-select-sm\" id=\"yapiOzellik_Grup_Kod\" name=\"yapiOzellik_Grup_Kod\" onChange={handleInputChange} >\r\n                            <option  ></option>\r\n                            <option value=\"1\" selected={getDefult(\"yapiOzellik_Sinif_Kod\") == \"1\"}>A</option>\r\n                            <option value=\"2\" selected={getDefult(\"yapiOzellik_Sinif_Kod\") == \"2\"}>B</option>\r\n                            <option value=\"3\" selected={getDefult(\"yapiOzellik_Sinif_Kod\") == \"3\"}>C</option>\r\n                            <option value=\"4\" selected={getDefult(\"yapiOzellik_Sinif_Kod\") == \"4\"}>D</option>\r\n                        </select>\r\n\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">M2 Maliyet </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_M2Maliyet\" name=\"yapiOzellik_M2Maliyet\" defaultValue={getDefult(\"yapiOzellik_M2Maliyet\")} key={getDefult(\"yapiOzellik_M2Maliyet\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Inşaat Maliyeti </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_Maliyet\" name=\"yapiOzellik_Maliyet\" defaultValue={getDefult(\"yapiOzellik_Maliyet\")} key={getDefult(\"yapiOzellik_Maliyet\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Arsa Deger </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_ArsaDeger\" name=\"yapiOzellik_ArsaDeger\" defaultValue={getDefult(\"yapiOzellik_ArsaDeger\")} key={getDefult(\"yapiOzellik_ArsaDeger\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Arsa Dahil Yapi Maliyet </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_ArsaDahilYapiMaliyet\" name=\"yapiOzellik_ArsaDahilYapiMaliyet\" defaultValue={getDefult(\"yapiOzellik_ArsaDahilYapiMaliyet\")} key={getDefult(\"yapiOzellik_ArsaDahilYapiMaliyet\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Form Duzenlenen Maliyet </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_FormDuzenlenenKisimMaliyet\" name=\"yapiOzellik_FormDuzenlenenKisimMaliyet\" defaultValue={getDefult(\"yapiOzellik_FormDuzenlenenKisimMaliyet\")} key={getDefult(\"yapiOzellik_FormDuzenlenenKisimMaliyet\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n\r\n                </div>\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Guclendirme Maliyet</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_GuclendirmeMaliyet\" name=\"yapiOzellik_GuclendirmeMaliyet\" defaultValue={getDefult(\"yapiOzellik_GuclendirmeMaliyet\")} key={getDefult(\"yapiOzellik_GuclendirmeMaliyet\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Guclendirme Maliyet Oran </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_GuclendirmeMaliyetOran\" name=\"yapiOzellik_GuclendirmeMaliyetOran\" defaultValue={getDefult(\"yapiOzellik_GuclendirmeMaliyetOran\")} key={getDefult(\"yapiOzellik_GuclendirmeMaliyetOran\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">SigortaBedel</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_SigortaBedel\" name=\"yapiOzellik_SigortaBedel\" defaultValue={getDefult(\"yapiOzellik_SigortaBedel\")} key={getDefult(\"yapiOzellik_SigortaBedel\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yıkılacak Alan </label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_YikilacakAlan\" name=\"yapiOzellik_YikilacakAlan\" defaultValue={getDefult(\"yapiOzellik_YikilacakAlan\")} key={getDefult(\"yapiOzellik_YikilacakAlan\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yıkılacak Kat Adet</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_YikilacakKatAdet\" name=\"yapiOzellik_YikilacakKatAdet\" defaultValue={getDefult(\"yapiOzellik_YikilacakKatAdet\")} key={getDefult(\"yapiOzellik_YikilacakKatAdet\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yıkılacak Kat Alan</label><br />\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiOzellik_YikilacakKatAlan\" name=\"yapiOzellik_YikilacakKatAlan\" defaultValue={getDefult(\"yapiOzellik_YikilacakKatAlan\")} key={getDefult(\"yapiOzellik_YikilacakKatAlan\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Parsel Dışı Otopark</label><br />\r\n                        <input type=\"checkbox\" className=\"form-check-input\" id=\"yapiOzellik_ParselDisiOtopark\" name=\"yapiOzellik_ParselDisiOtopark\" defaultChecked={getDefult(\"yapiOzellik_ParselDisiOtopark\") == true} key={getDefult(\"yapiOzellik_ParselDisiOtopark\")} onChange={handleInputChange} key={rec.yapiOzellik_ParselDisiOtopark} />\r\n                    </div>\r\n                </div>\r\n\r\n            </div>\r\n            {/* ------------------------------------------------------------- Tasiyici Sistem Bilgileri--------------*/}\r\n\r\n            < div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"Maksisitma\">\r\n                <Maksisitma rec={rec} key={rec.id} userData={userData} />\r\n            </div >\r\n            <div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"MaksisitmaYakit\">\r\n                <MaksisitmaYakit rec={rec} key={rec.id} userData={userData} />\r\n            </div>\r\n            <div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"MaksSuTemin\">\r\n                <MaksSuTemin rec={rec} key={rec.id} userData={userData} />\r\n            </div>\r\n            <div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"MaksSuYakit\">\r\n                <MaksSuYakit rec={rec} key={rec.id} userData={userData} />\r\n            </div>\r\n            <div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"MaksIcmesu\">\r\n                <MaksIcmesu rec={rec} key={rec.id} />\r\n            </div>\r\n            <div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"MaksAtiksu\">\r\n                <MaksAtiksu rec={rec} key={rec.id} />\r\n            </div>\r\n\r\n            <div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"MaksTasiyici\">\r\n                <MaksTasiyici rec={rec} key={rec.id} userData={userData} />\r\n            </div>\r\n            <div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"MaksTesisat\">\r\n                <MaksTesisat rec={rec} key={rec.id} />\r\n            </div>\r\n            <div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"MaksOrtakAlan\">\r\n                <MaksOrtakAlan rec={rec} key={rec.id} />\r\n            </div>\r\n            <div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"MaksDuvardolgu\">\r\n                <MaksDuvardolgu rec={rec} key={rec.id} />\r\n            </div>\r\n            <div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"MaksDoseme\">\r\n                <MaksDoseme rec={rec} key={rec.id} />\r\n            </div>\r\n            <div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"MaksProje\">\r\n                <MaksProje rec={rec} key={rec.id} adres={selectedAdres} />\r\n            </div>\r\n            <div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"MaksYapiDenetim\">\r\n                <MaksYapiDenetim rec={rec} key={rec.id} />\r\n            </div>\r\n\r\n            {/* ------------------------------------------------------------- Yapı Denetim Kurulus --------------*/}\r\n            <div className=\"bg-white rounded-3 p-2 mt-2 shadow-sm\" id=\"YapıDenetimKuruluşBilgileri\">\r\n\r\n                <div className=\"row\">\r\n                    <div className=\"text-start col-12 fw-bold text-primary \">\r\n                        Yapı Denetim Kuruluş Bilgileri\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\"> Ad </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiDenetimKurulus_Ad\" name=\"yapiDenetimKurulus_Ad\" defaultValue={getDefult(\"yapiDenetimKurulus_Ad\")} key={getDefult(\"yapiDenetimKurulus_Ad\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">Soyad</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiDenetimKurulus_Soyad\" name=\"yapiDenetimKurulus_Soyad\" defaultValue={getDefult(\"yapiDenetimKurulus_Soyad\")} key={getDefult(\"yapiDenetimKurulus_Soyad\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">TC Kimlik No </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiDenetimKurulus_TC\" name=\"yapiDenetimKurulus_TC\" defaultValue={getDefult(\"yapiDenetimKurulus_TC\")} key={getDefult(\"yapiDenetimKurulus_TC\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">Kuruluş Ad </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiDenetimKurulus_KuruluAd\" name=\"yapiDenetimKurulus_KuruluAd\" defaultValue={getDefult(\"yapiDenetimKurulus_KuruluAd\")} key={getDefult(\"yapiDenetimKurulus_KuruluAd\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">Vergi Kimlik No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiDenetimKurulus_VergiKimlikNo\" name=\"yapiDenetimKurulus_VergiKimlikNo\" defaultValue={getDefult(\"yapiDenetimKurulus_VergiKimlikNo\")} key={getDefult(\"yapiDenetimKurulus_VergiKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">İzin Belge No ve Sınıf</label><br />\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiDenetimKurulus_izinBelgeNo\" name=\"yapiDenetimKurulus_izinBelgeNo\" defaultValue={getDefult(\"yapiDenetimKurulus_izinBelgeNo\")} key={getDefult(\"yapiDenetimKurulus_izinBelgeNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">Bağımsız Bolum Kimlik No </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiDenetimKurulus_BBkimlikNo\" name=\"yapiDenetimKurulus_BBkimlikNo\" defaultValue={getDefult(\"yapiDenetimKurulus_BBkimlikNo\")} key={getDefult(\"yapiDenetimKurulus_BBkimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-8\">\r\n                        <label className=\"form-label\">Açık Adres </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiDenetimKurulus_AcikAdres\" name=\"yapiDenetimKurulus_AcikAdres\" defaultValue={getDefult(\"yapiDenetimKurulus_AcikAdres\")} key={getDefult(\"yapiDenetimKurulus_AcikAdres\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n            </div >\r\n\r\n\r\n            {/* ------------------------------------------------------------- MuhtelifGelir --------------*/}\r\n            <div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"MaksMuhtelifGelir\">\r\n                <MaksMuhtelifGelir rec={rec} key={rec.id} />\r\n            </div>\r\n\r\n            {/* ------------------------------------------------------------- Toprak --------------*/}\r\n            <div className=\"bg-white rounded-3 p-2 mt-2 shadow-sm\">\r\n\r\n                <div className=\"row\" id=\"YapıToprakBilgileri\">\r\n                    <div className=\"text-start col-12 fw-bold text-primary \">\r\n                        Yapı Toprak Bilgileri\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\"> Dolgu Miktar </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"toprak_dolguMiktar\" name=\"toprak_dolguMiktar\" defaultValue={getDefult(\"toprak_dolguMiktar\")} key={getDefult(\"toprak_dolguMiktar\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">Kazi Miktar</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"toprak_kaziMiktar\" name=\"toprak_kaziMiktar\" defaultValue={getDefult(\"toprak_kaziMiktar\")} key={getDefult(\"toprak_kaziMiktar\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-4\">\r\n                        <label className=\"form-label\">Kullanilmayan Kazi Miktar </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"toprak_KullanilmayanKaziMiktar\" name=\"toprak_KullanilmayanKaziMiktar\" defaultValue={getDefult(\"toprak_KullanilmayanKaziMiktar\")} key={getDefult(\"toprak_KullanilmayanKaziMiktar\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-12\">\r\n                        <label className=\"form-label\">Kullanilmayan Kazı Doküldüğü Yer </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"toprak_kullanilmayanKaziDokYer\" name=\"toprak_kullanilmayanKaziDokYer\" defaultValue={getDefult(\"toprak_kullanilmayanKaziDokYer\")} key={getDefult(\"toprak_kullanilmayanKaziDokYer\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n            </div >\r\n\r\n            {/* ------------------------------------------------------------- Gorevli--------------*/}\r\n\r\n            <div className=\"bg-white rounded-3 mt-2 shadow-sm p-2\" id=\"MaksGorevli\">\r\n                <MaksGorevli rec={rec} key={rec.id} userData={userData} />\r\n            </div>\r\n\r\n\r\n            {/* ------------------------------------------------------------- Diger Husus--------------*/}\r\n            < div className=\"bg-white rounded-3 p-2 mt-2 shadow-sm\" >\r\n\r\n                <div className=\"row\" id=\"YapiBelgeDigerHusus\">\r\n                    <div className=\"text-start col-12 fw-bold text-primary \">\r\n                        Yapi Belge Diger Husus\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Daire Adet </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeDigerHusus_DaireAdet\" name=\"yapiBelgeDigerHusus_DaireAdet\" defaultValue={getDefult(\"yapiBelgeDigerHusus_DaireAdet\")} key={getDefult(\"yapiBelgeDigerHusus_DaireAdet\")} onChange={handleInputChange} />\r\n\r\n\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Dukkan Adet </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeDigerHusus_DukkanAdet\" name=\"yapiBelgeDigerHusus_DukkanAdet\" defaultValue={getDefult(\"yapiBelgeDigerHusus_DukkanAdet\")} key={getDefult(\"yapiBelgeDigerHusus_DukkanAdet\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Diger Kullanim Adet </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeDigerHusus_DigerKullanimAdet\" name=\"yapiBelgeDigerHusus_DigerKullanimAdet\" defaultValue={getDefult(\"yapiBelgeDigerHusus_DigerKullanimAdet\")} key={getDefult(\"yapiBelgeDigerHusus_DigerKullanimAdet\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Ilk Yapı Kullanma Izin Belge</label><br />\r\n                        <input type=\"checkbox\" className=\"form-check-input\" id=\"yapiBelgeDigerHusus_IlkYapiKullanmaIzinBelge\" name=\"yapiBelgeDigerHusus_IlkYapiKullanmaIzinBelge\" defaultChecked={getDefult(\"yapiBelgeDigerHusus_IlkYapiKullanmaIzinBelge\") == true} key={getDefult(\"yapiBelgeDigerHusus_IlkYapiKullanmaIzinBelge\")} onChange={handleInputChange} key={rec.yapiBelgeDigerHusus_IlkYapiKullanmaIzinBelge} />\r\n                    </div>\r\n                </div>\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-6\">\r\n                        <label className=\"form-label\">Diger Hususlar </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeDigerHusus_DigerHususlar\" name=\"yapiBelgeDigerHusus_DigerHususlar\" defaultValue={getDefult(\"yapiBelgeDigerHusus_DigerHususlar\")} key={getDefult(\"yapiBelgeDigerHusus_DigerHususlar\")} onChange={handleInputChange} />\r\n\r\n\r\n                    </div>\r\n                    <div className=\"text-start col-6\">\r\n                        <label className=\"form-label\">Raporda Yer Alacak Diger Tum Hususlar</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiBelgeDigerHusus_DigerHususlarTumAciklama\" name=\"yapiBelgeDigerHusus_DigerHususlarTumAciklama\" defaultValue={getDefult(\"yapiBelgeDigerHusus_DigerHususlarTumAciklama\")} key={getDefult(\"yapiBelgeDigerHusus_DigerHususlarTumAciklama\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n\r\n            </div >\r\n\r\n\r\n            {/* ------------------------------------------------------------- Iş Yeri --------------*/}\r\n            < div className=\"bg-white rounded-3 p-2 mt-2 shadow-sm\" >\r\n\r\n                <div className=\"row\" id=\"YapiİşYeriBilgileri\">\r\n                    <div className=\"text-start col-12 fw-bold text-primary \">\r\n                        Yapi İş Yeri Bilgileri\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Isyeri Beyan Var Mi </label> <br/>\r\n                        <input type=\"checkbox\" className=\"form-check-input\" id=\"yapiIsyeri_IsyeriBeyanVarMi\" name=\"yapiIsyeri_IsyeriBeyanVarMi\" defaultChecked={getDefult(\"yapiIsyeri_IsyeriBeyanVarMi\") == true} key={getDefult(\"yapiIsyeri_IsyeriBeyanVarMi\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\"> Defter Tip </label>\r\n\r\n                        <select class=\"form-select form-select-sm\" id=\"yapiIsyeri_DefterTipKod\" name=\"yapiIsyeri_DefterTipKod\" onChange={handleInputChange} >\r\n                            <option  ></option>\r\n                            <option value=\"1\" selected={getDefult(\"yapiIsyeri_DefterTipKod\") == \"1\"}>Bilanço</option>\r\n                            <option value=\"2\" selected={getDefult(\"yapiIsyeri_DefterTipKod\") == \"2\"}>Diğer defter</option>\r\n                            <option value=\"3\" selected={getDefult(\"yapiIsyeri_DefterTipKod\") == \"3\"}>Deftere tabi değil</option>\r\n                            <option value=\"4\" selected={getDefult(\"yapiIsyeri_DefterTipKod\") == \"4\"}>Kamu idaresi</option>\r\n                        </select>\r\n\r\n                        \r\n                   </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Sirket Tur </label>\r\n                        <select class=\"form-select form-select-sm\" id=\"yapiIsyeri_SirketTurKod\" name=\"yapiIsyeri_SirketTurKod\" onChange={handleInputChange} >\r\n                            <option  ></option>\r\n                            <option value=\"1\" selected={getDefult(\"yapiIsyeri_SirketTurKod\") == \"1\"}>Limited</option>\r\n                            <option value=\"2\" selected={getDefult(\"yapiIsyeri_SirketTurKod\") == \"2\"}>Anonim</option>\r\n                            <option value=\"3\" selected={getDefult(\"yapiIsyeri_SirketTurKod\") == \"3\"}>Kollektif</option>\r\n                            <option value=\"4\" selected={getDefult(\"yapiIsyeri_SirketTurKod\") == \"4\"}>Komandit</option>\r\n                            <option value=\"5\" selected={getDefult(\"yapiIsyeri_SirketTurKod\") == \"5\"}>Gerçek Kişi (Geçici ve Şahıs Şirketleri)</option>\r\n                            <option value=\"6\" selected={getDefult(\"yapiIsyeri_SirketTurKod\") == \"6\"}>Ortak Girişim</option>\r\n                            <option value=\"7\" selected={getDefult(\"yapiIsyeri_SirketTurKod\") == \"7\"}>Adi Ortaklık</option>\r\n                            <option value=\"8\" selected={getDefult(\"yapiIsyeri_SirketTurKod\") == \"8\"}>Yapı Kooperatifleri</option>\r\n                            <option value=\"9\" selected={getDefult(\"yapiIsyeri_SirketTurKod\") == \"9\"}>İktisadi İşletmeler (Dernek, Vakıf vb)</option>\r\n                        </select>\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Sigortali Sayi</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_SigortaliSayi\" name=\"yapiIsyeri_SigortaliSayi\" defaultValue={getDefult(\"yapiIsyeri_SigortaliSayi\")} key={getDefult(\"yapiIsyeri_SigortaliSayi\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Mersis No </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_MersisNo\" name=\"yapiIsyeri_MersisNo\" defaultValue={getDefult(\"yapiIsyeri_MersisNo\")} key={getDefult(\"yapiIsyeri_MersisNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Telefon</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_Telefon\" name=\"yapiIsyeri_Telefon\" defaultValue={getDefult(\"yapiIsyeri_Telefon\")} key={getDefult(\"yapiIsyeri_Telefon\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\"> EPosta</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_EPosta\" name=\"yapiIsyeri_EPosta\" defaultValue={getDefult(\"yapiIsyeri_EPosta\")} key={getDefult(\"yapiIsyeri_EPosta\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Faks</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_Faks\" name=\"yapiIsyeri_Faks\" defaultValue={getDefult(\"yapiIsyeri_Faks\")} key={getDefult(\"yapiIsyeri_Faks\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Kayit No</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_KayitNo\" name=\"yapiIsyeri_KayitNo\" defaultValue={getDefult(\"yapiIsyeri_KayitNo\")} key={getDefult(\"yapiIsyeri_KayitNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Tescil No </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_TescilNo\" name=\"yapiIsyeri_TescilNo\" defaultValue={getDefult(\"yapiIsyeri_TescilNo\")} key={getDefult(\"yapiIsyeri_TescilNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">EBildirge Sözleşme Var Mi </label><br />\r\n                        <input type=\"checkbox\" className=\"form-check-input\" id=\"yapiIsyeri_EBildirgeYetkiliBeyanVarMi\" name=\"yapiIsyeri_EBildirgeYetkiliBeyanVarMi\" defaultChecked={getDefult(\"yapiIsyeri_EBildirgeYetkiliBeyanVarMi\") == true} key={getDefult(\"yapiIsyeri_EBildirgeYetkiliBeyanVarMi\")} onChange={handleInputChange} key={rec.yapiBelgeDigerHusus_IlkYapiKullanmaIzinBelge} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\"> EBildirge Yetkili Unvan </label>\r\n                        <select class=\"form-select form-select-sm\" id=\"yapiIsyeri_EBildirgeYetkiliUnvanKod\" name=\"yapiIsyeri_EBildirgeYetkiliUnvanKod\" onChange={handleInputChange} >\r\n                            <option  ></option>\r\n                            <option value=\"1\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"1\"}>Yönetim Kurulu Başkanı</option>\r\n                            <option value=\"2\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"2\"}>Yönetim Kurulu Başkan Vekili</option>\r\n                            <option value=\"3\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"3\"}>Yönetim Kurulu Üyesi</option>\r\n                            <option value=\"4\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"4\"}>Müdür</option>\r\n                            <option value=\"5\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"5\"}>Genel Müdür</option>\r\n                            <option value=\"6\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"7\"}>Şube Yetkilisi</option>\r\n                            <option value=\"7\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"12\"}>Finans Müdürü</option>\r\n                            <option value=\"8\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"15\"}>Yönetim Kurulu Üyesi Olmayan Yetkili</option>\r\n                            <option value=\"9\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"17\"}>Müdür (Müdürler Kurulu Başkanı)</option>\r\n                            <option value=\"10\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"19\"}>Gemi Müdürü</option>\r\n                            <option value=\"11\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"20\"}>Temsilci</option>\r\n                            <option value=\"12\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"21\"}>Yönetici</option>\r\n                            <option value=\"13\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"22\"}>Şube Müdürü</option>\r\n                            <option value=\"14\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"24\"}>Yönetmen</option>\r\n                            <option value=\"15\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"26\"}>Şube Yönetmeni </option>\r\n                            <option value=\"16\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"27\"}>Şube Temsilcisi</option>\r\n                            <option value=\"17\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"31\"}>Yetkili</option>\r\n                            <option value=\"18\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"32\"}>Konkordato Komiseri</option>\r\n                            <option value=\"19\" selected={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\") == \"34\"}>Kayyım</option>\r\n\r\n                        </select>\r\n\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_EBildirgeYetkiliUnvanKod\" name=\"yapiIsyeri_EBildirgeYetkiliUnvanKod\" defaultValue={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\")} key={getDefult(\"yapiIsyeri_EBildirgeYetkiliUnvanKod\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">EBildirge Yetkili TCKimlik No </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_EBildirgeYetkiliTCKimlikNo\" name=\"yapiIsyeri_EBildirgeYetkiliTCKimlikNo\" defaultValue={getDefult(\"yapiIsyeri_EBildirgeYetkiliTCKimlikNo\")} key={getDefult(\"yapiIsyeri_EBildirgeYetkiliTCKimlikNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">EBildirge Yetkili Ad </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_EBildirgeYetkiliAd\" name=\"yapiIsyeri_EBildirgeYetkiliAd\" defaultValue={getDefult(\"yapiIsyeri_EBildirgeYetkiliAd\")} key={getDefult(\"yapiIsyeri_EBildirgeYetkiliAd\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">EBildirge Yetkili Soyad</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_EBildirgeYetkiliSoyad\" name=\"yapiIsyeri_EBildirgeYetkiliSoyad\" defaultValue={getDefult(\"yapiIsyeri_EBildirgeYetkiliSoyad\")} key={getDefult(\"yapiIsyeri_EBildirgeYetkiliSoyad\")} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">EBildirge Yetkili Telefon</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_EBildirgeYetkiliTelefon\" name=\"yapiIsyeri_EBildirgeYetkiliTelefon\" defaultValue={getDefult(\"yapiIsyeri_EBildirgeYetkiliTelefon\")} key={getDefult(\"yapiIsyeri_EBildirgeYetkiliTelefon\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">EBildirge Yetkili Cep Telefon</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_EBildirgeYetkiliCepTelefon\" name=\"yapiIsyeri_EBildirgeYetkiliCepTelefon\" defaultValue={getDefult(\"yapiIsyeri_EBildirgeYetkiliCepTelefon\")} key={getDefult(\"yapiIsyeri_EBildirgeYetkiliCepTelefon\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">yEBildirge Yetkili EPosta </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_EBildirgeYetkiliEPosta\" name=\"yapiIsyeri_EBildirgeYetkiliEPosta\" defaultValue={getDefult(\"yapiIsyeri_EBildirgeYetkiliEPosta\")} key={getDefult(\"yapiIsyeri_EBildirgeYetkiliEPosta\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">EBildirge Yetkili Vek Bitis Tarih</label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_EBildirgeYetkiliVekBitisTarih\" name=\"yapiIsyeri_EBildirgeYetkiliVekBitisTarih\" defaultValue={getDefult(\"yapiIsyeri_EBildirgeYetkiliVekBitisTarih\")} key={getDefult(\"yapiIsyeri_EBildirgeYetkiliVekBitisTarih\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">EBildirge Yetkili Acik Adres </label>\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_EBildirgeYetkiliAcikAdres\" name=\"yapiIsyeri_EBildirgeYetkiliAcikAdres\" defaultValue={getDefult(\"yapiIsyeri_EBildirgeYetkiliAcikAdres\")} key={getDefult(\"yapiIsyeri_EBildirgeYetkiliAcikAdres\")} onChange={handleInputChange} />\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">EBildirge Yetkili BBK No</label><br />\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"yapiIsyeri_EBildirgeYetkiliBBKNo\" name=\"yapiIsyeri_EBildirgeYetkiliBBKNo\" defaultValue={getDefult(\"yapiIsyeri_EBildirgeYetkiliBBKNo\")} key={getDefult(\"yapiIsyeri_EBildirgeYetkiliBBKNo\")} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n            </div >\r\n\r\n            {/* ----------------------------------------------------------------------------------------------------------------------*/}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n        </div >\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport VTable from '../Header/VTable.js';\r\nimport { sendget, sendpost, ajaxFail, isEmpty, setVisible, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport MAKS from './MAKS.js';\r\n\r\nexport default function MaksList(props) {\r\n    const [makslist, setMaksList] = useState([]);\r\n    const appData = props.appData;\r\n    const setActivePanel = props.setActivePanel;\r\n    const [rec, setRec] = useState({});\r\n    const [maksMahalleList, setmaksMahalleList] = useState([]);\r\n    const [maksAdresList, setMaksAdresList] = useState([]);\r\n    const [yollist, setYols] = useState([]);\r\n    const [numarajlist, setNumaratjList] = useState([]);\r\n    const [selectedAdres, setSelectedAdres] = useState([]);\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        sendget(\"makslist?appid=\" + appData.id, \"mysnip\", showTable)\r\n        fetchMaksMahalle();\r\n\r\n    }, [])\r\n\r\n    const fetchMaksMahalle = () => {\r\n        fetch(\"getmaksmahallelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setmaksMahalleList(value);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchMaksYol = (id) => {\r\n        fetch(\"getmaksyollist?mahalleid=\" + id, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setMaksAdresList(value)\r\n                    const yols = new Set();\r\n                    value.forEach(x => yols.add(x.yolad));\r\n\r\n                    setYols([...yols]);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const handleMahalleChange = (event) => {\r\n        var idx = document.getElementById(\"maksmahalle\").selectedIndex;\r\n        rec.yapiBelgeAdres_MahalleKimlikNo = document.getElementById(\"maksmahalle\").options[idx].value\r\n        rec.yapiBelgeAdres_MahalleAdi = document.getElementById(\"maksmahalle\").options[idx].innerHTML\r\n        \r\n        fetchMaksYol(document.getElementById(\"maksmahalle\").options[idx].value);\r\n    }\r\n\r\n    const handleYolChange = (event) => {\r\n        var idx = document.getElementById(\"maksyol\").selectedIndex;\r\n        var yolad = document.getElementById(\"maksyol\").options[idx].innerHTML;\r\n        rec.yol = yolad;\r\n        setNumaratjList(maksAdresList.filter(x => x.yolad == yolad).map(x => x.kapino));\r\n    }\r\n\r\n    const handleKapiNoChange = (event) => {\r\n        var idx = document.getElementById(\"makskapino\").selectedIndex;\r\n        var k = document.getElementById(\"makskapino\").options[idx].innerHTML;\r\n        idx = document.getElementById(\"maksyol\").selectedIndex;\r\n        var yolad = document.getElementById(\"maksyol\").options[idx].innerHTML;\r\n        var adres = maksAdresList.filter(x => x.yolad == yolad && x.kapino == k);\r\n        if (adres.length == 0) {\r\n            showErrorMessage(\"Seçilen Kapi No Bulunamadı !\");\r\n            return;\r\n\r\n        }\r\n        document.getElementById(\"adresinfo\").innerHTML = \"Adres: \" + adres.length + \",   Mahalle Tanıtım:\" + adres[0].mahalletanitimkod + \",   Yol Tanıtım:\" + adres[0].tanitimkodu +\"  , Numarataj: \" + adres[0].numarataj + \" , Yapı K. No\" + adres[0].yapikimlikno + \" , Bagimsiz Bol K. No:\" + adres[0].bagimsizbolkimlikno + \" , Bagimsiz Bol No:\" + adres[0].yapiBelgeAdres_BagimsizBolumNo;\r\n        rec.yapiBelgeAdres_DisKapiNo = k;\r\n        rec.yapiBelgeYapi_YapiKimlikNo = adres[0].yapikimlikno;\r\n        rec.yapiBelgeAdres_BagimsizBolumKimlikNo = adres[0].bagimsizbolkimlikno;\r\n        rec.yapiBelgeAdres_NumaratajKimlikNo = adres[0].numarataj;\r\n        rec.yapiBelgeAdres_CsbmTanitimKod = adres[0].tanitimkodu;\r\n        rec.yapiBelgeAdres_MahalleTanitimKod = adres[0].mahalletanitimkod;\r\n\r\n        \r\n       \r\n        if (isEmpty(adres[0].bagimsizbolumno)==false)\r\n        rec.yapiBelgeAdres_BagimsizBolumNo = adres[0].bagimsizbolumno+\"\";\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        if (isEmpty(value) == false)\r\n            rec[target.name] = value;\r\n        else\r\n            rec[target.name] = null;\r\n    }\r\n\r\n    const handleSelectChange = (event) => {\r\n        const target = event.target;\r\n        const value =target.value;\r\n        if (isEmpty(value) == false)\r\n            rec[target.name] = Number(value);\r\n        else\r\n            rec[target.name] = null;\r\n    }\r\n\r\n\r\n    const showTable = (response) => {\r\n        response.json().then(async data => {\r\n            data.forEach(x => {\r\n                if (x.yapiBelge_YapiBelgeTipKod == 1)       x.yapiBelge_YapiBelgeTipName = \"Yapi Ruhsat Belgesi\";\r\n                if (x.yapiBelge_YapiBelgeTipKod == 2)  x.yapiBelge_YapiBelgeTipName = \"Yapi Kullanma Izin Belgesi\";\r\n                if (x.yapiBelge_YapiBelgeTipKod == 3) x.yapiBelge_YapiBelgeTipName = \"Yanan Yikilan Yapi Formu\";\r\n                if (x.yapiBelge_YapiBelgeTipKod == 4) x.yapiBelge_YapiBelgeTipName = \" Yikim Ruhsat Belgesi\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 1) x.ruhsat_RuhsatVerilisAmacName = \"YeniYapi\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 2) x.ruhsat_RuhsatVerilisAmacName = \"Yenileme\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 3) x.ruhsat_RuhsatVerilisAmacName = \"Yeniden\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 4) x.ruhsat_RuhsatVerilisAmacName = \"Ek Bina\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 5) x.ruhsat_RuhsatVerilisAmacName = \"Kat Ilavesi\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 6) x.ruhsat_RuhsatVerilisAmacName = \"Ilave\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 7) x.ruhsat_RuhsatVerilisAmacName = \"Gecici\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 8) x.ruhsat_RuhsatVerilisAmacName = \"Tadilat\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 9) x.ruhsat_RuhsatVerilisAmacName = \"Dolgu\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 10) x.ruhsat_RuhsatVerilisAmacName = \"Restorasyon\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 11) x.ruhsat_RuhsatVerilisAmacName = \"Guclendirme\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 12) x.ruhsat_RuhsatVerilisAmacName = \"Kullanim Degisimi\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 13) x.ruhsat_RuhsatVerilisAmacName = \"Fosseptik\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 14) x.ruhsat_RuhsatVerilisAmacName = \"Mekanik Tesisat\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 15) x.ruhsat_RuhsatVerilisAmacName = \"Elektrik Tesisati\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 16) x.ruhsat_RuhsatVerilisAmacName = \"Isim Degisikligi\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 17) x.ruhsat_RuhsatVerilisAmacName = \"Istinat Duvari\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 18) x.ruhsat_RuhsatVerilisAmacName = \"Bahce Duvari\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 19) x.ruhsat_RuhsatVerilisAmacName = \"Diger\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 20) x.ruhsat_RuhsatVerilisAmacName = \"Diger Kacak Yapi\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 21) x.ruhsat_RuhsatVerilisAmacName = \"Diger Iksa\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 22) x.ruhsat_RuhsatVerilisAmacName = \"Diger 775 Sayili Gece kondu Kanunu\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 23) x.ruhsat_RuhsatVerilisAmacName = \"Diger Hes\";\r\n                if (x.ruhsat_RuhsatVerilisAmacKod == 24) x.ruhsat_RuhsatVerilisAmacName = \"Diger Baz\";\r\n            })\r\n            setMaksList(data)\r\n        });\r\n\r\n    }\r\n\r\n    const rowClick = (idx, rec, col) => {\r\n        setActivePanel(<MAKS appData={appData} setActivePanel={setActivePanel} MaksApp={rec} />)\r\n    }\r\n    const rowDelete = (idx, rec, col) => {\r\n        if (rec.bultenNo) {\r\n            showErrorMessage(\"Bulten numarası alınmış başvuru silinemez.\")\r\n            return;\r\n        }\r\n        showConfirmMessage(\"Başvuruyu Silmek İstediğinizden Emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            sendpost(\"removemaksapp\", rec.id, \"mysnip\", (response) => {\r\n                showTable(response)\r\n            })\r\n\r\n\r\n        })\r\n\r\n    }\r\n\r\n\r\n    const save = () => {\r\n        rec.appId = appData.id;\r\n        sendpost(\"savemaksapp\", rec, \"newsnipper\", (response) => {\r\n            response.json().then(value => {\r\n                showSuccessMessage(\"Başvuru kaydedilmiştir\", \"Başvuru No: \" + value.id);\r\n                sendget(\"makslist?appid=\" + appData.id, \"mysnip\", showTable)\r\n                document.getElementById(\"maksmahalle\").selectedIndex = 0;\r\n                document.getElementById(\"maksyol\").selectedIndex = 0;\r\n                document.getElementById(\"makskapino\").selectedIndex = 0;\r\n                document.getElementById(\"makskapino\").selectedIndex = 0;\r\n                document.getElementById(\"ruhsat_RuhsatVerilisAmacKod\").selectedIndex = 0;\r\n            })\r\n        })\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <div className=\"bg-white rounded-3 p-1 border\">\r\n                <div className=\"row\">\r\n                    <div className=\"text-start col-12 fw-bold text-primary \">\r\n                        Yeni Başvuru\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row \">\r\n\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Mahalle</label>\r\n                        < select className=\"form-select form-select-sm\" id=\"maksmahalle\" name=\"maksmahalle\" onChange={handleMahalleChange}>\r\n                            <option value=\"\"></option>\r\n                            {maksMahalleList.map(x => <option value={x.kimlikno}>{x.ad}</option>)}\r\n                        </select>\r\n\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">YOL</label>\r\n                        < select className=\"form-select form-select-sm\" id=\"maksyol\" name=\"maksyol\" onChange={handleYolChange}>\r\n                            <option value=\"\"></option>\r\n                            {yollist.map(x => <option value={x}>{x}</option>)}\r\n                        </select>\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Kapı No</label>\r\n                        < select className=\"form-select form-select-sm\" id=\"makskapino\" name=\"makskapino\" onChange={handleKapiNoChange}>\r\n                            <option value=\"\"></option>\r\n                            {numarajlist.map(x => <option value={x}>{x}</option>)}\r\n                        </select>\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Ruhsat Verilis Amac</label>\r\n                        <select class=\"form-select form-select-sm\" aria-label=\"Default select example\" id=\"ruhsat_RuhsatVerilisAmacKod\" name=\"ruhsat_RuhsatVerilisAmacKod\" onChange={handleSelectChange}>\r\n                            <option ></option>\r\n                            <option value=\"1\">YeniYapi</option>\r\n                            <option value=\"2\">Yenileme</option>\r\n                            <option value=\"3\">Yeniden</option>\r\n                            <option value=\"4\">Ek Bina</option>\r\n                            <option value=\"5\">Kat Ilavesi</option>\r\n                            <option value=\"6\">Ilave</option>\r\n                            <option value=\"7\">Gecici</option>\r\n                            <option value=\"8\">Tadilat</option>\r\n                            <option value=\"9\">Dolgu</option>\r\n                            <option value=\"10\">Restorasyon</option>\r\n                            <option value=\"11\">Guclendirme</option>\r\n                            <option value=\"12\">Kullanim Degisimi</option>\r\n                            <option value=\"13\">Fosseptik</option>\r\n                            <option value=\"14\">Mekanik Tesisat</option>\r\n                            <option value=\"15\">Elektrik Tesisati</option>\r\n                            <option value=\"16\">Isim Degisikligi</option>\r\n                            <option value=\"17\">Istinat Duvari</option>\r\n                            <option value=\"18\">Bahce Duvari</option>\r\n                            <option value=\"19\">Diger</option>\r\n                            <option value=\"20\">Diger Kacak Yapi</option>\r\n                            <option value=\"21\">Diger Iksa</option>\r\n                            <option value=\"22\">Diger 775 Sayili Gece kondu Kanunu</option>\r\n                            <option value=\"23\">Diger Hes</option>\r\n                            <option value=\"24\">Diger Baz</option>\r\n                        </select>\r\n                    </div>\r\n\r\n                </div>\r\n\r\n                <div className=\"row mt-2 small ps-2 text-success\" id=\"adresinfo\">\r\n\r\n                </div>\r\n                <div className=\"row mt-3\">\r\n                    <div className=\"text-start col-3 pt-3\">\r\n                        <input type=\"checkbox\" className=\"form-check-input\" id=\"yapiBelge_YapiDenetimTabi\" name=\"yapiBelge_YapiDenetimTabi\" onChange={handleInputChange} /> Bina Yapı Denetime tabi değil\r\n                    </div>\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yibf No</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"yapiBelge_YibfNo\" name=\"yapiBelge_YibfNo\" onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                    <div className=\"text-start col-3\">\r\n                        <label className=\"form-label\">Yapi Belge Tipi</label>\r\n                        <select class=\"form-select form-select-sm\" aria-label=\"Default select example\" id=\"yapiBelge_YapiBelgeTipKod\" name=\"yapiBelge_YapiBelgeTipKod\" onChange={handleSelectChange} >\r\n                            <option selected ></option>\r\n                            <option value=\"1\" >Yapi Ruhsat Belgesi</option>\r\n                            <option value=\"2\" >Yapi Kullanma Izin Belgesi</option>\r\n                            <option value=\"3\">Yanan Yikilan Yapi Formu</option>\r\n                            <option value=\"4\">Yikim Ruhsat Belgesi</option>\r\n                        </select>\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-3\">\r\n                    <div className=\"col-12 text-end\">\r\n                        <div id=\"newsnipper\" className=\"spinner-border spinner-border-sm\" hidden></div>\r\n\r\n                        <button type=\"button\" className=\"ms-1 btn btn-primary  btn-sm  text-decoration-none \" style={{ \"border-radius\": \"8px\" }} onClick={save}>\r\n                            Başvuru Oluştur\r\n                        </button>\r\n                    </div>\r\n                </div>\r\n\r\n\r\n\r\n            </div>\r\n\r\n            <div className=\"mt-3 rounded-3 border p-1\">\r\n                <div className=\"row\">\r\n                    <div className=\"text-start col-6 fw-bold text-primary \">\r\n                        Mevcut Başvurular\r\n                    </div>\r\n                    <div className=\"text-end col-6 \">\r\n                        <div id=\"mysnip\" className=\"spinner-border spinner-border-sm\" ></div>\r\n\r\n                    </div>\r\n                </div>\r\n                <VTable data={makslist} cols={[\"id\", \"regDate\", \"yapiBelge_YapiBelgeTipName\",\"ruhsat_RuhsatVerilisAmacName\", \"bultenNo\"]} headers={[\"No\", \"Başvuru Tarihi\",\"Yapı Belge Tipi\",\"Variliş Amaç\", \"Bulten No\"]} rowClick={rowClick} rowDelete={rowDelete} />\r\n            </div >\r\n        </div >\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport 'bootstrap/dist/js/bootstrap.min.js'\r\n\r\nimport Apply5 from \"./Apply5.js\";\r\nimport Application from \"./Application.js\";\r\nimport NotePanel from './NotePanel.js';\r\nimport { ajaxFail, showSuccessMessage } from '../GlobalState.js';\r\n\r\nexport default function Apply6(props) {\r\n    useEffect(() => {\r\n\r\n\r\n    }, [])\r\n\r\n\r\n    var applicationdata = props.applicationdata;\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const onSubmit = (e) => {\r\n        e.preventDefault();\r\n        document.getElementById(\"buttonSpinner\").hidden = false;\r\n        fetch(\"saveapplication\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(applicationdata)\r\n        }).then(async response => {\r\n            document.getElementById(\"buttonSpinner\").hidden = true;\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n\r\n                response.json().then(async a => {\r\n                    props.changeComponent(<Application appData={a} changeComponent={props.changeComponent} />)\r\n                    showSuccessMessage(\"Başvurunuz henüz gönderilmedi.Başvurunuzu kontrol ettikten sonra 'Gönder' tuşuna basınız.\");\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    return <div  >\r\n\r\n        <div className=\"row\" >\r\n            <div className=\"  col-md-2 col-12 \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    1. Başvuru Tipi\r\n\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12  \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    2. Konum\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    3. Müellifler\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    4. Diğer Sorular\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    5. Dosyalar\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    text-primary \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    6. Onay\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n        <div className=\"row m-3\" >\r\n            <div className=\"col-12\" >\r\n                <div className=\"  align-items-center justify-content-center p-1\" >\r\n                    <form action=\"submitapplication\" className=\"mt-3\" method=\"POST\" onSubmit={onSubmit}>\r\n\r\n                        <div className=\"mt-1 row rounded-5\" >\r\n                            <NotePanel appData={applicationdata} />\r\n                        </div>\r\n                        <div className=\"row mt-3 border-top pt-2\" >\r\n                            <div className=\"col-6 text-start\">\r\n                                <button type=\"button\" className=\"btn btn-sm btn-primary mb-2 \" onClick={() => { props.changeComponent(<Apply5 applicationdata={applicationdata} changeComponent={props.changeComponent} />) }}>Geri Dön</button>\r\n                            </div>\r\n\r\n                            <div className=\"col-6 text-end\">\r\n                                <button type=\"submit\" name=\"actionSave\" value=\"Save\" className=\"btn btn-sm btn-primary mb-2 \">\r\n                                    Taslak Kaydet\r\n                                    <span class=\"ms-1 spinner-border spinner-border-sm\" id=\"buttonSpinner\" hidden></span>\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n\r\n                    </form>\r\n                </div>\r\n            </div>\r\n        </div >\r\n    </div >\r\n\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport 'bootstrap/dist/js/bootstrap.min.js'\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { isEmpty, showErrorMessage, useGlobalState } from '../GlobalState.js';\r\nimport Apply4 from \"./Apply4.js\";\r\nimport Apply6 from \"./Apply6.js\";\r\nimport FilePanel from \"./FilesPanel.js\";\r\n\r\nimport Application from \"./Application.js\";\r\nimport NotePanel from './NotePanel.js';\r\n\r\nexport default function Apply5(props) {\r\n    const [role, setRole] = useGlobalState('role');\r\n\r\n    useEffect(() => {\r\n\r\n\r\n    }, [])\r\n\r\n\r\n    var applicationdata = props.applicationdata;\r\n\r\n    return <div  >\r\n\r\n        <div className=\"row\" >\r\n            <div className=\"  col-md-2 col-12 \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    1. Başvuru Tipi\r\n\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12 \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    2. Konum\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    3. Müellifler\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    4. Diğer Sorular\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    text-primary \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    5. Dosyalar\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12     \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    6. Onay\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n        <div className=\"row m-3\" >\r\n            <div className=\"col-12\" >\r\n                <div className=\"  align-items-center justify-content-center p-1\" >\r\n\r\n\r\n                        <div className=\"mt-1 row rounded-5\" >\r\n                            <FilePanel appData={applicationdata} />\r\n                        </div>\r\n\r\n\r\n\r\n\r\n\r\n                        <div className=\"row mt-3 border-top pt-2\" >\r\n                            <div className=\"col-6 text-start\">\r\n                            <button type=\"button\" className=\"btn btn-sm btn-primary mb-2 \" onClick={() => { props.changeComponent(<Apply4 back={ true} applicationdata={applicationdata} changeComponent={props.changeComponent} />) }}>Geri Dön</button>\r\n                            </div>\r\n\r\n                            <div className=\"col-6 text-end\">\r\n                            <button type=\"button\" name=\"actionSave\" className=\"btn btn-sm btn-primary mb-2 \" onClick={() => {\r\n                                var eksikdiv = document.getElementById(\"eksikdosyalar\");\r\n                                if (role.indexOf(UserPermConstants.Yeni_Basvuruda_Zorunlu_Alanlari_Bos_Birakabilme) > -1  || eksikdiv == null || isEmpty(eksikdiv.innerHTML) || window.selectedAppType == null || window.selectedAppType.eksiksiz!=true )\r\n                                    props.changeComponent(<Apply6 applicationdata={applicationdata} changeComponent={props.changeComponent} />)\r\n                                else showErrorMessage(\"Başvuruya devam edebilmek için kırmızı olarak işaretlenen zorunlu dosyaları yüklemeniz gerekmektedir.\")\r\n                            }}>\r\n                                Kaydet ve Devam Et\r\n                                \r\n                            </button>\r\n                            </div>\r\n                        </div>\r\n\r\n                   \r\n                </div>\r\n            </div>\r\n        </div >\r\n    </div >\r\n\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport 'bootstrap/dist/js/bootstrap.min.js'\r\nimport { ajaxFail, showErrorMessage } from '../GlobalState.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { useGlobalState, isEmpty } from '../GlobalState.js';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport Apply5 from \"./Apply5.js\";\r\nimport Apply3 from \"./Apply3.js\";\r\nimport Apply1 from './Apply1.js';\r\nimport Apply2 from './Apply2.js';\r\nexport default function Apply4(props) {\r\n\r\n    useEffect(() => {\r\n        fetchAppDynamicFieldList();\r\n\r\n    }, [])\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const zorunloBosBirakma = role.indexOf(UserPermConstants.Yeni_Basvuruda_Zorunlu_Alanlari_Bos_Birakabilme) == -1;\r\n\r\n    var applicationdata = props.applicationdata;\r\n    var appdynamicdata = applicationdata.appData != null ? JSON.parse(applicationdata.appData) : {};\r\n\r\n\r\n\r\n    const [allDynamicFilds, setAllDynamicFilds] = React.useState();\r\n\r\n    const handleDynamicChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked.toString() : target.value;\r\n        appdynamicdata[target.name] = { id: target.id, \"value\": value, \"type\": target.type };\r\n    }\r\n\r\n    const onSubmit = (e) => {\r\n        e.preventDefault();\r\n\r\n        if (zorunloBosBirakma == false) {\r\n            var multiselectinputs = allDynamicFilds.filter(k => isVisible(k) == true && k.type == \"select multiple\");\r\n            var notfilled = multiselectinputs.filter(k => k.reqired == true && (isEmpty(appdynamicdata[k.name]) || isEmpty(appdynamicdata[k.name].value)))\r\n            if (notfilled.length > 0) {\r\n                var names = notfilled.map(k => k.name).join(\",\");\r\n                showErrorMessage(\"Zorunlu alanlar boş bırakılamaz\", names);\r\n                return;\r\n            }\r\n        }\r\n\r\n\r\n\r\n\r\n        applicationdata.appData = JSON.stringify(appdynamicdata);\r\n        document.getElementById(\"buttonSpinner\").hidden = false;\r\n        fetch(\"saveapplication\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(applicationdata)\r\n        }).then(async response => {\r\n            document.getElementById(\"buttonSpinner\").hidden = true;\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async a => {\r\n                    props.changeComponent(<Apply5 applicationdata={a} changeComponent={props.changeComponent} />)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchAppDynamicFieldList = () => {\r\n        fetch(\"getappfields\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    if (data.some(k=>isVisible(k)) == false) {\r\n                        if (props.back != true)\r\n                            props.changeComponent(<Apply5 applicationdata={applicationdata} changeComponent={props.changeComponent} />)\r\n                        else \r\n                            props.changeComponent(<Apply3 back={ true} applicationdata={applicationdata} changeComponent={props.changeComponent} />)\r\n                    }\r\n                    setAllDynamicFilds(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const isReadOnly = (k) => {\r\n\r\n        if (isEmpty(k.role) == false && k.role.split(',').some(x => role.indexOf(\"#\" + x + \"#\") > -1) == false)\r\n            return true;\r\n        return false;\r\n\r\n    }\r\n    const isVisible = (k) => {\r\n        if (k.gizli == true && role.indexOf(UserPermConstants.Gizli_Alanlari_Gorme) == -1)\r\n            return false;\r\n        if (isEmpty(k.basvuruTipi) == false && k.basvuruTipi.split(\",\").includes(applicationdata.basvuruTipi) == false)\r\n            return false;\r\n        return true;\r\n    }\r\n\r\n\r\n    var dynamicFields = \"\";\r\n    if (allDynamicFilds != null) {\r\n        var appDynamicData = applicationdata.appData != null ? JSON.parse(applicationdata.appData) : {};\r\n\r\n\r\n        allDynamicFilds.forEach(k => {\r\n            if (appdynamicdata[k.name] == null && k.initValue != null) {\r\n                if (k.type == \"checkbox\")\r\n                    appdynamicdata[k.name] = { \"value\": k.initValue == 1, \"type\": k.type, \"id\": k.id };\r\n                else if (k.type != \"select\" && k.type != \"select multiple\")\r\n                    appdynamicdata[k.name] = { \"value\": k.initValue, \"type\": k.type,\"id\":k.id };\r\n            }\r\n        });\r\n       \r\n\r\n        dynamicFields =\r\n            allDynamicFilds.map(k => isVisible(k)==false ? \"\" :\r\n                <div className=\"row p-2 rounded-5\" >\r\n                <div className=\"col-12 col-md-6\">\r\n\r\n                        <label htmlFor={k.name} className=\"form-label p-0\">{k.name} {k.reqired == true && \"*\" }</label><br />\r\n                    {k.type == \"select\" ?\r\n                            <select disabled={isReadOnly(k)} readOnly={isReadOnly(k)}  className=\"form-select form-select-sm selectpicker\" id={k.id} name={k.name} onChange={handleDynamicChange} required={k.reqired && zorunloBosBirakma} >\r\n                                <option value=\"\" selected={true} hidden></option>\r\n                                {k.initValue != null && k.initValue.split(\",\").map(rec =>\r\n                                    <option value={rec} selected={appdynamicdata[k.name] != null && appdynamicdata[k.name].value == rec}>{rec}</option>)}\r\n                            </select> :\r\n                            k.type == \"select multiple\" ?\r\n                                <Multiselect className=\"p-0 form-control-sm bg-white\"\r\n                                    disablePreSelectedValues={isReadOnly(k)}\r\n                                    required={true}\r\n                                    options={k.initValue.split(\",\")}\r\n                                    emptyRecordMsg=\"\"\r\n                                    isObject={false}\r\n                                    onSelect={(selectedList, changedItem) => {\r\n                                        var clist = selectedList.join();\r\n                                        appdynamicdata[k.name] = { id: k.id, \"value\": clist, \"type\": k.type };\r\n                                        \r\n                                    }}\r\n                                    onRemove={(selectedList, changedItem) => {\r\n                                        var clist = selectedList.join();\r\n                                        appdynamicdata[k.name] = { id: k.id, \"value\": clist, \"type\": k.type };\r\n                                        \r\n                                    }}\r\n                                    placeholder=\"\"\r\n                                    selectedValues={(appdynamicdata[k.name] == null || isEmpty(appdynamicdata[k.name].value) || isReadOnly(k)) ? [] : appdynamicdata[k.name].value.split(\",\")}\r\n                                />\r\n                                :\r\n                                k.type == \"textarea\" ?\r\n                                    <textarea readOnly={isReadOnly(k)}  disabled={isReadOnly(k)}  onInput={(e) => { e.target.style.height = \"\"; e.target.style.height = e.target.scrollHeight + 2 + \"px\" }} readOnly={isReadOnly(k)} type={k.type} className={k.type != \"checkbox\" ? \"form-control form-control-sm \" : \"form-check-input\"}\r\n                                    id={k.id} name={k.name}  defaultValue={appDynamicData[k.name] != null ? appDynamicData[k.name].value : k.initValue}\r\n                                    defaultChecked={appDynamicData[k.name] != null ? appDynamicData[k.name].value : \"\"} onChange={handleDynamicChange} required={k.reqired}  required={k.reqired && zorunloBosBirakma}></textarea>\r\n                                    :\r\n                            <input type={k.type} disabled={isReadOnly(k) } readOnly={isReadOnly(k)} className={k.type != \"checkbox\" ? \"form-control form-control-sm \" : \"form-check-input\"}\r\n                                    id={k.id} name={k.name} defaultValue={appdynamicdata[k.name] != null ? appdynamicdata[k.name].value : k.initValue}\r\n                                    defaultChecked={appdynamicdata[k.name] != null ? appdynamicdata[k.name].value : k.initValue==1} onChange={handleDynamicChange} required={k.reqired && zorunloBosBirakma} />\r\n                    }\r\n                    </div></div>\r\n\r\n            )\r\n    }\r\n\r\n\r\n    return <div  >\r\n\r\n        <div className=\"row\" >\r\n            <div className=\"  col-md-2 col-12 \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    1. Başvuru Tipi\r\n\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12  \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    2. Konum\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    3. Müellifler\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12   text-primary \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    4. Diğer Sorular\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    5. Dosyalar\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12     \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    6. Onay\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n        <div className=\"row m-3\" >\r\n            <div className=\"col-12\" >\r\n                <div className=\"  align-items-center justify-content-center p-1\" >\r\n                    <form action=\"submitapplication\" className=\"mt-2\" method=\"POST\" onSubmit={onSubmit}>\r\n\r\n                        \r\n                                {dynamicFields}\r\n                    \r\n\r\n\r\n                        <div className=\"row mt-3 border-top pt-2\" >\r\n                            <div className=\"col-6 text-start\">\r\n                                <button type=\"button\" className=\"btn btn-sm btn-primary mb-2 \" onClick={() => {\r\n                                     props.changeComponent(<Apply3 applicationdata={applicationdata} changeComponent={props.changeComponent} />)\r\n                                }}>Geri Dön</button>\r\n                            </div>\r\n\r\n                            <div className=\"col-6 text-end\">\r\n                                <button type=\"submit\" name=\"actionSave\" value=\"Save\" className=\"btn btn-sm btn-primary mb-2 \">\r\n                                    Kaydet ve Devam Et \r\n                                    <span class=\"ms-1 spinner-border spinner-border-sm\" id=\"buttonSpinner\" hidden></span>\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n\r\n                    </form>\r\n                </div>\r\n            </div>\r\n        </div >\r\n    </div >\r\n\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport 'bootstrap/dist/js/bootstrap.min.js'\r\nimport { ajaxFail, fvisible, fdisabled, fzorunlu, showSuccessMessage, showErrorMessage } from '../GlobalState.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { useGlobalState, capitalizeWords } from '../GlobalState.js';\r\nimport Apply2 from \"./Apply2.js\";\r\nimport Apply4 from \"./Apply4.js\";\r\nimport ApplicationAuthorPanel from \"./ApplicationAuthorPanel.js\";\r\nimport axios from \"axios\";\r\nimport bootstrap from 'bootstrap/dist/js/bootstrap.min.js'\r\nimport Apply1 from './Apply1.js';\r\n\r\nexport default function Apply3(props) {\r\n\r\n    const [sabitsorulistData, setsabitsorulistData] = useState(null);\r\n\r\n    let prevVal = \"\";\r\n    const [role, setRole] = useGlobalState('role');\r\n\r\n    const zorunloBosBirakma = role.indexOf(UserPermConstants.Yeni_Basvuruda_Zorunlu_Alanlari_Bos_Birakabilme) == -1;\r\n\r\n    const [userData, setUserdata] = useGlobalState('userData');\r\n    var applicationdata = props.applicationdata;\r\n\r\n    if (applicationdata.arsaSahibi == null)\r\n        applicationdata.arsaSahibi = userData.name + \" \" + userData.family;\r\n    if (applicationdata.arsaSahibiTC == null)\r\n        applicationdata.arsaSahibiTC = userData.tc;\r\n    if (applicationdata.arsaSahibiTel == null)\r\n        applicationdata.arsaSahibiTel = userData.tel;\r\n\r\n\r\n    useEffect(() => {\r\n        if (window.selectedAppType.tasinamazSahibiAktif != true && window.selectedAppType.muellifAktif != true) {\r\n            if (props.back == true) {\r\n                props.changeComponent(<Apply2 back={ true} applicationdata={applicationdata} changeComponent={props.changeComponent} />)\r\n            }\r\n            else {\r\n                props.changeComponent(<Apply4 applicationdata={applicationdata} changeComponent={props.changeComponent} />)\r\n            }\r\n            return;\r\n        }\r\n        initModal();\r\n        fetchSabitSoruList();\r\n        var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"popover\"]'))\r\n        var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n            return new bootstrap.Popover(popoverTriggerEl)\r\n        })\r\n    }, [])\r\n\r\n    const initModal = () => {\r\n        var locModal = document.getElementById('myModal');\r\n        var btnclosedown = document.getElementById('downclosemodal');\r\n        if (btnclosedown != null)\r\n            btnclosedown.addEventListener('click', (e) => {\r\n                locModal.style.display = \"none\";\r\n                locModal.classList.add(\"hide\");\r\n            });\r\n    }\r\n\r\n    const SendFiles = (event) => {\r\n        document.getElementById(\"fileuploadsp\").hidden = false;\r\n        var selectedFile = { file: event.target.files[0] }\r\n        var formData = new FormData();\r\n        formData.append(\"file\", selectedFile.file);\r\n        formData.append(\"caption\", selectedFile.file.name);\r\n        formData.append(\"appid\", applicationdata.id);\r\n        axios.post(\r\n            \"submitbasvuruvekaletfile\",\r\n            formData,\r\n            {\r\n                headers: {\r\n                    \"Content-type\": \"multipart/form-data\",\r\n                },\r\n            }\r\n        ).then(res => {\r\n            document.getElementById(\"fileuploadsp\").hidden = true;\r\n            document.getElementById(\"fileuploadsp\").hidden = true;\r\n            applicationdata.vekaletDosyaname = selectedFile.file.name\r\n            document.getElementById(\"vekaletdosyaname\").innerHTML = '<span class=\"ms-3\" id=\"vekaletdosyaname\"><a class=\"text-decoration-none\" href=\"/getbasvuruvekaletfile?appid=' + applicationdata.id + '\" download=\"' + applicationdata.vekaletDosyaname + '\">' + applicationdata.vekaletDosyaname + ' </a></span>';\r\n\r\n            var locModal = document.getElementById('myModal');\r\n            locModal.style.display = \"none\";\r\n            locModal.classList.add(\"hide\");\r\n\r\n        })\r\n            .catch(err => { showErrorMessage(err); })\r\n    }\r\n\r\n    const showalert = () => {\r\n        \r\n        if (window.selectedAppType.tasinamazSahibiAktif == true&&fvisible(\"arsaSahibiTel\", sabitsorulistData, applicationdata))\r\n            showSuccessMessage(\"Bu bölümde vekalet sahibinin telefon numarası DEĞİL, taşınmaz sahibinin kendi numarası olmak zorundadır. Aksi halde başvurunuz kabul edilmeyecektir.\")\r\n    }\r\n\r\n    const fetchSabitSoruList = () => {\r\n        fetch(\"getsabitsorulist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setsabitsorulistData(value);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const onSubmit = () => {\r\n\r\n        if (applicationdata.vekaletenBasvuru == true && applicationdata.vekaletDosyaname == null) {\r\n            showErrorMessage(\"Vekalet dosyanızı yukleyiniz.\");\r\n            return;\r\n        }\r\n\r\n        if (applicationdata.vekaletenBasvuru == true) {\r\n            applicationdata.vekilName = capitalizeWords(userData.name + \" \" + userData.family);\r\n            applicationdata.vekilTC = userData.tc;\r\n            applicationdata.vekilTel = userData.tel;\r\n        }\r\n\r\n\r\n        document.getElementById(\"buttonSpinner\").hidden = false;\r\n\r\n        applicationdata.arsaSahibi = capitalizeWords(applicationdata.arsaSahibi);\r\n        fetch(\"saveapplication\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(applicationdata)\r\n        }).then(async response => {\r\n            document.getElementById(\"buttonSpinner\").hidden = true;\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async a => {\r\n                    props.changeComponent(<Apply4 applicationdata={a} changeComponent={props.changeComponent} />)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n\r\n\r\n        var target = event.target;\r\n        var value = target.type === 'checkbox' ? target.checked : target.value;\r\n        if (target.name == \"arsaSahibiTel\" && value.length > 0 && value.startsWith(\"5\") == false) {\r\n            showErrorMessage(\"Telefon Numarası 5 ile başlamalı ve sadece 10 rakamdan oluşmalıdır.\");\r\n            target.value = \"5\";\r\n            value = \"5\"\r\n        }\r\n        applicationdata[target.name] = value;\r\n\r\n        if (target.name == \"vekaletenBasvuru\") {\r\n            document.getElementById(\"arsasahibiBilgileri\").disabled = !value;\r\n            if (value != true) {\r\n                applicationdata.arsaSahibi = userData.name + \" \" + userData.family;\r\n                applicationdata.arsaSahibiTC = userData.tc;\r\n                applicationdata.arsaSahibiTel = userData.tel;\r\n            }\r\n            else {\r\n                applicationdata.arsaSahibi = \"\";\r\n                applicationdata.arsaSahibiTC = \"\";\r\n                applicationdata.arsaSahibiTel = \"\";\r\n            }\r\n\r\n\r\n            document.getElementById(\"arsaSahibi\").value = applicationdata.arsaSahibi;\r\n            document.getElementById(\"arsaSahibiTel\").value = applicationdata.arsaSahibiTel;\r\n            document.getElementById(\"arsaSahibiTC\").value = applicationdata.arsaSahibiTC;\r\n\r\n        }\r\n\r\n\r\n\r\n    }\r\n\r\n\r\n\r\n    setTimeout(showalert, 700);\r\n\r\n    return <div  >\r\n\r\n        <div className=\"row\" >\r\n            <div className=\"  col-md-2 col-12 \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    1. Başvuru Tipi\r\n\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12  \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    2. Konum\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12 text-primary\" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    3. Müellifler\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    4. Diğer Sorular\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    5. Dosyalar\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12     \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    6. Onay\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n        {window.selectedAppType.tasinamazSahibiAktif == true  && <div className=\"row mt-3\" >\r\n            <div className=\"col-12\" >\r\n                <div className=\"p-1\" >\r\n                    {fvisible(\"arsaSahibiTel\", sabitsorulistData, applicationdata) && <div className=\"row mb-3\" >\r\n                        <div className=\"col-12\">\r\n                            <span className=\"text-danger\">\r\n                                Bu bölümde vekalet sahibinin telefon numarası DEĞİL, taşınmaz sahibinin kendi numarası olmak zorundadır. Aksi halde başvurunuz kabul edilmeyecektir.\r\n                            </span>\r\n                        </div>\r\n                    </div>}\r\n\r\n                    <div className=\"row mb-2\" >\r\n                        {fvisible(\"arsaSahibi\", sabitsorulistData, applicationdata) && <div className=\"col-12 \"  >\r\n                            <div class=\"form-check\">\r\n                                <input className=\"form-check-input\" type=\"checkbox\" id=\"vekaletenBasvuru\" name=\"vekaletenBasvuru\" onChange={handleInputChange} defaultChecked={applicationdata.vekaletenBasvuru == true} />\r\n                                <label className=\"form-check-label\" for=\"flexCheckChecked\">\r\n                                    Başvuruyu vekaleten başkası adına yapıyorum\r\n                                </label>\r\n                            </div>\r\n                        </div>}\r\n                    </div>\r\n\r\n                    <fieldset disabled={applicationdata.vekaletenBasvuru != true} id=\"arsasahibiBilgileri\">\r\n                        <div className=\"row \" disabled>\r\n                            {window.selectedAppType.tasinamazSahibiAktif == true && <div className=\"col-md-4 col-12 \">\r\n                                <label htmlFor=\"arsaSahibi\" className=\"form-label\">Taşınmaz Sahibi {fzorunlu(\"arsaSahibi\", sabitsorulistData, applicationdata)}</label>\r\n                                <input type=\"text\" className=\"form-control form-control-sm\" required={window.selectedAppType.tasinamazSahibiZorunlu == true && zorunloBosBirakma} id=\"arsaSahibi\" defaultValue={applicationdata.arsaSahibi} placeholder=\"\" name=\"arsaSahibi\" onChange={handleInputChange} disabled={fdisabled(\"arsaSahibi\", sabitsorulistData, applicationdata)} />\r\n                            </div>}\r\n                            {window.selectedAppType.tasinamazSahibiAktif == true && <div className=\"col-md-4 col-12 \">\r\n                                <label htmlFor=\"arsaSahibiTC\" className=\"form-label\">Taşınmaz Sahibi TC veya Vergi Kimlik Numarası {window.selectedAppType.tasinamazSahibiZorunlu == true ? '*' : ''}</label>\r\n                                <input type=\"number\" pattern=\"[0-9]{1,20}\" maxLength=\"11\" className=\"form-control form-control-sm\" required={window.selectedAppType.tasinamazSahibiZorunlu == true && zorunloBosBirakma} id=\"arsaSahibiTC\" defaultValue={applicationdata.arsaSahibiTC} placeholder=\"\" name=\"arsaSahibiTC\" onChange={handleInputChange} disabled={fdisabled(\"arsaSahibiTC\", sabitsorulistData, applicationdata)} />\r\n                            </div>}\r\n                            {window.selectedAppType.tasinamazSahibiAktif == true && <div className=\"col-md-4 col-12 \">\r\n                                <label htmlFor=\"arsaSahibiTel\" className=\"form-label\">Taşınmaz Sahibi Telefon Numarası {fzorunlu(\"arsaSahibiTel\", sabitsorulistData, applicationdata)}</label>\r\n                                <input type=\"text\" pattern=\"[5-5]{1}[0-9]{2}[0-9]{7}\" maxLength=\"10\" placeholder=\"5__ ___ ____\" required={window.selectedAppType.tasinamazSahibiZorunlu == true && zorunloBosBirakma} className=\"form-control form-control-sm\" id=\"arsaSahibiTel\" defaultValue={applicationdata.arsaSahibiTel} name=\"arsaSahibiTel\" onChange={handleInputChange} disabled={fdisabled(\"arsaSahibiTel\", sabitsorulistData, applicationdata)} />\r\n                            </div>}\r\n                        </div>\r\n                        <div className=\"row mt-3\" disabled>\r\n                            <div className=\"col-12 \">\r\n                                <button onClick={() => {\r\n                                    document.getElementById('myModal').style.display = \"block\";\r\n                                    document.getElementById('myModal').classList.remove(\"hide\");\r\n                                }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">\r\n                                    Vekalet Dosyası Ekle</button>\r\n                                <button className=\"btn btn-sm btn-secondary ms-2  text-decoration-none fw-bold\" id=\"mypopover\" data-bs-trigger=\"focus\" data-bs-toggle=\"popover\" title=\"AÇIKLAMA\" data-bs-content=\"Taşınmaz sahibi adına başvuru yapabileceğinizi gösteren belgedir. Bu belge, noter onaylı vekaletname olabileceği gibi Yapı Denetim Başvuruları ve İmar Uygulamalarına yönelik  başvurularda taşınmaz sahibi ile aranızda yaptığınız sözleşme de olabilir.\">?</button>\r\n\r\n                                <span className=\"ms-3\" id=\"vekaletdosyaname\">\r\n                                    {applicationdata.vekaletDosyaname != null && <a className=\"text-decoration-none\" href={\"/getbasvuruvekaletfile?appid=\" + applicationdata.id} id=\"vekaletdosyaname\" download={applicationdata.vekaletDosyaname}>{applicationdata.vekaletDosyaname} </a>}\r\n                                </span>\r\n                            </div>\r\n                        </div>\r\n                    </fieldset>\r\n                </div>\r\n            </div>\r\n        </div>}\r\n\r\n        {window.selectedAppType.muellifAktif == true && <div className=\"mt-2\"><ApplicationAuthorPanel appData={applicationdata} /></div>}\r\n\r\n        <div className=\"row mt-3 border-top pt-2\" >\r\n            <div className=\"col-6  text-start\">\r\n                <button type=\"button\" className=\"btn btn-sm btn-primary mb-2 \" onClick={() => {\r\n                     props.changeComponent(<Apply2 back={ true} applicationdata={applicationdata} changeComponent={props.changeComponent} />)\r\n\r\n                }}>Geri Dön</button>\r\n            </div>\r\n            <div className=\"col-6  text-end\">\r\n                <button type=\"button\" name=\"actionSave\" onClick={() => {\r\n                    if ((document.getElementById(\"arsaSahibiTel\") != null && document.getElementById(\"arsaSahibiTel\").disabled != true && fzorunlu(\"arsaSahibiTel\", sabitsorulistData, applicationdata) == \"*\" && document.getElementById(\"arsaSahibiTel\").value.length == 0)\r\n                        || (document.getElementById(\"arsaSahibi\") != null && document.getElementById(\"arsaSahibi\").disabled != true && fzorunlu(\"arsaSahibi\", sabitsorulistData, applicationdata) == \"*\" && document.getElementById(\"arsaSahibi\").value.length == 0)\r\n                        || (document.getElementById(\"arsaSahibiTC\") != null && document.getElementById(\"arsaSahibiTC\").disabled != true && fzorunlu(\"arsaSahibiTC\", sabitsorulistData, applicationdata) == \"*\" && document.getElementById(\"arsaSahibiTC\").value.length == 0)) {\r\n                        showErrorMessage(\"Taşınmaz sahibi bilgileri eksik\");\r\n                        return;\r\n                    }\r\n                    if (document.getElementById(\"arsaSahibiTel\") != null && document.getElementById('arsaSahibiTel').checkValidity() == false) {\r\n                        showErrorMessage(\"Taşınmaz sahibi Telfon Numarası Hatalı\");\r\n                        return;\r\n                    }\r\n                    if (document.getElementById(\"arsaSahibiTC\") != null && document.getElementById('arsaSahibiTC').checkValidity() == false) {\r\n                        showErrorMessage(\"Taşınmaz sahibi TC Numarası Hatalı\");\r\n                        return;\r\n                    }\r\n\r\n                    onSubmit();\r\n                }} className=\"btn btn-sm btn-primary \">\r\n                    Kaydet ve Devam Et\r\n                    <span class=\"ms-1 spinner-border spinner-border-sm\" id=\"buttonSpinner\" hidden></span>\r\n                </button>\r\n            </div>\r\n\r\n        </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n        <div className=\"modal\" id=\"myModal\" >\r\n            <div class=\"modal-dialog modal  modal-dialog-centered \">\r\n                <div class=\"modal-content\" >\r\n                    <div class=\"modal-body\" id=\"mymodalbody\" >\r\n\r\n                        <div className=\"row\">\r\n                            <div className=\"col-10\">\r\n\r\n                                <label for=\"formFile\" class=\"form-label\">Vekalet Dosyası Yukle</label>\r\n\r\n\r\n                                <br />\r\n                                <input class=\"form-control form-control-sm mt-2\" type=\"file\" accept=\"*.pdf\" id=\"formFile\" onChange={(e) => SendFiles(e)} />\r\n                            </div>\r\n\r\n                            <div className=\"col-2 text-end\">\r\n                                <div class=\"spinner-border  spinner-border-sm\" hidden id=\"fileuploadsp\" ></div>\r\n                            </div>\r\n\r\n\r\n                        </div>\r\n\r\n                    </div>\r\n                    <div class=\"modal-footer\">\r\n                        <button type=\"button\" class=\"btn btn-danger\" id=\"downclosemodal\" data-bs-dismiss=\"modal\">Kapat</button>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n\r\n\r\n    </div >\r\n\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport 'bootstrap/dist/js/bootstrap.min.js'\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { isEmpty, useGlobalState, showConfirmMessage, showErrorMessage, setVisible } from '../GlobalState.js';\r\nimport Apply1 from \"./Apply1.js\";\r\nimport Apply3 from \"./Apply3.js\";\r\nimport Apply4 from \"./Apply4.js\";\r\n\r\n\r\nimport GMapLatLang from \"./GMapLatLang.js\";\r\nimport Application from \"./Application.js\";\r\nimport { ajaxFail, fvisible, fdisabled, fzorunlu } from '../GlobalState.js';\r\n\r\nexport default function Apply2(props) {\r\n\r\n    const [sabitsorulistData, setsabitsorulistData] = useState(null);\r\n    const [userData, setUserdata] = useGlobalState('userData');\r\n\r\n    useEffect(() => {\r\n\r\n        if (window.selectedAppType.mevkiAktif != true && window.selectedAppType.mahalleAktif != true\r\n            && window.selectedAppType.adaAktif != true\r\n            && window.selectedAppType.sokakAktif != true && window.selectedAppType.noAktif != true) {\r\n            if (props.back == true) {\r\n\r\n                props.changeComponent(<Apply1 applicationdata={applicationdata} changeComponent={props.changeComponent} />)\r\n            }\r\n            else {\r\n                onSubmit();\r\n                //props.changeComponent(<Apply3 applicationdata={applicationdata} changeComponent={props.changeComponent} />)\r\n\r\n            }\r\n            return;\r\n        }\r\n\r\n        fetchMevkiList();\r\n        fetchMahalleList();\r\n        fetchIdariMahalleList();\r\n        if (applicationdata != null && applicationdata.mahaleId != null)\r\n            fetchAdaList(applicationdata.mevkiId, applicationdata.mahaleId)\r\n    }, [])\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const [MevkiList, setMevkiList] = useState([]);\r\n    const [idariMahalle, setIdariMahalle] = useState([]);\r\n    const [MahalleList, setMahalleList] = useState([]);\r\n    const [AdaList, setAdaList] = useState([]);\r\n    const [mahalleCoordinates, setMahalleCoordinates] = useState(null);\r\n    const [userName, setuserName] = useGlobalState('userName');\r\n    const [role, setRole] = useGlobalState('role');\r\n    const zorunloBosBirakma = role.indexOf(UserPermConstants.Yeni_Basvuruda_Zorunlu_Alanlari_Bos_Birakabilme) == -1;\r\n    const [app, setApp] = useState(null);\r\n\r\n    var applicationdata = props.applicationdata;\r\n\r\n    if (applicationdata.arsaSahibi == null)\r\n        applicationdata.arsaSahibi = userData.name + \" \" + userData.family;\r\n    if (applicationdata.arsaSahibiTC == null)\r\n        applicationdata.arsaSahibiTC = userData.tc;\r\n    if (applicationdata.arsaSahibiTel == null)\r\n        applicationdata.arsaSahibiTel = userData.tel;\r\n\r\n    const fetchSabitSoruList = () => {\r\n        fetch(\"getsabitsorulist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setsabitsorulistData(value);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked.toString() : target.value;\r\n        applicationdata[target.name] = value;\r\n\r\n\r\n        if (document.getElementById(\"Mahalle\") == null\r\n            || document.getElementById(\"Adaparsel\") == null)\r\n            return;\r\n\r\n\r\n        if (target.name == \"mevki\") {\r\n            var idx = document.getElementById(\"Mevki\").selectedIndex;\r\n            applicationdata[target.name] = document.getElementById(\"Mevki\").options[idx].innerHTML;\r\n            applicationdata.mevkiId = document.getElementById(\"Mevki\").options[idx].value;\r\n            var c = document.getElementById(\"Mahalle\");\r\n            c.innerHTML = \"\";\r\n            for (var i = 0; i < MahalleList.length; i++) {\r\n                if (value != MahalleList[i].mevkiId) continue;\r\n                var opt = document.createElement('option');\r\n                opt.value = MahalleList[i].id;\r\n                opt.innerHTML = MahalleList[i].name;;\r\n                c.appendChild(opt);\r\n            }\r\n            c.selectedIndex = -1;\r\n            document.getElementById(\"Adaparsel\").value = \"\";\r\n        }\r\n        if (target.name == \"mahalle\") {\r\n            var idx = document.getElementById(\"Mahalle\").selectedIndex;\r\n            applicationdata[target.name] = document.getElementById(\"Mahalle\").options[idx].innerHTML;\r\n            applicationdata.mahaleId = document.getElementById(\"Mahalle\").options[idx].value;\r\n            document.getElementById(\"Adaparsel\").value = \"\";\r\n            var mahalid = document.getElementById(\"Mahalle\").value;\r\n            var mevki = document.getElementById(\"Mevki\");\r\n            var mevkiid = MevkiList[0].id;\r\n            if (mevki != null)\r\n                mevkiid = mevki.value;\r\n            fetchAdaList(mevkiid, mahalid)\r\n            setMahalleCoordinates(MahalleList.find(a => a.id == applicationdata.mahaleId).koordinat)\r\n            //fetchCoordinates(\"MAHALLE:\" + mahalid);\r\n        }\r\n    }\r\n\r\n\r\n    const fetchMevkiList = () => {\r\n\r\n        fetch(\"getmevkilist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            setVisible(\"mevki_snipper\", false)\r\n\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    var i = 0;\r\n                    var c = document.getElementById(\"Mevki\");\r\n                    if (c != null) {\r\n                        c.innerHTML = \"\";\r\n                        if (value.length == 1) {  //for milas select milas by defult\r\n                            var opt = document.createElement('option');\r\n                            opt.value = value[i].id;\r\n                            opt.innerHTML = value[i].name;\r\n                            opt.selected = true;\r\n                            c.appendChild(opt);\r\n                        }\r\n                        else {\r\n                            for (i = 0; i < value.length; i++) {\r\n                                var opt = document.createElement('option');\r\n                                opt.value = value[i].id;\r\n                                opt.innerHTML = value[i].name;\r\n                                if (applicationdata.mevki == value[i].name) {\r\n                                    opt.selected = true;\r\n                                }\r\n                                c.appendChild(opt);\r\n                            }\r\n                        }\r\n                        if (applicationdata.mevki == null && value.length > 1) c.selectedIndex = -1;\r\n\r\n                    }\r\n                    if (applicationdata.mevki == null && value.length == 1) applicationdata.mevki = value[0].name;\r\n                    setMevkiList(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchAdaList = (mevkiId, mahalleid) => {\r\n        setVisible(\"adaparsel_snipper\", true)\r\n        fetch(\"getadalistbyid?mevki=\" + mevkiId + \"&mahalle=\" + mahalleid, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            setVisible(\"adaparsel_snipper\", false)\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                const contentType = response.headers.get(\"content-type\");\r\n                if (contentType == null || contentType.indexOf(\"application/json\") == -1) {\r\n                    showErrorMessage(\"Ada/Parsel Bilgileri Alınamadı !\");\r\n                    return;\r\n                }\r\n                response.json().then(value => {\r\n                    var i = 0;\r\n                    var c = document.getElementById(\"Adaparselistesi\");\r\n                    c.innerHTML = \"\";\r\n                    for (i = 0; i < value.length; i++) {\r\n                        var opt = document.createElement('option');\r\n\r\n                        opt.value = value[i].name;\r\n                        opt.innerHTML = value[i].name;\r\n                        if (applicationdata.ada == value[i].name) {\r\n                            opt.selected = true;\r\n                        }\r\n                        c.appendChild(opt);\r\n                    }\r\n                    if (applicationdata.ada == null) c.selectedIndex = -1;\r\n\r\n\r\n                    document.getElementById(\"Adaparsel\").disabled = false;\r\n                    setAdaList(value)\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    const validateNumberAndForwardSlash = (event) => {\r\n        var key = event.which;\r\n        if (key >= 48 && key <= 57 || key == 47) {\r\n            return true;\r\n        } else {\r\n\r\n            event.preventDefault()\r\n        }\r\n    }\r\n\r\n    const validateSelection = (event) => {\r\n        var val = event.target.value;\r\n        if (isEmpty(val))\r\n            return;\r\n        /*if (AdaList.some(x => x.name == val) == false) {\r\n            showErrorMessage(val + \" geçerli ada/parsel listesinde bulunmamaktadır.\");\r\n            document.getElementById(\"Adaparsel\").value = \"\";\r\n        }*/\r\n\r\n    }\r\n\r\n    const fetchCoordinates = (param) => {\r\n        fetch(\"getcbscoordinates?param=\" + param, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            document.getElementById(\"mahalle_snipper\").hidden = true;\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.text().then(value => {\r\n                    setMahalleCoordinates(value)\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchMahalleList = () => {\r\n        fetch(\"getmahallelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            var mspin = document.getElementById(\"mahalle_snipper\");\r\n            if (mspin != null)\r\n                mspin.hidden = true;\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    var i = 0;\r\n                    var c = document.getElementById(\"Mahalle\");\r\n                    if (c != null) {\r\n                        c.innerHTML = \"\";\r\n                        for (i = 0; i < value.length; i++) {\r\n                            var opt = document.createElement('option');\r\n                            opt.value = value[i].id;\r\n                            opt.innerHTML = value[i].name;\r\n                            if (applicationdata.mahalle == value[i].name) {\r\n                                opt.selected = true;\r\n                            }\r\n                            c.appendChild(opt);\r\n                        }\r\n                        if (applicationdata.mahalle == null) c.selectedIndex = -1;\r\n                    }\r\n\r\n                    setMahalleList(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const fetchIdariMahalleList = () => {\r\n        fetch(\"getidarimahallelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setIdariMahalle(value)\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const onSubmit = (e) => {\r\n        if (e) e.preventDefault();\r\n        document.getElementById(\"buttonSpinner\").hidden = false;\r\n        fetch(\"saveapplication\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(applicationdata)\r\n        }).then(async response => {\r\n            document.getElementById(\"buttonSpinner\").hidden = true;\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async newapp => {\r\n                    if (newapp.updateCount < 0) {\r\n                        showErrorMessage(newapp.temp);\r\n                        newapp.updateCount = 0;\r\n                        newapp.temp = \"\";\r\n                        return;\r\n                    }\r\n                    if (newapp.id < 0) {\r\n                        newapp.id = -newapp.id;\r\n                        if (newapp.temp == \"10\") {\r\n                            newapp.temp = \"\";\r\n                            showConfirmMessage(\"Bu ada/parsele ilişkin aynı konuda devam eden başka bir başvurunuz bulunmaktadır.\", \"Başvuruyu yapmak istediğinize emin misiniz?\", \"Evet\", \"Hayır\", () => {\r\n                                applicationdata.temp = \"1\";\r\n                                onSubmit();\r\n                            });\r\n                        }\r\n                        else if (newapp.temp == \"00\") {\r\n                            newapp.temp = \"\";\r\n                            showConfirmMessage(\"Bu ada/parsele ilişkin aynı konuda başka bir kullanıcının devam eden başvurusu bulunmaktadır.\", \"Başvuruyu yapmak istediğinize emin misiniz?\", \"Evet\", \"Hayır\", () => {\r\n                                 applicationdata.temp = \"1\";\r\n                                onSubmit();\r\n                            });\r\n                          //  showErrorMessage(\"Bu ada/parsele ilişkin aynı konuda başka bir kullanıcının devam eden başvurusu bulunmaktadır.\")\r\n                        }\r\n\r\n                        else if (newapp.temp == \"11\") {\r\n                            showConfirmMessage(\"Bu ada/parsele ilişkin aynı konuda zaten devam eden bir başvurunuz bulunmaktadır.\", \"O başvuruya yuklensin mı?\", \"Evet\", \"Hayır\", () => {\r\n                                newapp.temp = \"\";\r\n                                props.changeComponent(<Application appData={newapp} changeComponent={props.changeComponent} />)\r\n\r\n                            });\r\n                        }\r\n                        else {\r\n                            newapp.temp = \"\";\r\n                            showErrorMessage(\"Bu ada/parsele ilişkin aynı konuda başka bir kullanıcının devam eden başvurusu bulunmaktadır.\")\r\n                        }\r\n\r\n\r\n\r\n                        return;\r\n                    }\r\n\r\n                    if (newapp.id == 0) { //keep this before next if\r\n                        showErrorMessage(\"Bu konuma ilişkin \" + applicationdata.basvuruTipi +\r\n                            \" başvurusunu yapmadan önce \" + newapp.appData +\r\n                            \" başvuru sürecinizin onaylanarak tamamlanmasını beklemelisiniz.\");\r\n                        return;\r\n                    }\r\n\r\n                    /* if (newapp.ada == null && newapp.mevki == null) {\r\n                         showErrorMessage(\"Bu konuma ilişkin \" + newapp.basvuruYapan + \" kullanıcısının \" + newapp.id + \" numaralı başvurusu bulunmaktadır. Başvuruya devam edebilmeniz için \" + newapp.id + \" numaralı başvuru ilgili kullanıcı tarafından sizinle paylaşılmalıdır.\");\r\n                         return;\r\n                     }*/\r\n\r\n                    applicationdata.id = newapp.id;\r\n                    applicationdata.basvuruDurumu = newapp.basvuruDurumu; //this list must match the controller save list\r\n                    applicationdata.basvuruTarihi = newapp.basvuruTarihi;\r\n                    applicationdata.securityToken = newapp.securityToken;\r\n                    applicationdata.basvuruYapan = newapp.basvuruYapan;\r\n                    applicationdata.updateCount = newapp.updateCount;\r\n                    // if (window.selectedAppType.tasinamazSahibiAktif == true || window.selectedAppType.muellifAktif == true)\r\n                    props.changeComponent(<Apply3 applicationdata={applicationdata} changeComponent={props.changeComponent} />)\r\n                    //  else\r\n                    //     props.changeComponent(<Apply4 applicationdata={applicationdata} changeComponent={props.changeComponent} />)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const setLatLang = (myLatlng) => {\r\n        document.getElementById(\"Enlem\").value = myLatlng.lat();\r\n        document.getElementById(\"Boylam\").value = myLatlng.lng();\r\n\r\n        applicationdata[\"enlem\"] = document.getElementById(\"Enlem\").value;\r\n        applicationdata[\"boylam\"] = document.getElementById(\"Boylam\").value;\r\n    }\r\n\r\n    const handleAdaChane = (e) => {\r\n        handleInputChange(e);\r\n        var ada = AdaList.find(x => x.name == e.target.value);\r\n\r\n        if (!isEmpty(ada)) {\r\n           // handleInputChange(e);\r\n            setMahalleCoordinates(ada.koordinat)\r\n            // fetchCoordinates(\"ADA:\" + ada.id)\r\n        }\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n    return <div  >\r\n\r\n        <div className=\"row\" >\r\n            <div className=\"  col-md-2 col-12 \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    1. Başvuru Tipi\r\n\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12  text-primary\" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    2. Konum\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    3. Müellifler\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    4. Diğer Sorular\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    5. Dosyalar\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12     \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    6. Onay\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n        <div className=\"row m-3\" >\r\n            <div className=\"col-12\" >\r\n                <div className=\"  align-items-center justify-content-center p-1\" >\r\n                    <form action=\"submitapplication\" className=\"mt-3\" method=\"POST\" onSubmit={onSubmit}>\r\n\r\n                        <div className=\"mt-2 row p-2 rounded-5\" >\r\n                            {window.selectedAppType.mevkiAktif == true && <div className=\"col-12 col-md-4\">\r\n                                <label htmlFor=\"Mahalle\" className=\"form-label\">Mevki {window.selectedAppType.mevkiZorunlu == true ? '*' : ''}\r\n                                    <div class=\"spinner-border spinner-border-sm\" id=\"mevki_snipper\"></div>\r\n                                </label>\r\n                                <select className=\"form-select form-select-sm\" id=\"Mevki\" name=\"mevki\" required={window.selectedAppType.mevkiZorunlu == true && zorunloBosBirakma} onChange={handleInputChange} >\r\n\r\n                                </select>\r\n                            </div>}\r\n\r\n                            {window.selectedAppType.mahalleAktif == true && <div className=\"col-12 col-md-4\">\r\n                                <label htmlFor=\"Mahalle\" className=\"form-label\">{idariMahalle.length > 0 ? \"Tapu \" : \"\"}  Mahalle {window.selectedAppType.mahalleZorunlu == true ? '*' : ''}\r\n                                    <div class=\"spinner-border spinner-border-sm\" id=\"mahalle_snipper\"></div>\r\n                                </label>\r\n                                <select className=\"form-select form-select-sm\" id=\"Mahalle\" name=\"mahalle\" required={window.selectedAppType.mahalleZorunlu == true && zorunloBosBirakma} onChange={handleInputChange} >\r\n\r\n                                </select>\r\n                            </div>}\r\n\r\n\r\n                            {window.selectedAppType.adaAktif == true && <div className=\"col-12 col-md-4\">\r\n                                <label htmlFor=\"Ada\" className=\"form-label\">Ada/Parsel {window.selectedAppType.adaZorunlu == true ? '*' : ''}\r\n                                    <div class=\"spinner-border spinner-border-sm\" id=\"adaparsel_snipper\" hidden></div>\r\n                                </label>\r\n                                <input disabled autocomplete={true} list=\"Adaparselistesi\" className=\"form-control form-control-sm\" required={window.selectedAppType.adaZorunlu == true && zorunloBosBirakma} id=\"Adaparsel\" placeholder=\"Ada Parsel\" name=\"ada\" defaultValue={applicationdata.ada} onChange={handleAdaChane} onKeyPress={validateNumberAndForwardSlash} onBlur={validateSelection} />\r\n                                <datalist id=\"Adaparselistesi\">fill by fetchsureclist</datalist>\r\n                            </div>}\r\n\r\n                        </div>\r\n\r\n\r\n                        <div className=\"row\" >\r\n                            <div className=\"col-12 col-md-4\">\r\n                                {window.selectedAppType.idariMahalleAktif == true && idariMahalle.length > 0 && <div className=\"mt-1 row p-2 rounded-5\" >\r\n                                    <div className=\"col-12 \">\r\n                                        <label htmlFor=\"IdariMahalle\" className=\"form-label\">Idari Mahalle </label>{window.selectedAppType.idariMahalleZorunlu == true ? '*' : ''}\r\n                                        < select className=\"form-select form-select-sm\" id=\"IdariMahalle\" name=\"idariMahalle\" required={window.selectedAppType.idariMahalleZorunlu == true && zorunloBosBirakma} onChange={handleInputChange} defaultValue={applicationdata.idariMahalle}>\r\n                                            <option value=\"\"></option>\r\n                                            {idariMahalle.map(x => <option value={x.name}>{x.name}</option>)}\r\n                                        </select>\r\n                                    </div>\r\n                                </div>}\r\n\r\n                                {window.selectedAppType.sokakAktif == true && <div className=\"mt-1 row p-2 rounded-5\" >\r\n\r\n                                    <div className=\"col-12 \">\r\n                                        <label htmlFor=\"Sokak\" className=\"form-label\">Sokak {window.selectedAppType.sokakZorunlu == true ? '*' : ''}</label>\r\n                                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"Sokak\" required={window.selectedAppType.sokakZorunlu == true && zorunloBosBirakma} placeholder=\"Sokak\" name=\"sokak\" onChange={handleInputChange} defaultValue={applicationdata.sokak} />\r\n                                    </div>\r\n\r\n                                </div>}\r\n\r\n\r\n                                {window.selectedAppType.noAktif == true && <div className=\"mt-1 row p-2 rounded-5\" >\r\n                                    <div className=\"col-12 \">\r\n                                        <label htmlFor=\"No\" className=\"form-label\">No {window.selectedAppType.noZorunlu == true ? '*' : ''}</label>\r\n                                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"No\" required={window.selectedAppType.noZorunlu == true && zorunloBosBirakma} placeholder=\"No\" name=\"no\" onChange={handleInputChange} defaultValue={applicationdata.no} />\r\n                                    </div>\r\n\r\n                                </div>}\r\n\r\n                                {window.selectedAppType.adaAktif == true && <div className=\"mt-1 row p-2 rounded-5\" >\r\n                                    <div className=\"col-12 \">\r\n                                        <label htmlFor=\"Enlem\" className=\"form-label\">Enlem  {window.selectedAppType.adaZorunlu == true ? '*' : ''}</label>{/*required={window.selectedAppType.adaZorunlu == true && zorunloBosBirakma}*/}\r\n                                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"Enlem\" placeholder=\"Enlem (Harita'dan seçebilrsiniz)\" name=\"enlem\" onChange={handleInputChange} defaultValue={applicationdata.enlem} />\r\n                                    </div>\r\n\r\n                                </div>}\r\n                                {window.selectedAppType.adaAktif == true && <div className=\"mt-1 row p-2 rounded-5\" >\r\n                                    <div className=\"col-12 \">\r\n                                        <label htmlFor=\"Boylam\" className=\"form-label\">Boylam {window.selectedAppType.adaZorunlu == true ? '*' : ''}</label>\r\n                                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"Boylam\" placeholder=\"Boylam (Harita'dan seçebilrsiniz)\" name=\"boylam\" onChange={handleInputChange} defaultValue={applicationdata.boylam} />\r\n                                    </div>\r\n\r\n                                </div>}\r\n                            </div>\r\n                            {window.selectedAppType.adaAktif == true && <div className=\"col-12 col-md-8 pt-4 ps-3 pe-3 mt-3\" style={{ \"min-height\": \"250px\" }} >\r\n                                <GMapLatLang appData={applicationdata} setLatLang={setLatLang} polygon={mahalleCoordinates} />\r\n                            </div>}\r\n                        </div>\r\n\r\n\r\n                        <div className=\"row mt-3 border-top pt-2\" >\r\n                            <div className=\"col-6 text-start\">\r\n                            {/*    <button type=\"button\" className=\"btn btn-sm btn-primary mb-2 \" onClick={() => { props.changeComponent(<Apply1 applicationdata={applicationdata} changeComponent={props.changeComponent} />) }}>Geri Dön</button>*/}\r\n                            </div>\r\n\r\n                            <div className=\"col-6 text-end\">\r\n                                <button type=\"submit\" name=\"actionSave\" value=\"Save\" className=\"btn btn-sm btn-primary mb-2 \">\r\n                                    Kaydet ve Devam Et\r\n                                    <span class=\"ms-1 spinner-border spinner-border-sm\" id=\"buttonSpinner\" hidden></span>\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n\r\n                    </form>\r\n                </div>\r\n            </div>\r\n        </div >\r\n    </div >\r\n\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport 'bootstrap/dist/js/bootstrap.min.js'\r\n\r\nimport { useGlobalState, isEmpty, showErrorMessage } from '../GlobalState.js';\r\nimport Apply2 from \"./Apply2.js\";\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport Apply3 from './Apply3.js';\r\nimport Apply4 from './Apply4.js';\r\nimport Select from 'react-select'\r\nimport { useRef } from \"react\";\r\n\r\nexport default function Apply1(props) {\r\n\r\n    var [globalData, setGlobalData] = useGlobalState('globalData');\r\n\r\n\r\n\r\n    const selectRef = useRef();\r\n\r\n    const [appTypeOptions, setappTypeOptions] = useState([]);\r\n\r\n    const [appTypeGroups, setappTypeGroups] = useState([]);\r\n    const [appTypes, setappTypes] = useState([]);\r\n    const [userData, setuserData] = useGlobalState('userData');\r\n\r\n    const [userName, setuserName] = useGlobalState('userName');\r\n    const [role, setRole] = useGlobalState('role');\r\n    var applicationdata = props.appData != null ? props.appData : {};\r\n\r\n\r\n    useEffect(() => {\r\n        if ((userData != null && userData.edveletConfirmed == true) || role.indexOf(UserPermConstants.Edevletsiz_Basvuru) != -1)\r\n            getAppTypes();\r\n\r\n\r\n    }, [])\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked.toString() : target.value;\r\n        applicationdata[target.name] = value;\r\n    }\r\n\r\n    const handleGroupChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.value;\r\n        var apptypesingrup=[]\r\n\r\n        if (value == -1) {\r\n            setappTypeOptions([])\r\n            return;\r\n        }\r\n        for (var i = 0; i < appTypes.length; i++) {\r\n            if (appTypes[i].grup != \"\" && appTypes[i].grup != null && appTypes[i].grup != value)\r\n                continue;\r\n            if (appTypes[i].active == true && (appTypes[i].hide != true || role.indexOf(UserPermConstants.Gizli_Basvuru_Gorme) > -1)) {\r\n                apptypesingrup.push({ label: appTypes[i].name, value: appTypes[i].name })\r\n            }\r\n        }\r\n        setappTypeOptions(apptypesingrup)\r\n    }\r\n\r\n    const fetchAppTypeGrupList = () => {\r\n        fetch(\"apptypegroupslist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    var c = document.getElementById(\"basvurutipleri_snipper\");\r\n                    if (c != null)\r\n                        c.hidden = true;\r\n                    setappTypeGroups(value);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const getAppTypes = () => {\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    value = value.filter(x => x.isadimi != true);\r\n\r\n                    if (role.indexOf(UserPermConstants.Gizli_Basvuru_Gorme) > -1)\r\n                        setappTypes(value);\r\n                    else\r\n                        setappTypes(value.filter(x => x.hide != true));\r\n                    fetchAppTypeGrupList();\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const onSubmit = (e) => {\r\n        e.preventDefault();\r\n        var check1 = document.getElementById(\"applyAgrement\");\r\n        var check2 = document.getElementById(\"applyKVKK\");\r\n        if (check1 != null && check1.checked == false) {\r\n            showErrorMessage(\"Başvuru sözleşmesi kabul edilmelidir.\");\r\n            return;\r\n        }\r\n        if (check2 != null && check2.checked == false) {\r\n            showErrorMessage(\"KVKK bilgilendirilmesi kabul edilmelidir.\");\r\n            return;\r\n        }\r\n\r\n        applicationdata.basvuruYapan = userName;\r\n        window.selectedAppType = appTypes.find(x => applicationdata.basvuruTipi == x.name);\r\n        props.changeComponent(<Apply2 applicationdata={applicationdata} changeComponent={props.changeComponent} />)\r\n        /* \r\n \r\n         else if (applicationdata.appData)\r\n             props.changeComponent(<Apply4  applicationdata={applicationdata} changeComponent={props.changeComponent} />)*/\r\n\r\n    }\r\n\r\n    if (userData == null) {\r\n        return <><div className=\"row mt-3\" >\r\n            <div className=\"col-12 text-danger text-center  \" >\r\n                Kullanıcı bilgilerine erişilemedi.\r\n            </div>\r\n        </div>\r\n        </>\r\n    }\r\n\r\n\r\n    if (userData.edveletConfirmed != true && role.indexOf(UserPermConstants.Edevletsiz_Basvuru) == -1) {\r\n        return <><div className=\"row mt-3\" >\r\n            <div className=\"col-12 text-danger text-center  \" >\r\n                Başvuru yapabilmek için e-Devlet Kapısı üzerinden giriş yapılmalıdır.\r\n            </div>\r\n        </div>\r\n\r\n            <div class=\"row mt-5\">\r\n                <div class=\"col-md-12 col-lg-4\"> </div>\r\n                <div className=\"col-12 col-lg-4 text-center \">\r\n                    <a className=\"btn btn-sm btn-danger text-decoration-none w-100 rounded-3  mt-3\" href=\"edevletlogin\">  <img src={require('../Dashboard/edevletlogo.png').default} style={{ width: \"28px\", height: \"28px\" }} /> <b>e-Devlet Kapısı ile Giriş Yap</b></a>\r\n                </div>\r\n            </div>\r\n        </>\r\n    }\r\n\r\n    const onChange = (option) => {\r\n        if (option == null) {\r\n            applicationdata.basvuruTipi = null;\r\n            return;\r\n        }\r\n        applicationdata.basvuruTipi = option.value;\r\n\r\n    };\r\n\r\n    if (role.indexOf(UserPermConstants.Yeni_Basvuru_Yapabilme) == -1) {\r\n        return <><div className=\"row mt-3\" >\r\n            <div className=\"col-12 text-danger text-center  \" >\r\n                Başvuru yapma yetniniz bulunmamaktadır.\r\n            </div>\r\n        </div>\r\n        </>\r\n    }\r\n\r\n    return <div  >\r\n        <div className=\"row\" >\r\n            <div className=\"  col-md-2 col-12 text-primary  \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    1. Başvuru Tipi\r\n\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    2. Konum\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    3. Müellifler\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    4. Diğer Sorular\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12    \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    5. Dosyalar\r\n                </div>\r\n            </div>\r\n            <div className=\" col-md-2 col-12     \" >\r\n                <div className=\"  w-75 fw-bold border-bottom border-3 \" >\r\n                    6. Onay\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div className=\"row m-3\" >\r\n            <div className=\"col-12\" >\r\n                <div className=\"  align-items-center justify-content-center p-1\" >\r\n                    <form action=\"submitapplication\" className=\"mt-3\" method=\"POST\" onSubmit={onSubmit}>\r\n\r\n                        <div>\r\n                            <div className=\"mt-1 row \" >\r\n                                <div className=\"col-12 col-md-4\">\r\n                                    <label className=\"form-label\">Basvuru Grubu *\r\n                                        <div class=\"spinner-border spinner-border-sm ps-1\" id=\"basvurutipleri_snipper\"></div>\r\n\r\n                                    </label>\r\n                                    <select className=\"form-select form-select-sm\" name=\"grup\" required={true} onChange={handleGroupChange} >\r\n                                        <option value={-1}> </option>\r\n                                        {appTypeGroups.map(x => <option value={x.id}>{x.name}</option>)}\r\n                                    </select>\r\n                                </div>\r\n\r\n                            </div>\r\n\r\n\r\n\r\n                            <div className=\"mt-4 row mb-3\" >\r\n                                <div className=\"col-12 col-md-4\">\r\n                                    <label className=\"form-label\">Başvuru Tipi *\r\n\r\n                                        \r\n\r\n                                    </label>\r\n                                    <Select\r\n                                        required={true}\r\n                                        ref={selectRef}\r\n                                        options={appTypeOptions}\r\n                                        onChange={onChange}\r\n                                        isClearable={true}\r\n                                        noOptionsMessage={() =>\"Henüz seçim yapılmadı\" }\r\n                                        placeholder=\"Seçiniz\"\r\n                                    />\r\n\r\n                                </div>\r\n                            </div>\r\n\r\n                            {globalData != null && <div className=\"mt-4\">\r\n                                {(isEmpty(globalData.applyKVKK) == false || isEmpty(globalData.applyKVKKFile) == false) && <div className=\" row mt-2\"  >\r\n                                    <div className=\"col-12\">\r\n                                        <input class=\"form-check-input me-1\" type=\"checkbox\" id=\"applyKVKK\" name=\"applyKVKK\" />\r\n                                        {isEmpty(globalData.applyKVKK) == false && <label className=\"form-check-label me-1\" dangerouslySetInnerHTML={{ __html: globalData.applyKVKK }}></label>}\r\n                                        {isEmpty(globalData.applyKVKKFile) == false &&\r\n                                            <a className=\"text-decoration-none\" href='getgeneralfile?id=applyKVKKFile' download={globalData.applyKVKKFile}> {globalData.applyKVKKFile} </a>\r\n                                        }\r\n\r\n                                    </div>\r\n                                </div>}\r\n\r\n                                {(isEmpty(globalData.applyAgrement) == false || isEmpty(globalData.applyAgrementFile) == false) && < div className=\" row mt-3\">\r\n                                    <div className=\"col-12\">\r\n                                        <input class=\"form-check-input me-1\" type=\"checkbox\" id=\"applyAgrement\" name=\"applyAgrement\" />\r\n                                        {isEmpty(globalData.applyAgrement) == false && <label className=\"form-check-label me-1\" dangerouslySetInnerHTML={{ __html: globalData.applyAgrement }}></label>}\r\n                                        {isEmpty(globalData.applyAgrementFile) == false &&\r\n                                            <a className=\"text-decoration-none\" href='getgeneralfile?id=applyAgrementFile' download={globalData.applyAgrementFile}> {globalData.applyAgrementFile} </a>\r\n                                        }\r\n\r\n                                    </div>\r\n                                </div>}\r\n                            </div>}\r\n\r\n\r\n\r\n                            <div className=\"row mt-3 border-top pt-2\" >\r\n                                <div className=\"col-12 col-md-12 text-end\">\r\n                                    <button type=\"submit\" name=\"actionSave\" value=\"Save\" className=\"btn btn-sm btn-primary mb-2 \">Devam</button>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </form>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport Application from \"./Application.js\"\r\nimport SharedUsersPanel from './SharedUsersPanel.js';\r\nimport ApplicationListCardView from './ApplicationListCardView.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nexport default function UserStatisticCard(props) {\r\n    var istats = props.Statistic;\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userName, setUserName] = useGlobalState('userName');\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n\r\n    const allowDrop = (event) => {\r\n        event.preventDefault();\r\n    }\r\n\r\n    const drop = (event) => {\r\n        event.preventDefault();\r\n\r\n    }\r\n\r\n    var dragCount = 0;\r\n    const dragleave = (event) => {\r\n    }\r\n    const enter = (event) => {\r\n    }\r\n\r\n    return <div onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave}>\r\n\r\n        <div className=\"m-1 ms-2 me-2 p-2 pt-2 pb-2 border border-rounded rounded-3 bg-white\" >\r\n\r\n            <div className=\"d-inline fw-bold d-block rounded-3\" style={{ \"background-color\": props.color + \"18\" }}>\r\n                <a class=\"text-decoration-none\" data-bs-toggle=\"collapse\" href={\"#Userstatistic\" + props.userid} role=\"button\" aria-expanded=\"false\" aria-controls={\"Userstatistic\" + props.userid}>\r\n\r\n                    <img className=\"rounded-circle me-1\" style={{ width: \"24px\", height: \"24px\" }} src={\"/getuserpic?user=İ\"} /> İSTATİSTİK\r\n                </a>\r\n            </div>\r\n\r\n\r\n            <div className=\"mt-1 row text-start collapse multi-collapse pb-0 mb-0\" id={\"Userstatistic\" + props.userid}>\r\n\r\n\r\n                <div className=\"col-12 col-md-6 \"><span className=\"text-muted\">Kontrol </span>: <span className=\"text-muted fw-bold\">{istats[\"Kontrol_Ediliyor\"]}</span></div>\r\n                <div className=\"col-12 col-md-6\"><span className=\"text-muted\">Sırada </span>: <span className=\"text-muted fw-bold\">{istats[\"Sirada_Bekliyor\"]}</span></div>\r\n                <div className=\"col-12 col-md-6\"><span className=\"text-muted\">Düzeltme </span>: <span className=\"text-muted fw-bold\">{istats[\"Duzeltme_Bekleniyor\"]}</span></div>\r\n                <div className=\"col-12 col-md-6\" title=\"Zamandan bağımsız Düzeltme İste + Kontrolü Tamamla\"><span className=\"text-muted\">Toplam </span>: <span className=\"text-muted fw-bold\">{istats[\"Toplam\"]} </span> <sup><i class=\"fa fa-info-circle text-primary\" style={{ \"font-size\": \"14px\" }} ></i></sup></div>\r\n\r\n                <div className=\"col-12 col-md-6\" title=\"Haftalık Ortalama. Son 30 günde (Düzeltme İste + Kontrolü Tamamla)/4\"><span className=\"text-muted\">Son 30 </span> : <span className=\"text-muted fw-bold\">{(istats[\"Sonay\"] / 4).toFixed(1)} </span> <sup><i class=\"fa fa-info-circle text-primary\" style={{ \"font-size\": \"14px\" }}></i></sup></div>\r\n                <div className=\"col-12 col-md-6\" title=\"Haftalık Ortalama. Son 365 günde (Düzeltme İste + Kontrolü Tamamla)/52\"><span className=\"text-muted\">Son 365 </span>: <span className=\"text-muted fw-bold\">{(istats[\"Sonyil\"] / 52).toFixed(1)} </span> <sup><i class=\"fa fa-info-circle text-primary\" style={{ \"font-size\": \"14px\" }}></i></sup></div>\r\n\r\n\r\n\r\n            </div>\r\n\r\n\r\n        </div>\r\n    </div>\r\n}\r\n","import React, { Component } from 'react';\r\nimport AppCard from './AppCard.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport $ from 'jquery';\r\nimport { passFilter, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport UserStatisticCard from './UserStatisticCard.js';\r\n\r\nexport default class ApplicationListCardView extends Component {\r\n    sortField = \"\";\r\n\r\n\r\n\r\n    constructor(props) {\r\n        super(props);\r\n\r\n        this.userName = props.userName;\r\n        this.role = props.role;\r\n        this.state = {\r\n            applist: null, colnames: [\"id\", \"basvuruTarihi\", \"basvuruTipi\", \"ada\", \"mahalle\", \"mevki\", \"mimar\"]\r\n        };\r\n        this.getApplicationList = this.getApplicationList.bind(this);\r\n        this.getUserApps = this.getUserApps.bind(this);\r\n        this.refreshList = this.refreshList.bind(this);\r\n        this.generateOpenList = this.generateOpenList.bind(this);\r\n        this.renderToCards = this.renderToCards.bind(this);\r\n        this.fetchDenetimList = this.fetchDenetimList.bind(this);\r\n        this.getAppTypes = this.getAppTypes.bind(this);\r\n        this.getdenetimpermsraw = this.getdenetimpermsraw.bind(this);\r\n\r\n        this.getSablon = this.getSablon.bind(this)\r\n        this.filterTable = this.filterTable.bind(this)\r\n        this.handleSablonChange = this.handleSablonChange.bind(this)\r\n        this.handleDenetimChange = this.handleDenetimChange.bind(this)\r\n        this.getKontrolorName = this.getKontrolorName.bind(this)\r\n        this.generateAyYil = this.generateAyYil.bind(this)\r\n        \r\n\r\n        this.filter = null;\r\n        this.mysablons = null;\r\n        this.changeComponent = props.changeComponent;\r\n        this.userApps = null;\r\n        this.kabulPerms = null;\r\n\r\n        this.selectedDenetim = -1;\r\n        this.appTypes = [];\r\n        this.userDenetimPermissions = null\r\n        this.denetimlist = null;\r\n        this.bordercolors = [\"#50cc88\", \"#009cf7\", \"#ffc800\", \"#f1416d\"];\r\n\r\n        this.droppedUserName = null;\r\n    }\r\n\r\n    refreshList(data) {\r\n        this.setState({\r\n            applist: data\r\n        })\r\n    }\r\n    componentDidMount() {\r\n        this.getSablon();\r\n        this.fetchDenetimList();\r\n        this.getdenetimpermsraw();\r\n        this.getAppTypes();\r\n        this.getUserApps();\r\n        //this.getApplicationList();\r\n        this.fetchUsersWithPermision();\r\n        this.fetchkabullistperm();\r\n    }\r\n\r\n    fetchkabullistperm() {\r\n        fetch(\"kabullistpermsnames\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(this.userName)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n               \r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    this.kabulPerms = value;\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    fetchUsersWithPermision = () => {\r\n        fetch(\"userswithperm\", {\r\n            method: 'POST',\r\n            headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n            body: JSON.stringify(\"\")\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    this.userDenetimPermissions = data;\r\n                });\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    myCompare = (a, b) => {\r\n        if (a[this.sortField] < b[this.sortField]) {\r\n            return -1;\r\n        }\r\n        if (a[this.sortField] > b[this.sortField]) {\r\n            return 1;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n\r\n\r\n\r\n    myCompareBasvuruTipi = (a, b) => {\r\n        var s1 = a[this.sortField];\r\n        var s2 = b[this.sortField];\r\n        if (s1 == null) return -1;\r\n        if (s2 == null) return 1;\r\n\r\n        var sa = s1.replaceAll('\"name\":', \"\").replaceAll(']', \"\").replaceAll('[', \"\").replaceAll('{', \"\").replaceAll('}', \"\").replaceAll('\"', \"\");\r\n        var sb = s2.replaceAll('\"name\":', \"\").replaceAll(']', \"\").replaceAll('[', \"\").replaceAll('{', \"\").replaceAll('}', \"\").replaceAll('\"', \"\");\r\n\r\n        if (sa < sb) {\r\n            return -1;\r\n        }\r\n        if (sa > sb) {\r\n            return 1;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n\r\n    sortList = (fildname) => {\r\n        this.sortField = fildname;\r\n        var temp = this.state.applist;\r\n        if (fildname.toUpperCase() == \"BASVURUTIPI\")\r\n            temp.sort(this.myCompareBasvuruTipi);\r\n        else\r\n            temp.sort(this.myCompare);\r\n        this.setState({ applist: temp });\r\n    }\r\n\r\n\r\n\r\n    fetchDenetimList() {\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showSuccessMessage(response.statusText)\r\n                })\r\n            }\r\n            else {\r\n                response.json().then(data => {\r\n\r\n                    this.denetimlist = data;\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    getSablon() {\r\n        fetch(\"getmysablon\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                const error = response.statusText;\r\n                console.log(error);\r\n\r\n            }\r\n            else {\r\n\r\n                response.json().then(async data => {\r\n                    data = data.filter(r => r.forTableView == true);\r\n                    this.mysablons = data;\r\n                    if (data != null && data.length > 0) {\r\n                        data = this.mysablons[0];\r\n                        if (window.localStorage.getItem('sablonisyuku') != null && this.mysablons[window.localStorage.getItem('sablonisyuku')] != null)\r\n                            data = this.mysablons[window.localStorage.getItem('sablonisyuku')];\r\n                        if (data.filter != null)\r\n                            this.filter = data.filter;\r\n                        if (data.colNames != null && data.colNames.length > 0) {\r\n                            var d = data.colNames.replaceAll('\"', \"\");\r\n                            if (d.length > 0)\r\n                                this.setState({ ...this.state, colnames: d.split(\",\") });\r\n                        }\r\n                    }\r\n\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    getUserApps() {\r\n        fetch(\"getuserapps\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(response.statusText)\r\n                })\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    this.userApps = JSON.parse(value);\r\n                    this.getApplicationList()\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    getdenetimpermsraw() {\r\n        fetch(\"getdenetimpermsraw\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(response.statusText)\r\n                })\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    this.denetimperms = value;\r\n                })\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    handleDenetimChange() {\r\n        this.selectedDenetim = document.getElementById(\"denetimSelect\").value;\r\n        this.setState({ ...this.state, selectedDenetim: this.selectedDenetim });\r\n    }\r\n\r\n    handleSablonChange(sab) {\r\n\r\n        window.localStorage.setItem('sablonisyuku', sab);\r\n        var data = this.mysablons[sab];\r\n        if (data.filter != null)\r\n            this.filter = data.filter;\r\n        if (data.colNames != null && data.colNames.length > 0) {\r\n            var d = data.colNames.replaceAll('\"', \"\");\r\n            if (d.length > 0)\r\n                this.setState({ ...this.state, colnames: d.split(\",\") });\r\n        }\r\n    }\r\n\r\n\r\n    appsauthorlist = (applist) => {\r\n        var ids = applist.map(x => x.id).join();\r\n        fetch(\"appsauthorlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(ids)\r\n\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    applist.forEach((k) => { k.müellif = \"\" });\r\n                    data.forEach((k) => { applist.find(x => x.id == k.appID).müellif += k.userName + \"(\" + k.muellifType + \")  \" });\r\n\r\n                    this.userApps.forEach((k) => { k.müellif = \"\" });\r\n                    data.forEach((k) => { var r = this.userApps.find(x => x.id == k.appID); if (r) r.müellif += k.userName + \"(\" + k.muellifType + \")  \" });\r\n\r\n                    this.setState({ ...this.state, applist: applist });\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    getcontrollerlist = (applist) => {\r\n        var ids = applist.map(x => x.id).join();\r\n        fetch(\"getcontrollerlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(ids)\r\n\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    try {\r\n                        data = JSON.parse(data)\r\n                        applist.forEach((k) => { k.kontrolor = \"\" });\r\n                        this.userApps.forEach((k) => { k.kontrolor = \"\" });\r\n\r\n\r\n                        data.forEach((k) => {\r\n                            if (k.id == k.activeDenetim) {\r\n                                applist.find(x => x.id == k.appID).kontrolor = k.userName\r\n                                applist.find(x => x.id == k.appID).kontrolorNameFamily = k.Name + \" \" + k.Family;\r\n                                this.userApps.find(x => x.appID == k.appID).kontrolor = k.Name + \" \" + k.Family;\r\n                                this.userApps.find(x => x.appID == k.appID).kontrolorNameFamily = k.Name + \" \" + k.Family;\r\n                            }\r\n\r\n                        });\r\n\r\n                        applist.forEach((k) => { k.tümKontrolorler = \"\" });\r\n                        this.userApps.forEach((k) => { k.tümKontrolorler = \"\" });\r\n                        data.forEach((k) => {\r\n                            if (k.id == k.activeDenetim) {\r\n                                var a = applist.find(x => x.id == k.appID);\r\n                                if (a != null) {\r\n                                    if (a.tümKontrolorler != null && a.tümKontrolorler.length > 0)\r\n                                        a.tümKontrolorler += \", \";\r\n                                    a.tümKontrolorler += k.name + \" \" + k.family;\r\n                                }\r\n                                if (a != null) {\r\n\r\n                                    a = this.userApps.find(x => x.appID == k.appID);\r\n                                    if (a.tümKontrolorler != null && a.tümKontrolorler.length > 0)\r\n                                        a.tümKontrolorler += \", \";\r\n                                    a.tümKontrolorler += k.name + \" \" + k.family;\r\n                                }\r\n                            }\r\n                        });\r\n\r\n                        this.setState({ ...this.state, applist: applist });\r\n                        this.appsauthorlist(applist)\r\n                    }\r\n                    catch(error){\r\n                        this.setState({ ...this.state, applist: [] });\r\n                        \r\n                    }\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    getApplicationList() {\r\n        fetch(\"applicationlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                const error = response.statusText;\r\n                console.log(error);\r\n                this.setState({ status: response.statusText })\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    var notremoved = data.filter(x => x.removed != true).sort((a, b) => a.basvuruTarihi<b.basvuruTarihi);\r\n                    this.getcontrollerlist(notremoved);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    getAppTypes() {\r\n\r\n        fetch(\"sureclist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(response.statusText)\r\n                })\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    this.appTypes = value;\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    filterTable(event) {\r\n        const target = event.target;\r\n        const value = target.value.toLowerCase();\r\n        $(\"#myTable td.align-top div.border\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n            for (let index = 0; index < keywords.length; ++index)\r\n                if ($(this).text().toLowerCase().indexOf(keywords[index]) == -1)\r\n                    return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n\r\n\r\n\r\n    generateAyYil(currentUser, istatistic,tarih) {\r\n        istatistic[currentUser].Toplam++;\r\n        if (tarih == null) {\r\n            //istatistic[currentUser].Sonay++;\r\n            //istatistic[currentUser].Sonyil++;\r\n            return;\r\n        }\r\n\r\n        else {\r\n            var h = new Date(tarih);\r\n            var diffTime = Date.now() - h\r\n            const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1;\r\n            if (diffDays < 30) {\r\n                istatistic[currentUser].Sonay++;\r\n            }\r\n            if (diffDays < 365) {\r\n                istatistic[currentUser].Sonyil++;\r\n            }\r\n        }\r\n    }\r\n\r\n\r\n\r\n    generateOpenList(data, users) {\r\n        var appglist = [];\r\n        appglist.push([]); \r\n        var istatistic = [];\r\n\r\n        data = data.filter(apprec => passFilter(apprec, this.filter, this.userName) == true)\r\n\r\n        var filteredUserApps = this.userApps.filter(rec => rec.deliverDate != null && rec.deliverDate != \"\" && rec.Completed == null)\r\n        filteredUserApps = filteredUserApps.filter(apprec => passFilter(apprec, this.filter, this.userName, this.kabulPerms) == true)\r\n        if (this.selectedDenetim != -1)\r\n            filteredUserApps = filteredUserApps.filter(rec => rec.denetimID == null || rec.denetimID == this.selectedDenetim)\r\n\r\n\r\n\r\n        for (var i = 0; i < data.length; i++) {\r\n            if (data[i].basvuruDurumu == UserPermConstants.Basvuru_Durumu_Havale_Bekliyor) {\r\n                if (data[i].basvuruTipi == null || this.selectedDenetim == -1 || data[i].basvuruTipi == this.denetimlist.find(d => d.id == this.selectedDenetim).name)\r\n                    appglist[0].push(data[i]);\r\n            }\r\n        }\r\n\r\n        for (var j = 0; j < users.length; j++) {\r\n            appglist.push([])\r\n            var currentUser = users[j]\r\n\r\n            if (istatistic[currentUser] == null) {\r\n                istatistic[currentUser] = { \"Gunluk_Ortalama\": 0, \"Kontrol_Ediliyor\": 0, \"Sirada_Bekliyor\": 0, \"Duzeltme_Bekleniyor\": 0,  \"Sonay\": 0, \"Sonyil\":0,\"Toplam\":0 };\r\n            }\r\n            for (var i = 0; i < filteredUserApps.length; i++) {\r\n                if (currentUser != filteredUserApps[i].userName)\r\n                    continue;\r\n                var pass = false;\r\n\r\n\r\n\r\n                if ((filteredUserApps[i].basvuruDurumu == UserPermConstants.Basvuru_Durumu_Kontrol_Ediliyor ||\r\n                    filteredUserApps[i].basvuruDurumu == UserPermConstants.Basvuru_Durumu_Kontrol_Sirada_Bekliyor) \r\n                ) {\r\n                    if (filteredUserApps[i].Started != null && filteredUserApps[i].Started != \"\") {\r\n                        if (filteredUserApps[i].Completed == null || filteredUserApps[i].Completed == \"\") {\r\n                            istatistic[currentUser].Kontrol_Ediliyor++;\r\n                            pass = true;\r\n                        }\r\n\r\n                    }\r\n                    else {\r\n                        istatistic[currentUser].Sirada_Bekliyor++;\r\n                        pass = true;\r\n                    }\r\n                            \r\n                }\r\n                if (filteredUserApps[i].basvuruDurumu == UserPermConstants.Basvuru_Durumu_Kontrol_Tamamlandi\r\n                    || filteredUserApps[i].basvuruDurumu == UserPermConstants.Basvuru_Durumu_Ruhsat_Verildi\r\n                    || filteredUserApps[i].basvuruDurumu == UserPermConstants.Basvuru_Durumu_Iade_Edildi\r\n                    || filteredUserApps[i].basvuruDurumu == UserPermConstants.Basvuru_Durumu_Onay_Verildi\r\n                ) {\r\n                    \r\n                    this.generateAyYil(currentUser, istatistic, filteredUserApps[i].deliverDate)\r\n\r\n                }\r\n                if (filteredUserApps[i].basvuruDurumu == UserPermConstants.Basvuru_Durumu_Duzeltme_Bekleniyor) {\r\n                    if (filteredUserApps[i].Completed == null || filteredUserApps[i].Completed == \"\") {\r\n\r\n                        this.generateAyYil(currentUser, istatistic, filteredUserApps[i].sonDuzeltmeTarihi)\r\n                        istatistic[currentUser].Duzeltme_Bekleniyor++;\r\n                        pass = true;\r\n                        \r\n                    }\r\n\r\n                }\r\n                if (pass == true)\r\n                    appglist[j + 1].push(filteredUserApps[i]);\r\n            }\r\n        }\r\n\r\n        return [appglist, istatistic];\r\n    }\r\n\r\n    findRowCount = (sab, userapps,applist) => {\r\n        if (applist == null || userapps==null)\r\n            return 0;\r\n        var havale = applist.filter(rec =>rec.removed != true && rec.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Havale_Bekliyor);\r\n        havale = havale.filter(rec => passFilter(rec, this.mysablons[sab].filter, this.userName, this.kabulPerms) == true);\r\n\r\n        var r = userapps.filter(apprec =>\r\n            apprec.removed != true&&\r\n            passFilter(apprec, this.mysablons[sab].filter, this.userName) == true && (this.selectedDenetim == null || this.selectedDenetim == -1 || this.denetimlist.find(d => d.id == this.selectedDenetim).name == apprec.basvuruTipi));\r\n\r\n        r = r.filter(rec => rec.deliverDate != null && rec.deliverDate != \"\" && rec.Completed == null && rec.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Havale_Bekliyor)\r\n        return r.length + havale.length;\r\n    }\r\n\r\n    getKontrolorName = (userName) => {\r\n        var r = this.state.applist.find(x => x.kontrolor == userName);\r\n        if (r == null) return userName + \"*\";\r\n        return r.kontrolorNameFamily\r\n    }\r\n\r\n    allowDrop = (event) => {\r\n        event.preventDefault();\r\n    }\r\n\r\n\r\n\r\n    drop = (event, userName) => {\r\n        event.preventDefault();\r\n        var data = event.dataTransfer.getData(\"text\").split(' ');\r\n        var appid = Number(data[0])\r\n        var currentHolder = null;\r\n        var currentMappingID = null;\r\n        if (event.ctrlKey == false && data.length > 1) {\r\n            currentHolder = this.userDenetimPermissions.filter(x => x.userName == data[1])[0]\r\n            currentMappingID = Number(data[2])\r\n        }\r\n        //if (event.ctrlKey==false&& dapp.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Havale_Bekliyor &&\r\n        //    dapp.basvuruDurumu != UserPermConstants.Basvuru_Durumu_Onay_Bekliyor) {\r\n        //    alert(\"o o\");\r\n\r\n        //}\r\n\r\n        this.setState({ ...this.state, \"droppedAppId\": appid, \"currentMappingID\": currentMappingID, \"currentHolder\": currentHolder, \"userdenetimlist\": this.userDenetimPermissions.filter(x => x.userName == userName && this.denetimlist.find(d => d.id == x.role) != null).map(x => <option value={x.role}>{this.denetimlist.find(d => d.id == x.role).name}</option>), \"droppedUser\": this.userDenetimPermissions.filter(x => x.userName == userName)[0] });\r\n        document.getElementById(\"modalbutton\").click();\r\n    }\r\n\r\n    gericek = (id) => {\r\n        //if (mappedusers.length == 1 && window.confirm(\"Başvuruyu, havale sürecine geri göndermek istediğinize emin misiniz?\") == false)\r\n        //    return;\r\n        fetch(\"removeuserprojectmapping\", {\r\n            method: 'POST',\r\n            headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n            body: JSON.stringify(this.state.currentMappingID)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    this.fetchDenetimList();\r\n                    this.getdenetimpermsraw();\r\n                    this.getAppTypes();\r\n                    this.getUserApps();\r\n                    this.getApplicationList();\r\n                    this.fetchUsersWithPermision();\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    mapusertoproject = () => {\r\n\r\n        var mappingdata = { \"appID\": this.state.droppedAppId, \"userName\": this.state.droppedUser.userName, \"denetimId\": document.getElementById(\"mission\").value }\r\n\r\n        if (mappingdata.denetimId == null || mappingdata.userName == null || mappingdata.denetimId == ''\r\n            || mappingdata.userName.length == 0) {\r\n            showErrorMessage(\"Başvuru Tipi veya Kontrolör Hatalı\")\r\n            return;\r\n        }\r\n\r\n        fetch(\"mapusertoproject\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json', 'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(mappingdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    if (value == null) {\r\n                        showErrorMessage(\"Yetkisiz İşlem !\")\r\n                        return;\r\n                    }\r\n                    if (value.id == -1) {\r\n                        showErrorMessage(value.appData)\r\n                        return;\r\n                    }\r\n                    if (this.state.currentHolder == null) {\r\n                        this.fetchDenetimList();\r\n                        this.getdenetimpermsraw();\r\n                        this.getAppTypes();\r\n                        this.getUserApps();\r\n                        this.getApplicationList();\r\n                        this.fetchUsersWithPermision();\r\n                    }\r\n                    else {\r\n                        this.gericek();\r\n                    }\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    renderToGroupCards(tabledata) {\r\n\r\n\r\n\r\n\r\n        var seldenetimlist = [...this.denetimperms];\r\n        if (this.selectedDenetim != -1)\r\n            seldenetimlist = this.denetimperms.filter(r => r.denetimId == this.selectedDenetim);\r\n        var users = [... new Set(seldenetimlist.map(r => r.userName))]; //remove duplicates\r\n\r\n        var restb = this.generateOpenList(tabledata, users);\r\n\r\n        var tablegdata = restb[0];\r\n        var istats = restb[1];\r\n\r\n\r\n\r\n\r\n        //<div className=\"mt-1\" style={{ overflow: \"scroll\", width: \"100%\", height: \"80vh\", display: \"block\", \"overflow-x\": \"auto\", \"white-space\": \"nowrap\" }}>\r\n        var mytable = <div >\r\n            <div className=\"table-responsive mainpagescroll mt-1\" style={{ \"height\": \"74vh\" }} id=\"tableparent\">\r\n                <table className=\"table\" id=\"myTable\" >\r\n\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0 }} className=\"bg-light \">\r\n                        <tr className=\"m-0 p-0 text-center\">\r\n                            {tablegdata.map((grec, idx) =>\r\n                                idx == 0 ? <th className=\"m-0 p-0 align-top\" style={{ \"width\": \"1%\", \"min-width\": \"17vw\" }}>\r\n\r\n                                    <div className=\"border-bottom border-3 ms-2 me-2  border-info fw-bold\">\r\n                                        <a class=\"text-decoration-none text-primary\" data-bs-toggle=\"collapse\" type=\"button\" aria-expanded=\"false\" data-bs-target=\".multi-collapse\" aria-controls={\" Userstatistic1 Userstatistic2\"}>\r\n                                            Havale Bekleynler\r\n\r\n                                        </a>\r\n                                        ({tablegdata[0].length})\r\n                                    </div>\r\n                                </th> :\r\n                                    grec.length > 0 && < th className=\"m-0 p-0  align-top\" style={{ \"width\": \"1%\", \"min-width\": \"17vw\" }} onDragOver={this.allowDrop} onDrop={(event) => this.drop(event, users[idx - 1])}>\r\n                                        <div className={\"border-3 ms-2 me-2 align-top fw-bold\"} style={{ \"border-bottom\": \"4px solid \" + this.bordercolors[idx % 4] }} >\r\n                                            {this.getKontrolorName(users[idx - 1])}\r\n                                            ({tablegdata[idx].length})\r\n\r\n\r\n                                        </div>\r\n                                        {/* <div className={\"border-3 ms-3 me-3 mb-2\"} style={{ \"border-bottom\": \"4px solid \" + this.bordercolors[idx % 4] }}>*/}\r\n                                        {this.role.indexOf(UserPermConstants.Kontrolor_Istatistiklerini_Gorme) >= 0 && <div className=\"mb-2\">\r\n                                            {istats[users[idx - 1]] != null && <UserStatisticCard Statistic={istats[users[idx - 1]]} color={this.bordercolors[idx % 4]} userid={idx - 1} />}\r\n                                        </div>}\r\n\r\n                                    </th>\r\n\r\n                            )}\r\n\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody >\r\n\r\n                        <tr className=\"\" >\r\n                            {tablegdata.map((grec, idx) => (grec.length > 0 || idx == 0) &&\r\n                                <td className=\"align-top\">\r\n                                    {grec.map(apprec => <AppCard appTypes={this.appTypes} apprec={apprec} colnames={this.state.colnames} kontrolUserName={idx > 0 ? users[idx - 1] : null} drop={this.drop} changeComponent={this.changeComponent} />\r\n                                    )}\r\n                                </td>\r\n\r\n                            )} </tr>\r\n                    </tbody>\r\n                </table>\r\n\r\n            </div>\r\n        </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    renderToCards(tabledata) {\r\n        var mytable =\r\n            <div className=\"mt-1\">\r\n                <div className='row p-2' id=\"myTable\">\r\n                    {tabledata.map(apprec =>\r\n                        passFilter(apprec, this.filter, this.userName, this.kabulPerms) == true &&\r\n                        <div className=\"col-12 col-sm-6 col-md-4 col-lg-3 p-0\">\r\n                            <AppCard appTypes={this.appTypes} apprec={apprec} colnames={this.state.colnames} changeComponent={this.changeComponent} />\r\n                        </div>\r\n                    )}\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    render() {\r\n        var tabledata = <div class=\"row\" > <div class=\"col-12 text-center\"><div className=\"spinner-border \" role=\"status\"></div></div></div>;\r\n        if (this.state.applist != null &&  this.kabulPerms!=null) {\r\n            tabledata = this.renderToGroupCards(this.state.applist);\r\n        }\r\n\r\n\r\n        var selectedSablonIndex = window.localStorage.getItem('sablonisyuku');\r\n        if (selectedSablonIndex == null)\r\n            selectedSablonIndex = 0;\r\n\r\n        return <div style={{ \"background-color\": \"#f5f8fa\" }} >\r\n            <div  >\r\n                <div className=\"  align-items-center justify-content-center\" >\r\n                    <div class=\"row rounded p-2 ms-2 me-2 justify-content-left bg-white\" >\r\n                        <div class=\"col-md-3\">\r\n                            {this.denetimlist != null ? <select className=\"form-select form-select-sm\" id=\"denetimSelect\" name=\"denetimSelect\" onChange={this.handleDenetimChange}>\r\n                                <option value={-1} selected></option> {this.denetimlist.map((s, idx) => <option value={s.id} > {s.name}</option>)}\r\n                            </select> : \"\"}\r\n                        </div>\r\n                        <div class=\"col-md-4\">\r\n                            <input className=\"form-control form-control-sm\" id=\"myInput\" type=\"text\" placeholder=\"Arama...\" onKeyUp={this.filterTable} />\r\n                        </div>\r\n\r\n                    </div>\r\n                </div>\r\n                <div className=\"p-2\">\r\n                    <div className=\"overflow-auto w-100 mainpagescroll\" style={{ \"white-space\": \"nowrap\" }}>\r\n                        {this.mysablons != null ? this.mysablons.map((s, idx) => <button className={\"btn  me-2 text-decoration-none border mb-1 mt-1\" + (selectedSablonIndex == idx ? \" btn-primary\" : \" btn-link\")} onClick={() => this.handleSablonChange(idx)}> {s.name} ({this.findRowCount(idx, this.userApps, this.state.applist)})</button>) : \"\"}\r\n                    </div>\r\n                </div>\r\n\r\n                {tabledata}\r\n            </div>\r\n\r\n\r\n\r\n            <button id=\"modalbutton\" hidden={true} className=\"text-decoration-none btn  btn-sm btn-primary p-1\" data-bs-toggle=\"modal\" data-bs-target=\"#mylModal\"> </button>\r\n            <div class=\"modal  fade\" id=\"mylModal\" tabindex=\"-1\" aria-labelledby=\"exampleModalLabel\" aria-hidden=\"true\">\r\n                <div class=\"modal-dialog modal-md\">\r\n                    <div class=\"modal-content\">\r\n                        <div class=\"modal-header\">\r\n                            <h5 class=\"modal-title\" id=\"exampleModalLabel\">Başvuru Havel ({this.state.droppedAppId})</h5>\r\n                            <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\r\n                        </div>\r\n\r\n                        <div class=\"modal-body\">\r\n                            {this.state.droppedUser != null && <div class=\"row\">\r\n                                <div class=\"col-4\">\r\n                                    {this.state.currentHolder == null ? \"\" : this.state.currentHolder.name + \" \" + this.state.currentHolder.family + \" (\" + this.state.currentHolder.userName + \") \"}\r\n                                    {this.state.currentHolder == null ? \"\" : <span><br /><i class=\"fa fa-arrow-down\"></i><br /></span>}\r\n                                    {this.state.droppedUser.name + \" \" + this.state.droppedUser.family + \" (\" + this.state.droppedUser.userName + \")\"}\r\n                                </div>\r\n                                <div class=\"col-8\">\r\n                                    <select className=\"form-select form-select-sm\" id=\"mission\" name=\"denetimId\">\r\n                                        {this.state.userdenetimlist}\r\n\r\n                                    </select>\r\n                                </div>\r\n                            </div>}\r\n                        </div>\r\n                        <div class=\"modal-footer\">\r\n                            <button type=\"button\" class=\"btn btn-sm btn-primary\" data-bs-dismiss=\"modal\" onClick={this.mapusertoproject}>Havale Et</button>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n\r\n    }\r\n\r\n};\r\n","export default __webpack_public_path__ + \"static/media/textlogo.4cf42bc9.png\";","export default __webpack_public_path__ + \"static/media/textlogowh.006f20e1.png\";","import React, { useState, useEffect } from 'react';\r\nimport { useGlobalState, logout, isEmpty, sendpost } from '../GlobalState.js';\r\nimport 'react-calendar/dist/Calendar.css';\r\nimport CommonSideBar from '../Header/CommonSideBar.js';\r\nimport TopHeader from '../Header/TopHeader.js';\r\nimport KurumLogo from '../Dashboard/KurumLogo.js';\r\nimport Login from \"../User/Login.js\";\r\nimport Home from \"../Dashboard/Home\";\r\nimport $ from 'jquery';\r\nimport UserComData from '../User/UserComData.js';\r\nimport UserFilePanel from '../User/UserFilePanel.js';\r\nimport crypto from 'crypto-js';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport Application from '../Application/Application.js';\r\nimport EimzaOnaylarim from '../Eimza/EimzaOnaylarim.js';\r\nimport CBSBenzerAdalar from '../Setting/CBSBenzerAdalar.js';\r\n\r\n\r\nexport default function Dashboard(props) {\r\n\r\n\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [token, setToken] = useGlobalState('token');\r\n    //const [loginfromedevlet, setLoginfromedevlet] = useGlobalState('loginfromedevlet');\r\n    const [userName, setuserName] = useGlobalState('userName');\r\n    const [userData, setUserdata] = useGlobalState('userData');\r\n    const [activepannel, setActivepannel] = useState(null);\r\n    const [showSideBar, setshowSideBar] = useState(window.innerWidth < 680 ? false : true)\r\n    const [onmobile, setOnMobile] = useState(window.innerWidth < 680 ? true : false)\r\n    var [globalData, setGlobalData] = useGlobalState('globalData');\r\n\r\n    const [fileNameList, setfileNameList] = useState(null);\r\n    const [files, setFiles] = useState(null);\r\n\r\n\r\n    const fetchGeneralData = () => {\r\n        fetch(\"getgeneraldata\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    document.querySelector('meta[name=\"description\"]').setAttribute(\"content\", data.belediyeName);\r\n                    setGlobalData(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchUserData = () => {\r\n        fetch(\"getuser\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                //ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    var userdata = JSON.parse(data);\r\n                    setUserdata(userdata);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    useEffect(() => {\r\n\r\n        try {\r\n            if (window.appData != null) {\r\n                setActivepannel(< Application appData={window.appData} targetEimza={window.eimza} changeComponent={setActivepannel} />)\r\n            }\r\n            if (window.selectedImzaList != null) {\r\n                setActivepannel(<EimzaOnaylarim topluImzaList={window.selectedImzaList} imzalayan={window.userData} changeComponent={setActivepannel} />)\r\n            }\r\n            if (window.searchAda != null) {\r\n                setActivepannel(<CBSBenzerAdalar ada={window.searchAda} changeComponent={setActivepannel} />)\r\n            }\r\n\r\n            fetchUserData();\r\n\r\n\r\n\r\n            var token = window.localStorage.getItem('Token');\r\n            if (isEmpty(token) == false) {\r\n                var key = token.substring(0, 16);\r\n                var c = token.substring(16);\r\n                var decrypted = crypto.AES.decrypt(c, key)\r\n                var decrypted = decrypted.toString(crypto.enc.Utf8);\r\n                decrypted = JSON.parse(decrypted);\r\n                decrypted = decrypted.value;\r\n                var userName = decrypted.split('|')[0];\r\n                setRole(decrypted.split('|')[1]);\r\n                setuserName(userName);\r\n                fetchGeneralData();\r\n                if (fileNameList == null)\r\n                    userfilenamelist();\r\n                if (files == null)\r\n                    fetchFiles();\r\n            }\r\n        }\r\n        catch (ex) {\r\n            window.localStorage.setItem('Token', '');\r\n        }\r\n    }, []);\r\n\r\n\r\n    useEffect(() => {\r\n        try {\r\n            if (isEmpty(token))\r\n                return;\r\n            fetchUserData();\r\n            window.localStorage.setItem('Token', token);\r\n\r\n\r\n            var key = token.substring(0, 16);\r\n            var c = token.substring(16);\r\n            var decrypted = crypto.AES.decrypt(c, key)\r\n            var decrypted = decrypted.toString(crypto.enc.Utf8);\r\n            decrypted = JSON.parse(decrypted);\r\n            decrypted = decrypted.value;\r\n            var userName = decrypted.split('|')[0];\r\n            setRole(decrypted.split('|')[1]);\r\n            setuserName(userName);\r\n            fetchGeneralData();\r\n\r\n            if (fileNameList == null)\r\n                userfilenamelist();\r\n            if (files == null)\r\n                fetchFiles();\r\n\r\n        }\r\n        catch (ex) {\r\n            window.localStorage.setItem('Token', '');\r\n        }\r\n\r\n    }, [token]);\r\n\r\n    const fetchFiles = () => {\r\n        sendpost(\"getuserfiles\", userName, \"filesspin\",\r\n            (response) => {\r\n                response.json().then(async data => {\r\n                    setFiles(data);\r\n\r\n                });\r\n            });\r\n    }\r\n\r\n\r\n    const userfilenamelist = () => {\r\n        fetch(\"userfilenamelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setfileNameList(value);\r\n                   \r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const eksikdosyatespit = () => {\r\n        var ekseik = \"\";\r\n        var i, j;\r\n        for (i = 0; i < fileNameList.length; i++) {\r\n            console.log(i + \" \" + fileNameList[i].userType + \"  \" + userData.userType);\r\n            if (fileNameList[i].userType != null && userData.userType != null && fileNameList[i].userType.split(',').some(t => userData.userType.includes(t.trim())) == false)\r\n                continue;\r\n\r\n            if (fileNameList[i].zorunlu != true)\r\n                continue;\r\n\r\n\r\n            for (j = 0; j < files.length; j++) {\r\n                if (fileNameList[i].id == files[j].typeId)\r\n                    break;\r\n            }\r\n            if (j == files.length) {\r\n                ekseik += \" \" + fileNameList[i].name;\r\n            }\r\n        }\r\n        return ekseik;\r\n    }\r\n\r\n\r\n\r\n    var match = document.cookie.match(new RegExp('(^| )' + 'ED-Token' + '=([^;]+)'));\r\n    if (match) {\r\n        //setLoginfromedevlet(true)\r\n        var t = match[2];\r\n        var value = decodeURIComponent(t);\r\n        value = Buffer.from(value, 'base64').toString('utf-8')\r\n        var k = value.substring(0, 16)\r\n        value = value.substring(16);\r\n        var c = crypto.AES.encrypt(JSON.stringify({ value }), k).toString();\r\n        document.cookie = 'ED-Token=; Max-Age=-99999999;';\r\n        setToken(k + c);\r\n    }\r\n\r\n\r\n\r\n\r\n    if (isEmpty(role) && match == null) {\r\n        return <Login />;\r\n    }\r\n\r\n    const telemailconfirmed = (userData) => {\r\n        if (userData != null)\r\n            setUserdata(userData)\r\n\r\n    }\r\n    const closeOnMobile = () => {\r\n        if (onmobile == true) {\r\n            setshowSideBar(false);\r\n        }\r\n    }\r\n    const showPanel = (name) => {\r\n        closeOnMobile();\r\n        setActivepannel(name);\r\n    }\r\n    window.changeComponent = showPanel;\r\n\r\n  /*  if (userData == null || fileNameList == null || files == null) {\r\n        return \"Lütfen bekleyin\";\r\n    }*/\r\n\r\n\r\n    if (userData != null && (userData.telConfirmed != true || userData.emailConfirmed != true)) {\r\n        return <div className=\"row\" style={{ height: \"100vh\" }}>\r\n\r\n            {showSideBar == true && <div className=\"col-4 col-md-2 p-0 m-0 sideBarContainer collapse show\" >\r\n                <div style={{ position: \"fixed\", \"z-index\": -1, \"font-size\": \"24px\" }}> <a href=\"#\" onClick={() => { setshowSideBar(false) }} className=\"text-decoration-none text-white\"> <i className=\"fa fa-angle-double-left\"></i></a></div>\r\n            </div>\r\n            }\r\n            <div className={showSideBar == true ? \"col-8 col-md-10 pt-1\" : \"col-12\"} >\r\n                {showSideBar == false && <div style={{ position: \"fixed\", \"z-index\": -1, \"font-size\": \"24px\" }}> <a href=\"#\" onClick={() => { setshowSideBar(true) }} className=\"text-decoration-none text-muted\"> <i className=\"fa fa-navicon\"></i></a></div>}\r\n                <TopHeader showPanel={showPanel} />\r\n                {/*<div className=\"text-center fw-bold text-danger mb-2 mt-4\" >*/}\r\n                {/*    Devam Etmek için Telefon Numarınız ve Email Adresinizi Doğrulayın Lutfen*/}\r\n                {/*</div>*/}\r\n                <div className=\"text-center fw-bold text-danger mb-2 mt-1\" >\r\n                    İlk olarak Kod Gönder butonuna basınız. Ardından Doğrula butonuna basarak açılan kutucuğa cep telefonunuza gelmiş olan şifreyi giriniz\r\n                </div>\r\n                <div className=\"text-center fw-bold text-danger mb-4 \" >\r\n                    Telefon veya Email Adresinizi Güncelle Butonuyla Değiştirebilrsiniz\r\n                </div>\r\n\r\n                <UserComData userdata={userData} showCode={false} confirmed={telemailconfirmed} />\r\n            </div>\r\n        </div>\r\n    }\r\n\r\n    if (userData != null && fileNameList != null && files != null) {\r\n        var eksik = eksikdosyatespit();\r\n        if (eksik.length > 0) {\r\n            return <div className=\"row\" style={{ height: \"100vh\" }}>\r\n\r\n                {showSideBar == true && <div className=\"col-4 col-md-2 p-0 m-0 sideBarContainer collapse show\" >\r\n                    <div style={{ position: \"fixed\", \"z-index\": -1, \"font-size\": \"24px\" }}> <a href=\"#\" onClick={() => { setshowSideBar(false) }} className=\"text-decoration-none text-white\"> <i className=\"fa fa-angle-double-left\"></i></a></div>\r\n                </div>\r\n                }\r\n                <div className={showSideBar == true ? \"col-8 col-md-10 pt-1\" : \"col-12\"} >\r\n                    {showSideBar == false && <div style={{ position: \"fixed\", \"z-index\": -1, \"font-size\": \"24px\" }}> <a href=\"#\" onClick={() => { setshowSideBar(true) }} className=\"text-decoration-none text-muted\"> <i className=\"fa fa-navicon\"></i></a></div>}\r\n                    <TopHeader showPanel={showPanel} />\r\n\r\n\r\n                    <div className=\"text-center fw-bold text-danger mb-2 mt-1\" >\r\n                        Zorunlu eksik dosyalarınz bulunmaktadır. Lütfen * ile belirtilen dosyaları yukleyiniz\r\n                    </div>\r\n                    <div className=\"text-danger mb-3\" >\r\n                        {eksik}\r\n                    </div>\r\n                    <div className=\"col-md-6 col-12\" >\r\n                        <UserFilePanel userdata={userData} key=\"key\" refreshFiles={(f) => setFiles(f)} />\r\n                    </div>\r\n                </div>\r\n\r\n\r\n            </div>\r\n        }\r\n    }\r\n\r\n\r\n\r\n    var mainpanelclass = \"col-8 col-md-10 pt-1 overflow-auto\";\r\n    var sidemenuclass = \"col-4 col-md-2 p-0 m-0 sideBarContainer collapse show\";\r\n    if (showSideBar == false) {\r\n        mainpanelclass = \"col-12\";\r\n        sidemenuclass = \"col-0 d-none\";\r\n    }\r\n    else if (onmobile == true) {\r\n        mainpanelclass = \"col-0 d-none\";\r\n        sidemenuclass = \"col-12 p-0 m-0 sideBarContainer collapse show\";\r\n    }\r\n\r\n\r\n    return (\r\n        <div className=\"row\" style={{ height: \"100vh\" }}>\r\n            {showSideBar == true && <div className={sidemenuclass} >\r\n                <div style={{ position: \"fixed\", \"z-index\": -1, \"font-size\": \"24px\" }}> <a href=\"#\" onClick={() => { setshowSideBar(false) }} className=\"text-decoration-none text-white\"> <i className=\"fa fa-angle-double-left\"></i></a></div>\r\n                <div className=\"text-center\">\r\n                    <a href=\"#\" onClick={() => { setshowSideBar(false) }} className=\"text-decoration-none text-white\">\r\n\r\n                        <div><img src='./getfile?sec=klogo.png' width=\"100px\" style={{ maxHeight: \"100px\" }} id=\"unilogo\" /></div>\r\n                        {/* {globalData != null ? globalData.belediyeName : \"\"}*/}\r\n                    </a>\r\n                </div>\r\n                <div style={{ \"z-index\": 2, height: 'calc(100vh - 128px - 80px)' }} className=\"overflow-auto leftmenudiv\" > <CommonSideBar setComponent={showPanel} /> </div>\r\n                <div className=\"text-center text-white\" >\r\n                    <KurumLogo />\r\n                </div>\r\n            </div>\r\n            }\r\n            <div className={mainpanelclass} style={{ height: \"100%\" }} id=\"activepaneldiv\">\r\n                {showSideBar == false && <div style={{ position: \"fixed\", \"z-index\": -1, \"font-size\": \"24px\" }}> <a href=\"#\" onClick={() => { setshowSideBar(true) }} className=\"text-decoration-none text-muted\"> <i className=\"fa fa-navicon\"></i></a></div>}\r\n                <TopHeader showPanel={showPanel} />\r\n                {globalData != null && <div key={globalData} style={{ height: \"91%\" }}>\r\n                    {activepannel == null ? <Home changeComponent={setActivepannel} /> : activepannel}\r\n                </div>}\r\n            </div>\r\n\r\n\r\n        </div >\r\n\r\n    );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, useGlobalState } from '../GlobalState.js';\r\n\r\nexport default function KurumLogo(props) {\r\n    var [globalData, setGlobalData] = useGlobalState('globalData');\r\n   \r\n    \r\n    useEffect(() => {\r\n       \r\n    }, []);\r\n\r\n    return (\r\n        <div key={globalData}>\r\n            <img src={require('../Header/textlogowh.png').default} width=\"128px\"/>\r\n            {/*<img src={require('./klogo.png').default}  />*/}<br/>\r\n           \r\n        </div>\r\n    );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport Application from \"./Application.js\"\r\nimport { ajaxFail, removeTurkcLow, calcBusinessDays, sendpost, sendget, setHtmlTag } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\nimport ApplicationList from './ApplicationList.js';\r\nimport CBSBenzerAdalar from '../Setting/CBSBenzerAdalar.js';\r\n\r\nexport default function SearchAppTKGM(props) {\r\n\r\n    const [MahalleList, setMahalleList] = useState([]);\r\n    const [adaList, setAdaeList] = useState([]);\r\n    const [selectedAda, setSelectedAda] = useState(null);\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchMahalleList();\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n    const fetchMahalleList = () => {\r\n        sendget(\"getmahallelist\", \"mahalle_snipper\", (response) => {\r\n            response.json().then(value => {\r\n                setMahalleList(value);\r\n            })\r\n        });\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked.toString() : target.value;\r\n        setHtmlTag(\"adaparsel\", -1, \"selectedIndex\");\r\n        fetchAdaList(value)\r\n    }\r\n\r\n\r\n    const fetchAdaList = (mahalleid) => {\r\n\r\n        sendget(\"getadalistbyid?mahalle=\" + mahalleid, \"mahalle_snipper\", (response) => {\r\n            response.json().then(value => {\r\n                setAdaeList(value)\r\n            })\r\n        });\r\n    }\r\n\r\n    const getCBSADA = (id) => {\r\n        sendget(\"getcbsda?ada=\" + id, \"mahalle_snipper\", (response) => {\r\n            if (response.status==200) {\r\n                response.json().then(value => {\r\n\r\n                    setSelectedAda(value);\r\n\r\n                })\r\n            }\r\n            else {\r\n                setSelectedAda(null);\r\n            }\r\n        } )\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    return (<div>\r\n        <div className=\"row\">\r\n            <div className=\"col-6\">\r\n                <span className=\"h5 text-primary\">TKGM'den ilgili Ada/Parselleri Ara</span>\r\n                <span class=\"ms-2 spinner-border spinner-border-sm\" id=\"mahalle_snipper\" hidden></span>\r\n\r\n            </div>\r\n            <div className=\"col-6 text-end\">\r\n\r\n                <button className=\"btn btn-sm btn-primary\" onClick={(e) => props.changeComponent(<ApplicationList changeComponent={props.changeComponent} />)}>\r\n                    Geri Dön\r\n                </button>\r\n            </div>\r\n        </div>\r\n\r\n        <div className=\"row\">\r\n            <div className=\"col-3\">\r\n                Mahalle\r\n                <select className=\"form-select form-select-sm\" id=\"Mahalle\" name=\"mahalle\" onChange={handleInputChange} >\r\n                    <option value={-1}></option>\r\n                    {MahalleList.map(x => <option value={x.id}>{x.name}</option>)}\r\n                </select>\r\n\r\n            </div>\r\n            <div className=\"col-3\">\r\n                Ada/Parsel\r\n                <select className=\"form-select form-select-sm\" id=\"adaparsel\" name=\"adaparsel\" onChange={(e) => getCBSADA(e.target.value)} >\r\n                    <option value={-1}></option>\r\n                    {adaList.map(x => <option value={x.matchedCbsId} >{x.name}</option>)}\r\n                </select>\r\n            </div>\r\n        </div>\r\n\r\n        {selectedAda != null && < div className=\"row mt-1\">\r\n            <div className=\"col-12\">\r\n\r\n                <CBSBenzerAdalar ada={selectedAda} key={selectedAda} />\r\n            </div>\r\n\r\n        </div>}\r\n\r\n\r\n    </div>\r\n    );\r\n\r\n\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport Application from \"./Application.js\"\r\nimport { useGlobalState, exportExcel, passFilter, removeTurkcLow, isEmpty, showErrorMessage, showConfirmMessage, getObjectFromArray } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport { userInfo } from 'os';\r\nimport SearchAppTKGM from \"./SearchAppTKGM.js\"\r\n\r\n\r\nexport default function ApplicationList(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userName, setUserName] = useGlobalState('userName');\r\n    var changeComponent = props.changeComponent;\r\n\r\n    const [applist, setApplist] = useState(null);\r\n    const [showArchived, setShowArchived] = useState(false);\r\n\r\n    const [spinnerClass, setSpinnerClass] = useState(\"fa fa-refresh\");\r\n\r\n    const [appGroups, setAppGroups] = useState([]);\r\n    const [appfieldlist, setAppfieldlist] = useState(null);\r\n\r\n\r\n    const [devamstat, setDevamstat] = useState(null);\r\n    const [filter, setFilter] = useState(null);\r\n    const [surecList, setSurecList] = useState([]);\r\n    const [mysablonlist, setMysablonlist] = useState(null);\r\n    const [colnames, setColnames] = useState([\"id\", \"basvuruTarihi\", \"basvuruTipi\", \"basvuruDurumu\", \"ada\", \"mahalle\", \"mevki\", \"basvuruYapan\"]);\r\n    const [sortDirection, setSortDirection] = useState({});\r\n    const [userKabulListPerms, setuserKabulListPerms] = useState([]);\r\n    const [denetimList, setDenetimList] = useState([]);\r\n\r\n    var sortField = null;\r\n\r\n    // const [archivedAppList, setArchivedAppList] = useGlobalState('archivedAppList');\r\n    // const [archivedAppDate, setArchivedAppDate] = useGlobalState('archivedAppDate');\r\n\r\n    useEffect(() => {\r\n        if (surecList.length > 0)\r\n            getSablon();\r\n    }, [surecList])\r\n\r\n    //useEffect(() => {\r\n    //    if (archivedAppDate == \"  \")//this is not defult value to prevent first call\r\n    //        getSablon();\r\n    //}, [archivedAppDate]);\r\n\r\n\r\n\r\n    useEffect(() => {\r\n\r\n\r\n        getAppGroupList();\r\n        fetchkabullistperm();\r\n        fetchappfieldlist();\r\n        getDenetimList();\r\n    }, [])\r\n\r\n\r\n    const getDenetimList = () => {\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setDenetimList(value);\r\n                    fetchSurecList();\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const stopSpinner = () => {\r\n        setSpinnerClass(\"fa fa-refresh\")\r\n    }\r\n\r\n    const startSpinner = () => {\r\n        setSpinnerClass(\"spinner-grow spinner-grow-sm\")\r\n    }\r\n\r\n    const fetchappfieldlist = () => {\r\n        fetch(\"appfieldlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setAppfieldlist(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const myCompare = (a, b) => {\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n        if (sortField == \"basvuruDurumu\") {\r\n            av = getDurumName(av);\r\n            bv = getDurumName(bv);\r\n        }\r\n        var ret = 1;\r\n        if (sortDirection[sortField] == \"ZA\")\r\n            ret = -1;\r\n        if (av == null && a.appData != null && a.appData.length > 2) {\r\n            var oa = a.appDataObject[sortField];\r\n            if (oa != null && oa.value != null)\r\n                av = oa.value;\r\n        }\r\n        if (bv == null && b.appData != null && b.appData.length > 2) {\r\n            var ob = b.appDataObject[sortField];\r\n            if (ob != null && ob.value != null)\r\n                bv = ob.value;\r\n        }\r\n        if (av == null && bv != null)\r\n            return -1 * ret;\r\n        if (av != null && bv == null)\r\n            return ret;\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * ret;\r\n\r\n        if (av < bv) {\r\n            return -1 * ret;\r\n        }\r\n        if (av > bv) {\r\n            return ret;\r\n        }\r\n        return 0;\r\n    }\r\n    const myCompareRev = (a, b) => {\r\n        return -1 * myCompare(a, b)\r\n    }\r\n\r\n    const showTitle = (name) => {\r\n        if (name == \"id\") return \"Id\";\r\n        if (name == \"securityToken\") return \"securityToken\";\r\n        if (name == \"boylam\") return \"Boylam\";\r\n        if (name == \"enlem\") return \"Enlem\";\r\n        if (name == \"basvuruTipi\") return \"Başvuru Tipi\";\r\n        if (name == \"mevki\") return \"Mevki\";\r\n        if (name == \"mahalle\") return \"Mahalle\";\r\n        if (name == \"ada\") return \"Ada/Parsel\";\r\n        if (name == \"başvuruSahibi\") return \"Başvuru Sahibi\";\r\n        if (name == \"basvuruTarihi\") return \"Başvuru Tarihi\";\r\n        if (name == \"basvuruYapan\") return \"Başvuru Yapan\";\r\n        if (name == \"basvuruDurumu\") return \"Başvuru Durumu\";\r\n        if (name == \"onKontrol\") return \"Ön Kontrol\";\r\n        if (name == \"appdata\") return \"Appdata\";\r\n        if (name == \"arsaSahibiTel\") return \"Taşınmaz Sahibi Tel\";\r\n        if (name == \"arsaSahibiTC\") return \"Taşınmaz Sahibi TC\";\r\n        if (name == \"sokak\") return \"Sokak\";\r\n        if (name == \"no\") return \"No\";\r\n        if (name == \"arsaSahibi\") return \"Taşınmaz Sahibi\";\r\n        if (name == \"idariMahalle\") return \"İdari Mahalle\";\r\n        if (name == \"removed\") return \"Silinen\";\r\n        if (name == \"ucret\") return \"Ücret\";\r\n        if (name == \"eimzagonder\") return \"E-İmza Gönder\";\r\n        if (name == \"updateCount\") return \"Updatecount\";\r\n        if (name == \"duzeltmeSayi\") return \"Düzeltme Sayısı\";\r\n        if (name == \"removeComment\") return \"Removecomment\";\r\n        if (name == \"iadeNedeni\") return \"İade Nedeni\";\r\n        if (name == \"iadeEden\") return \"İade Eden\";\r\n        if (name == \"sonDuzeltmeTalebiTarihi\") return \"Son Düzeltme Talep Tarihi\";\r\n        if (name == \"sonDuzeltmeTarihi\") return \"Son Düzeltme Tarihi\";\r\n        if (name == \"kontrolBaslamaTarihi\") return \"Kontrol Başlama Tarihi\";\r\n        if (name == \"kontrolBitmeTarihi\") return \"Kontrol Bitme Tarihi\";\r\n        if (name == \"onayVerilmeTarihi\") return \"Onay Verilme Tarihi\";\r\n        if (name == \"kontrolSiraTarihi\") return \"Kontrol Sıra Tarihi\";\r\n        if (name == \"eimzaAcilmaTrihi\") return \"Eimza Açılma Tarihi\";\r\n        if (name == \"iadeTarihi\") return \"İade Tarihi\";\r\n        if (name == \"taslakOlusturmaTarihi\") return \"Taslak Oluşturma Tarihi\";\r\n        if (name == \"kabulEdilmeTarihi\") return \"Kabul Edilme Tarihi\";\r\n        if (name == \"surecTamamlanmaTarihi\") return \"Süreç Tamamlanma Tarihi\";\r\n        if (name == \"lastUpdateTime\") return \"Son Güncelleme Tarihi\";\r\n        if (name == \"basvuruSahibi\") return \"Başvuru Sahibi\";\r\n        if (name == \"vekaletenBasvuru\") return \"Vekaleten Başvuru\";\r\n        if (name == \"vekaletDosyaname\") return \"Vekalet Dosya İsmi\";\r\n        if (name == \"vekilName\") return \"Vekil İsmi\";\r\n        if (name == \"vekilTC\") return \"Vekil TC\";\r\n        if (name == \"vekilTel\") return \"Vekil Telefon\";\r\n        if (name == \"temp\") return \"Temp\";\r\n        if (name == \"archived\") return \"Arşiv\";\r\n        if (name == \"kontrolor\") return \"Kontrolör\";\r\n        if (name == \"müellif\") return \"Müellif\";\r\n        if (name == \"tümKontrolorler\") return \"Tüm Kontrolörler\";\r\n        if (name == \"ilkHavaleTarihi\") return \"İlk Havale Tarihi\";\r\n        if (name == \"sonHavaleTarihi\") return \"Son Havale Tarihi\";\r\n\r\n\r\n        return name;\r\n    }\r\n\r\n\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == \"ZA\") {\r\n            sortDirection[sortField] = \"AZ\";\r\n        }\r\n        else {\r\n            sortDirection[sortField] = \"ZA\";\r\n        }\r\n        var temp = [...applist]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setApplist(temp);\r\n    }\r\n    const getSortedList = (data, temp) => {\r\n        if (data.sort != null && data.sort.length > 0) {\r\n            var sf = data.sort.split(\",\");\r\n            if (sf.length > 0) {\r\n                for (var i = 0; i < sf.length; i++) {\r\n                    if (sf[i][0] == '-') {\r\n                        sortField = sf[i].substring(1);\r\n                        temp.sort(myCompareRev);\r\n                    }\r\n                    else {\r\n                        sortField = sf[i];\r\n                        temp.sort(myCompare);\r\n                    }\r\n                }\r\n            }\r\n\r\n        }\r\n        return temp;\r\n    }\r\n\r\n    const getAppGroupList = () => {\r\n\r\n        fetch(\"getappgrouplist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    value.unshift({ name: \"Tümü\" })\r\n                    setAppGroups(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    const getSablon = () => {\r\n        startSpinner();\r\n        fetch(\"getmysablon\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n\r\n            else {\r\n                var list = null;\r\n                try {\r\n                    response.json().then(async slist => {\r\n                        list = slist.filter(r => r.forListView == true);\r\n                        if (list != null && list.length > 0) {\r\n                            var data = list[0];\r\n                            if (window.localStorage.getItem('sablon') != null && list[window.localStorage.getItem('sablon')] != null)\r\n                                data = list[window.localStorage.getItem('sablon')];\r\n                            else\r\n                                window.localStorage.setItem('sablon', data);\r\n                            if (data.filter != null && data.filter.length > 0)\r\n                                setFilter(data.filter);\r\n                            if (data.colNames != null && data.colNames.length > 0) {\r\n                                var d = data.colNames.replaceAll('\"', \"\");\r\n                                if (d.length > 0)\r\n                                    setColnames(d.split(\",\"));\r\n                            }\r\n                        }\r\n                        setMysablonlist(list);\r\n                        getApplicationList(list, \"0\");\r\n                    });\r\n                }\r\n                catch (ex) {\r\n                    //getApplicationList(null, \"0$\" +archivedAppDate);\r\n\r\n                }\r\n\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const appsauthorlist = (applist, sablonlist) => {\r\n\r\n        fetch(\"appsauthorlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(\"ALL\")\r\n\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n\r\n                    data.forEach((k) => {\r\n                        var app = applist.find(x => x.id == k.appID);\r\n                        \r\n                        if (app == null)\r\n                            return;\r\n                        var m = k.userName + \"(\" + k.muellifType + \")\";\r\n                        if (app.muellifCount < 2) {\r\n                            if (app.müellif != null && app.müellif.length > 0)\r\n                                app.müellif += \", \";\r\n                            app.müellif += m\r\n                        }\r\n                        app.allmuelliflist += m + \"  \";\r\n                        app.muellifCount += 1;\r\n                       \r\n                    });\r\n                    stopSpinner();\r\n                    setApplist(applist.slice(0))\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const getcontrollerlist = (applist, sablonlist) => {\r\n        var ids = applist.map(x => x.id).join();\r\n        if (ids.length == 0) {\r\n            stopSpinner();\r\n            setApplist(applist)\r\n            return;\r\n\r\n        }\r\n        fetch(\"getcontrollerlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(ids)\r\n\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    if (isEmpty(data) == false) {\r\n                        data = JSON.parse(data)\r\n                        applist.forEach((apprec) => {\r\n                            apprec[\"Kontrol Durumu\"] = [];\r\n                            apprec[\"IsAdimlari\"] = [];\r\n                        });\r\n\r\n                        data.forEach((k) => {\r\n                            var apprec = applist.find(x => x.id == k.appID);\r\n\r\n                            if (k.sira == k.activeDenetim) {\r\n                                if (isEmpty(apprec.kontrolor) == false) {\r\n                                    apprec.kontrolor += \", \";\r\n                                    apprec.kontrolorNameFamily += \", \";\r\n                                }\r\n                                apprec.kontrolor += k.userName;\r\n                                apprec.kontrolorNameFamily += k.Name + \" \" + k.Family;\r\n                            }\r\n\r\n                           // if (k.userName == userName) {\r\n                                var denetimName = getObjectFromArray(denetimList, \"id\", k.denetimID).name;\r\n                                if (k.sira == k.activeDenetim) {\r\n\r\n                                    if (isEmpty(k.Started) && k.duzeltmeDurum != true) {\r\n                                       \r\n                                        apprec[\"IsAdimlari\"].push(\"(\" + denetimName + \"-\" + getDurumName(UserPermConstants.Basvuru_Durumu_Kontrol_Sirada_Bekliyor) /*+\"-\"+ k.Name + \" \" + k.Family*/ +\")\")\r\n                                    }\r\n\r\n                                    if (isEmpty(k.Started) == false && isEmpty(k.Completed)) {\r\n                                        apprec[\"IsAdimlari\"].push(\"(\" + denetimName + \"-\" + getDurumName(UserPermConstants.Basvuru_Durumu_Kontrol_Ediliyor) /*+ \"-\"+ k.Name + \" \" + k.Family*/ + \")\")\r\n\r\n                                    }\r\n                                    if (isEmpty(k.Started) && isEmpty(k.duzeltmeIste) == false && k.duzeltmeDurum == true) {\r\n                                        apprec[\"IsAdimlari\"].push(\"(\" + denetimName + \"-\" + getDurumName(UserPermConstants.Basvuru_Durumu_Duzeltme_Bekleniyor) /*+ \"-\"+ k.Name + \" \" + k.Family*/ + \")\")\r\n                                    }\r\n\r\n                                }\r\n\r\n                                if (isEmpty(k.Completed) == false) {\r\n                                    apprec[\"IsAdimlari\"].push(\"(\" + denetimName + \"-\" + getDurumName(UserPermConstants.Basvuru_Durumu_Kontrol_Tamamlandi) /*+ \"-\"+ k.Name + \" \" + k.Family*/ + \")\")\r\n                                }\r\n\r\n\r\n\r\n                            if (k.userName == userName) {\r\n\r\n                                if (isEmpty(k.Started) && k.duzeltmeDurum != true && k.sira == k.activeDenetim) {\r\n                                    apprec[\"Kontrol Durumu\"].push(getDurumName(UserPermConstants.Basvuru_Durumu_Kontrol_Sirada_Bekliyor));\r\n                                }\r\n\r\n                                if (isEmpty(k.Started) == false && isEmpty(k.Completed) && k.sira == k.activeDenetim) {\r\n                                    apprec[\"Kontrol Durumu\"].push(getDurumName(UserPermConstants.Basvuru_Durumu_Kontrol_Ediliyor) )\r\n                                }\r\n\r\n                                if (isEmpty(k.Completed) == false) {\r\n                                    apprec[\"Kontrol Durumu\"].push(getDurumName(UserPermConstants.Basvuru_Durumu_Kontrol_Tamamlandi));\r\n                                }\r\n\r\n                                if (isEmpty(k.Started) && isEmpty(k.duzeltmeIste) == false && k.duzeltmeDurum == true && k.sira == k.activeDenetim) {\r\n                                    apprec[\"Kontrol Durumu\"].push(getDurumName(UserPermConstants.Basvuru_Durumu_Duzeltme_Bekleniyor));\r\n                                }\r\n                            }\r\n\r\n\r\n                           \r\n\r\n                        });\r\n                    }\r\n                    stopSpinner();\r\n                    setApplist(applist)\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const fillAuthoresAndControllers = (applist) => {\r\n        applist.forEach(x => {\r\n            if (x.appData != null) x.appDataObject = JSON.parse(x.appData)\r\n\r\n            x.tümKontrolorler = \"\"\r\n            x.tümKontrolorlerUserNames = \"\"\r\n            x.müellif = \"\";\r\n            x.muellifCount = 0;\r\n            x.totallContolorCount = 0;\r\n            x.activeContolorCount = 0;\r\n            x.allmuelliflist = \"\";\r\n            x.kontrolorNameFamily = \"\"\r\n            x.kontrolor = \"\"\r\n            x.müellifKullanıcıAdı = \"\"\r\n\r\n            if (x.temp != null) {\r\n                var persons = x.temp.split(\"$\");\r\n                //  x.başvuruSahibi = persons[0];\r\n\r\n                if (isEmpty(persons[0]) == false) {\r\n                    var muelliflist = persons[0].split(\",\");\r\n\r\n                    muelliflist.filter(k => isEmpty(k) == false).forEach((k) => {\r\n                        var mdata = k.split(\"%\");\r\n                        if (x.temp.includes(userName + \"%\"))\r\n                            x.müellifKullanıcıAdı += mdata[0] + \" \";\r\n                        var m = mdata[1]\r\n                        if (x.muellifCount < 2) {\r\n                            if (!isEmpty(x.müellif))\r\n                                x.müellif += \", \";\r\n                            x.müellif += m\r\n                        }\r\n                        x.allmuelliflist += m + \"  \";\r\n                        x.muellifCount += 1;\r\n                    });\r\n                }\r\n\r\n\r\n\r\n                if (isEmpty(persons[1]) == false) {\r\n                    var kdata = persons[1].split(\",\");\r\n                    kdata.filter(k => isEmpty(k) == false).forEach((k) => {\r\n                        var mdata = k.split(\"%\");\r\n                        if (isEmpty(x.tümKontrolorler) == false) {\r\n                            x.tümKontrolorler += \", \";\r\n                            x.tümKontrolorlerUserNames += \", \";\r\n                        }\r\n                        x.tümKontrolorler += mdata[1];\r\n                        x.tümKontrolorlerUserNames += mdata[0];\r\n                    });\r\n                }\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const showArchiveList = () => {\r\n        var show = document.getElementById(\"archiveCheckBox\").checked;\r\n        startSpinner();\r\n        if (show == true) {\r\n            fetch(\"applicationlist?removedstatus=archived\", {\r\n                method: 'GET',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                }\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n\r\n                    response.json().then(async data => {\r\n\r\n                        fillAuthoresAndControllers(data);\r\n\r\n                        setApplist(applist.concat(data));\r\n                        stopSpinner()\r\n                    });\r\n                }\r\n            });\r\n        }\r\n        else {\r\n            var noarch = applist.filter(x => x.archived != true)\r\n            setApplist(noarch);\r\n            stopSpinner()\r\n        }\r\n    }\r\n\r\n\r\n    const getApplicationList = (sablonlist, removed) => {\r\n        fetch(\"applicationlist?removedstatus=\" + removed, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n\r\n\r\n\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n\r\n                response.json().then(async applist => {\r\n\r\n                    /* var lastUpdateTime = archivedAppDate;*/\r\n\r\n                    fillAuthoresAndControllers(applist);\r\n\r\n\r\n                    /*   setArchivedAppDate(lastUpdateTime);*/\r\n\r\n\r\n                    //if (sablonlist != null\r\n                    //    && window.localStorage.getItem('sablon') != null\r\n                    //    && sablonlist[window.localStorage.getItem('sablon')] != null\r\n                    //) {\r\n                    //    var templist = getSortedList(sablonlist[window.localStorage.getItem('sablon')], archivedAppList);\r\n                    //    setArchivedAppList(templist);\r\n                    //}\r\n                    //else\r\n                    //    setArchivedAppList([...archivedAppList]);\r\n                    ////setApplist(archivedAppList);\r\n\r\n                    //if (archivedAppList.length > 0)\r\n                    getcontrollerlist(applist, sablonlist);\r\n                    //else\r\n                    //                      stopSpinner();\r\n\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const filterTable = (event) => {\r\n        var textbox = document.getElementById(\"mySearchInput\")\r\n        if (textbox == null)\r\n            return;\r\n        var value = removeTurkcLow(textbox.value);\r\n        var keywords = value.split(\" \");\r\n\r\n        $(\"#myTable tr\").filter(function () {\r\n            var rowtext = \"\";\r\n            $(this).children().each(function () {\r\n                rowtext += $(this).text() + \" \";\r\n            });\r\n\r\n            var t1 = removeTurkcLow(rowtext);\r\n\r\n            for (let index = 0; index < keywords.length; ++index) {\r\n                if (t1.indexOf(keywords[index]) == -1) {\r\n                    return $(this).toggle(false);\r\n                }\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n\r\n\r\n        document.getElementById(\"totalrec\").innerHTML = $(\"#myTable tr:visible\").length + \" kayıt\";\r\n    }\r\n\r\n    const getcurrentFilters = () => {\r\n        var cl = colnames;\r\n        var val = []\r\n        val.push(document.getElementById(\"mySearchInput\").value);\r\n        for (var c = 0; c < cl.length; c++) {\r\n            val.push(document.getElementById(cl[c]).value);\r\n        }\r\n        return val;\r\n    }\r\n\r\n\r\n    //const applyFilter = (filters) => {\r\n    //    var cl = colnames;\r\n    //    if (isEmpty(filters[0]) == false)\r\n    //        document.getElementById(\"mySearchInput\").value = filters[0];\r\n    //    for (var c = 0; c < cl.length; c++) {\r\n    //        if (isEmpty(filters[c + 1]) == false && document.getElementById(cl[c]) != null)\r\n    //            document.getElementById(cl[c]).value = filters[c + 1];\r\n    //    }\r\n    //}\r\n\r\n\r\n    const fetchkabullistperm = () => {\r\n        fetch(\"kabullistpermsnames\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(userName)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setuserKabulListPerms(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const filterColumn = (root) => {\r\n        var cl = colnames;\r\n        $(root).find(\"#myTable tr\").filter(function () {\r\n\r\n            for (var c = 0; c < cl.length; c++) {\r\n                var keywordElem = root.getElementById(cl[c]);\r\n                var td = $(this).children().eq(c);\r\n                if (keywordElem != null && isEmpty(keywordElem.value) == false) {\r\n                    var keyword = keywordElem.value;\r\n                    var pass = true;\r\n                    if (keyword.startsWith(\"-\")) {\r\n                        pass = false\r\n                        keyword = keyword.substr(1);\r\n                    }\r\n                    if (keyword.length == 0) break;\r\n                    td.attr('style', 'background: #fff8dd !important');\r\n                    var t1 = removeTurkcLow(td.text());\r\n                    var t2 = removeTurkcLow(keyword);\r\n                    if ((t1.indexOf(t2) == -1) == pass)\r\n                        return $(this).toggle(false);\r\n                }\r\n                else\r\n                    td.removeAttr('style');\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n\r\n        if (root.getElementById(\"totalrec\") != null && $(\"#myTable tr:visible\") != null)\r\n            root.getElementById(\"totalrec\").innerHTML = $(\"#myTable tr:visible\").length + \" kayıt\";\r\n    }\r\n\r\n\r\n    const handleGroupChange = () => {\r\n        var sab = document.getElementById(\"groupSelect\").value;\r\n        var data = appGroups[sab];\r\n        setDevamstat(data);\r\n\r\n    }\r\n\r\n    const handleSablonChange = (sab) => {\r\n\r\n        window.localStorage.setItem('sablon', sab);\r\n        var data = mysablonlist[sab];\r\n        if (data.filter != null)\r\n            setFilter(data.filter);\r\n        if (data.colNames != null && data.colNames.length > 0) {\r\n            var d = data.colNames.replaceAll('\"', \"\");\r\n            if (d.length > 0) {\r\n                var temp = [...applist];\r\n                temp = getSortedList(data, temp);\r\n                setApplist(temp);\r\n                setColnames(d.split(\",\"));\r\n            }\r\n        }\r\n    }\r\n\r\n    const fetchSurecList = () => {\r\n\r\n        fetch(\"sureclist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    value.hashtable = {};\r\n                    value.forEach(element => value.hashtable[element.id] = element.name);\r\n                    setSurecList(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const deleteApp = (app) => {\r\n\r\n        if (app.removed != true) {\r\n            var comment = window.prompt(\"Lütfen Silme Nedenini Açıklayınız\")\r\n            if (comment == null || comment.length == 0) {\r\n                showErrorMessage(\"Açıklama Boş Olamaz\", \"Lütfen Silme Nedenini Yazınız\");\r\n                return;\r\n            }\r\n        }\r\n        app.removeComment = comment;\r\n\r\n        fetch(\"removeapp\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(app)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    getApplicationList(mysablonlist, \"0\");\r\n                });\r\n            }\r\n        });\r\n\r\n\r\n    }\r\n\r\n\r\n    const getDurumName = (i) => {\r\n\r\n        var r = surecList.find(element => element.id == i);\r\n        if (r == null) return i;\r\n        return r.name;\r\n    }\r\n\r\n    const reduceTotalNames = (str, num) => {\r\n        if (str==null || str.split==null)\r\n            return str;\r\n\r\n        if (num == null)\r\n            num = 2;\r\n        if (isEmpty(str)) return str;\r\n        var parts = str.split(',')\r\n        if (parts.length <= num)\r\n            return str;\r\n\r\n        var vis = parts.slice(0, num).join();\r\n        return <span> {vis}, {\"+\" + (parts.length - num)} <span hidden>{str}</span> </span>;\r\n    }\r\n\r\n    const findRowCount = (sab, tabledata) => {\r\n        var r = tabledata.filter(apprec =>\r\n            passFilter(apprec, mysablonlist[sab].filter, userName, userKabulListPerms, appfieldlist) == true && (devamstat == null || devamstat.appState == undefined || devamstat.appState.split(\",\").includes(apprec.basvuruDurumu + \"\")));\r\n        return r.length;\r\n    }\r\n\r\n    const generateColumnHeader = (c) => {\r\n\r\n        var t = showTitle(c)\r\n        if (t.length > 14) {\r\n            t = t.substr(0, 12) + \"...\";\r\n        }\r\n        return t;\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const renderToList = (tabledata) => {\r\n\r\n\r\n        if (tabledata == null || tabledata.length == 0)\r\n            return <div className=\"w-100 text-center\" >Kayıt Yok</div>;\r\n        var devamarray = [];\r\n        if (devamstat != null && devamstat.appState != undefined)\r\n            devamarray = devamstat.appState.split(\",\");\r\n\r\n\r\n        // apprec.removed != true  is required becous after removing an app we dont read the app list again\r\n        var filteredList = tabledata.filter(apprec => apprec.removed != true && passFilter(apprec, filter, userName, userKabulListPerms, appfieldlist) == true && (devamarray.length == 0 || devamarray.includes(apprec.basvuruDurumu + \"\")))\r\n\r\n        var rows = filteredList.map(apprec =>\r\n            <tr key={apprec.id} role=\"button\" className=\"v-hover\" onClick={() => { changeComponent(<Application key={apprec.id} appData={apprec} changeComponent={changeComponent} denetimList={denetimList} surecList={surecList} backButton={<ApplicationList changeComponent={props.changeComponent} filters={getcurrentFilters()} />} />) }} >\r\n                {colnames.map(c => {\r\n                    if (apprec[c] != null) {\r\n                        if (c == \"basvuruDurumu\") return <td >{surecList.hashtable[apprec[c]]}</td>\r\n                        else if (c == \"müellif\") {\r\n                            return <td title={apprec.allmuelliflist}>\r\n                                {apprec[c]}{apprec.muellifCount > 2 ? (\", +\" + (apprec.muellifCount - 2)) : \"\"}\r\n                            </td>\r\n                        }\r\n                        else if (c == \"kontrolor\") {\r\n                            return <td title={apprec.kontrolorNameFamily}>{reduceTotalNames(apprec.kontrolorNameFamily,3)}</td>\r\n                        }\r\n                        else if (c == \"tümKontrolorler\") {\r\n                            return <td title={apprec.tümKontrolorler}>{reduceTotalNames(apprec.tümKontrolorler,3)}</td>\r\n                        }\r\n                        else if (c == \"Kontrol Durumu\") {\r\n                            return <td title={apprec[\"Kontrol Durumu\"].join()}>{reduceTotalNames(apprec[\"Kontrol Durumu\"].join(),3)}</td>\r\n                        }\r\n                        else if (c == \"IsAdimlari\") {\r\n                            return <td title={apprec[\"IsAdimlari\"].join()}>{reduceTotalNames(apprec[\"IsAdimlari\"].join(), 3)}</td>\r\n                        }\r\n                        else return <td >{apprec[c]}</td>\r\n                    }\r\n                    try {\r\n                        var appDData = apprec.appDataObject;\r\n                        if (appDData != null && appDData[c] != null) {\r\n                            if (appDData[c].type != null && appDData[c].type == \"checkbox\") {\r\n                                return <td className=\"text-center\"><input type=\"checkbox\" className=\"form-check-input p-0 \" checked={appDData[c].value} /></td>\r\n                            }\r\n                            return <td >{appDData[c].value}</td>\r\n                        }\r\n                    }\r\n                    catch (ex) {\r\n                        return <td>{ex.toString()}</td>\r\n                    }\r\n\r\n                    return <td></td>\r\n                })}\r\n\r\n                <td style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\", \"font-size\": \"20px\" }}>\r\n                    {((userName == apprec.basvuruYapan && apprec.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Taslak) || (role != null && role.indexOf(UserPermConstants.Basvuru_Silme) > -1)) && <a href=\"/#\" onClick={(event) => {\r\n                        event.stopPropagation();\r\n                        if (apprec.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Taslak) {\r\n                            showConfirmMessage(\"Silmek Istediğinzden Emin misiniz?\", \"Taslak aşamasındaki başvuru silinecektir.\", \"Evet Sil\", \"Hayır İptal Et\", () => { setTimeout(() => deleteApp(apprec), 100) });\r\n                        }\r\n                        else\r\n                            showConfirmMessage(\"Silmek Istediğinzden Emin misiniz?\", \"Taslak Olmayan Başvuruları Silmek Beklenmeyen Hatalara Sebep Olabilir.\", \"Evet Sil\", \"Hayır İptal Et\", () => { setTimeout(() => deleteApp(apprec), 100) });\r\n\r\n                    }} className=\"text-decoration-none material-icons align-middle\"  >delete</a>}\r\n                </td>\r\n            </tr>\r\n        );\r\n\r\n        var selectedSablonIndex = window.localStorage.getItem('sablon');\r\n        if (selectedSablonIndex == null)\r\n            selectedSablonIndex = 0;\r\n\r\n        var mytable =\r\n            <div className=\"\" key={selectedSablonIndex}>\r\n                <div className=\"p-2\">\r\n                    <div className=\"overflow-auto w-100 mainpagescroll pb-1\" style={{ \"white-space\": \"nowrap\" }}>\r\n                        {mysablonlist.map((s, idx) => <button className={\"btn  me-2 text-decoration-none border  mt-1\" + (selectedSablonIndex == idx ? \" btn-primary\" : \" btn-link\")} onClick={() => handleSablonChange(idx)}> {s.name} ({findRowCount(idx, tabledata)})</button>)}\r\n                    </div>\r\n                </div>\r\n\r\n\r\n\r\n\r\n                <div className=\"table-responsive mainpagescroll\" style={{ \"transform\": \"rotateX(180deg)\" }}>\r\n                    <table className='table  table-vdstriped  mt-0 mb-0' style={{ \"transform\": \"rotateX(180deg)\" }} id=\"listtable\">\r\n                        <thead className=\"p-0\">\r\n                            {colnames.map((c, idx) =>\r\n                                <th style={{ verticalAlign: \"bottom\" }} className=\"pt-0 m-0\">\r\n                                    <div>\r\n                                        <button className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\" onClick={() => sortList(c)} title={c}> {generateColumnHeader(c)}</button>\r\n                                    </div>\r\n                                    <div>\r\n                                        <input type=\"text\" className=\"form-control form-control-sm p-0 m-0\" id={c} placeholder=\"\" name={c} onChange={() => filterColumn(document)} />\r\n                                    </div>\r\n                                </th>\r\n                            )}\r\n\r\n                            <th id=\"totalrec\" key={rows.length}>{rows.length} kayıt</th>\r\n                        </thead>\r\n                        <tbody id=\"myTable\">\r\n                            {rows}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n    const applyFilter = (filters) => {\r\n        var cl = colnames;\r\n        if (isEmpty(filters[0]) == false)\r\n            document.getElementById(\"mySearchInput\").value = filters[0];\r\n        for (var c = 0; c < cl.length; c++) {\r\n            if (isEmpty(filters[c + 1]) == false && document.getElementById(cl[c]) != null)\r\n                document.getElementById(cl[c]).value = filters[c + 1];\r\n        }\r\n    }\r\n\r\n\r\n    var tabledata = <div class=\"d-flex justify-content-center\"><div class=\"spinner-border\" role=\"status\"></div></div>\r\n\r\n    if (applist != null && appfieldlist != null) {\r\n        tabledata = renderToList(applist);\r\n    }\r\n    if (props.filters != null && document.getElementById(\"myTable\") != null) {\r\n        applyFilter(props.filters)\r\n        filterTable();\r\n        filterColumn(document);\r\n    }\r\n\r\n    return <div id=\"applistroot\">\r\n        {/*<div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" hidden={allready == true} ><div className=\"spinner-border\" ></div></div>*/}\r\n        <div className=\"  align-items-center justify-content-center p-1\" >\r\n\r\n            <div className=\"mt-1 p-2 pb-1 row\" >\r\n                <div class=\"col-md-3 col-12\">\r\n                    <div class=\"form-check\">\r\n                        <input class=\"form-check-input\" type=\"checkbox\" value=\"\" id=\"archiveCheckBox\" onChange={showArchiveList} />\r\n                        <label class=\"form-check-label\" for=\"flexCheckDefault\">\r\n                            Arşiv Dosyaları Göster\r\n                        </label>\r\n                    </div>\r\n                </div>\r\n                <div class=\"col-md-1 col-12 text-end\">\r\n                    Gruplar\r\n                </div>\r\n\r\n                <div className=\"col-12 col-md-3\">\r\n\r\n                    {appGroups != null ? <select className=\"form-select form-select-sm\" id=\"groupSelect\" name=\"groupSelect\" onChange={handleGroupChange}>\r\n                        {appGroups.map((s, idx) => <option value={idx} > {s.name}</option>)}\r\n                    </select> : \"\"}\r\n                </div>\r\n                <div className=\"col-12 col-md-3\">\r\n\r\n                    <input className=\"form-control form-control-sm\" id=\"mySearchInput\" type=\"text\" placeholder=\"Arama\" onKeyUp={filterTable} />\r\n\r\n                </div>\r\n                <div className=\"col-12 col-md-2 text-end pt-1\">\r\n                    {role.indexOf(UserPermConstants.Kadastral_Ayarlar) != -1 && <button className=\"btn btn-sm btn-link\" onClick={() => changeComponent(<SearchAppTKGM changeComponent={changeComponent} />)}>\r\n                        <i class=\"fa fa-search\" aria-hidden=\"true\"></i>\r\n                    </button>}\r\n                    <a onClick={() => {\r\n                        startSpinner();\r\n                        getApplicationList(mysablonlist, \"0\");\r\n                    }} href=\"#\" className=\"text-primary\"><i className={spinnerClass} id=\"refreshButton\"></i></a>\r\n                    <a download=\"report.csv\" id=\"downloadlink\" onClick={() => { exportExcel(\"listtable\", \"downloadlink\") }} href=\"#\" className=\"text-decoration-none text-success ms-2\">\r\n                        <i className=\"fa fa-file-excel-o\"></i>\r\n                    </a>\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n            {tabledata}\r\n\r\n        </div>\r\n    </div>\r\n\r\n\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport EImzaListem from './EImzaListem';\r\n\r\n\r\nexport default function EImzaMenu(props) {\r\n\r\n\r\n\r\n    const [eimzalist, setEimzaList] = React.useState(null);\r\n\r\n    useEffect(() => {\r\n        getEimzaList();\r\n    }, []);\r\n\r\n\r\n\r\n    const getEimzaList = () => {\r\n        fetch(\"getmyeimzalist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    if (data != null) {\r\n                        data.forEach(r => r.imza = JSON.parse(r.iadeNedeni));\r\n                    }\r\n                    data = data.filter(r => r.imza.transactionUUID == \" imzam bekleniyor\");\r\n                    \r\n                    setEimzaList(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    var menutxt = \"\";\r\n    if (eimzalist != null && eimzalist.length > 0) {\r\n        var bekleyeneimza = document.getElementById(\"bekleyeneimza\");\r\n        if (bekleyeneimza != null) {\r\n            bekleyeneimza.innerHTML = \" Bekleyen E-İmza: \" + eimzalist.length;\r\n        }\r\n        menutxt = <span id=\"eimzalistemcount\" class=\"badge rounded-pill bg-primary\" > {eimzalist.length}</span>;\r\n    }\r\n\r\n\r\n    return <a href=\"#\" onClick={() => { props.changeComponent(<EImzaListem eimzalist={eimzalist} changeComponent={props.changeComponent} />) }}> <i className=\"fa fa fa-pencil-square-o ps-4\"></i> E-İmza Bekleyenler {menutxt}</a>\r\n}\r\n","import React, { useState, useEffect, createRef } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\n\r\nimport { isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage, useGlobalState, levenshtein } from '../GlobalState.js';\r\nimport { ajaxFail, removeTurkcLow } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\nimport FileSettingList from './FileSettingList.js';\r\n\r\n\r\nexport default function FileSettingDetaile(props) {\r\n    var postdata = {};\r\n    var [rec, setRec] = useState({ ...props.rec });\r\n    const [fileNames, setfileNames] = useState([...props.fileNames.filter(x=>x.name!=null)]);\r\n\r\n   \r\n    postdata[\"FileType\"] = \"\";\r\n    const [listData, setListData] = useState([]);\r\n    const [fileGurups, setFileGrupList] = useState([]);\r\n    const [typeOptions, setTypeOptions] = useState([]);\r\n    const [zoptions, setZOptions] = useState(rec.basvuruTipi != null && rec.basvuruTipi.length > 0 ? rec.basvuruTipi.split(',') : []);\r\n\r\n    var multiselectRef = React.createRef();\r\n\r\n    var sortField = null;\r\n    const [role, setrol] = useGlobalState('role');\r\n    const [roles, setRoles] = useState([]);\r\n\r\n    var ref = createRef();\r\n\r\n    useEffect(() => {\r\n        fetchGrupList();\r\n        fetchFileList();\r\n        getAppTypes();\r\n        fetchRoles();\r\n        $(\"#filenamepage\").on(\"click\", function (e) {\r\n            const windowElement = document.getElementById('floatingWindow');\r\n            windowElement.style.display = 'none';\r\n        });\r\n    }, [])\r\n\r\n\r\n    const fetchRoles = () => {\r\n        fetch(\"getrolelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setRoles(value)\r\n                })\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n\r\n    const savefilename = () => {\r\n\r\n\r\n        if (isEmpty(rec.name)) {\r\n            showErrorMessage(\"Dosya İsmi Boş Olamaz\");\r\n            return;\r\n        }\r\n\r\n        if (isEmpty(rec.gurupid)) {\r\n            showErrorMessage(\"Dosya Grubu Boş Olamaz\");\r\n            return;\r\n        }\r\n        if (isEmpty(rec.fileType)) {\r\n            showErrorMessage(\"Dosya Tipi  Boş Olamaz\");\r\n            return;\r\n        }\r\n        if (isEmpty(rec.fileSize)) {\r\n            rec.fileSize = null;\r\n        }\r\n        fetch(\"savefilename\", {\r\n\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    window.changeComponent(<FileSettingList />)\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const updatefilename = (rec) => {\r\n\r\n        fetch(\"updatefilename\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    showSuccessMessage(\"Bilgiler Güncellenmiştir.\")\r\n                    window.changeComponent(<FileSettingList />)\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n    $('#dosyaadi').on('keypress', function (event) {\r\n        var regex = new RegExp(\"^[a-zA-Z0-9_()#&%!üğşöçı ÇŞÜĞİÖ+-]+$\");\r\n        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n        if (!regex.test(key)) {\r\n            event.preventDefault();\r\n            return false;\r\n        }\r\n    });\r\n\r\n\r\n\r\n\r\n\r\n    const getAppTypes = () => {\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    var opt = [];\r\n                    for (var x of value) {\r\n                        if(x.isadimi!=true)\r\n                        opt.push(x.name)\r\n                    }\r\n                    setTypeOptions(opt);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchGrupList = () => {\r\n\r\n        fetch(\"filegroupslist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    var i = 0;\r\n                    setFileGrupList(value);\r\n                    fetchFileList();\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchFileList = () => {\r\n        fetch(\"filenamelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value.trim();\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n\r\n   \r\n\r\n\r\n    const showWindow = () => {\r\n        const input = document.getElementById('dosyaadi');\r\n        const windowElement = document.getElementById('floatingWindow');\r\n        const inputText = input.value.toLowerCase();\r\n        const matchedItems = fileNames\r\n            .map(item => ({\r\n                item,\r\n                similarity: levenshtein(inputText.toLowerCase(), item.name.toLowerCase())\r\n            }))\r\n            .filter(({ similarity }) => similarity > 0.1) // Only keep items with some similarity\r\n            .sort((a, b) => b.similarity - a.similarity);\r\n\r\n        if (matchedItems.length > 0 && matchedItems[0].similarity == 1)\r\n            document.getElementById('kaudetbut').disabled = true;\r\n        else\r\n            document.getElementById('kaudetbut').disabled = false;\r\n\r\n        if (matchedItems.length > 0 && inputText !== '') {\r\n            windowElement.innerHTML = \"<div class='text-danger border-bottom border-primary fw-bold'>Daha önce eklediğiniz benzer isimdeki dosyalar</div>\" +\r\n                matchedItems.map(item =>\r\n                    `<div class='border-bottom fw-bold text-dark' style='opacity:${0.2 + item.similarity}'>\r\n                    <button class='btn btn-link btn-sm text-decoration-none shadow-none' \r\n                            onclick=\"window.similarItemSelect(${item.item.id},'${item.item.name}')\">\r\n                        ${item.item.name}\r\n                    </button>\r\n                </div>`).join('');\r\n            const rect = input.getBoundingClientRect();\r\n            windowElement.style.left = rect.left + 3 + 'px';\r\n            windowElement.style.top = rect.bottom + 5 + 'px';\r\n            windowElement.style.display = 'block';\r\n        } else {\r\n            windowElement.style.display = 'none';\r\n        }\r\n    }\r\n\r\n\r\n    window.similarItemSelect = (id,name) => {\r\n        showConfirmMessage(name + \" kaydının bilgileri yüklensin mı?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            document.getElementById('kaudetbut').disabled = false;\r\n            window.changeComponent(<FileSettingDetaile rec={fileNames.find(x => x.id == id)} fileNames={fileNames} key={id} />);\r\n        })\r\n    }\r\n\r\n\r\n    var mus = document.getElementById(\"KonMultiSelect\");\r\n    if (mus != null) {\r\n        if (mus.disabled == true) {\r\n            if (!mus.classList.contains('bg-pasif')) {\r\n                mus.classList.add(\"bg-pasif\");\r\n            }\r\n        }\r\n        else {\r\n            mus.classList.remove(\"bg-pasif\");\r\n            mus.classList.add(\"bg-white\");\r\n        }\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"p-2 rounded-3\" style={{ \"background-color\": \"#EDEDF7\", \"min-height\": \"100vh\" }} id=\"filenamepage\">\r\n            <div className=\"row \" >\r\n\r\n                <div className=\"col-12 col-md-6 \" >\r\n                    <img className=\"rounded-circle \" style={{ width: \"32px\", height: \"32px\" }} src={\"/getuserpic?user=\" + rec.creatorUserName} />\r\n                    <span className=\"me-3\" style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#4b5675\" }}>  {rec.creatorUserName}</span>\r\n                    <span className=\"me-3\" style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#99a1b7\" }}>{rec.crerateTime}</span>\r\n                    <span style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#99a1b7\" }}>Id: {rec.id}</span>\r\n\r\n                </div>\r\n                <div className=\"col-12 col-md-6 text-end  pt-1\" >\r\n                    <button onClick={() => savefilename(rec)} className=\"btn btn-primary btn-sm text-decoration-none me-2\" id=\"kaudetbut\">Kaydet</button>\r\n\r\n                    <button onClick={() => window.changeComponent(<FileSettingList />)} className=\"btn btn-secondary btn-sm text-decoration-none\">Vazgeç</button>\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row mt-3 p-3\" >\r\n                <div className=\"col-12 col-md-6\">\r\n                    <div className=\" bg-white rounded-3\" >\r\n                        <div className=\"p-3 fw-bold border-bottom\" >\r\n                            Genel Özellikler\r\n\r\n                        </div>\r\n                        <div className=\"p-4\" >\r\n                            Dosya Adı <span className=\"text-danger\">*</span>\r\n                            <input type=\"text\" autocomplete=\"off\" className=\"form-control form-control-sm\" name=\"name\" id=\"dosyaadi\" defaultValue={rec.name} onChange={(e) => { updateRecord(rec, e); showWindow() }} key={ rec.id} />\r\n                            <div id=\"floatingWindow\" class=\"floating-window\"></div>\r\n                        </div>\r\n\r\n                        <div className=\"p-4\"  >\r\n                            Dosya Grubu <span className=\"text-danger\">*</span>\r\n                            <select className=\"form-select form-select-sm\" name=\"gurupid\" required={true} onChange={(e) => updateRecord(rec, e)} key={rec.id} >\r\n                                <option ></option>\r\n                                {fileGurups.map(x => <option value={x.id} selected={x.id == rec.gurupid}>{x.name}</option>)}\r\n                            </select>\r\n                            <div class=\"textvmuted\">\r\n                                Dosyanın hangi başlık altında yer alacağını seçebilirsiniz.\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"p-4\" >\r\n\r\n                            Dosya Tipi<span className=\"text-danger\">*</span>\r\n\r\n                            <Multiselect className=\"text-dark p-0\"\r\n                                options={[\".pdf\", \".zip\", \".doc\", \".docx\", \".xls\", \"xlsx\", \".dwg\", \".ncz\", \".txt\", \"image/*\", \"video/*\"]}\r\n                                emptyRecordMsg=\"Başka kayıt yok\"\r\n                                isObject={false}\r\n                                selectedValues={rec.fileType != null && rec.fileType.length > 0 ? rec.fileType.split(',') : []}\r\n                                onSelect={(selectedList, removedItem) => { rec.fileType = selectedList.length == 0 ? null : selectedList.join() }} // Function will trigger on select event\r\n                                onRemove={(selectedList, removedItem) => { rec.fileType = selectedList.length == 0 ? null : selectedList.join() }} // Function will trigger on remove event\r\n                                hidePlaceholder={true}\r\n                            />\r\n                        </div>\r\n\r\n                        <div className=\"p-4\" >\r\n\r\n                            Dosya Boyutu (MB)\r\n\r\n                            <input type=\"number\" min=\"1\" max=\"50\" className=\"form-control form-control-sm \" name=\"fileSize\" defaultValue={rec.fileSize} onChange={(e) => updateRecord(rec, e)} key={rec.id} />\r\n\r\n                            <div className=\"textvmuted\" >\r\n                                Boş bırakılırsa  dosya boyutunda bir sınırlama uygulanmaz.\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n                        <div className=\"p-4\" >\r\n                            Açıklama\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" name=\"aciklama\" defaultValue={rec.aciklama} onChange={(e) => updateRecord(rec, e)} key={rec.id} />\r\n                            <div className=\"textvmuted\" >\r\n                                Dosya hakkında açıklama yazabilirsiniz.\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n\r\n                    </div>\r\n                </div>\r\n                <div className=\"col-12 col-md-6\">\r\n                    <div className=\"bg-white rounded-3\" >\r\n                        <div className=\"p-3 fw-bold border-bottom\" >\r\n                            Görüntüleme ve Yetkilendirme\r\n\r\n                        </div>\r\n                        <div className=\"ps-4 pe-3 mt-2\" >\r\n\r\n                            Başvuru Tipi\r\n                            <Multiselect className=\"text-dark p-0\"\r\n                                options={typeOptions}\r\n                                avoidHighlightFirstOption={true}\r\n                                emptyRecordMsg=\"Başka kayıt yok\"\r\n                                hidePlaceholder={true}\r\n                                isObject={false}\r\n                                selectedValues={rec.basvuruTipi != null && rec.basvuruTipi.length > 0 && typeOptions.length > 0 ? rec.basvuruTipi.split(',') : []}\r\n                                onSelect={(selectedList, removedItem) => {\r\n                                    rec.basvuruTipi = selectedList.length == 0 ? null :    selectedList.join();\r\n                                    setRec({ ...rec })\r\n                                    setZOptions(selectedList);\r\n                                }} // Function will trigger on select event\r\n                                onRemove={(selectedList, removedItem) => {\r\n                                    if (isEmpty(rec.zorunlu) == false && rec.zorunlu.includes(removedItem)) {\r\n                                        var temp = rec.basvuruTipi.split(',')\r\n                                        temp = temp.filter(x => x != removedItem)\r\n                                        rec.zorunlu = temp.join(\",\");\r\n                                    }\r\n                                    rec.basvuruTipi = selectedList.length == 0 ? null : selectedList.join();\r\n                                   setRec({ ...rec })\r\n                                    setZOptions(selectedList);\r\n                                }} // Function will trigger on remove event\r\n\r\n                            />\r\n                            <div class=\"textvmuted\">\r\n                                Hangi başvurularda yüklenmesini istiyorsunuz?\r\n                            </div>\r\n\r\n                        </div>\r\n\r\n\r\n\r\n                        <div className=\"ps-4 pe-3 mt-4\" >\r\n\r\n                            Zorunlu Olan Başvuru Tipleri\r\n\r\n                            <Multiselect className=\"text-dark p-0\"\r\n                                options={zoptions}\r\n                                emptyRecordMsg=\"Başka kayıt yok\"\r\n                                avoidHighlightFirstOption={true }\r\n                                hidePlaceholder={true}\r\n                                isObject={false}\r\n                                selectedValues={rec.zorunlu != null && rec.zorunlu.length > 0 && zoptions.length > 0 ? rec.zorunlu.split(',') : []}\r\n                                onSelect={(selectedList, removedItem) => { rec.zorunlu = selectedList.length == 0 ? null : selectedList.join() }} // Function will trigger on select event\r\n                                onRemove={(selectedList, removedItem) => { rec.zorunlu = selectedList.length == 0 ? null : selectedList.join() }} // Function will trigger on remove event\r\n\r\n                            />\r\n                            <div class=\"textvmuted\">\r\n                                Hangi başvurularda ZORUNLU OLARAK yüklenmesini istiyorsunuz?\r\n                            </div>\r\n\r\n                        </div>\r\n\r\n                        <div className=\"ps-4 pe-3 row mt-4\" >\r\n                            <div class=\"col-3\">\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\"> Kontrolör Dosyası</label>\r\n                            </div>\r\n                            <div class=\"col-1\">\r\n\r\n                                <input type=\"checkbox\" className=\"form-check-input \" name=\"kontrolorDosyasi\" defaultChecked={rec.kontrolorDosyasi} key={rec.id} onChange={(e) => {\r\n                                    var ms = document.getElementById(\"KonMultiSelect\");\r\n                                    ms.disabled = e.target.checked == false;\r\n\r\n\r\n\r\n                                    if (ms.disabled == true) {\r\n                                        ref.current.resetSelectedValues();\r\n                                        if (!ms.classList.contains('bg-pasif')) {\r\n                                            ms.classList.add(\"bg-pasif\");\r\n                                        }\r\n                                    }\r\n                                    else {\r\n                                        ms.classList.remove(\"bg-pasif\");\r\n                                        ms.classList.add(\"bg-white\");\r\n                                    }\r\n                                    updateRecord(rec, e)\r\n                                }} />\r\n                            </div>\r\n                            <div class=\"col-7 p-0 textvmuted\">\r\n                                Dosyayı sadeceözel yetkiye sahip kullanıcıların yükleyebilmesi için işaretleyiniz.\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"ps-4 pe-3 row mt-4\" >\r\n                            <div class=\"col-3\">\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\"> Süreç Sonu Dosyası</label>\r\n                            </div>\r\n                            <div class=\"col-1\">\r\n\r\n                                <input type=\"checkbox\" className=\"form-check-input \" name=\"surecSonu\" defaultChecked={rec.surecSonu} onChange={(e) => {\r\n                                    updateRecord(rec, e)\r\n                                }} />\r\n                            </div>\r\n                            <div class=\"col-7 p-0 textvmuted\">\r\n                                Süreç tamamlanmadan dosya indirilemez.\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"ps-4 pe-3 row mt-4\" >\r\n                            <div class=\"col-3\">\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\"> E-İmza Zorunlu Dosya</label>\r\n                            </div>\r\n                            <div class=\"col-1\">\r\n\r\n                                <input type=\"checkbox\" className=\"form-check-input \" name=\"zorunluEimza\" defaultChecked={rec.zorunluEimza} onChange={(e) => {\r\n                                      updateRecord(rec, e)\r\n                                }} />\r\n                            </div>\r\n                            <div class=\"col-7 p-0 textvmuted\">\r\n                                Başvuruyu göndermek için dosya E-İmzalı olmalıdır. \r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"ps-4 pe-3 mt-4\"  >\r\n                            Kontrolör Dosyası Görme Yetkisi\r\n\r\n                            <fieldset id={\"KonMultiSelect\"} disabled={rec.kontrolorDosyasi != true} >\r\n                                <Multiselect className=\"text-dark p-0 rounded-3 \" \r\n                                    options={roles}\r\n                                    ref={ref}\r\n                                    placeholder=\"Rol\"\r\n                                    emptyRecordMsg=\"Başka Kayıt Yok\"\r\n                                    displayValue=\"name\"\r\n                                    isObject={true}\r\n                                    selectedValues={rec.kontrolorDosyaYetki != null ? rec.kontrolorDosyaYetki.split(',').filter(r => roles.find(x => x.id == r) != null).map(r => roles.find(x => x.id == r)) : []}\r\n                                    onSelect={(selectedList, removedItem) => { rec.kontrolorDosyaYetki = selectedList.length == 0 ? null : selectedList.map(rec => rec.id).join() }} // Function will trigger on select event\r\n                                    onRemove={(selectedList, removedItem) => { rec.kontrolorDosyaYetki = selectedList.length == 0 ? null : selectedList.map(rec => rec.id).join() }} // Function will trigger on remove event\r\n                                />\r\n                            </fieldset>\r\n                            <div class=\"textvmuted\">\r\n                                Bu dosyayı görme yetkisine sahip olacak rolleri seçiniz.\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"p-5\" >\r\n\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { useGlobalState, isEmpty, showSuccessMessage } from '../GlobalState.js';\r\nimport { ajaxFail, removeTurkcLow, showConfirmMessage } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\nimport FileSettingDetaile from './FileSettingDetaile.js';\r\n\r\n\r\nexport default function FileSettingList(props) {\r\n    var postdata = {};\r\n    postdata[\"FileType\"] = \"\";\r\n    const [listData, setListData] = useState([]);\r\n    const [fileGurups, setFileGrupList] = useState([]);\r\n    var multiselectRef = React.createRef();\r\n    var sortField = null;\r\n    const [role, setrol] = useGlobalState('role');\r\n    const [roles, setRoles] = useState([]);\r\n    const [sortDirection, setSortDirection] = useState({});\r\n\r\n    useEffect(() => {\r\n        fetchGrupList();\r\n        fetchFileList();\r\n\r\n        fetchRoles();\r\n    }, [])\r\n\r\n\r\n    const fetchRoles = () => {\r\n        fetch(\"getrolelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setRoles(value)\r\n                })\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n    const updatefilename = (rec) => {\r\n\r\n        fetch(\"updatefilename\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    showSuccessMessage(\"Bilgiler Güncellenmiştir.\")\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == \"ZA\") {\r\n            sortDirection[sortField] = \"AZ\";\r\n        }\r\n        else {\r\n            sortDirection[sortField] = \"ZA\";\r\n        }\r\n\r\n        var temp = [...listData]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setListData(temp);\r\n    }\r\n\r\n\r\n    const myCompare = (a, b) => {\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n        var ret = 1;\r\n        if (sortDirection[sortField] == \"ZA\")\r\n            ret = -1;\r\n\r\n        if (av == null && bv != null)\r\n            return -1 * ret;\r\n        if (av != null && bv == null)\r\n            return 1 * ret;\r\n        if (av == null && bv == null)\r\n            return 0;\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * ret\r\n\r\n        if (av < bv) {\r\n            return -1 * ret;\r\n        }\r\n        if (av > bv) {\r\n            return 1 * ret;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n\r\n\r\n\r\n    const sil = (rec) => {\r\n     \r\n                fetch(\"removefilename\", {\r\n                    method: 'POST',\r\n                    headers: {\r\n                        'Accept': 'application/json',\r\n                        'Content-Type': 'application/json'\r\n                    },\r\n                    body: JSON.stringify(rec)\r\n                }).then(async response => {\r\n                    if (!response.ok) {\r\n                        ajaxFail(response);\r\n                    }\r\n                    else {\r\n                        response.json().then(value => {\r\n                            setListData(value);\r\n                        })\r\n                    }\r\n                })\r\n    }\r\n\r\n    const onSelect1 = (selectedList, selectedItem) => {\r\n        postdata[\"BasvuruTipi\"] = multiselectRef.current.getSelectedItems().join(\", \")\r\n    }\r\n    const onRemove1 = (selectedList, removedItem) => {\r\n        postdata[\"BasvuruTipi\"] = multiselectRef.current.getSelectedItems().join(\", \")\r\n    }\r\n    const onSelect2 = (selectedList, selectedItem) => {\r\n        postdata[\"fileType\"] = selectedList.join(\", \")\r\n    }\r\n    const onRemove2 = (selectedList, removedItem) => {\r\n        postdata[\"fileType\"] = selectedList.join(\", \")\r\n    }\r\n\r\n\r\n    \r\n\r\n\r\n    const fetchGrupList = () => {\r\n\r\n        fetch(\"filegroupslist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setFileGrupList(value);\r\n                    fetchFileList();\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchFileList = () => {\r\n        fetch(\"filenamelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getFileGrupName = (apprec) => {\r\n        var r = fileGurups.find(x => x.id == apprec.gurupid);\r\n        if (r != null) {\r\n            apprec.gurup = r.name;//for sort\r\n            return r.name;\r\n        }\r\n        return \"\";\r\n    }\r\n\r\n\r\n\r\n    const filterColumn = (index) => {\r\n        var cl = [\"id\", \"name\", \"basvuruTipi\", \"gurup\",  \"kontrolorDosyasi\"];\r\n        $(\"#myTable tr\").filter(function () {\r\n\r\n            for (var c = 0; c < cl.length; c++) {\r\n                var keywordElem = document.getElementById(cl[c]);\r\n                var td = $(this).children().eq(c);\r\n                if (keywordElem != null && isEmpty(keywordElem.value) == false) {\r\n                    var keyword = keywordElem.value;\r\n                    var pass = true;\r\n                    if (keyword.startsWith(\"-\")) {\r\n                        pass = false\r\n                        keyword = keyword.substr(1);\r\n                    }\r\n                    if (keyword.length == 0) break;\r\n                    td.attr('style', 'background: #fff8dd !important');\r\n                    var t1 = removeTurkcLow(td.text());\r\n                    var t2 = removeTurkcLow(keyword);\r\n                    if (keyword == \"0\" && td.html().includes(\"checkbox\") && !td.html().includes(\"checked\"))\r\n                        return $(this).toggle(true);\r\n                    if (keyword == \"1\" && td.html().includes(\"checked\"))\r\n                        return $(this).toggle(true);\r\n                    if ((t1.indexOf(t2) == -1) == pass)\r\n                        return $(this).toggle(false);\r\n                }\r\n                else\r\n                    td.removeAttr('style');\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n\r\n\r\n    $('#dosyaadi').on('keypress', function (event) {\r\n        var regex = new RegExp(\"^[a-zA-Z0-9_()#&%!üğşöçı ÇŞÜĞİÖ+-]+$\");\r\n        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n        if (!regex.test(key)) {\r\n            event.preventDefault();\r\n            return false;\r\n        }\r\n    });\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div >\r\n\r\n\r\n                <div className=\"table-responsive mainpagescroll\" style={{ \"height\": \"82vh\" }}>\r\n                    <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                        <thead className=\"text-center\" style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light\">\r\n                           \r\n                                <th width=\"5%\" >\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"id\")}>Id</button>\r\n                                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"\" placeholder=\"\" name=\"id\" onChange={() => filterColumn()} />\r\n                                </th>\r\n                                <th width=\"25%\" ><button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"name\")}>Dosya Adı</button>\r\n                                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" placeholder=\"\" name=\"name\" onChange={() => filterColumn()} />\r\n                                </th>\r\n                                <th width=\"47%\" ><button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"basvuruTipi\")}>Başvuru Türü</button>\r\n                                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"basvuruTipi\" placeholder=\"\" name=\"basvuruTipi\" onChange={() => filterColumn()} />\r\n                                </th>\r\n                                <th width=\"15%\" ><button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"gurup\")}>Grup</button>\r\n                                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"gurup\" placeholder=\"\" name=\"gurup\" onChange={() => filterColumn()} />\r\n                                </th>\r\n                                {/*<th width=\"2%\"><button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"zorunlu\")}>Zorunlu</button>*/}\r\n                                {/*    <input type=\"text\" className=\"form-control form-control-sm\" id=\"zorunlu\" placeholder=\"\" name=\"zorunlu\" onChange={() => filterColumn()} />*/}\r\n                                {/*</th>*/}\r\n                                <th width=\"2%\"><button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"kontrolorDosyasi\")}>Kontrolör</button>\r\n                                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"kontrolorDosyasi\" placeholder=\"\" name=\"kontrolorDosyasi\" onChange={() => filterColumn()} />\r\n                                </th>\r\n                                <th width=\"6%\"></th>\r\n                           \r\n                        </thead>\r\n                        <tbody id=\"myTable\">\r\n\r\n                            {tabledata.map(apprec =>\r\n                                <tr key={apprec.id} className=\"m-0 p-0\">\r\n                                    <td>{apprec.id}</td>\r\n                                    <td>\r\n                                        {apprec.name}\r\n                                    </td>\r\n                                    <td>{apprec.basvuruTipi}\r\n                                    </td>\r\n                                    <td>\r\n                                        {getFileGrupName(apprec)}\r\n                                    </td>\r\n                                    <td className=\"text-center\">\r\n                                        <input type=\"checkbox\" className=\"form-check-input\" name=\"kontrolorDosyasi\" checked={apprec.kontrolorDosyasi == true} />\r\n                                    </td>\r\n\r\n                                    <td className=\"text-end\">\r\n                                        <button onClick={() => window.changeComponent(<FileSettingDetaile rec={apprec} fileNames={tabledata} />)} className=\"btn btn-link btn-sm text-decoration-none text-muted p-0 m-0\">\r\n                                            <span class=\"material-icons\">\r\n                                                edit\r\n                                            </span>\r\n                                        </button>\r\n                                        <button onClick={() => showConfirmMessage(\"Dosya silinsin mı?\",\"Bu işlem geri döndürülemez\",\"Evet Sil\",\"Hayır İptal Et\", ()=>sil(apprec))  } className=\"btn btn-link btn-sm text-decoration-none text-danger p-0 m-0\">\r\n                                            <span class=\"material-icons\"> delete    </span>\r\n                                        </button>\r\n\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    const Add = () => {\r\n        window.changeComponent(<FileSettingDetaile rec={{ fileSize:5}} fileNames={listData} />)\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n\r\n    const filterTable = (event) => {\r\n        const target = event.target;\r\n        const value = target.value;\r\n        $(\"#myTable tr\").filter(function () {\r\n            var keywords = removeTurkcLow(value)\r\n            var rowtext = \"\";\r\n            $(this).each(function () {\r\n                rowtext += $(this).text();\r\n            });\r\n            if (removeTurkcLow(rowtext).indexOf(keywords) == -1) {\r\n                        return $(this).toggle(false);\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n\r\n\r\n\r\n    var listTable = renderTable(listData);\r\n\r\n    return (\r\n        <div >\r\n\r\n\r\n            <div className=\"row m-3\">\r\n                <div className=\"col-12 col-md-3\">\r\n                    <h5>Dosyalar</h5>\r\n                </div>\r\n                <div className=\"col-12 col-md-6\">\r\n                    <input className=\"form-control form-control-sm\" id=\"myInput\" type=\"text\" placeholder=\"Ara\" onKeyUp={filterTable} />\r\n\r\n                </div>\r\n                <div className=\"col-0 col-md-3 text-end\">\r\n                    <button onClick={Add} className=\" btn btn-primary\">Yeni Dosya Oluştur </button>\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\"col-12\">\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { ajaxFail, isEmpty, removeTurkcLow, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\n\r\nexport default function SablonMappingPanel(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState([]);\r\n    const [rolList, setRolList] = useState([]);\r\n    var sablons = props.sablons;\r\n\r\n    const multiselectRef = React.createRef();\r\n\r\n    useEffect(() => {\r\n        fetchSablonMapping();\r\n        fetchRoleList();\r\n    }, [props.sablons])\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n    var sablonSelect = <select className=\"form-select form-select-sm\" id=\"sablonSelect\" name=\"sablonSelect\" onChange={handleInputChange}>\r\n        <option value=\"\" selected=\"selected\"> </option>\r\n        {sablons.map(s => <option value={s.name} > {s.name}</option>)}\r\n    </select>\r\n\r\n\r\n\r\n\r\n    const fetchSablonMapping = () => {\r\n        fetch(\"sablonmappinglist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n\r\n                })\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchRoleList = () => {\r\n        fetch(\"getrolelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setRolList(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const filterTable = (event) => {\r\n        var value = document.getElementById(\"rolfiltercombo\").value;\r\n       \r\n        $(\"#myTable2 .row\").filter(function () {\r\n            var text = $(this).children().eq(0).text();\r\n            var values = text.split(\",\");\r\n            if (isEmpty(value) || values.length == 0)\r\n                return $(this).toggle(true);\r\n\r\n            if (values.some(x => removeTurkcLow(x).toLowerCase() == removeTurkcLow(value).toLowerCase()))\r\n                    return $(this).toggle(true);\r\n            return $(this).toggle(false);\r\n        });\r\n\r\n    }\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div id=\"myTable2\" >\r\n                {tabledata.map(apprec =>\r\n                    <div key={apprec.id} className=\"rounded-3 p-3 row border-top \">\r\n                        <div hidden>\r\n                            {apprec.userId}\r\n                        </div>\r\n                        <div className=\"col-md-3 col-12\">\r\n                            <select className=\"form-select form-select-sm\" name=\"sablonSelect\" onChange={handleInputChange}>\r\n                                {sablons.map(s => <option value={s.name} selected={s.name == apprec.sablonName}> {s.name}</option>)}\r\n                            </select>\r\n                        </div>\r\n                        <div className=\"col-md-5 col-12\">\r\n                            <Multiselect className=\"\" id=\"multiselect-select\"\r\n                                options={rolList.map(r => r.name)}\r\n                                emptyRecordMsg=\"Başka Kullanıcı Tipi Yok\"\r\n                                isObject={false}\r\n                                //ref={multiselectRef}\r\n                                selectedValues={apprec.userId != null && apprec.userId.length > 0 ? apprec.userId.split(',') : []}\r\n                                onSelect={(selectedList, selectedItem) => { apprec.userId = selectedList.length == 0 ? null : selectedList.join() }}\r\n                                onRemove={(selectedList, selectedItem) => { apprec.userId = selectedList.length == 0 ? null : selectedList.join() }}\r\n                                placeholder=\"Roller\"\r\n                            />\r\n                        </div>\r\n                        <div className=\"col-md-2 col-12\">\r\n                            <input type=\"Number\" placeholder=\"Sıra\" defaultValue={apprec.sira} className=\"form-control form-control-sm\" name=\"sira\" onChange={(e) => updateRecord(apprec, e)} />\r\n                        </div>\r\n                        <div className=\"text-end col-md-2 col-12\">\r\n                            <button onClick={() => updatemapping(apprec)} className=\"btn btn-primary btn-sm text-decoration-none\">Güncelle</button>&nbsp;\r\n                            <button onClick={() => { Sil(apprec.id) }} className=\"btn btn-secondary btn-sm text-decoration-none\">Sil</button></div>\r\n                    </div>\r\n                )}\r\n            </div>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n    const Sil = (id) => {\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removesablonmapping\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: id\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    fetchSablonMapping();\r\n                }\r\n            }))\r\n    }\r\n\r\n\r\n\r\n\r\n    const updatemapping = (rec) => {\r\n        fetch(\"updatesablonmapping\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    showSuccessMessage(\"Güncelleme Başarılı\")\r\n                    // setListData(value);\r\n\r\n                })\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n    const addMapping = () => {\r\n        var mapping = [];\r\n        var newmapping = {\r\n            UserId: multiselectRef.current.getSelectedItems().join(),\r\n            SablonName: document.getElementById(\"sablonSelect\").value\r\n        }\r\n        if (document.getElementById(\"sira\").value != null && document.getElementById(\"sira\").value.length > 0) {\r\n            newmapping.sira = parseInt(document.getElementById(\"sira\").value);\r\n        }\r\n\r\n        if (listData.filter(x => x.sablonName == newmapping.SablonName).length > 0) {\r\n            showErrorMessage(newmapping.SablonName + \" ekranının daha önce yetkilendirilmesi yapılmış.\", \"Lütfen o kayıt üzerinden güncelleme yapınız.\");\r\n            return;\r\n        }\r\n\r\n\r\n\r\n        mapping.push(newmapping);\r\n        fetch(\"saveuserdefaultsablon\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(mapping)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                document.getElementById(\"sablonSelect\").selectedIndex = -1;\r\n                multiselectRef.current.resetSelectedValues();\r\n                document.getElementById(\"sira\").value = \"\";\r\n                fetchSablonMapping();\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n    var listTable = renderTable(listData);\r\n\r\n    return (\r\n        <div className=\"p-3 mb-4\">\r\n            <div className=\"bg-light mb-4   p-3 rounded-3 textvmuted fw-bold align-middle\"  >\r\n                <span className=\"fa fa-info pe-3\" style={{ color: \"lightblue\", fontSize: \"26px\" }} ></span>\r\n                Oluşturduğunuz ekranlar ile kullanıcı rollerini eşleştirerek, hangi ekranın hangi role sahip kullanıcılarda görüntüleneceğini belirleyebilirsiniz.\r\n            </div>\r\n\r\n            <div className=\"row border-bottom  mb-4 pb-4\">\r\n                <div className=\"col-md-3 col-12\">\r\n                    Ekran Seç <span className=\"text-danger\">*</span>\r\n                    {sablonSelect}\r\n                </div>\r\n                <div className=\"col-md-6 col-12\">\r\n                    Rolleri Seç <span className=\"text-danger\">*</span>\r\n                    <Multiselect className=\"p-0 form-control-sm bg-white\"\r\n                        options={rolList.map(r => r.name)}\r\n                        emptyRecordMsg=\"Başka Kullanıcı Tipi Yok\"\r\n                        isObject={false}\r\n                        ref={multiselectRef}\r\n                        //onSelect={(selectedList, selectedItem) => { postdata.userId = selectedList.join() }}\r\n                        // onRemove={(selectedList, selectedItem) => { postdata.userId = selectedList.join() }}\r\n                        placeholder=\"Yetkiler\"\r\n                        selectedValues={[]}\r\n                    />\r\n                </div>\r\n                <div className=\"col-md-2 col-12\">\r\n                    Sıra <span className=\"text-danger\">*</span>\r\n                    <input type=\"Number\" placeholder=\"\" className=\"form-control form-control-sm\" id=\"sira\" name=\"sira\" onChange={handleInputChange} />\r\n                    <span className=\"textvmuted small\">Ekranların soldan sağa yer alacağı sırayı belirler</span>\r\n                </div>\r\n                <div className=\"col-md-1 col-12 text-end \">\r\n                    <br />\r\n                    <button onClick={addMapping} className=\"btn btn-sm btn-primary text-decoration-none \">Ekle\r\n                    </button>\r\n                </div>\r\n\r\n            </div>\r\n\r\n\r\n\r\n            <div className=\"row pb-1\">\r\n                <div className=\"col-12 col-md-5 fw-bold\">\r\n                    Yetkilendirilmiş Ekranlar\r\n\r\n                </div>\r\n            </div>\r\n            <div className=\"row mb-3 \">\r\n                <div className=\"col-12 col-md-3\">\r\n                </div>\r\n                <div className=\"col-12 col-md-5 ps-4 pe-4\">\r\n                    Role Göre Filtrele\r\n\r\n                    <select className=\"form-select form-select-sm\" id=\"rolfiltercombo\" onChange={filterTable}>\r\n                        <option value=\"\"> </option>\r\n                        {rolList.map(x=>x.name).sort().map(x => <option >{x} </option>)}\r\n                        </select>\r\n\r\n                          {/*  <input className=\"form-control form-control-sm\" id=\"myInput\" type=\"text\" placeholder=\"Arama\" onKeyUp={filterTable} />*/}\r\n\r\n                        </div>\r\n            </div>\r\n\r\n                {listTable}\r\n            </div>\r\n\r\n            );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport SablonMappingPanel from './SablonMappingPanel';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\n\r\n\r\nexport default function EkranSetting(props) {\r\n\r\n    const [listData, setListData] = useState(null);\r\n    const [useroptions, setOptions] = useState([]);\r\n    const [postdata, setPostData] = useState({});\r\n\r\n    var options = ['ada', \"arsaSahibi\", 'arsaSahibiTel', 'basvuruDurumu', \"basvuruSahibi\", 'basvuruTarihi', 'basvuruTipi',\r\n        'basvuruYapan', \"boylam\", \"enlem\", 'id', 'idariMahalle', \"kontrolor\", \"tümKontrolorler\", 'mahalle', 'mevki', \"müellif\", \"m2\", \"no\",\r\n        \"sokak\", \"iadeNedeni\", \"sonDuzeltmeTarihi\"\r\n        , \"kontrolBaslamaTarihi\", \"kontrolBitmeTarihi\", \"kontrolSiraTarihi\", \"onayVerilmeTarihi\",\r\n        , \"surecTamamlanmaTarihi\", \"eimzaAcilmaTrihi\", \"iadeTarihi\", \"taslakOlusturmaTarihi\", \"kabulEdilmeTarihi\",\r\n        \"sonDuzeltmeTalebiTarihi\", \"Kontrol Durumu\", \"müellifKullanıcıAdı\", \"duzeltmeSayi\", \"IsAdimlari\", \"ilkHavaleTarihi\", , \"sonHavaleTarihi\"];\r\n\r\n    options = options.concat(useroptions);\r\n    const colorset = [\"#f0f7ff\", \"#FFFFFF\", \"#FFFFFF\", \"#f0f7ff\"];\r\n\r\n    options = options.sort(function (a, b) {\r\n        if (a == null || b == null)\r\n            return 0;\r\n        return a.toLowerCase().localeCompare(b.toLowerCase());\r\n    });\r\n\r\n    var sablonlist = [];\r\n\r\n    const multiselectRef = React.createRef();\r\n\r\n    const removeSablon = (recid) => {\r\n        showConfirmMessage(recid + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removesablon\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(recid)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    fetchSablonList();\r\n                }\r\n            }));\r\n    }\r\n\r\n    const updatesablon = (recid) => {\r\n        fetch(\"updatesablon\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(recid)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    showSuccessMessage(\"Güncelleme Başarılı.\")\r\n                    //setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const fetchSablonList = () => {\r\n        fetch(\"sablonlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                    fetchFieldList();\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchFieldList = () => {\r\n        fetch(\"appfieldlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    var op = [];\r\n                    for (var i = 0; i < value.length; i++)\r\n                        op.push(value[i].name);\r\n                    setOptions(op);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"row ms-2 me-2 pb-3\">\r\n                {tabledata.map((apprec, idx) =>\r\n                    <div className={\"col-md-6 col-12  \"}>\r\n                        <div className=\"border rounded-3  mt-3 p-0 text-center border-1\" style={{ \"background-color\": colorset[idx % colorset.length] }}>\r\n                            <div className=\"d-inline float-start\">\r\n                                <button onClick={() => removeSablon(apprec.name)} className=\"btn btn-secondary btn-sm  text-decoration-none \">Sil</button>\r\n                            </div>\r\n                            <div className=\"d-inline \">\r\n                                <button onClick={() => setPostData(apprec)} className=\"btn btn-link btn-sm text-decoration-none \">{apprec.name}</button>\r\n                            </div>\r\n\r\n                        </div>\r\n                    </div>\r\n                )}\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n    const Add = () => {\r\n        postdata.name = document.getElementById(\"SablonAdi\").value;\r\n        var ft = document.getElementById(\"filter\").value;\r\n        if (document.getElementById(\"forListView\").checked == false && document.getElementById(\"forTableView\").checked == false) {\r\n            showErrorMessage(\"Lütfen Liste veya Kart görünümünden en az birini seçiniz.\", \"\");\r\n            return;\r\n        }\r\n\r\n\r\n        postdata.forListView = document.getElementById(\"forListView\").checked;\r\n        postdata.forTableView = document.getElementById(\"forTableView\").checked;\r\n        var sort = document.getElementById(\"sort\").value;\r\n        postdata.sort = sort;\r\n        if (sort.length > 0 && sort.endsWith(\",\"))\r\n            postdata.sort = sort.substring(0, sort.length - 1);\r\n\r\n        postdata.filter = ft;\r\n        if (ft.length > 0 && ft.endsWith(\",\"))\r\n            postdata.filter = ft.substring(0, ft.length - 1);\r\n        if (isEmpty(postdata.filter) == false) {\r\n            postdata.filter = postdata.filter.trim();\r\n            if (postdata.filter.toLowerCase().startsWith(\",\"))\r\n                postdata.filter = postdata.filter.substring(1);\r\n            if (postdata.filter.toLowerCase().startsWith(\"or\"))\r\n                postdata.filter = postdata.filter.substring(2);\r\n            if (postdata.filter.toLowerCase().startsWith(\"and\"))\r\n                postdata.filter = postdata.filter.substring(3);\r\n           \r\n        }\r\n              postdata.filter = postdata.filter.trim();\r\n\r\n       \r\n        if (isEmpty(postdata.name)) {\r\n            showErrorMessage(\"Ekran ismi boş olamaz\");\r\n            return;\r\n        }\r\n        postdata.colNames = multiselectRef.current.getSelectedItems().join(\",\");\r\n        if (isEmpty(postdata.colNames)) {\r\n            showErrorMessage(\"Kolon listesi boş olamaz\");\r\n            return;\r\n        }\r\n\r\n\r\n        fetch(\"savesablon\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                showSuccessMessage(postdata.name + \" İsimli Ekran Kaydedilmiştir\")\r\n                multiselectRef.current.resetSelectedValues();\r\n                document.getElementById(\"SablonAdi\").value = \"\";\r\n                document.getElementById(\"filter\").value = \"\";\r\n                fetchSablonList();\r\n                setPostData({})\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n    const AddFilter = () => {\r\n        //if (document.getElementById('filtervalue').checkValidity() == false) {\r\n        //    alert(\"Sadece harf veya rakam girilebilir\");\r\n        //    return;\r\n        //}    \r\n        var andor = document.getElementById(\"andor\").value;\r\n        if (document.getElementById(\"andor\").disabled == true)\r\n            andor = \"\";\r\n        var oper = document.getElementById(\"oper\").value;\r\n        var filtervalue = document.getElementById(\"filtervalue\").value;\r\n        var filterColSelect = document.getElementById(\"filterColSelect\").value;\r\n        var myfilter = andor + \" \" + filterColSelect + \" \" + oper + \" \" + filtervalue + \",\";\r\n        document.getElementById(\"filter\").value += myfilter;\r\n        document.getElementById(\"andor\").disabled = false;\r\n\r\n\r\n    }\r\n    const ClearFilter = () => {\r\n        document.getElementById(\"filter\").value = \"\";\r\n        document.getElementById(\"andor\").disabled = true;\r\n    }\r\n    const clearSort = () => {\r\n        document.getElementById(\"sort\").value = \"\";\r\n    }\r\n\r\n    const AddArtan = () => {\r\n        var filterColSelect = document.getElementById(\"siraColSelect\").value;\r\n\r\n        var v = document.getElementById(\"sort\").value;\r\n        if (isEmpty(v) == false && v.endsWith(\",\") == false)\r\n            v += \",\"\r\n        v += filterColSelect + \",\";\r\n        document.getElementById(\"sort\").value = v;\r\n\r\n    }\r\n    const AddAzalan = () => {\r\n        var filterColSelect = document.getElementById(\"siraColSelect\").value;\r\n        var v = document.getElementById(\"sort\").value;\r\n        if (isEmpty(v) == false && v.endsWith(\",\") == false)\r\n            v += \",\"\r\n        v += filterColSelect + \",\";\r\n        document.getElementById(\"sort\").value = v + \"-\" + filterColSelect + \",\";\r\n    }\r\n\r\n\r\n    useEffect(() => {\r\n        fetchSablonList();\r\n\r\n    }, [])\r\n\r\n\r\n    const onSelect = (selectedList, selectedItem) => {\r\n        var clist = selectedList.map(rec => \"<option value='\" + rec + \"'>\" + rec + \"</option>\");\r\n        // document.getElementById(\"filterColSelect\").innerHTML = clist;\r\n        document.getElementById(\"filterColSelect\").selectedIndex = -1;\r\n        document.getElementById(\"siraColSelect\").innerHTML = clist;\r\n\r\n    }\r\n\r\n    const onRemove = (selectedList, removedItem) => {\r\n        var clist = selectedList.map(rec => \"<option value='\" + rec + \"'>\" + rec + \"</option>\");\r\n        // document.getElementById(\"filterColSelect\").innerHTML = clist;\r\n        document.getElementById(\"filterColSelect\").selectedIndex = -1;\r\n        document.getElementById(\"siraColSelect\").innerHTML = clist;\r\n    }\r\n\r\n    return (\r\n        <div className=\"p-2 rounded-3\" style={{ \"background-color\": \"#EDEDF7\", \"min-height\": \"100vh\" }}>\r\n            <div className=\"row mt-3 p-3 d-flex flex-wrap pe-4\" key={postdata.name}>\r\n                <div className=\"col-12 col-md-6 d-flex flex-column\">\r\n                    <div className=\" bg-white rounded-3\" >\r\n                        <div className=\"p-3 fw-bold border-bottom mb-3\" >\r\n                            Yeni Ekran Oluştur\r\n                        </div>\r\n                        <div className=\"bg-light m-4  p-3 rounded-3 textvmuted fw-bold align-middle\"  >\r\n                            <span className=\"fa fa-info pe-3\" style={{ color: \"lightblue\", fontSize: \"26px\" }} ></span>\r\n                            Bu alanda, Liste Görünümü ve Kart Görünümünde kullanılmak üzere ekranlar oluşturabilirsiniz. Oluşturduğunuz ekranlarda hangi kolonların, hangi filtre ile ve hangi sıralama ile görüntüleneceğini belirleyebilirsiniz.\r\n                        </div>\r\n\r\n\r\n                        {isEmpty(postdata.name) != true && < div className=\"row ms-2 me-2   mb-4 pb-4 border-bottom\">\r\n                            <div className=\"col-12 align-middle   text-center \" >\r\n                                <span className=\"text-success fw-bold\"> {postdata.name} </span> ekranını düzenliyorsunuz\r\n                                <button onClick={() => {\r\n                                    setPostData({})\r\n\r\n\r\n                                }} className=\"ms-2 btn btn-sm btn-secondary text-decoration-none\">Vazgeç</button>\r\n                            </div>\r\n                        </div>}\r\n\r\n\r\n                        <div className=\"m-4   pt-3  border-top\">\r\n                            Ekran Adı <span className=\"text-danger\">*</span>\r\n                            <input type=\"text\" className=\"form-control form-control-sm \" id=\"SablonAdi\" placeholder=\"\" name=\"Name\" defaultValue={postdata.name} />\r\n                            <span className=\"textvmuted small\">Oluşturacağınız ekrana bir isim veriniz</span>\r\n                        </div>\r\n\r\n                        <div className=\"m-4  \">\r\n                            Kolonlar <span className=\"text-danger\">*</span>\r\n                            <Multiselect className=\"\"\r\n                                options={options}\r\n                                emptyRecordMsg=\"Başka Başvuru Tipi Yok\"\r\n                                ref={multiselectRef}\r\n                                isObject={false}\r\n                                onSelect={onSelect} // Function will trigger on select event\r\n                                onRemove={onRemove} // Function will trigger on remove event\r\n                                selectedValues={postdata.colNames != null ? postdata.colNames.split(\",\") : []}\r\n                                placeholder=\"\"\r\n                            />\r\n                            <span className=\"textvmuted small\">Ekranda hangi kolonların(bilgilerin) görüntüleneceğini seçin</span>\r\n                        </div>\r\n\r\n\r\n                        <div className=\"m-4 mb-3\">\r\n                            Ekran Tipi <span className=\"text-danger\">*</span>\r\n                            <div className=\"row\" >\r\n                                <div className=\"col-md-2 col-12\">\r\n                                    <div class=\"form-check form-check-inline\">\r\n                                        <input class=\"form-check-input big-checkbox me-1\" type=\"checkbox\" value=\"\" id=\"forListView\" name=\"forListView\" defaultChecked={postdata.forListView} />\r\n                                        <label class=\"form-check-label pt-1\" for=\"flexCheckDefault\">\r\n                                            List\r\n                                        </label>\r\n                                    </div>\r\n                                </div>\r\n                                <div className=\"col-md-2 col-12\">\r\n                                    <div class=\"form-check form-check-inline\">\r\n                                        <input class=\"form-check-input big-checkbox me-1\" type=\"checkbox\" value=\"\" id=\"forTableView\" name=\"forTableView\" defaultChecked={postdata.forTableView} />\r\n                                        <label class=\"form-check-label pt-1\" for=\"flexCheckChecked\">\r\n                                            Kart\r\n                                        </label>\r\n                                    </div>\r\n                                </div>\r\n                                <div className=\"col-md-8 col-12\">\r\n                                    <span className=\"textvmuted small\">Oluşturduğunuz ekranın Liste Görünümü ve Kart Görünümünden hangilerinde yer alacağını seçin</span>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n\r\n  \r\n                        <div className=\"row mt-5 m-3 mt-1 border-top \">\r\n                            <div className=\"col-md-11 col-12\">\r\n                                Uygulanacak Filtre\r\n                                <input type=\"text\" className=\"form-control form-control-sm\" id=\"filter\" placeholder=\"Filtre\" name=\"filter\" defaultValue={postdata.filter} />\r\n\r\n                            </div>\r\n                            <div className=\"col-md-1 col-12 text-end\">\r\n                                <br/>\r\n                                <button onClick={ClearFilter} className=\"ms-1 btn btn-sm btn-secondary\">Sil</button>\r\n\r\n                            </div>\r\n\r\n                        </div>\r\n\r\n\r\n\r\n                        <div className=\"row m-3 mt-1\">\r\n                            <div className=\"col-md-4 col-12 border-top mt-4\">\r\n                            </div>\r\n                            <div className=\"col-md-4 col-12\">\r\n                                Filtre Ekleme Yöntemi\r\n                                <select className=\"form-select form-select-sm \" id=\"andor\" name=\"andor\" placeholder=\"Filtre\" disabled={isEmpty(postdata.filter)}>\r\n                                    <option value=\"AND\"> AND </option>\r\n                                    <option value=\"OR\"> OR </option>\r\n                                </select>\r\n\r\n                            </div>\r\n                            <div className=\"col-md-4 col-12 border-top mt-4\">\r\n                            </div>\r\n\r\n                        </div>\r\n\r\n\r\n\r\n                        <div className=\"m-3\">\r\n                            <div className=\"row\">\r\n                                <div className=\"col-md-4 col-12\">\r\n                                    Filtrelenecek Alan\r\n                                    <select className=\"form-select form-select-sm \" id=\"filterColSelect\" name=\"filterColSelect\">\r\n                                        {options.map(rec => <option value={rec}> {rec} </option>)}\r\n                                    </select>\r\n                                </div>\r\n                                <div className=\"col-md-2 col-12 ps-0\">\r\n                                    Operator\r\n                                    <select className=\"form-select form-select-sm \" id=\"oper\" name=\"oper\" placeholder=\"Filtre\">\r\n                                        <option value=\"=\">{\"=\"} </option>\r\n                                        <option value=\"!=\"> {\"!=\"} </option>\r\n                                        <option value=\">\"> {\">\"} </option>\r\n                                        <option value=\"<\"> {\"<\"} </option>\r\n                                        <option value=\"LIKE\"> {\"LIKE\"} </option>\r\n                                        <option value=\"NOTLIKE\"> {\"NOTLIKE\"} </option>\r\n                                        <option value=\"ISNULL\"> {\"ISNULL\"} </option>\r\n                                        <option value=\"ISNOTNULL\"> {\"ISNOTNULL\"} </option>\r\n\r\n                                    </select>\r\n                                </div>\r\n                                <div className=\"col-md-4 col-12 ps-0\">\r\n                                    Filtre Değeri\r\n                                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"filtervalue\" placeholder=\"Filtre Değeri\" name=\"filter\" pattern=\"[a-zA-Z0-9ÜüŞşÇçÖöĞğİı ]+\" />\r\n\r\n                                </div>\r\n                                <div className=\"col-md-2 p-0 col-12 \"><br />\r\n                                    <button onClick={AddFilter} className=\"btn btn-sm btn-primary\">Ekle</button>\r\n\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n\r\n                        <div className=\"m-3 mt-5\">\r\n\r\n                            <div className=\"row \">\r\n                                <div className=\"col-md-6 col-12\">\r\n                                    Sıralama Uygulanacak  Alan\r\n                                    <select className=\"form-select form-select-sm\" id=\"siraColSelect\" name=\"siraColSelect\" >\r\n                                        {isEmpty(postdata.colNames) == false && postdata.colNames.split(\",\").map(x => <option value={x} >{x}</option>)}\r\n                                    </select>\r\n                                </div>\r\n                                <div className=\"col-md-6 col-12 text-end\"><br />\r\n                                    <button onClick={AddArtan} className=\"btn btn-sm btn-primary\">Artan</button>\r\n                                    <button onClick={AddAzalan} className=\"ms-1 btn btn-sm btn-info\">Azalan</button>\r\n                                    <button onClick={clearSort} className=\"ms-1 btn btn-sm btn-secondary\">Sil</button>\r\n                                </div>\r\n                            </div>\r\n                            <div className=\" mt-1\">\r\n                                Uygulanacak Sıralama\r\n                                <input type=\"text\" className=\"form-control form-control-sm\" id=\"sort\" placeholder=\"Sıralama\" name=\"sort\" disabled defaultValue={postdata.sort} />\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"row mt-3\">\r\n                            <div className=\"col-12 text-center pb-2\">\r\n                                <button onClick={Add} className=\"btn  btn-primary m-1\">Ekranı Kaydet</button>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                {/*----------------------------------------------------------------------------------------------------*/}\r\n                <div className=\"col-12 col-md-6 d-flex flex-column bg-white rounded-3\">\r\n                    <div className=\" \" >\r\n                        <div className=\"p-3 fw-bold border-bottom\" >\r\n                            Oluşturulan Ekranlar\r\n                        </div>\r\n                        <div className=\"bg-light m-3  p-3 mb-2 rounded-3 textvmuted fw-bold align-middle\"  >\r\n                            <span className=\"fa fa-info pe-3\" style={{ color: \"lightblue\", fontSize: \"26px\" }} ></span>\r\n                            Oluşturduğunuz ekranları silebilir veya özelliklerini değiştirebilirsiniz. Ekran isminin üzerine tıkladıktan sonra “Yeni Ekran Oluşturma” alanından özelliklerini düzenleyebilirsiniz.                       </div>\r\n                        <div className=\"\">\r\n                            {listData != null ? renderTable(listData) : \"\"}\r\n                        </div>\r\n\r\n                    </div>\r\n                </div>\r\n                {/*----------------------------------------------------------------------------------------------------*/}\r\n            </div >\r\n            <div className=\"row p-3 \">\r\n                <div className=\"col-12 \">\r\n                    <div className=\"bg-white rounded-3\" >\r\n                        <div className=\"p-3 fw-bold border-bottom\" >\r\n                            Ekran Yetkilendirme\r\n                        </div>\r\n\r\n\r\n                        <div className=\"mt-1\">\r\n                            {listData != null ? <SablonMappingPanel sablons={listData} /> : \"\"}\r\n                        </div>\r\n\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n        </div >\r\n\r\n\r\n\r\n    );\r\n\r\n\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { showSuccessMessage, useGlobalState, showErrorMessage, showConfirmMessage } from '../GlobalState.js';\r\nimport axios from \"axios\";\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport ReactQuill from 'react-quill';\r\nimport 'react-quill/dist/quill.snow.css';\r\n\r\nexport default function MevzuaatSetting(props) {\r\n    var postdata = {};\r\n    postdata[\"FileType\"] = \"pdf\";\r\n    var selectedRecord = null;\r\n    const [listData, setListData] = useState(null);\r\n    const [typeOptions, setTypeOptions] = useState([]);\r\n    var multiselectRef = React.createRef();\r\n    const [role, setRole] = useGlobalState('role');\r\n\r\n    useEffect(() => {\r\n        getHelpList();\r\n        initModal();\r\n    }, [])\r\n\r\n    const sil = (rec) => {\r\n        showConfirmMessage(rec.id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removeyonetmenlik\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(rec.id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }));\r\n    }\r\n\r\n\r\n    const SendFiles = (event) => {\r\n        document.getElementById(\"fileuploadsp\").hidden = false;\r\n        var selectedFile = { file: event.target.files[0] }\r\n        var formData = new FormData();\r\n        formData.append(\"file\", selectedFile.file);\r\n        formData.append(\"caption\", selectedFile.file.name);\r\n        formData.append(\"appid\", selectedRecord.id);\r\n        axios.post(\r\n            \"submityonetmenlik\",\r\n            formData,\r\n            {\r\n                headers: {\r\n                    \"Content-type\": \"multipart/form-data\",\r\n                },\r\n            }\r\n        ).then(res => {\r\n            document.getElementById(\"fileuploadsp\").hidden = true;\r\n            var locModal = document.getElementById('myModal');\r\n            locModal.style.display = \"none\";\r\n            locModal.classList.add(\"hide\");\r\n            setListData(res.data);\r\n        })\r\n            .catch(err => { showErrorMessage(err); })\r\n    }\r\n\r\n\r\n    const initModal = () => {\r\n        var locModal = document.getElementById('myModal');\r\n        var btnclosedown = document.getElementById('downclosemodal');\r\n        btnclosedown.addEventListener('click', (e) => {\r\n            locModal.style.display = \"none\";\r\n            locModal.classList.add(\"hide\");\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const onSelect = (selectedList, selectedItem) => {\r\n        postdata[\"roles\"] = multiselectRef.current.getSelectedItems().map(c => c.appType).join(\", \")\r\n    }\r\n    const onRemove = (selectedList, removedItem) => {\r\n        postdata[\"roles\"] = multiselectRef.current.getSelectedItems().map(c => c.appType).join(\", \")\r\n    }\r\n\r\n    const fetchUserTypeList = () => {\r\n\r\n        fetch(\"getusertypelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setTypeOptions(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getHelpList = () => {\r\n        fetch(\"getyonetmenliklist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const updateMevzuuat = (rec) => {\r\n        fetch(\"updateyonetmenlik\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    showSuccessMessage(\"Güncelleme Başarılı\")\r\n                    setListData(value)\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const Add = () => {\r\n        fetch(\"addyonetmenlik\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n               //document.getElementById(\"caption\").value = \"\";\r\n                document.getElementById(\"url\").value = \"\";\r\n                getHelpList();\r\n            }\r\n        });\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n    var controlPanel = \"\";\r\n\r\n\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n\r\n            <table className='table table-vdstriped table-sm text-start' aria-labelledby=\"tabelLabel\">\r\n                <thead className=\"text-start\">\r\n                    <tr>\r\n                        <th width=\"3%\" className=\"text-start\">No</th>\r\n                        <th width=\"30%\" className=\"text-start\">Açıklama</th>\r\n                        <th width=\"27%\" className=\"text-start\">Link</th>\r\n                        <th width=\"10%\" className=\"text-start\">Dosya</th>\r\n                        <th width=\"10%\" className=\"text-start\">Ekleyen</th>\r\n                        <th width=\"10%\" className=\"text-start\">Kayıt Tarihi</th>\r\n                        <th width=\"10%\" className=\"text-end\"></th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n                    {tabledata.map(apprec =>\r\n                        <tr key={apprec.id}>\r\n                            <td className=\"text-center\">{apprec.id}</td>\r\n\r\n                               \r\n                                {/*<textarea className=\"form-control form-control-sm\" placeholder=\"\" name=\"caption\" defaultValue={apprec.caption} onChange={(e) => updateRecord(apprec, e)} />*/}\r\n\r\n                            <td style={{ \"resize\": \"vertical\", \"overflow-y\": \"scroll\", \"height\": \"120px\", \"min-width\": \"500px\" }} className=\"p-2\">\r\n                                <ReactQuill className=\"h-100\" theme=\"snow\" onChange={(e) => apprec.caption = e} defaultValue={apprec.caption} />\r\n                             </td>\r\n\r\n                           \r\n                            <td >\r\n                               {/* <div style={{ \"overflow-x\": \"auto\", \"maxWidth\": \"400px\" }}> <a href={apprec.url} target=\"_blank\" > {apprec.url} </a></div>*/}\r\n                              \r\n                                <textarea className=\"form-control form-control-sm\" placeholder=\"\" name=\"url\" defaultValue={apprec.url} onChange={(e) => updateRecord(apprec, e)} />\r\n\r\n                               \r\n                            </td>\r\n\r\n                            <td><a href={'getyonetmenlik?id=' + apprec.id} download={apprec.fileName}> {apprec.fileName} </a></td>\r\n                            <td>{apprec.userName}</td>\r\n                            <td>{apprec.postDate}</td>\r\n                             <td>{role.indexOf(UserPermConstants.Yonetmelik_Yukleme) != -1 &&<>\r\n                                <button onClick={() => sil(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button>&nbsp;&nbsp;&nbsp;\r\n                                <button onClick={() => updateMevzuuat(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Güncelle</button>&nbsp;&nbsp;&nbsp;\r\n                                    <button onClick={() => {\r\n                                        document.getElementById('myModal').style.display = \"block\";\r\n                                        document.getElementById('myModal').classList.remove(\"hide\");\r\n                                        selectedRecord = apprec;\r\n                                    }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">\r\n                                    Dosya Ekle</button></>}</td>\r\n                        </tr>\r\n                    )}\r\n                    {role.indexOf(UserPermConstants.Yonetmelik_Yukleme) != -1 &&\r\n                        <tr className=\"bg-white mt-3\">\r\n                            <td></td>\r\n                            <td>\r\n                                <ReactQuill className=\"\" theme=\"snow\"  value=\"\" onChange={(e) => postdata.caption =  e}  />\r\n\r\n                            </td>\r\n                            <td>\r\n                                <textarea className=\"form-control form-control-sm\" placeholder=\"Link\" id=\"url\" name=\"url\" onChange={handleInputChange} />\r\n                            </td>\r\n                            <td></td>\r\n                            <td></td>\r\n                            <td></td>\r\n                            <td>  <button onClick={Add} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">Ekle</button></td>\r\n                        </tr>}\r\n                </tbody>\r\n            </table>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n    var listTable = <div class=\"spinner-border  \" ></div>;\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n\r\n    return (\r\n        <div className=\" mt-2 rounded\">\r\n\r\n            <h5>Mevzuat Ayarları</h5>\r\n            <div className=\"row\">\r\n                <div className=\"col-12 text-center\">\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n            <div className=\"modal\" id=\"myModal\" >\r\n                <div class=\"modal-dialog modal  modal-dialog-centered \">\r\n                    <div class=\"modal-content\" >\r\n                        <div class=\"modal-body\" id=\"mymodalbody\" >\r\n\r\n                            <div className=\"row\">\r\n                                <div className=\"col-10\">\r\n\r\n                                    <label for=\"formFile\" class=\"form-label\">Dosya Yukle</label>\r\n                                    <br />\r\n                                    <input class=\"form-control form-control-sm mt-2\" type=\"file\" id=\"formFile\" onChange={(e) => SendFiles(e)} />\r\n                                </div>\r\n\r\n                                <div className=\"col-2 text-end\">\r\n                                    <div class=\"spinner-border  spinner-border-sm\" hidden id=\"fileuploadsp\" ></div>\r\n                                </div>\r\n\r\n\r\n                            </div>\r\n\r\n                        </div>\r\n                        <div class=\"modal-footer\">\r\n                            <button type=\"button\" class=\"btn btn-danger\" id=\"downclosemodal\" data-bs-dismiss=\"modal\">Close</button>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n\r\n}","import React, { useState, useEffect, createRef } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { isEmpty, showErrorMessage, showSuccessMessage, useGlobalState } from '../GlobalState.js';\r\nimport { ajaxFail, removeTurkcLow } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\nimport FileSettingList from './FileSettingList.js';\r\nimport BasvuruAlanlariSetting from './BasvuruAlanlariSetting.js';\r\n\r\n\r\nexport default function BasvuruAlaniDetail(props) {\r\n    var postdata = {};\r\n    const rec = props.appRec;\r\n    var basvuruTurleri = props.basvuruTurleri.filter(x=>x.isadimi!=true)\r\n    const typeOptions = props.denetims;\r\n\r\n    const roles=props.roles;\r\n\r\n    const multiselectRefNew = React.createRef();\r\n    const multiselectRefNewRole = React.createRef();\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n    const submitUpdateRecord = (rec) => {\r\n\r\n        fetch(\"updateAppField\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Güncelleme Başarılı\")\r\n                \r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const onSelect = (selectedList, selectedItem) => {\r\n        var clist = selectedList.join();\r\n        postdata[\"basvuruTipi\"] = clist;\r\n    }\r\n    const onRemove = (selectedList, removedItem) => {\r\n        var clist = selectedList.join();\r\n        postdata[\"basvuruTipi\"] = clist;\r\n    }\r\n\r\n    const Add = () => {\r\n\r\n\r\n        fetch(\"addAppField\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Kayıt Başarılı\", \"\", () => window.changeComponent(<BasvuruAlanlariSetting />));\r\n            }\r\n        });\r\n\r\n    }\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value.trim();\r\n        if (target.checkValidity() == false) {\r\n            showErrorMessage(\"Sadece harf veya rakam girilebilir\");\r\n\r\n            target.value = \"\";\r\n            return;\r\n        }\r\n        postdata[target.name.trim()] = value;\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"table-responsive mainpagescroll\" style={{ \"height\": \"85vh\" }}>\r\n                <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n\r\n                    <tbody id=\"myTable\">\r\n                        {tabledata.map(apprec =>\r\n                            <tr key={apprec.id}>\r\n                                <td hidden>\r\n                                    {apprec.basvuruTipi} {apprec.name}\r\n                                </td>\r\n                                <td>\r\n                                </td>\r\n                                <td>\r\n                                </td>\r\n                                <td>\r\n                                </td>\r\n                                {/* <td>{apprec.crerateTime}</td>*/}\r\n\r\n                                <td>\r\n                                    <button onClick={() => submitUpdateRecord(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Güncelle</button>&nbsp;\r\n                                </td>\r\n                            </tr>\r\n                        )}\r\n                        <tr className=\"bg-white\">\r\n                            <td> </td>\r\n                            <td >\r\n\r\n                                <Multiselect className=\"p-0 form-control-sm bg-white\"\r\n                                    options={basvuruTurleri.map(b => b.name)}\r\n                                    emptyRecordMsg=\"Başka Yetki Yok\"\r\n                                    ref={multiselectRefNew}\r\n                                    isObject={false}\r\n                                    onSelect={onSelect}\r\n                                    onRemove={onRemove}\r\n                                    placeholder=\"Başvuru Tipleri\"\r\n                                    selectedValues={[]}\r\n                                /></td>\r\n                            <td>\r\n                                <input type=\"text\" style={{ \"background-color\": \"transparent\" }} className=\"form-control form-control-sm\" id=\"name\" pattern=\"[a-zA-Z0-9ÜüŞşÇçÖöĞğİı\\(\\)_ ]+\" placeholder=\"Soru\" name=\"name\" onChange={handleInputChange} defaultValue=\"\" />\r\n                            </td>\r\n                            <td>\r\n                                <select className=\"form-select form-select-sm\" id=\"type\" name=\"type\" placeholder=\"Soru Türü\" defaultValue=\"\" onChange={handleInputChange} >\r\n                                    <option value=\"text\">Yazı</option>\r\n\r\n                                    <option value=\"select\">Çoktan Seçmeli</option>\r\n                                    <option value=\"checkbox\">Checkbox</option>\r\n                                    <option value=\"number\">Sayı</option>\r\n                                    <option value=\"select multiple\">Çoklu Seçim</option>\r\n                                    <option value=\"date\">Tarih</option>\r\n                                    <option value=\"textarea\">Buyuk Yazı</option>\r\n                                </select>\r\n\r\n                            </td>\r\n                            <td>\r\n                                <input type=\"text\" style={{ \"background-color\": \"transparent\" }} className=\"form-control form-control-sm\" placeholder=\"Varsayılan Değer\" name=\"initValue\" id=\"initValue\" defaultValue=\"\" onChange={handleInputChange} />\r\n                            </td>\r\n                            <td>\r\n                                <input type=\"text\" style={{ \"background-color\": \"transparent\" }} className=\"form-control form-control-sm\" placeholder=\"Sıra\" name=\"sira\" id=\"sira\" defaultValue=\"\" onChange={handleInputChange} />\r\n                            </td>\r\n                            <td>\r\n                                <input type=\"checkbox\" className=\"form-check-input\" id=\"reqired\" name=\"reqired\" onChange={handleInputChange} />\r\n                            </td>\r\n                            <td>\r\n                                <input type=\"checkbox\" className=\"form-check-input\" id=\"active\" name=\"active\" onChange={handleInputChange} />\r\n                            </td>\r\n                            <td> <input type=\"checkbox\" className=\"form-check-input\" id=\"printable\" name=\"printable\" onChange={handleInputChange} /></td>\r\n                            <td> <input type=\"checkbox\" className=\"form-check-input\" id=\"gizli\" name=\"gizli\" onChange={handleInputChange} /></td>\r\n\r\n                            <td>\r\n                                <Multiselect className=\" p-0 form-control form-control-sm \"\r\n                                    options={roles}\r\n                                    placeholder=\"Rol\"\r\n                                    emptyRecordMsg=\"Başka Kayıt Yok\"\r\n                                    displayValue=\"name\"\r\n                                    isObject={true}\r\n                                    ref={multiselectRefNewRole}\r\n                                    selectedValues={[]}\r\n                                    onSelect={(selectedList, removedItem) => { postdata.role = selectedList.length == 0 ? null : selectedList.map(rec => rec.id).join() }} // Function will trigger on select event\r\n                                    onRemove={(selectedList, removedItem) => { postdata.role = selectedList.length == 0 ? null : selectedList.map(rec => rec.id).join() }} // Function will trigger on remove event\r\n                                />\r\n                            </td>\r\n                            {/*  <td></td>*/}\r\n\r\n                            <td>  <button onClick={Add} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">Ekle</button></td>\r\n                        </tr>\r\n                        <tr className=\"bg-white\">\r\n                            <td> </td>\r\n                            <td >\r\n\r\n                                <Multiselect className=\"p-0 form-control-sm bg-white\"\r\n                                    options={basvuruTurleri.map(b => b.name)}\r\n                                    emptyRecordMsg=\"Başka Yetki Yok\"\r\n                                    ref={multiselectRefNew}\r\n                                    isObject={false}\r\n                                    onSelect={onSelect}\r\n                                    onRemove={onRemove}\r\n                                    placeholder=\"Başvuru Tipleri\"\r\n                                    selectedValues={[]}\r\n                                /></td>\r\n                            <td>\r\n                                <input type=\"text\" style={{ \"background-color\": \"transparent\" }} className=\"form-control form-control-sm\" id=\"name\" pattern=\"[a-zA-Z0-9ÜüŞşÇçÖöĞğİı\\(\\)_ ]+\" placeholder=\"Soru\" name=\"name\" onChange={handleInputChange} defaultValue=\"\" />\r\n                            </td>\r\n                            <td>\r\n                                <select className=\"form-select form-select-sm\" id=\"type\" name=\"type\" placeholder=\"Soru Türü\" defaultValue=\"\" onChange={handleInputChange} >\r\n                                    <option value=\"text\">Yazı</option>\r\n\r\n                                    <option value=\"select\">Çoktan Seçmeli</option>\r\n                                    <option value=\"checkbox\">Checkbox</option>\r\n                                    <option value=\"number\">Sayı</option>\r\n                                    <option value=\"select multiple\">Çoklu Seçim</option>\r\n                                    <option value=\"date\">Tarih</option>\r\n                                    <option value=\"textarea\">Buyuk Yazı</option>\r\n                                </select>\r\n\r\n                            </td>\r\n                            <td>\r\n                                <input type=\"text\" style={{ \"background-color\": \"transparent\" }} className=\"form-control form-control-sm\" placeholder=\"Varsayılan Değer\" name=\"initValue\" id=\"initValue\" defaultValue=\"\" onChange={handleInputChange} />\r\n                            </td>\r\n\r\n\r\n                        </tr>\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    \r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value.trim();\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    var listTable = renderTable([]);\r\n\r\n\r\n    var mus = document.getElementById(\"KonMultiSelect\");\r\n    if (mus != null) {\r\n        if (mus.disabled == true) {\r\n            if (!mus.classList.contains('bg-pasif')) {\r\n                mus.classList.add(\"bg-pasif\");\r\n            }\r\n        }\r\n        else {\r\n            mus.classList.remove(\"bg-pasif\");\r\n            mus.classList.add(\"bg-white\");\r\n        }\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"p-2 rounded-3\" style={{ \"background-color\": \"#EDEDF7\", \"min-height\": \"100vh\" }}>\r\n            <div className=\"row \" >\r\n                <div className=\"col-12 col-md-6 \" >\r\n\r\n                    <span className=\"me-3\" style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#4b5675\" }}> {rec.userName} </span>\r\n                    <span className=\"me-3\" style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#99a1b7\" }}>{rec.crerateTime} </span>\r\n                    <span style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#99a1b7\" }}> Id: {rec.id} </span>\r\n\r\n                </div>\r\n                <div className=\"col-12 col-md-6 text-end  pt-1\" >\r\n                    <button onClick={() => {\r\n                        if (rec.id != null)\r\n                            submitUpdateRecord(rec)\r\n                        else\r\n                            Add(rec)\r\n                    }\r\n                    } className=\"btn btn-primary btn-sm text-decoration-none me-2\" > Kaydet </button>\r\n                    <button onClick={() => window.changeComponent(<BasvuruAlanlariSetting />)} className=\"btn btn-secondary btn-sm text-decoration-none\">Vazgeç</button >\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row mt-1 p-3\" >\r\n                <div className=\"col-12 col-md-6\" >\r\n                    <div className=\" bg-white rounded-3\" >\r\n                        <div className=\"p-3 fw-bold border-bottom\" >\r\n                            Genel Özellikler\r\n\r\n                        </div>\r\n                        <div className=\"p-4\" >\r\n                            Soru Adı <span className=\"text-danger\" >* </span>\r\n\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" pattern=\"[a-zA-Z0-9ÜüŞşÇçÖöĞğİı\\(\\)_\\- ]+\" placeholder=\"Soru Adı\" name=\"name\" defaultValue={rec.name} onChange={(e) => updateRecord(rec, e)} />\r\n\r\n                        </div>\r\n\r\n                        <div className=\"p-4\" >\r\n                            Başvuru Tipi  <span className=\"text-danger\" >* </span>\r\n                            <Multiselect className=\"p-0\"\r\n                                options={basvuruTurleri.map(b => b.name)}\r\n                                emptyRecordMsg=\"Başka Başvuru Tipi Yok\"\r\n\r\n                                isObject={false}\r\n                                onSelect={(selectedList, selectedItem) => { rec.basvuruTipi = selectedList.join() }}\r\n                                onRemove={(selectedList, selectedItem) => { rec.basvuruTipi = selectedList.join() }}\r\n                                placeholder=\"\"\r\n                                selectedValues={rec.basvuruTipi != null ? rec.basvuruTipi.split(',') : []}\r\n                            />\r\n                            <div class=\"textvmuted\">\r\n                                Sorunun hangi başvurularda yer alacağını seçebilirsiniz.\r\n                            </div>\r\n                        </div>\r\n\r\n                        < div className=\"p-4\" >\r\n\r\n                            Soru Tipi < span className=\"text-danger\" >* </span>\r\n\r\n                            <select style={{ \"background-color\": \"transparent\" }} className=\"form-select form-select-sm\" name=\"type\" placeholder=\"Soru Türü\" defaultValue={rec.type} onChange={(e) => updateRecord(rec, e)} >\r\n                                <option value=\"text\">Yazı</option>\r\n\r\n                                <option value=\"select\">Çoktan Seçmeli</option>\r\n                                <option value=\"checkbox\">Checkbox</option>\r\n                                <option value=\"number\">Sayı</option>\r\n                                <option value=\"select multiple\">Çoklu Seçim</option>\r\n                                <option value=\"date\">Tarih</option>\r\n                                <option value=\"textarea\">Buyuk Yazı</option>\r\n                            </select>\r\n                        </div>\r\n\r\n                        < div className=\"p-4\" >\r\n                            Varsayılan Değer\r\n                            <input type=\"text\" style={{ \"background-color\": \"transparent\" }} className=\"form-control form-control-sm\" placeholder=\"\" name=\"initValue\" defaultValue={rec.initValue} onChange={(e) => updateRecord(rec, e)} />\r\n                            <div className=\"textvmuted\" >\r\n                                Boş bırakılırsa bu değer seçilecek\r\n                            </div>\r\n                        </div>\r\n\r\n                        < div className=\"p-3\" >\r\n\r\n                        </div>\r\n                        {/*<div className=\"p-4\" >*/}\r\n                        {/*    Açıklama*/}\r\n                        {/*    <input type=\"text\" className=\"form-control form-control-sm\" name=\"aciklama\" defaultValue={rec.aciklama} onChange={(e) => updateRecord(rec, e)} />*/}\r\n                        {/*    <div className=\"textvmuted\" >*/}\r\n                        {/*        Dosya hakkında açıklama yazabilirsiniz.*/}\r\n                        {/*    </div>*/}\r\n                        {/*</div>*/}\r\n\r\n\r\n\r\n                    </div>\r\n                </div>\r\n                <div className=\"col-12 col-md-6\" >\r\n                    <div className=\"bg-white rounded-3\" >\r\n                        <div className=\"p-3 fw-bold border-bottom\" >\r\n                            Görüntüleme ve Yetkilendirme\r\n\r\n                        </div>\r\n                        <div className=\"p-4 row\" >\r\n                            <div class=\"col-3\" >\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\" >Sıra </label>\r\n                            </div>\r\n                            <div class=\"col-3\" >\r\n                                <input type=\"number\" style={{ \"background-color\": \"transparent\" }} className=\"form-control form-control-sm \" placeholder=\"Sıra\" name=\"sira\" defaultValue={rec.sira} onChange={(e) => updateRecord(rec, e)} />\r\n                            </div>\r\n                            <div class=\"col-5 p-0 textvmuted\" >\r\n                                Hangi sırada görünsün\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n                        <div className=\"p-4 row\" >\r\n                            <div class=\"col-3\" >\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\" >Zorunlu < /label>\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input me-2\" name=\"reqired\" defaultChecked={rec.reqired} onChange={(e) => updateRecord(rec, e)} />\r\n                            </div>\r\n                            <div class=\"col-7 p-0 textvmuted\" >\r\n                                Zorunlu Olarak yüklensin mı ?\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"p-4 row\" >\r\n                            <div class=\"col-3\" >\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\" >Aktif < /label>\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"active\" defaultChecked={rec.active} onChange={(e) => updateRecord(rec, e)} />\r\n                            </div>\r\n                            <div class=\"col-7 p-0 textvmuted\" >\r\n                                Başvurularda görünsun mu ?\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"p-4 row\" >\r\n                            <div class=\"col-3\" >\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\" >Dilekçe < /label>\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"printable\" defaultChecked={rec.printable} onChange={(e) => updateRecord(rec, e)} />\r\n                            </div>\r\n                            <div class=\"col-7 p-0 textvmuted\" >\r\n                                Başvuru dilekçesinde görünsun mu?\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"p-4 row\" >\r\n                            <div class=\"col-3\" >\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\" >Gizli < /label>\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"gizli\" defaultChecked={rec.gizli} onChange={(e) => updateRecord(rec, e)} />\r\n                            </div>\r\n                            <div class=\"col-7 p-0 textvmuted\" >\r\n                                Sadece Kontrolörler görecek\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"p-4 \" >\r\n                            Güncelleme Yetkisi\r\n\r\n\r\n                            <Multiselect className=\"p-0\"\r\n                                options={roles}\r\n                                placeholder=\"Rol\"\r\n                                emptyRecordMsg=\"Başka Kayıt Yok\"\r\n                                displayValue=\"name\"\r\n                                isObject={true}\r\n                                selectedValues={rec.role != null ? rec.role.split(',').filter(r => roles.find(x => x.id == r) != null).map(r => roles.find(x => x.id == r)) : []}\r\n                                onSelect={(selectedList, removedItem) => { rec.role = selectedList.length == 0 ? null : selectedList.map(rec => rec.id).join() }} // Function will trigger on select event\r\n                                onRemove={(selectedList, removedItem) => { rec.role = selectedList.length == 0 ? null : selectedList.map(rec => rec.id).join() }} // Function will trigger on remove event\r\n                            />\r\n\r\n                            < div class=\"textvmuted\" >\r\n                                Kimler tarafından değiştirilebilsin\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport $ from 'jquery';\r\nimport BasvuruAlaniDetail from './BasvuruAlaniDetail.js';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { ajaxFail, showConfirmMessage, showErrorMessage, showSuccessMessage,removeTurkcLow, isEmpty } from '../GlobalState.js';\r\n\r\nexport default function BasvuruAlanlariSetting(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState(null);\r\n    const [basvuruTurleri, setbasvuruTurleri] = useState([]);\r\n    const [roles, setRoles] = useState([]);\r\n    const [sortDirection, setSortDirection] = useState({});\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchRoles();\r\n        getdenetimlist();\r\n    }, [])\r\n\r\n\r\n    var sortField = null;\r\n    const myCompare = (a, b) => {\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n        var ret = 1;\r\n        if (sortDirection[sortField] == \"ZA\")\r\n            ret = -1;\r\n\r\n        if (av == null && bv != null)\r\n            return -1 * ret;\r\n        if (av != null && bv == null)\r\n            return 1 * ret;\r\n        if (av == null && bv == null)\r\n            return 0;\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * ret\r\n\r\n        if (av < bv) {\r\n            return -1 * ret;\r\n        }\r\n        if (av > bv) {\r\n            return 1 * ret;\r\n        }\r\n        return 0;\r\n    }\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == \"ZA\") {\r\n            sortDirection[sortField] = \"AZ\";\r\n        }\r\n        else {\r\n            sortDirection[sortField] = \"ZA\";\r\n        }\r\n\r\n        var temp = [...listData]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setListData(temp);\r\n    }\r\n\r\n\r\n    const fetchRoles = () => {\r\n        fetch(\"getrolelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setRoles(value)\r\n                })\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n\r\n    const removeRecord = (id) => {\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removeAppField\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }));\r\n    }\r\n\r\n\r\n\r\n    const fetchList = () => {\r\n        fetch(\"appfieldlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const saveAll = () => {\r\n\r\n        fetch(\"saveallappsetting\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(listData)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Güncenlleme Başarılı\");\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    \r\n\r\n    const getdenetimlist = () => {\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setbasvuruTurleri(value);\r\n                    fetchList();\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    const filterColumn = (index) => {\r\n        var cl = [\"id\", \"basvuruTipi\", \"name\", \"type\", \"initValue\"];\r\n        $(\"#myTable tr\").filter(function () {\r\n\r\n            for (var c = 0; c < cl.length; c++) {\r\n                var keywordElem = document.getElementById(cl[c]);\r\n                var td = $(this).children().eq(c);\r\n                if (keywordElem != null && isEmpty(keywordElem.value) == false) {\r\n                    var keyword = keywordElem.value;\r\n                    var pass = true;\r\n                    if (keyword.startsWith(\"-\")) {\r\n                        pass = false\r\n                        keyword = keyword.substr(1);\r\n                    }\r\n                    if (keyword.length == 0) break;\r\n                    td.attr('style', 'background: #fff8dd !important');\r\n                    var t1 = removeTurkcLow(td.text());\r\n                    var t2 = removeTurkcLow(keyword);\r\n                    if (keyword == \"0\" && td.html().includes(\"checkbox\") && !td.html().includes(\"checked\"))\r\n                        return $(this).toggle(true);\r\n                    if (keyword == \"1\" && td.html().includes(\"checked\"))\r\n                        return $(this).toggle(true);\r\n                    if ((t1.indexOf(t2) == -1) == pass)\r\n                        return $(this).toggle(false);\r\n                }\r\n                else\r\n                    td.removeAttr('style');\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n\r\n\r\n    \r\n\r\n    const filterTable = (event) => {\r\n        var textbox = document.getElementById(\"mySearchInput\")\r\n        if (textbox == null)\r\n            return;\r\n        var value = textbox.value;\r\n\r\n        $(\"#myTable tr\").filter(function () {\r\n            var rowtext = $(this).text();\r\n            var t1 = removeTurkcLow(rowtext);\r\n            var t2 = removeTurkcLow(value);\r\n            if (t1.indexOf(t2) == -1)\r\n                return $(this).toggle(false);\r\n\r\n            return $(this).toggle(true);\r\n        });\r\n        \r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\" table-responsive mainpagescroll mt-1 border-top\" style={{ \"height\": \"85vh\" }}>\r\n                <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead className=\"text-center bg-white \" style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"3\" }}>\r\n                        <th >\r\n                            <button className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\" onClick={() => sortList(\"id\")}>Id</button>\r\n                            \r\n                            <input type=\"text\" className=\"form-control form-control-sm mb-1\" id=\"id\" placeholder=\"\" name=\"id\" onChange={() => filterColumn()} />\r\n                        </th>\r\n                        <th >\r\n                            <button className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\" onClick={() => sortList(\"basvuruTipi\")}>Başvuru Türü</button>\r\n                            <input type=\"text\" className=\"form-control form-control-sm mb-1\" id=\"basvuruTipi\" placeholder=\"\" name=\"basvuruTipi\" onChange={() => filterColumn()} />\r\n                        </th>\r\n                        <th >\r\n                            <button className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\" onClick={() => sortList(\"name\")}>Soru</button>\r\n                            \r\n                            <input type=\"text\" className=\"form-control form-control-sm mb-1\" id=\"name\" placeholder=\"\" name=\"name\" onChange={() => filterColumn()} />\r\n                        </th>\r\n\r\n                        <th >\r\n                            <button className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\" onClick={() => sortList(\"type\")}> Soru Türü</button>\r\n                           \r\n                            <input type=\"text\" className=\"form-control form-control-sm mb-1\" id=\"type\" placeholder=\"\" name=\"type\" onChange={() => filterColumn()} />\r\n                        </th>\r\n\r\n                        <th >\r\n                            <button className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\" onClick={() => sortList(\"initValue\")}>Varsayılan Değer</button>\r\n                            \r\n                            <input type=\"text\" className=\"form-control form-control-sm mb-1\" id=\"initValue\" placeholder=\"\" name=\"initValue\" onChange={() => filterColumn()} />\r\n                        </th>\r\n\r\n                        <th ></th>\r\n                    </thead>\r\n                    <tbody id=\"myTable\">\r\n                        {tabledata.map(apprec =>\r\n                            <tr key={apprec.id} role=\"button\" className=\"v-hover\" onClick={() => {\r\n                                window.changeComponent(<BasvuruAlaniDetail key={apprec.id} appRec={apprec} basvuruTurleri={basvuruTurleri} roles={ roles} />) }} >\r\n                                <td >{apprec.id}</td>\r\n                                <td >\r\n                                    {apprec.basvuruTipi}\r\n                                   \r\n                                </td>\r\n                                <td dangerouslySetInnerHTML={{ __html: apprec.name}}></td>\r\n                                <td>\r\n                                    {apprec.type==\"text\"?\"Yazı\":\r\n                                    apprec.type==\"select\"?\"Çoktan Seçmeli\":\r\n                                    apprec.type==\"checkbox\"?\"Checkbox\":\r\n                                    apprec.type==\"number\"?\"Sayı\":\r\n                                    apprec.type==\"select multiple\"?\"Çoklu Seçim\":\r\n                                    apprec.type==\"date\"?\"Tarih\":\r\n                                    apprec.type==\"textarea\"?\"Buyuk Yazı\":\r\n                                    apprec.type}\r\n                                  \r\n                                     \r\n                                </td>\r\n\r\n                                <td>\r\n                                    {apprec.initValue} \r\n                                 </td>\r\n                               \r\n\r\n                                <td>\r\n                                    <button onClick={(event) => { event.stopPropagation(); removeRecord(apprec.id) }} className=\"btn btn-link btn-sm text-decoration-none text-danger p-0 m-0 shadow-none\">\r\n                                        <span class=\"material-icons\"> delete    </span>\r\n                                    </button>\r\n                                   {/* <button onClick={() => submitUpdateRecord} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Güncelle</button>&nbsp;*/}\r\n                                </td>\r\n                            </tr>\r\n                        )}\r\n                      \r\n                        {/*<tr>*/}\r\n                            \r\n                        {/*    <td colspan=\"5\" className=\"text-end\"> <button onClick={() => saveAll()} className=\"btn btn-primary btn-sm m-1\" id=\"saveallbutton\">Tümünü Kaydet</button></td>*/}\r\n                        {/*</tr>*/}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div >\r\n            <div className=\"row mb-2 mt-2\">\r\n                <div className=\"col-4\">\r\n                    <h5>Başvuru Alanları</h5>\r\n                </div>\r\n                <div className=\"col-4\">\r\n                    <input className=\"form-control form-control-sm\" id=\"mySearchInput\" type=\"text\" placeholder=\"Arama\" onKeyUp={filterTable} />\r\n                </div>\r\n                <div className=\"col-0 col-md-4 text-end\">\r\n                    <button onClick={() => window.changeComponent(<BasvuruAlaniDetail appRec={new Object()}   basvuruTurleri={basvuruTurleri} roles={roles} />)} className=\" btn btn-sm btn-primary\">Yeni Soru Oluştur </button>\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n            <div className=\"row\">\r\n                <div className=\"col-12\">\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\n\r\nexport default function CommunicationSetting(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState([]);\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n\r\n\r\n    }\r\n\r\n\r\n    const changeAktifPanel = (id) => {\r\n        document.getElementById(\"iletisimMakinasi\").disabled = true;\r\n        document.getElementById(\"Mobildev\").disabled = true;\r\n        document.getElementById(\"Asistel\").disabled = true;\r\n        document.getElementById(\"mobilpark\").disabled = true;\r\n        document.getElementById(\"Asist\").disabled = true;\r\n        document.getElementById(\"teknomart\").disabled = true;\r\n        document.getElementById(\"PostaGuvercin\").disabled = true;\r\n        \r\n        document.getElementById(id).disabled = false;\r\n    }\r\n\r\n\r\n    const submitUpdateSMS = (id, name) => {\r\n        var apikey = document.getElementById(\"apiKey\" + name);\r\n        var sender = document.getElementById(\"sender\" + name);\r\n        var fname = name;\r\n        if (listData.find(x => x.id == id) != null)\r\n            fname = listData.find(x => x.id == id).name;\r\n        var rec = {\r\n            userName: document.getElementById(\"userName\" + name).value,\r\n            sifre: document.getElementById(\"sifre\" + name).value,\r\n            userCode: document.getElementById(\"userCode\" + name).value,\r\n            accountId: document.getElementById(\"accountId\" + name).value,\r\n            sender: sender != null ? sender.value : null,\r\n            serviseAddress: document.getElementById(\"serviseAddress\" + name).value,\r\n            apiKey: apikey != null ? apikey.value : null,\r\n            id: id,\r\n            name: fname,\r\n            active: true\r\n        }\r\n\r\n        document.getElementById(\"iletisimMakinasi\").disabled = true;\r\n        document.getElementById(\"mobilpark\").disabled = true;\r\n        document.getElementById(\"Asistel\").disabled = true;\r\n        document.getElementById(\"Asist\").disabled = true;\r\n        document.getElementById(\"Mobildev\").disabled = true;\r\n        document.getElementById(\"teknomart\").disabled = true;\r\n        document.getElementById(\"turacell\").disabled = true;\r\n        document.getElementById(\"TTMesaj\").disabled = true;\r\n        document.getElementById(\"PostaGuvercin\").disabled = true;\r\n        \r\n\r\n        fetch(\"savesmssetting\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(value)\r\n\r\n                });\r\n\r\n            }\r\n            else {\r\n                showSuccessMessage(\"SMS Ayarları Güncellendi\")\r\n                fetchSMSSetting();\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    const submitUpdateEmail = () => {\r\n\r\n        var rec = {\r\n            userName: document.getElementById(\"euserName\").value,\r\n            password: document.getElementById(\"password\").value,\r\n            smtpPort: document.getElementById(\"smtpPort\").value,\r\n            smtpServer: document.getElementById(\"smtpServer\").value,\r\n            networkUserName: document.getElementById(\"networkUserName\").value,\r\n            tls: document.getElementById(\"tls\").checked\r\n        }\r\n        fetch(\"saveemailsetting\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n\r\n                showSuccessMessage(\"Güncelleme Başarılı\")\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const sendTestEmail = () => {\r\n        var email = document.getElementById(\"testemail\").value;\r\n        fetch(\"sendtestemail\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(email)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.text().then(value => {\r\n                    if (value.length <= 2)\r\n                        document.getElementById(\"testemailresult\").innerHTML = \"Email Gönderildi.\";\r\n                    else\r\n                        document.getElementById(\"testemailresult\").innerHTML = value;\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const sendTestSMS = () => {\r\n        var tel = document.getElementById(\"testtel\").value;\r\n        fetch(\"sendsms\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(\"TEST|\" + tel)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.text().then(value => {\r\n\r\n                    if (value.length <= 2)\r\n                        document.getElementById(\"testsmsresult\").innerText = \"SMS Gönderildi.\";\r\n                    else\r\n                        document.getElementById(\"testsmsresult\").innerText = value;\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchSMSSetting = () => {\r\n        fetch(\"getsmssetting\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    if (value.length == 0) return;\r\n\r\n                    value.forEach(x => {\r\n                        if (x.id == 1) {\r\n                            document.getElementById(\"userNameAsist\").value = x.userName;\r\n                            document.getElementById(\"sifreAsist\").value = x.sifre;\r\n                            document.getElementById(\"userCodeAsist\").value = x.userCode;\r\n                            document.getElementById(\"accountIdAsist\").value = x.accountId;\r\n                            document.getElementById(\"senderAsist\").value = x.sender;\r\n                            document.getElementById(\"serviseAddressAsist\").value = x.serviseAddress;\r\n                            document.getElementById(\"activeAsist\").checked = x.active;\r\n                            document.getElementById(\"Asist\").disabled = !x.active;\r\n                        }\r\n                        if (x.id == 2) {\r\n                            document.getElementById(\"userNameMobil\").value = x.userName;\r\n                            document.getElementById(\"sifreMobil\").value = x.sifre;\r\n                            document.getElementById(\"userCodeMobil\").value = x.userCode;\r\n                            document.getElementById(\"accountIdMobil\").value = x.accountId;\r\n                            document.getElementById(\"senderMobil\").value = x.sender;\r\n                            document.getElementById(\"serviseAddressMobil\").value = x.serviseAddress;\r\n                            document.getElementById(\"activeMobil\").checked = x.active;\r\n                            document.getElementById(\"mobilpark\").disabled = !x.active;\r\n                        }\r\n\r\n                        if (x.id == 3) {\r\n                            document.getElementById(\"userNameAsistel\").value = x.userName;\r\n                            document.getElementById(\"sifreAsistel\").value = x.sifre;\r\n                            document.getElementById(\"userCodeAsistel\").value = x.userCode;\r\n                            document.getElementById(\"accountIdAsistel\").value = x.accountId;\r\n                            document.getElementById(\"senderAsistel\").value = x.sender;\r\n                            document.getElementById(\"serviseAddressAsistel\").value = x.serviseAddress;\r\n                            document.getElementById(\"activeAsistel\").checked = x.active;\r\n                            document.getElementById(\"Asistel\").disabled = !x.active;\r\n                        }\r\n\r\n                        if (x.id == 4) {\r\n                            document.getElementById(\"userNameMobildev\").value = x.userName;\r\n                            document.getElementById(\"sifreMobildev\").value = x.sifre;\r\n                            document.getElementById(\"userCodeMobildev\").value = x.userCode;\r\n                            document.getElementById(\"accountIdMobildev\").value = x.accountId;\r\n                            document.getElementById(\"senderMobildev\").value = x.sender;\r\n                            document.getElementById(\"serviseAddressMobildev\").value = x.serviseAddress;\r\n                            document.getElementById(\"activeMobildev\").checked = x.active;\r\n                            document.getElementById(\"Mobildev\").disabled = !x.active;\r\n                        }\r\n                        if (x.id == 5) {\r\n                            document.getElementById(\"userNameiletisimMakinasi\").value = x.userName;\r\n                            document.getElementById(\"sifreiletisimMakinasi\").value = x.sifre;\r\n                            document.getElementById(\"userCodeiletisimMakinasi\").value = x.userCode;\r\n                            document.getElementById(\"accountIdiletisimMakinasi\").value = x.accountId;\r\n                            document.getElementById(\"serviseAddressiletisimMakinasi\").value = x.serviseAddress;\r\n                            document.getElementById(\"apiKeyiletisimMakinasi\").value = x.apiKey;\r\n                            document.getElementById(\"activeiletisimMakinasi\").checked = x.active;\r\n                            document.getElementById(\"iletisimMakinasi\").disabled = !x.active;\r\n                        }\r\n                        if (x.id == 6) {\r\n                            document.getElementById(\"userNameteknomart\").value = x.userName;\r\n                            document.getElementById(\"sifreteknomart\").value = x.sifre;\r\n                            document.getElementById(\"userCodeteknomart\").value = x.userCode;\r\n                            document.getElementById(\"accountIdteknomart\").value = x.accountId;\r\n                            document.getElementById(\"serviseAddressteknomart\").value = x.serviseAddress;\r\n                            document.getElementById(\"activeTeknomart\").checked = x.active;\r\n                            document.getElementById(\"senderteknomart\").value = x.sender;\r\n                            document.getElementById(\"teknomart\").disabled = !x.active;\r\n                        }\r\n                        if (x.id == 7) {\r\n                            document.getElementById(\"userNameturacell\").value = x.userName;\r\n                            document.getElementById(\"sifreturacell\").value = x.sifre;\r\n                            document.getElementById(\"userCodeturacell\").value = x.userCode;\r\n                            document.getElementById(\"accountIdturacell\").value = x.accountId;\r\n                            document.getElementById(\"serviseAddressturacell\").value = x.serviseAddress;\r\n                            document.getElementById(\"activeturacell\").checked = x.active;\r\n                            document.getElementById(\"senderturacell\").value = x.sender;\r\n                            document.getElementById(\"turacell\").disabled = !x.active;\r\n                        }\r\n                        if (x.id == 8) {\r\n                            document.getElementById(\"userNameTTMesaj\").value = x.userName;\r\n                            document.getElementById(\"sifreTTMesaj\").value = x.sifre;\r\n                            document.getElementById(\"userCodeTTMesaj\").value = x.userCode;\r\n                            document.getElementById(\"accountIdTTMesaj\").value = x.accountId;\r\n                            document.getElementById(\"serviseAddressTTMesaj\").value = x.serviseAddress;\r\n                            document.getElementById(\"activeTTMesaj\").checked = x.active;\r\n                            document.getElementById(\"senderTTMesaj\").value = x.sender;\r\n                            document.getElementById(\"TTMesaj\").disabled = !x.active;\r\n                        }\r\n                        if (x.id == 9) {\r\n                            document.getElementById(\"userNamePostaGuvercin\").value = x.userName;\r\n                            document.getElementById(\"sifrePostaGuvercin\").value = x.sifre;\r\n                            document.getElementById(\"userCodePostaGuvercin\").value = x.userCode;\r\n                            document.getElementById(\"accountIdPostaGuvercin\").value = x.accountId;\r\n                            document.getElementById(\"serviseAddressPostaGuvercin\").value = x.serviseAddress;\r\n                            document.getElementById(\"activePostaGuvercin\").checked = x.active;\r\n                            document.getElementById(\"senderPostaGuvercin\").value = x.sender;\r\n                            document.getElementById(\"PostaGuvercin\").disabled = !x.active;\r\n                        }\r\n                        if (x.id == 10) {\r\n                            document.getElementById(\"userNameBasicAuthorizationPOST\").value = x.userName;\r\n                            document.getElementById(\"sifreBasicAuthorizationPOST\").value = x.sifre;\r\n                            document.getElementById(\"userCodeBasicAuthorizationPOST\").value = x.userCode;\r\n                            document.getElementById(\"accountIdBasicAuthorizationPOST\").value = x.accountId;\r\n                            document.getElementById(\"serviseAddressBasicAuthorizationPOST\").value = x.serviseAddress;\r\n                            document.getElementById(\"activeBasicAuthorizationPOST\").checked = x.active;\r\n                            document.getElementById(\"senderBasicAuthorizationPOST\").value = x.sender;\r\n                            document.getElementById(\"BasicAuthorizationPOST\").disabled = !x.active;\r\n                        }\r\n\r\n\r\n                    })\r\n\r\n                    setListData(value);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchEmailSetting = () => {\r\n\r\n        fetch(\"getemailsetting\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n\r\n            else {\r\n                response.json().then(value => {\r\n                    if (value.length == 0) return;\r\n                    document.getElementById(\"euserName\").value = value[0].userName;\r\n                    document.getElementById(\"password\").value = value[0].password;\r\n                    document.getElementById(\"smtpPort\").value = value[0].smtpPort;\r\n                    document.getElementById(\"smtpServer\").value = value[0].smtpServer;\r\n                    document.getElementById(\"smtpServer\").value = value[0].smtpServer;\r\n                    document.getElementById(\"networkUserName\").value = value[0].networkUserName;\r\n                    document.getElementById(\"tls\").checked = value[0].tls;\r\n\r\n\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    useEffect(() => {\r\n        fetchEmailSetting();\r\n        fetchSMSSetting();\r\n    }, [])\r\n\r\n\r\n\r\n    return (<>\r\n        <div className=\"rounded-1 mt-5 p-2 bg-light \">\r\n\r\n            <h5>SMS Ayarları</h5>\r\n            <div className=\"row rounded-3 mb-1\">\r\n\r\n                <div className=\"col-12\" >\r\n                    <input className=\"form-check-input\" type=\"radio\" name=\"flexRadioDefault\" id=\"activeAsist\" onMouseDown={() => changeAktifPanel(\"Asist\")} />\r\n                    <label className=\"form-check-label ps-1 \" for=\"flexRadioDefault1\">\r\n                        Asist İletişim\r\n                    </label>\r\n                </div>\r\n            </div>\r\n\r\n            <fieldset className=\"row\" id=\"Asist\" disabled>\r\n\r\n                <div className=\"row rounded-3 mb-1\">\r\n\r\n                    <div className=\"col-10\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Servis Adresi\" id=\"serviseAddressAsist\" />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row rounded-3\">\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Kullanıcı Adı\" id=\"userNameAsist\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Şifre\" id=\"sifreAsist\" />\r\n                    </div>\r\n                    <div className=\"col-2 \" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"User Code\" id=\"userCodeAsist\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Account id\" id=\"accountIdAsist\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Sender\" id=\"senderAsist\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <button onClick={() => submitUpdateSMS(1, \"Asist\")} className=\"btn btn-sm btn-primary\">Güncelle</button>\r\n                    </div>\r\n                </div>\r\n            </fieldset>\r\n\r\n            <div className=\"row rounded-3 mb-1 mt-3\">\r\n\r\n                <div className=\"col-12\" >\r\n                    <input class=\"form-check-input\" type=\"radio\" name=\"flexRadioDefault\" id=\"activeMobil\" onMouseDown={() => changeAktifPanel(\"mobilpark\")} />\r\n                    <label class=\"form-check-label ps-1\" for=\"flexRadioDefault1\">\r\n                        Mobil Park\r\n                    </label>\r\n                </div>\r\n            </div>\r\n\r\n            <fieldset className=\"row\" id=\"mobilpark\" disabled>\r\n\r\n                <div className=\"row rounded-3 mb-1\">\r\n\r\n                    <div className=\"col-10\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Servis Adresi\" id=\"serviseAddressMobil\" />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row rounded-3\">\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Kullanıcı Adı\" id=\"userNameMobil\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Şifre\" id=\"sifreMobil\" />\r\n                    </div>\r\n                    <div className=\"col-2 \" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"User Code\" id=\"userCodeMobil\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Account id\" id=\"accountIdMobil\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Sender\" id=\"senderMobil\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <button onClick={() => submitUpdateSMS(2, \"Mobil\")} className=\"btn btn-sm btn-primary\">Güncelle</button>\r\n                    </div>\r\n                </div>\r\n            </fieldset>\r\n\r\n\r\n\r\n\r\n            <div className=\"row rounded-3 mb-1 mt-3\">\r\n\r\n                <div className=\"col-12\" >\r\n                    <input class=\"form-check-input\" type=\"radio\" name=\"flexRadioDefault\" id=\"activeAsistel\" onMouseDown={() => changeAktifPanel(\"Asistel\")} />\r\n                    <label class=\"form-check-label ps-1\" for=\"flexRadioDefault1\">\r\n                        Asistel\r\n                    </label>\r\n                </div>\r\n            </div>\r\n\r\n            <fieldset className=\"row\" id=\"Asistel\" disabled>\r\n\r\n                <div className=\"row rounded-3 mb-1\">\r\n\r\n                    <div className=\"col-10\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Servis Adresi\" id=\"serviseAddressAsistel\" />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row rounded-3\">\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Kullanıcı Adı\" id=\"userNameAsistel\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Şifre\" id=\"sifreAsistel\" />\r\n                    </div>\r\n                    <div className=\"col-2 \" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"User Code\" id=\"userCodeAsistel\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Account id\" id=\"accountIdAsistel\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Sender\" id=\"senderAsistel\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <button onClick={() => submitUpdateSMS(3, \"Asistel\")} className=\"btn btn-sm btn-primary\">Güncelle</button>\r\n                    </div>\r\n                </div>\r\n            </fieldset>\r\n\r\n            <div className=\"row rounded-3 mb-1 mt-3\">\r\n\r\n                <div className=\"col-12\" >\r\n                    <input class=\"form-check-input\" type=\"radio\" name=\"flexRadioDefault\" id=\"activeMobildev\" onMouseDown={() => changeAktifPanel(\"Mobildev\")} />\r\n                    <label class=\"form-check-label ps-1\" for=\"flexRadioDefault1\">\r\n                        Mobildev\r\n                    </label>\r\n                </div>\r\n            </div>\r\n\r\n            <fieldset className=\"row\" id=\"Mobildev\" disabled>\r\n\r\n                <div className=\"row rounded-3 mb-1\">\r\n\r\n                    <div className=\"col-10\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Servis Adresi\" id=\"serviseAddressMobildev\" />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row rounded-3\">\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Kullanıcı Adı\" id=\"userNameMobildev\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Şifre\" id=\"sifreMobildev\" />\r\n                    </div>\r\n                    <div className=\"col-2 \" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"User Code\" id=\"userCodeMobildev\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Account id\" id=\"accountIdMobildev\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Sender\" id=\"senderMobildev\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <button onClick={() => submitUpdateSMS(4, \"Mobildev\")} className=\"btn btn-sm btn-primary\">Güncelle</button>\r\n                    </div>\r\n                </div>\r\n            </fieldset>\r\n\r\n\r\n            <div className=\"row rounded-3 mb-1 mt-3\">\r\n\r\n                <div className=\"col-12\" >\r\n                    <input class=\"form-check-input\" type=\"radio\" name=\"flexRadioDefault\" id=\"activeiletisimMakinasi\" onMouseDown={() => changeAktifPanel(\"iletisimMakinasi\")} />\r\n                    <label class=\"form-check-label ps-1\" for=\"flexRadioDefault1\">\r\n                        İletisim Makinasi\r\n                    </label>\r\n                </div>\r\n            </div>\r\n            <fieldset className=\"row\" id=\"iletisimMakinasi\" disabled>\r\n\r\n                <div className=\"row rounded-3 mb-1\">\r\n\r\n                    <div className=\"col-10\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Servis Adresi\" id=\"serviseAddressiletisimMakinasi\" />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row rounded-3\">\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Kullanıcı Adı\" id=\"userNameiletisimMakinasi\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Şifre\" id=\"sifreiletisimMakinasi\" />\r\n                    </div>\r\n                    <div className=\"col-2 \" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Customer Code\" id=\"userCodeiletisimMakinasi\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Vendor Code\" id=\"accountIdiletisimMakinasi\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Api Key\" id=\"apiKeyiletisimMakinasi\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <button onClick={() => submitUpdateSMS(5, \"iletisimMakinasi\")} className=\"btn btn-sm btn-primary\">Güncelle</button>\r\n                    </div>\r\n                </div>\r\n            </fieldset>\r\n\r\n            <div className=\"row rounded-3 mb-1 mt-3\">\r\n\r\n                <div className=\"col-12\" >\r\n                    <input class=\"form-check-input\" type=\"radio\" name=\"flexRadioDefault\" id=\"activeTeknomart\" onMouseDown={() => changeAktifPanel(\"teknomart\")} />\r\n                    <label class=\"form-check-label ps-1\" for=\"flexRadioDefault1\">\r\n                        Teknomart\r\n                    </label>\r\n                </div>\r\n            </div>\r\n            <fieldset className=\"row\" id=\"teknomart\" disabled>\r\n\r\n                <div className=\"row rounded-3 mb-1\">\r\n\r\n                    <div className=\"col-10\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Servis Adresi\" id=\"serviseAddressteknomart\" />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row rounded-3\">\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Kullanıcı Adı\" id=\"userNameteknomart\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Şifre\" id=\"sifreteknomart\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Sender\" id=\"senderteknomart\" />\r\n                    </div>\r\n                    <div className=\"col-2 \" >\r\n                        <input type=\"text\" hidden className=\"form-control form-control-sm\" placeholder=\"Customer Code\" id=\"userCodeteknomart\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" hidden className=\"form-control form-control-sm\" placeholder=\"Vendor Code\" id=\"accountIdteknomart\" />\r\n                    </div>\r\n\r\n                    <div className=\"col-2\" >\r\n                        <button onClick={() => submitUpdateSMS(6, \"teknomart\")} className=\"btn btn-sm btn-primary\">Güncelle</button>\r\n                    </div>\r\n                </div>\r\n            </fieldset>\r\n\r\n\r\n\r\n            <div className=\"row rounded-3 mb-1 mt-3\">\r\n                <div className=\"col-12\" >\r\n                    <input class=\"form-check-input\" type=\"radio\" name=\"flexRadioDefault\" id=\"activeturacell\" onMouseDown={() => changeAktifPanel(\"turacell\")} />\r\n                    <label class=\"form-check-label ps-1\" for=\"flexRadioDefault1\">\r\n                        Turacell\r\n                    </label>\r\n                </div>\r\n            </div>\r\n            <fieldset className=\"row\" id=\"turacell\" disabled>\r\n                <div className=\"row rounded-3 mb-1\">\r\n                    <div className=\"col-10\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Servis Adresi\" id=\"serviseAddressturacell\" />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row rounded-3\">\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Kullanıcı Adı\" id=\"userNameturacell\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Şifre\" id=\"sifreturacell\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Originator\" id=\"senderturacell\" />\r\n                    </div>\r\n                    <div className=\"col-2 \" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"ChannelCode\" id=\"userCodeturacell\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" hidden className=\"form-control form-control-sm\" placeholder=\"Vendor Code\" id=\"accountIdturacell\" />\r\n                    </div>\r\n\r\n                    <div className=\"col-2\" >\r\n                        <button onClick={() => submitUpdateSMS(7, \"turacell\")} className=\"btn btn-sm btn-primary\">Güncelle</button>\r\n                    </div>\r\n                </div>\r\n            </fieldset>\r\n\r\n\r\n\r\n\r\n            <div className=\"row rounded-3 mb-1 mt-3\">\r\n                <div className=\"col-12\" >\r\n                    <input class=\"form-check-input\" type=\"radio\" name=\"flexRadioDefault\" id=\"activeTTMesaj\" onMouseDown={() => changeAktifPanel(\"TTMesaj\")} />\r\n                    <label class=\"form-check-label ps-1\" for=\"flexRadioDefault1\">\r\n                        TTMesaj\r\n                    </label>\r\n                </div>\r\n            </div>\r\n            <fieldset className=\"row\" id=\"TTMesaj\" disabled>\r\n                <div className=\"row rounded-3 mb-1\">\r\n                    <div className=\"col-10\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Servis Adresi\" id=\"serviseAddressTTMesaj\" />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row rounded-3\">\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Kullanıcı Adı\" id=\"userNameTTMesaj\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Şifre\" id=\"sifreTTMesaj\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Originator\" id=\"senderTTMesaj\" />\r\n                    </div>\r\n                    <div className=\"col-2 \" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"ChannelCode\" id=\"userCodeTTMesaj\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" hidden className=\"form-control form-control-sm\" placeholder=\"Vendor Code\" id=\"accountIdTTMesaj\" />\r\n                    </div>\r\n\r\n                    <div className=\"col-2\" >\r\n                        <button onClick={() => submitUpdateSMS(8, \"TTMesaj\")} className=\"btn btn-sm btn-primary\">Güncelle</button>\r\n                    </div>\r\n                </div>\r\n            </fieldset>\r\n\r\n            <div className=\"row rounded-3 mb-1 mt-3\">\r\n                <div className=\"col-12\" >\r\n                    <input class=\"form-check-input\" type=\"radio\" name=\"flexRadioDefault\" id=\"activePostaGuvercin\" onMouseDown={() => changeAktifPanel(\"PostaGuvercin\")} />\r\n                    <label class=\"form-check-label ps-1\" for=\"flexRadioDefault1\">\r\n                        Posta Guvercini\r\n                    </label>\r\n                </div>\r\n            </div>\r\n            <fieldset className=\"row\" id=\"PostaGuvercin\" disabled>\r\n                <div className=\"row rounded-3 mb-1\">\r\n                    <div className=\"col-10\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Servis Adresi\" id=\"serviseAddressPostaGuvercin\" />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row rounded-3\">\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Kullanıcı Adı\" id=\"userNamePostaGuvercin\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Şifre\" id=\"sifrePostaGuvercin\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Originator\" id=\"senderPostaGuvercin\" />\r\n                    </div>\r\n                    <div className=\"col-2 \" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"ChannelCode\" id=\"userCodePostaGuvercin\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" hidden className=\"form-control form-control-sm\" placeholder=\"Vendor Code\" id=\"accountIdPostaGuvercin\" />\r\n                    </div>\r\n\r\n                    <div className=\"col-2\" >\r\n                        <button onClick={() => submitUpdateSMS(9, \"PostaGuvercin\")} className=\"btn btn-sm btn-primary\">Güncelle</button>\r\n                    </div>\r\n                </div>\r\n            </fieldset>\r\n\r\n\r\n\r\n\r\n\r\n            <div className=\"row rounded-3 mb-1 mt-3\">\r\n                <div className=\"col-12\" >\r\n                    <input class=\"form-check-input\" type=\"radio\" name=\"flexRadioDefault\" id=\"activeBasicAuthorizationPOST\" onMouseDown={() => changeAktifPanel(\"BasicAuthorizationPOST\")} />\r\n                    <label class=\"form-check-label ps-1\" for=\"flexRadioDefault1\">\r\n                      Basic Authorization (POST)\r\n                    </label>\r\n                </div>\r\n            </div>\r\n            <fieldset className=\"row\" id=\"BasicAuthorizationPOST\" disabled>\r\n                <div className=\"row rounded-3 mb-1\">\r\n                    <div className=\"col-10\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Servis Adresi\" id=\"serviseAddressBasicAuthorizationPOST\" />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row rounded-3\">\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Kullanıcı Adı\" id=\"userNameBasicAuthorizationPOST\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Şifre\" id=\"sifreBasicAuthorizationPOST\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Originator\" id=\"senderBasicAuthorizationPOST\" />\r\n                    </div>\r\n                    <div className=\"col-2 \" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"ChannelCode\" id=\"userCodeBasicAuthorizationPOST\" />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" hidden className=\"form-control form-control-sm\" placeholder=\"Vendor Code\" id=\"accountIdBasicAuthorizationPOST\" />\r\n                    </div>\r\n\r\n                    <div className=\"col-2\" >\r\n                        <button onClick={() => submitUpdateSMS(10, \"BasicAuthorizationPOST\")} className=\"btn btn-sm btn-primary\">Güncelle</button>\r\n                    </div>\r\n                </div>\r\n            </fieldset>\r\n\r\n\r\n\r\n\r\n\r\n            <div className=\"row border-top mt-5 pt-2 mb-3\">\r\n                <div className=\"col-2\" >\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"TEL - 055******\" id=\"testtel\" />\r\n                </div>\r\n                <div className=\"col-2 \" >\r\n                    <button onClick={sendTestSMS} className=\"btn btn-sm btn-primary\">Test SMS Gönder</button>\r\n                </div>\r\n                <div className=\"col-8\" id=\"testsmsresult\">\r\n                </div>\r\n            </div>\r\n\r\n        </div>\r\n\r\n\r\n        <div className=\"rounded-1 mt-5 p-2 bg-light \">\r\n            <h5>Email Ayarları</h5>\r\n            <div className=\"row \">\r\n                <div className=\"col-3\" >\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Email\" id=\"euserName\" />\r\n                </div>\r\n                <div className=\"col-3\" >\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Şifre\" id=\"password\" />\r\n                </div>\r\n\r\n                <div className=\"col-3\" >\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Kullanıcı Adı\" id=\"networkUserName\" />\r\n                </div>\r\n\r\n                <div className=\"col-3\" >\r\n                    <input type=\"number\" className=\"form-control form-control-sm\" placeholder=\"Port\" id=\"smtpPort\" />\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mt-2\">\r\n                <div className=\"col-4\" >\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Sunucu\" id=\"smtpServer\" />\r\n                </div>\r\n                <div className=\"col-2\" >\r\n                    <div class=\"form-check\">\r\n                        <input className=\"form-check-input\" type=\"checkbox\" id=\"tls\" />\r\n                        <label className=\"form-check-label\" for=\"flexCheckChecked\">\r\n                            TLS\r\n                        </label>\r\n                    </div>\r\n                </div>\r\n                <div className=\"col-3\" >\r\n                    <button onClick={submitUpdateEmail} className=\"btn btn-sm btn-primary\">Güncelle</button>\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row border-top mt-2 pt-2 mb-3\">\r\n                <div className=\"col-4\" >\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Email\" id=\"testemail\" />\r\n                </div>\r\n                <div className=\"col-3 \" >\r\n                    <button onClick={sendTestEmail} className=\"btn btn-sm btn-primary\">Test Email Gönder</button>\r\n                </div>\r\n                <div className=\"col-5\" id=\"testemailresult\">\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </>\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, sendget, showSuccessMessage, useGlobalState, showErrorMessage } from '../GlobalState.js';\r\n\r\nimport CommunicationSetting from './CommunicationSetting.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport ReactQuill from 'react-quill';\r\nimport 'react-quill/dist/quill.snow.css';\r\nimport axios from \"axios\";\r\n\r\nexport default function GeneralSettingPanel(props) {\r\n    var [globalData, setGlobalData] = useGlobalState('globalData');\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userName, setUserName] = useGlobalState('userName');\r\n    const [duplicateList, setDuplicateList] = useState([]);\r\n\r\n    useEffect(() => {\r\n        fetchGeneralData();\r\n    }, [])\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        globalData[target.name] = value;\r\n        if (value == \"true\" || value == \"false\")\r\n            globalData[target.name] = value == \"true\";\r\n    }\r\n\r\n    const fetchGeneralData = () => {\r\n        fetch(\"getgeneraldata\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n\r\n                    setGlobalData(data);\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchduplicate = () => {\r\n        sendget(\"getduplicatedirs\", \"dupspin\", (response) => {\r\n            response.json().then(async data => {\r\n\r\n                setDuplicateList(data);\r\n\r\n            });\r\n        })\r\n    }\r\n\r\n    const SendFiles = (event, name) => {\r\n        document.getElementById(\"sp\" + name).hidden = false;\r\n        var formData = new FormData();\r\n\r\n        formData.append(\"userName\", name);\r\n        if (event != null) {\r\n            var selectedFile = { file: event.target.files[0] }\r\n            formData.append(\"file\", selectedFile.file);\r\n            formData.append(\"caption\", selectedFile.file.name);\r\n        }\r\n\r\n        axios.post(\r\n            \"submitgeneralfile\",\r\n            formData,\r\n            {\r\n                headers: {\r\n                    \"Content-type\": \"multipart/form-data\",\r\n                },\r\n            }\r\n        ).then(res => {\r\n            document.getElementById(\"sp\" + name).hidden = true;\r\n\r\n            setGlobalData(res.data);\r\n        })\r\n            .catch(err => { showErrorMessage(err); })\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const setGeneralData = () => {\r\n        fetch(\"setgeneraldata\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(globalData)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    showSuccessMessage(\"Güncelleme Başarılı\")\r\n                    setGlobalData(data);\r\n\r\n                });\r\n            }\r\n\r\n        });\r\n    }\r\n\r\n    return (\r\n        <div >\r\n            <div className=\"bg-light m-2 p-2 rounded-3\">\r\n                <div className=\"row \">\r\n                    <div className=\"col-3\">\r\n                        Belediye Adı\r\n                    </div>\r\n                    <div className=\"col-9\">\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"\" name=\"belediyeName\" id=\"belediyeName\" defaultValue={globalData.belediyeName} onChange={handleInputChange} />\r\n                    </div>\r\n                </div>\r\n\r\n                {role.indexOf(UserPermConstants.Pop_Up_Yonetimi) > -1 && <><div className=\"row mt-2 pe-3\">\r\n                    <div className=\"col-3\">\r\n\r\n                        <div class=\"form-check form-switch\">\r\n                            <input class=\"form-check-input\" type=\"checkbox\" id=\"showPopup\" name=\"showPopup\" defaultChecked={globalData.showPopup} onChange={handleInputChange} onMouseUp={(e) => {\r\n                                document.getElementById(\"popupMessage\").hidden = e.target.checked;\r\n                                document.getElementById(\"popupMessageFileDiv\").hidden = e.target.checked;\r\n\r\n                            }} />\r\n                            <label class=\"form-check-label\" for=\"flexSwitchCheckDefault\">Pop Up Mesajı</label>\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"col-9 ps-3\" id=\"popupMessage\" style={{ \"resize\": \"vertical\", \"overflow-y\": \"scroll\", \"height\": \"120px\" }} hidden={globalData.showPopup != true}>\r\n                        <ReactQuill className=\"bg-white h-100\" name=\"popupMessage\" theme=\"snow\" onChange={(e) => globalData.popupMessage = e} defaultValue={globalData.popupMessage} />\r\n                    </div>\r\n                </div>\r\n                    <div className=\"row\" hidden={globalData.showPopup != true} id=\"popupMessageFileDiv\">\r\n                        <div className=\"col-3\">\r\n                        </div>\r\n                        <div className=\"col-9 ps-3\" >\r\n                            <label for=\"popupMessageFile\" class=\"form-label\"><i aria-hidden=\"true\" title=\"Dosya Yükle\" className=\"fa fa-upload text-primary\" style={{ cursor: \"pointer\" }}></i></label>\r\n                            <input class=\"form-control form-control-sm\" hidden type=\"file\" id=\"popupMessageFile\" onChange={(e) => SendFiles(e, \"popupMessageFile\")} />\r\n                            <button class=\"btn btn-link\" onClick={(e) => SendFiles(null, \"popupMessageFile\")}><i className=\"fa fa-trash\"></i></button>\r\n                            <a className=\"text-decoration-none\" href='getgeneralfile?id=popupMessageFile' download={globalData.popupMessageFile}> {globalData.popupMessageFile} </a>\r\n                           <span class=\"spinner-border  spinner-border-sm\" hidden id=\"sppopupMessageFile\" ></span>\r\n \r\n                        </div>\r\n                    </div></>}\r\n\r\n                <div className=\"row mt-3\">\r\n                    <div className=\"col-3\">\r\n                        Yasal Uyarı\r\n                    </div>\r\n                    <div className=\"col-9\">\r\n                        <textarea class=\"form-control\" rows=\"3\" name=\"yasalUyari\" id=\"yasalUyari\" onChange={handleInputChange} defaultValue={globalData.yasalUyari}></textarea>\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"col-3\">\r\n                        Başvuru Taahhutnamesi\r\n                    </div>\r\n                    <div className=\"col-9\">\r\n                        <textarea class=\"form-control\" rows=\"3\" name=\"kvkk\" id=\"kvkk\" onChange={handleInputChange} defaultValue={globalData.kvkk}></textarea>\r\n                    </div>\r\n                </div>\r\n\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"col-3\">\r\n                        Google Harita Ayarları\r\n                    </div>\r\n\r\n                    <div className=\"col-9\">\r\n                        <div className=\"row rounded-3\">\r\n                            <div className=\"col-12 col-sm-4\" >\r\n                                <input type=\"Number\" className=\"form-control form-control-sm\" placeholder=\"Enlem\" name=\"genlem\" id=\"genlem\" onChange={handleInputChange} defaultValue={globalData.genlem} />\r\n                            </div>\r\n                            <div className=\"col-12 col-sm-4\" >\r\n                                <input type=\"Number\" className=\"form-control form-control-sm\" placeholder=\"Boylem\" name=\"gboylem\" id=\"gboylem\" onChange={handleInputChange} defaultValue={globalData.gboylem} />\r\n                            </div>\r\n                            <div className=\"col-12 col-sm-4\" >\r\n                                <input type=\"Number\" className=\"form-control form-control-sm\" placeholder=\"Zoom\" name=\"gzoom\" id=\"gzoom\" onChange={handleInputChange} defaultValue={globalData.gzoom} />\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"col-3\">\r\n                        Ödeme Linki\r\n                    </div>\r\n\r\n                    <div className=\"col-9\">\r\n                        <div className=\"row rounded-3\">\r\n                            <div className=\"col-12\" >\r\n                                <textarea class=\"form-control\" rows=\"1\" name=\"paymentLink\" id=\"paymentLink\" placeholder=\"Ödeme Linki\" onChange={handleInputChange} defaultValue={globalData.paymentLink}></textarea>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"col-3\">\r\n                        Üyelik KVKK\r\n                    </div>\r\n\r\n                    <div className=\"col-9\">\r\n                        <div className=\"row rounded-3\">\r\n                            <div className=\"col-12\" >\r\n                                <textarea class=\"form-control\" rows=\"1\" name=\"registerKVKK\" id=\"registerKVKK\" placeholder=\" Üyelik KVKK\" onChange={handleInputChange} defaultValue={globalData.registerKVKK}></textarea>\r\n                                <label for=\"registerKVKKFile\" class=\"form-label\"><i aria-hidden=\"true\" title=\"Dosya Yükle\" className=\"fa fa-upload text-primary\" style={{ cursor: \"pointer\" }}></i></label>\r\n                                <input class=\"form-control form-control-sm\" hidden type=\"file\" id=\"registerKVKKFile\" onChange={(e) => SendFiles(e, \"registerKVKKFile\")} />\r\n                                <button class=\"btn btn-link\" onClick={(e) => SendFiles(null, \"registerKVKKFile\")}><i className=\"fa fa-trash\"></i></button>\r\n\r\n                                 <a className=\"text-decoration-none\" href='getgeneralfile?id=registerKVKKFile' download={globalData.registerKVKKFile}> {globalData.registerKVKKFile} </a>\r\n                              <span class=\"spinner-border  spinner-border-sm\" hidden id=\"spregisterKVKKFile\" ></span>\r\n \r\n\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"col-3\">\r\n                        Üyelik Sözleşme\r\n                    </div>\r\n\r\n                    <div className=\"col-9\">\r\n                        <div className=\"row rounded-3\">\r\n                            <div className=\"col-12\" >\r\n                                <textarea class=\"form-control\" rows=\"1\" name=\"registerAgrement\" id=\"registerAgrement\" placeholder=\" Üyelik Sözleşme\" onChange={handleInputChange} defaultValue={globalData.registerAgrement}></textarea>\r\n                                <label for=\"registerAgrementFile\" class=\"form-label\"><i aria-hidden=\"true\" title=\"Dosya Yükle\" className=\"fa fa-upload text-primary\" style={{ cursor: \"pointer\" }}></i></label>\r\n                                <input class=\"form-control form-control-sm\" hidden type=\"file\" id=\"registerAgrementFile\" onChange={(e) => SendFiles(e, \"registerAgrementFile\")} />\r\n                                <button class=\"btn btn-link\" onClick={(e) => SendFiles(null, \"registerAgrementFile\")}><i className=\"fa fa-trash\"></i></button>\r\n                                <a className=\"text-decoration-none\" href='getgeneralfile?id=registerAgrementFile' download={globalData.registerAgrementFile}> {globalData.registerAgrementFile} </a>\r\n\r\n                                <span class=\"spinner-border  spinner-border-sm\" hidden id=\"spregisterAgrementFile\" ></span>\r\n\r\n                            </div>\r\n\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"col-3\">\r\n                        Başvuru KVKK\r\n                    </div>\r\n\r\n                    <div className=\"col-9\">\r\n                        <div className=\"row rounded-3\">\r\n                            <div className=\"col-12\" >\r\n                                <textarea class=\"form-control\" rows=\"1\" name=\"applyKVKK\" id=\"applyKVKK\" placeholder=\"Başvuru KVKK\" onChange={handleInputChange} defaultValue={globalData.applyKVKK}></textarea>\r\n                                <label for=\"applyKVKKFile\" class=\"form-label\"><i aria-hidden=\"true\" title=\"Dosya Yükle\" className=\"fa fa-upload text-primary\" style={{ cursor: \"pointer\" }}></i></label>\r\n                                <input class=\"form-control form-control-sm\" hidden type=\"file\" id=\"applyKVKKFile\" onChange={(e) => SendFiles(e, \"applyKVKKFile\")} />\r\n                                <button class=\"btn btn-link\" onClick={(e) => SendFiles(null, \"applyKVKKFile\")}><i className=\"fa fa-trash\"></i></button>\r\n\r\n\r\n                                <a className=\"text-decoration-none\" href='getgeneralfile?id=applyKVKKFile' download={globalData.applyKVKKFile}> {globalData.applyKVKKFile} </a>\r\n                                <span class=\"spinner-border  spinner-border-sm\" hidden id=\"spapplyKVKKFile\" ></span>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"col-3\">\r\n                        Başvuru Sözleşme\r\n                    </div>\r\n\r\n                    <div className=\"col-9\">\r\n                        <div className=\"row rounded-3\">\r\n                            <div className=\"col-12\" >\r\n                                <textarea class=\"form-control\" rows=\"1\" name=\"applyAgrement\" id=\"applyAgrement\" placeholder=\"Başvuru Sözleşme\" onChange={handleInputChange} defaultValue={globalData.applyAgrement}></textarea>\r\n                                <label for=\"applyAgrementFile\" class=\"form-label\"><i aria-hidden=\"true\" title=\"Dosya Yükle\" className=\"fa fa-upload text-primary\" style={{ cursor: \"pointer\" }}></i></label>\r\n                                <input class=\"form-control form-control-sm\" hidden type=\"file\" id=\"applyAgrementFile\" onChange={(e) => SendFiles(e, \"applyAgrementFile\")} />\r\n                                <button class=\"btn btn-link\" onClick={(e) => SendFiles(null, \"applyAgrementFile\")}><i className=\"fa fa-trash\"></i></button>\r\n                                <a className=\"text-decoration-none\" href='getgeneralfile?id=applyAgrementFile' download={globalData.applyAgrementFile}> {globalData.applyAgrementFile} </a>\r\n                                <span class=\"spinner-border  spinner-border-sm\" hidden id=\"spapplyAgrementFile\" ></span>\r\n\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-2\">\r\n                    <div className=\"col-3\">\r\n                        Düzeltme Mesajlarını\r\n                    </div>\r\n\r\n                    <div className=\"col-9\">\r\n                        <div className=\"row rounded-3\">\r\n                            <div className=\"col-12\" >\r\n                                <div class=\"form-check form-check-inline\">\r\n                                    <input class=\"form-check-input\" type=\"radio\" name=\"showRevisionNoteAfterSend\" id=\"inlineRadio1\" value={\"false\"} onChange={handleInputChange} defaultChecked={globalData.showRevisionNoteAfterSend != true} />\r\n                                    <label class=\"form-check-label\" for=\"inlineRadio1\">Hemen Göster</label>\r\n                                </div>\r\n                                <div class=\"form-check form-check-inline\">\r\n                                    <input class=\"form-check-input\" type=\"radio\" name=\"showRevisionNoteAfterSend\" id=\"inlineRadio2\" value={\"true\"} onChange={handleInputChange} defaultChecked={globalData.showRevisionNoteAfterSend == true} />\r\n                                    <label class=\"form-check-label\" for=\"inlineRadio2\">Kontrol Tamamlanınca Göster</label>\r\n                                </div>\r\n\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-3\">\r\n                    <div className=\"col-3\">\r\n                        2 Aaşamalı Kullanıcı Doğrulama\r\n                    </div>\r\n\r\n                    <div className=\"col-9\">\r\n                        <div className=\"row rounded-3\">\r\n                            <div className=\"col-12\" >\r\n                                <div class=\"form-check form-check-inline\">\r\n                                    <input class=\"form-check-input\" type=\"checkbox\" name=\"twoStepSMS\" onChange={handleInputChange} defaultChecked={globalData.twoStepSMS == true} />\r\n                                    <label class=\"form-check-label\" >SMS</label>\r\n                                </div>\r\n                                <div class=\"form-check form-check-inline\">\r\n                                    <input class=\"form-check-input\" type=\"checkbox\" name=\"twoStepEmail\" onChange={handleInputChange} defaultChecked={globalData.twoStepEmail == true} />\r\n                                    <label class=\"form-check-label\">Email</label>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-4\">\r\n                    <div className=\"col-12\">\r\n                        <button onClick={setGeneralData} className=\"btn btn-sm btn-primary\">Güncelle</button>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row mt-2\">\r\n                <div className=\"col-12\">\r\n                    <CommunicationSetting />\r\n                </div>\r\n            </div>\r\n\r\n\r\n            {(userName == \"a\" || userName.toLowerCase() == \"admin\") && <div>\r\n                <button onClick={fetchduplicate} className=\"btn btn-sm btn-primary mb-2\">Arşivde Duplicate Klasorleri Bul</button>\r\n                <div class=\"spinner-border spinner-border-sm\" hidden id=\"dupspin\"></div>\r\n                <div className=\"mt-1\" style={{ maxHeight: '500px', overflowY: 'auto', border: '1px solid #ccc', padding: '5px' }}>\r\n                    {duplicateList.map(x => <div>{x}</div>)}\r\n                </div>\r\n            </div>}\r\n\r\n        </div>\r\n    );\r\n\r\n\r\n}\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, showConfirmMessage, showSuccessMessage, showErrorMessage, isEmpty } from '../GlobalState.js';\r\n\r\n\r\nexport default function UserTypePanel(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState(null);\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const removeRecord = (id) => {\r\n\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\",\"Evet\",\"Hayır\",()=>\r\n\r\n        fetch(\"removeusertype\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                fetchList();\r\n            }\r\n        }) )\r\n    }\r\n\r\n\r\n\r\n    const submitUpdateRecord = (rec) => {\r\n\r\n        fetch(\"updateusertype\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Güncelleme Başarılı\")\r\n            }\r\n        });\r\n    }\r\n    const fetchList = () => {\r\n\r\n        fetch(\"getusertypelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const Add = () => {\r\n\r\n        if (isEmpty(document.getElementById(\"basvuruTuru\").value)) {\r\n            showErrorMessage(\"Lütfen kullanıcı tipi ismini giriniz\");\r\n            return;\r\n        }\r\n\r\n        if (isEmpty(document.getElementById(\"sira\").value)) {\r\n            showErrorMessage(\"Lütfen imzacı sırasını giriniz\");\r\n            return;\r\n        }  \r\n        var apptype = {\r\n            appType: document.getElementById(\"basvuruTuru\").value,\r\n            gizli: document.getElementById(\"gizli\").checked,\r\n            sira: document.getElementById(\"sira\").value\r\n        }\r\n        fetch(\"addusertype\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(apptype)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                document.getElementById(\"basvuruTuru\").value = \"\";\r\n                document.getElementById(\"sira\").value = \"\";\r\n                document.getElementById(\"gizli\").checked = false;\r\n                fetchList();\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const myCompare = (a, b) => {\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n        var ret = 1;\r\n        if (sortDirection[sortField] == \"ZA\")\r\n            ret = -1;\r\n\r\n        if (av == null && bv != null)\r\n            return -1 * ret;\r\n        if (av != null && bv == null)\r\n            return 1 * ret;\r\n        if (av == null && bv == null)\r\n            return 0;\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * ret\r\n\r\n        if (av < bv) {\r\n            return -1 * ret;\r\n        }\r\n        if (av > bv) {\r\n            return 1 * ret;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n    const [sortDirection, setSortDirection] = useState({});\r\n    var sortField = \"\";\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == \"ZA\") {\r\n            sortDirection[sortField] = \"AZ\";\r\n        }\r\n        else {\r\n            sortDirection[sortField] = \"ZA\";\r\n        }\r\n\r\n        var temp = [...listData]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setListData(temp);\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"table-responsive  mainpagescroll\" style={{ \"height\": \"85vh\" }}>\r\n            <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light\">\r\n\r\n                        <th className=\"text-start\"><button className=\"btn btn-sm btn-link text-decoration-none shadow-none\" onClick={() => sortList(\"id\")}> No</button></th>\r\n                        <th className=\"text-start\"  ><button className=\"btn btn-sm btn-link text-decoration-none shadow-none\" onClick={() => sortList(\"appType\")}> Kullanıcı Tipi</button></th>\r\n                        <th className=\"text-start\"><button className=\"btn btn-sm btn-link text-decoration-none shadow-none\" onClick={() => sortList(\"gizli\")}> Gizli</button></th>\r\n                        <th className=\"text-start\"><button className=\"btn btn-sm btn-link text-decoration-none shadow-none\" onClick={() => sortList(\"sira\")}> Sıra</button></th>\r\n                        <th className=\"text-start\"><button className=\"btn btn-sm btn-link text-decoration-none shadow-none\" onClick={() => sortList(\"regDate\")}> Kayıt Tarihi</button></th>\r\n                        <th className=\"text-start\"><button className=\"btn btn-sm btn-link text-decoration-none shadow-none\" onClick={() => sortList(\"userName\")}> Ekleyen</button></th>\r\n                            <th className=\"text-start\"></th>\r\n                   \r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n                    {tabledata.map(apprec =>\r\n                        <tr key={apprec.id}>\r\n                            <td>{apprec.id}</td>\r\n                            <td>\r\n                                <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Kullanıcı Tipi\" name=\"appType\"  defaultValue={apprec.appType} onChange={(e) => updateRecord(apprec, e)} />\r\n                            </td>\r\n                            <td className=\"text-center\">\r\n                                <input type=\"checkbox\" className=\"form-check-input\"  name=\"gizli\" defaultChecked={apprec.gizli} onChange={(e) => updateRecord(apprec, e)} />\r\n                            </td>\r\n                            <td>\r\n                                <input type=\"number\" className=\"form-control form-control-sm\" placeholder=\"Sıra\" name=\"sira\" defaultValue={apprec.sira} onChange={(e) => updateRecord(apprec, e)} />\r\n                            </td>\r\n                            <td>{apprec.regDate}</td>\r\n                            <td>{apprec.userName}</td>\r\n\r\n                            <td>\r\n                                <button onClick={() => submitUpdateRecord(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Güncelle</button>&nbsp;\r\n                                <button onClick={() => removeRecord(apprec.id)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button>\r\n                            </td>\r\n                        </tr>\r\n                    )}\r\n                    <tr className=\"bg-white\">\r\n                        <td></td>\r\n                        <td>\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" placeholder=\"Yeni Kullanıcı Tipi\" id=\"basvuruTuru\" name=\"name\" defaultValue=\"\" />\r\n                        </td>\r\n                        <td className=\"text-center\">\r\n                            <input type=\"checkbox\" className=\"form-check-input\" name=\"gizli\" id=\"gizli\" defaultChecked={false}  />\r\n                            </td>\r\n                            <td>\r\n                                <input type=\"number\" className=\"form-control form-control-sm\" placeholder=\"Sıra\" name=\"sira\" id=\"sira\"/>\r\n                            </td>\r\n                        <td></td>\r\n                        <td></td>\r\n                        <td>  <button onClick={Add} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">Ekle</button></td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div>\r\n\r\n            <h5 className=\"ps-1\">Kullanıcı Tipleri</h5>\r\n            <div className=\"row\">\r\n                <div className=\"col-12\">\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n\r\n\r\n           \r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, showSuccessMessage, showConfirmMessage, sendget } from '../GlobalState.js';\r\n\r\nexport default function SureclerPanel(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState(null);\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const removeRecord = (id) => {\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removesurec\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    fetchList();\r\n                }\r\n            }));\r\n    }\r\n\r\n\r\n\r\n    const submitUpdateRecord = (rec) => {\r\n\r\n        fetch(\"updatesurec\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Güncelleme Başarılı\")\r\n            }\r\n        });\r\n    }\r\n    const fetchList = () => {\r\n        sendget(\"sureclist\", \"\", (response) =>  {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n        });\r\n    }\r\n\r\n    const Add = () => {\r\n        fetch(\"addsurec\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(document.getElementById(\"surecAdi\").value)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                document.getElementById(\"surecAdi\").value = \"\";\r\n                fetchList();\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"table-responsive mainpagescroll\" style={{ \"height\": \"85vh\" }}>\r\n            <table className='table table-striped table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light\">\r\n                    <tr>\r\n                        <th>No</th>\r\n                        <th>Süreç Adı</th>\r\n                        <th>Aşama</th>\r\n                        <th>Kayıt Tarihi</th>\r\n                        <th>Ekleyen</th>\r\n                        <th>Ayarlar</th>\r\n                    </tr>\r\n                </thead >\r\n                <tbody id=\"myTable\">\r\n                    {tabledata.map(apprec =>\r\n                        <tr key={apprec.id}>\r\n                            <td>{apprec.id}</td>\r\n                            <td>\r\n                                <input type=\"text\" className=\"form-control form-control-sm\"  name=\"name\" defaultValue={apprec.name} onChange={(e) => updateRecord(apprec, e)} />\r\n                            </td>\r\n                            <td>\r\n                                {apprec.stage}\r\n                            </td>\r\n                            <td>{apprec.createTime}</td>\r\n                            <td>{apprec.userName}</td>\r\n\r\n                            <td>\r\n                                <button onClick={() => submitUpdateRecord(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Güncelle</button>&nbsp;\r\n                                {apprec.additional==true?<button onClick={() => removeRecord(apprec.id)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button>:\"\"}\r\n                            </td>\r\n                        </tr>\r\n                    )}\r\n                    <tr className=\"bg-white\">\r\n                        <td></td>\r\n                        <td>\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" placeholder=\"Yeni Süreç\" id=\"surecAdi\" name=\"surecAdi\" defaultValue=\"\" />\r\n                        </td>\r\n                        <td></td>\r\n                        <td></td>\r\n                        <td></td>\r\n                        <td>  <button onClick={Add} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">Ekle</button></td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div >\r\n\r\n            <h5 className=\"ps-1\">Süreçler</h5>\r\n            <div className=\"row\">\r\n                <div className=\"col-12\">\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { ajaxFail, showConfirmMessage, showSuccessMessage } from '../GlobalState.js';\r\n\r\nexport default function SettingUserFile(props) {\r\n    var postdata = {};\r\n    postdata[\"FileType\"] = \".pdf\";\r\n    const [listData, setListData] = useState(null);\r\n    const [typeOptions, setTypeOptions] = useState([]);\r\n    var multiselectRef = React.createRef();\r\n    var multiselectRef2 = React.createRef();\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value.trim();\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const sil = (rec) => {\r\n        showConfirmMessage(rec.name + \" İsimli Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n        fetch(\"removeuserfilename\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        }));\r\n\r\n    }\r\n\r\n    const onSelect1 = (selectedList, selectedItem) => {\r\n        postdata[\"userType\"] = multiselectRef.current.getSelectedItems().map(c => c.name).join(\", \")\r\n    }\r\n    const onRemove1 = (selectedList, removedItem) => {\r\n        postdata[\"userType\"] = multiselectRef.current.getSelectedItems().map(c => c.name).join(\", \")\r\n    }\r\n    const onSelect2 = (selectedList, selectedItem) => {\r\n        postdata[\"fileType\"] = selectedList.join(\", \")\r\n    }\r\n    const onRemove2 = (selectedList, removedItem) => {\r\n        postdata[\"fileType\"] = selectedList.join(\", \")\r\n    }\r\n\r\n\r\n    useEffect(() => {\r\n        userfilenamelist();\r\n        getAppTypes();\r\n    }, [])\r\n\r\n\r\n\r\n    const Add = (rec) => {\r\n        fetch(\"saveuserfilename\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec!=null?rec:postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                if (rec != null) {\r\n                    showSuccessMessage(\"Güncelleme Başarılı\")\r\n                }\r\n                document.getElementById(\"zorunlu\").checked = false;\r\n                document.getElementById(\"dosyaadi\").value = \"\";\r\n                multiselectRef.current.resetSelectedValues();\r\n                multiselectRef2.current.resetSelectedValues();\r\n                userfilenamelist();\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getAppTypes = () => {\r\n        fetch(\"getusertypelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    var opt = [];\r\n                    for (var x of value) {\r\n                        opt.push({ name: x.appType })\r\n                    }\r\n                    setTypeOptions(opt);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const userfilenamelist = () => {\r\n        fetch(\"userfilenamelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n\r\n            <table className='table table-vdstriped table-sm' aria-labelledby=\"tabelLabel\">\r\n                <thead>\r\n                    <tr>\r\n                        <th>Dosya Adı</th>\r\n                        <th>Dosya Tipi</th>\r\n                        <th>Kullanıcı Tipi</th>\r\n                        <th>Zorunlu</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n                    {tabledata.map(apprec =>\r\n                        <tr key={apprec.id}>\r\n                            {/*<td>{apprec.id}</td>*/}\r\n                            <td>\r\n                                <input type=\"text\" className=\"form-control form-control-sm\" name=\"name\" defaultValue={apprec.name} onChange={(e) => updateRecord(apprec, e)} />\r\n\r\n                            </td>\r\n                            <td>\r\n                                <Multiselect className=\"text-dark form-select-sm m-0 p-0\"\r\n                                    options={[\".pdf\", \".zip\", \".doc\", \".docx\", \".xls\", \"xlsx\", \"image/*\"]}\r\n                                    emptyRecordMsg=\"Başka Dosya Tipi Yok\"\r\n                                    isObject={false}\r\n                                    ref={multiselectRef2}\r\n                                    onSelect={(selectedList, selectedItem) => { apprec.fileType = selectedList.join() }}\r\n                                    onRemove={(selectedList, selectedItem) => { apprec.fileType = selectedList.join() }}\r\n                                    hidePlaceholder={true}\r\n                                    selectedValues={apprec.fileType != null ? apprec.fileType.split(',').map(x => x.trim()) : []}\r\n                                />\r\n\r\n                            </td>\r\n                            <td>\r\n\r\n                                <Multiselect className=\"p-0 ps-1 form-control-sm bg-white\"\r\n                                    options={typeOptions.map(x=>x.name)}\r\n                                    emptyRecordMsg=\"Başka Başvuru Durmu Yok\"\r\n                                    isObject={false}\r\n                                    onSelect={(selectedList, selectedItem) => { apprec.userType = selectedList.join() }}\r\n                                    onRemove={(selectedList, selectedItem) => { apprec.userType = selectedList.join() }}\r\n                                    selectedValues={apprec.userType != null ?  apprec.userType.split(',').map(x=>x.trim()) : []}\r\n                                    displayValue=\"name\"\r\n                                />\r\n\r\n                            </td>\r\n                            {/*<td>{apprec.crerateTime}</td>*/}\r\n                            {/*<td>{apprec.creatorUserName}</td>*/}\r\n                            <td>\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"zorunlu\" defaultChecked={apprec.zorunlu} onChange={(e) => updateRecord(apprec, e)} />\r\n                            </td>\r\n                            <td>\r\n                                <button onClick={() => Add(apprec)} className=\"btn btn-link  text-decoration-none m-0 p-0\"><i class=\"fa fa-save\" title=\"Güncelle\"></i></button>&nbsp;\r\n                                <button onClick={() => sil(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">\r\n                                <i class=\"fa fa-trash-o text-danger\" title=\"Sil\"></i>\r\n                            </button></td>\r\n                        </tr>\r\n                    )}\r\n                    <tr className=\"bg-white\">\r\n\r\n                        <td>\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"dosyaadi\" placeholder=\"Dosya Adı\" name=\"Name\" onChange={handleInputChange} />\r\n                        </td>\r\n                        <td width=\"30%\">\r\n\r\n                            <Multiselect className=\"text-dark form-select-sm m-0 p-0\"\r\n                                options={[\".pdf\", \".zip\", \".doc\",\".docx\", \".xls\",\"xlsx\", \"image/*\"]}\r\n                                emptyRecordMsg=\"Başka Dosya Tipi Yok\"\r\n                                isObject={false}\r\n                                ref={multiselectRef2}\r\n                                onSelect={onSelect2} // Function will trigger on select event\r\n                                onRemove={onRemove2} // Function will trigger on remove event\r\n                                hidePlaceholder={true}\r\n\r\n                            />\r\n                        </td>\r\n                        <td width=\"30%\">\r\n                            <Multiselect className=\"text-dark form-select-sm m-0 p-0\"\r\n                                options={typeOptions} // Options to display in the dropdown\r\n                                //selectedValues={appData.başvuruTipi} // Preselected value to persist in dropdown\r\n                                onSelect={onSelect1} // Function will trigger on select event\r\n                                onRemove={onRemove1} // Function will trigger on remove event\r\n                                displayValue=\"name\" // Property name to display in the dropdown options\r\n                                emptyRecordMsg=\"Başka Kullanıcı Tipi Yok\"\r\n                                ref={multiselectRef}\r\n                                hidePlaceholder={true}\r\n                            />\r\n                        </td>\r\n\r\n                        <td> <input type=\"checkbox\" className=\"form-check-input\" name=\"zorunlu\" id=\"zorunlu\" onChange={handleInputChange} /></td>\r\n                        <td>  <button onClick={() => Add()} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">\r\n                            <i class=\"fa fa-plus-circle\"></i>\r\n                        </button></td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div >\r\n            <h5>Kullanıcı Dosyaları</h5>\r\n\r\n   {listTable}\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport SettingUserFile from './SettingUserFile.js';\r\nimport { ajaxFail, showConfirmMessage, showSuccessMessage } from '../GlobalState.js';\r\n\r\nexport default function RegisterSettingPanel(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState(null);\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n    \r\n\r\n    const removeRecord = (id) => {\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removeuserfield\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }));\r\n    }\r\n\r\n    \r\n\r\n    const submitUpdateRecord = (rec) => {\r\n\r\n        fetch(\"updateuserfield\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Güncelleme Başarılı\")\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    \r\n\r\n    const fetchList = () => {\r\n\r\n        fetch(\"userfieldlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const Add = () => {\r\n        fetch(\"adduserfield\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                document.getElementById(\"name\").value = \"\";\r\n                document.getElementById(\"type\").value = \"\";\r\n                document.getElementById(\"reqired\").checked = false;\r\n                document.getElementById(\"active\").checked = false;\r\n                fetchList();\r\n\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n\r\n            <table className='table table-striped   table-sm' aria-labelledby=\"tabelLabel\">\r\n                <thead>\r\n                    <tr>\r\n                        <th>ID</th>\r\n                        <th>Soru Adı</th>\r\n                        <th>Soru Türü</th>\r\n                        <th>Varsayılan Değer</th>\r\n\r\n                        <th>Zorunlu</th>\r\n                        <th>Aktif</th>\r\n                        <th>Kayıt Tarihi</th>\r\n                        <th>Ekleyen</th>\r\n                        <th></th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n                    {tabledata.map(apprec =>\r\n                        <tr key={apprec.id}>\r\n                            <td>{apprec.id}</td>\r\n                            <td>\r\n                                <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Soru Adı\" name=\"name\" defaultValue={apprec.name} onChange={(e) => updateRecord(apprec, e)} />\r\n                            </td>\r\n                            <td>\r\n                                <select className=\"form-select form-select-sm\" name=\"type\" placeholder=\"Soru Türü\" defaultValue={apprec.type} onChange={(e) => updateRecord(apprec, e)} >\r\n                                    <option value=\"text\">Yazı</option>\r\n                                    <option value=\"select\">Çoktan Seçmeli</option>\r\n                                    <option value=\"checkbox\">Checkbox</option>\r\n                                    <option value=\"number\">Sayı</option>\r\n                                </select>\r\n                            </td>\r\n                            <td>\r\n                                <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Varsayılan Değer\" name=\"initValue\" defaultValue={apprec.initValue} onChange={(e) => updateRecord(apprec, e)} />\r\n                            </td>\r\n                            <td>\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"reqired\" defaultChecked={apprec.reqired} onChange={(e) => updateRecord(apprec, e)} />\r\n                            </td>\r\n                            <td>\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"active\" defaultChecked={apprec.active} onChange={(e) => updateRecord(apprec, e)} />\r\n                            </td>\r\n                            <td>{apprec.crerateTime}</td>\r\n                            <td>{apprec.userName}</td>\r\n\r\n                            <td>\r\n                                <button onClick={() => submitUpdateRecord(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">\r\n                                    <i class=\"fa fa-save\" title=\"Güncelle\"></i>\r\n                                </button>&nbsp;\r\n                                <button onClick={() => removeRecord(apprec.id)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">\r\n                                    <i class=\"fa fa-trash-o text-danger\" title=\"Sil\"></i>\r\n                                </button>\r\n                            </td>\r\n                        </tr>\r\n                    )}\r\n                    <tr className=\"bg-white\">\r\n                        <td></td>\r\n                        <td>\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" placeholder=\"Soru Adı\" name=\"name\" onChange={handleInputChange} defaultValue=\"\" />\r\n                        </td>\r\n                        <td>\r\n                            <select className=\"form-select form-select-sm\" id=\"type\" name=\"type\" placeholder=\"Soru Türü\" defaultValue=\"\" onChange={handleInputChange} >\r\n                                <option value=\"text\">Yazı</option>\r\n                                <option value=\"select\">Çoktan Seçmeli</option>\r\n                                <option value=\"checkbox\">Checkbox</option>\r\n                                <option value=\"number\">Sayı</option>\r\n                            </select>\r\n\r\n                        </td>\r\n                        <td>\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Varsayılan Değer\" name=\"initValue\" defaultValue=\"\" onChange={handleInputChange} />\r\n                        </td>\r\n                        <td>\r\n                            <input type=\"checkbox\" className=\"form-check-input\" id=\"reqired\" name=\"reqired\" onChange={handleInputChange} />\r\n                        </td>\r\n                        <td>\r\n                            <input type=\"checkbox\" className=\"form-check-input\" id=\"active\" name=\"active\" onChange={handleInputChange} />\r\n                        </td>\r\n                        <td></td>\r\n                        <td></td>\r\n                        <td>  <button onClick={Add} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">\r\n                            <i class=\"fa fa-plus-circle\"></i>\r\n                        </button></td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div className=\"  rounded mt-2\">\r\n\r\n            <h5>Kullanıcı Kayıt Formu</h5>\r\n            <div className=\"row\">\r\n                <div className=\"col-12\">\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n            <div className=\"row mt-5\">\r\n                <div className=\"col-12\">\r\n                    <SettingUserFile />\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, showConfirmMessage, showSuccessMessage, showErrorMessage } from '../GlobalState.js';\r\nimport ReactQuill from 'react-quill';\r\nimport 'react-quill/dist/quill.snow.css';\r\nimport axios from \"axios\";\r\n\r\nexport default function DuyuruSetting(props) {\r\n    var postdata = \"\";\r\n    const [listData, setListData] = useState(null);\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const removeRecord = (id) => {\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removeduyuru\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    fetchList();\r\n                }\r\n            }));\r\n    }\r\n\r\n\r\n\r\n    const submitUpdateRecord = (rec) => {\r\n\r\n        fetch(\"updateduyuru\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Güncelleme Başarılı\")\r\n            }\r\n        });\r\n    }\r\n    const fetchList = () => {\r\n\r\n        fetch(\"getduyurulist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const Add = () => {\r\n        fetch(\"addduyuru\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n\r\n                fetchList();\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n    const SendFiles = (event, selectedRecord) => {\r\n        document.getElementById(\"fileuploadsp\").hidden = false;\r\n        var selectedFile = { file: event.target.files[0] }\r\n        var formData = new FormData();\r\n        formData.append(\"file\", selectedFile.file);\r\n        formData.append(\"caption\", selectedFile.file.name);\r\n        formData.append(\"appid\", selectedRecord.id);\r\n        axios.post(\r\n            \"submitduyurufile\",\r\n            formData,\r\n            {\r\n                headers: {\r\n                    \"Content-type\": \"multipart/form-data\",\r\n                },\r\n            }\r\n        ).then(res => {\r\n            document.getElementById(\"fileuploadsp\").hidden = true;\r\n           \r\n            setListData(res.data);\r\n        })\r\n            .catch(err => { showErrorMessage(err); })\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable = <div>\r\n            <div className=\"row ms-1\">\r\n\r\n                <div className=\"col-11 border border-secondary rounded-3 p-2\" style={{ \"resize\": \"vertical\", \"overflow-y\": \"scroll\", \"height\": \"120px\" }}>\r\n                    <ReactQuill className=\"h-100\" theme=\"snow\" value=\"\" onChange={(e) => postdata = e} />\r\n                </div>\r\n                <div className=\"col-1\">  <button onClick={Add} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">\r\n                    <i class=\"fa fa-plus-circle\" aria-hidden=\"true\" style={{ fontSize:\"20px\" }}></i>\r\n                </button></div>\r\n            </div>\r\n            <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                <thead>\r\n                    <tr>\r\n                        <th width=\"50px\">No</th>\r\n                        <th >Duyuru</th>\r\n                        <th width=\"190px\">Kayıt Tarihi</th>\r\n                        <th width=\"130px\">Ekleyen</th>\r\n                        <th width=\"130px\">Dosya</th>\r\n                        <th width=\"100px\"> <span class=\"spinner-border  spinner-border-sm\" hidden id=\"fileuploadsp\" ></span></th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n                    {tabledata.map(apprec =>\r\n                        <tr key={apprec.id}>\r\n                            <td className=\"text-center\">{apprec.id}</td>\r\n                            <td style={{ \"resize\": \"vertical\", \"overflow-y\": \"scroll\", \"height\": \"120px\" }} className=\"p-2\">\r\n\r\n\r\n                                <ReactQuill className=\"h-100 bg-white\" theme=\"snow\" onChange={(e) => apprec.message = e} defaultValue={apprec.message} />\r\n\r\n                                {/*  <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Başvuru Turu\" name=\"message\" defaultValue={apprec.message} onChange={(e) => updateRecord(apprec, e)} />*/}\r\n\r\n                            </td>\r\n                            <td>{apprec.postDate}</td>\r\n                            <td>{apprec.userName}</td>\r\n                            <td>\r\n                                <a className=\"text-decoration-none\" href={'getduyurufile?id=' + apprec.id} download={apprec.fileName}> {apprec.fileName} </a>\r\n                            </td>\r\n                            <td>\r\n                                <label for={\"formFile\" + apprec.id}  class=\"form-label\"><i aria-hidden=\"true\" title=\"Dosya Yükle\" className=\"fa fa-upload text-primary\" style={{ cursor: \"pointer\" } }></i></label>\r\n                                <input class=\"form-control form-control-sm mt-2\" hidden type=\"file\" id={\"formFile\" + apprec.id}  onChange={(e) => SendFiles(e, apprec)} />&nbsp;\r\n\r\n                                <button onClick={() => submitUpdateRecord(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\"><i class=\"fa fa-floppy-o\" aria-hidden=\"true\" title=\"Güncelle\"></i></button>&nbsp;\r\n                                <button onClick={() => removeRecord(apprec.id)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\"><i class=\"fa fa-trash\" title=\"Sil\"></i></button>\r\n                               \r\n                            </td>\r\n                           \r\n                        </tr>\r\n                    )}\r\n\r\n                </tbody>\r\n            </table>\r\n        </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div className=\"  rounded \">\r\n\r\n            <h5 className=\"ps-1\">Duyurular</h5>\r\n            \r\n                    {listTable}\r\n             \r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage, useGlobalState } from '../GlobalState.js';\r\nimport axios from \"axios\";\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport ReactQuill from 'react-quill';\r\nimport 'react-quill/dist/quill.snow.css';\r\n\r\n\r\nexport default function HelpSettingPanel(props) {\r\n    var postdata = {};\r\n    postdata[\"FileType\"] = \"pdf\";\r\n    var selectedRecord = null;\r\n    const [listData, setListData] = useState(null);\r\n    const [typeOptions, setTypeOptions] = useState([]);\r\n    var multiselectRef = React.createRef();\r\n    const [role, setRole] = useGlobalState('role');\r\n\r\n    useEffect(() => {\r\n      \r\n        \r\n    }, [])\r\n\r\n    useEffect(() => {\r\n        fetchUserTypeList();\r\n        getHelpList();\r\n        initModal();\r\n        \r\n    }, [])\r\n\r\n    const sil = (rec) => {\r\n        showConfirmMessage(rec.id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removehelpList\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(rec.id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }));\r\n    }\r\n\r\n\r\n    const SendFiles = (event) => {\r\n        document.getElementById(\"fileuploadsp\").hidden = false;\r\n        var selectedFile = { file: event.target.files[0]}\r\n        var formData = new FormData();\r\n        formData.append(\"file\", selectedFile.file);\r\n        formData.append(\"caption\", selectedFile.file.name);\r\n        formData.append(\"appid\", selectedRecord.id);\r\n        axios.post(\r\n            \"submithelpfile\",\r\n            formData,\r\n            {\r\n                headers: {\r\n                    \"Content-type\": \"multipart/form-data\",\r\n                },\r\n            }\r\n        ).then(res => {\r\n            document.getElementById(\"fileuploadsp\").hidden = true;\r\n            var locModal = document.getElementById('myModal');\r\n            locModal.style.display = \"none\";\r\n            locModal.classList.add(\"hide\");\r\n            setListData(res.data);\r\n        })\r\n            .catch(err => { showErrorMessage(err); })\r\n    }\r\n\r\n\r\n    const initModal = () => {\r\n        var locModal = document.getElementById('myModal');\r\n        var btnclosedown = document.getElementById('downclosemodal');\r\n        btnclosedown.addEventListener('click', (e) => {\r\n            locModal.style.display = \"none\";\r\n            locModal.classList.add(\"hide\");\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const onSelect = (selectedList, selectedItem) => {\r\n        postdata[\"roles\"] = multiselectRef.current.getSelectedItems().map(c => c.appType).join(\", \")\r\n    }\r\n    const onRemove = (selectedList, removedItem) => {\r\n        postdata[\"roles\"] = multiselectRef.current.getSelectedItems().map(c => c.appType).join(\", \")\r\n    }\r\n\r\n    const fetchUserTypeList = () => {\r\n\r\n        fetch(\"getusertypelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setTypeOptions(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getHelpList = () => {\r\n        fetch(\"gethelplist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value)\r\n                   \r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const updatehelplist = (rec)=> {\r\n        fetch(\"updatehelplist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value)\r\n                    showSuccessMessage(\"Güncelleme Başarılı\")\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const Add = () => {\r\n        fetch(\"addhelplist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                document.getElementById(\"caption\").value = \"\";\r\n                document.getElementById(\"title\").value = \"\";\r\n                \r\n                document.getElementById(\"url\").value = \"\";\r\n                multiselectRef.current.resetSelectedValues();\r\n                getHelpList();\r\n            }\r\n        });\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n    var controlPanel = \"\";\r\n\r\n\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n\r\n            <table className='table table-vdstriped table-sm text-start' aria-labelledby=\"tabelLabel\">\r\n                <thead className=\"text-start\">\r\n                    <tr>\r\n                        <th width=\"3%\" className=\"text-start\">No</th>\r\n                        <th width=\"10%\" className=\"text-start\">Başlık</th>\r\n                        <th width=\"30%\" className=\"text-start\">Açıklama</th>\r\n                        <th width=\"20%\" className=\"text-start\">Video Link</th>\r\n                        <th width=\"17%\" className=\"text-start\">Kullanıcı Tipi</th>\r\n                        <th width=\"10%\" className=\"text-start\">Dosya</th>\r\n                        <th width=\"10%\" className=\"text-start\">Ekleyen</th>\r\n                        {/*<th width=\"10%\" className=\"text-start\">Kayıt Tarihi</th>*/}\r\n                        <th width=\"10%\" className=\"text-start\">Ayarlar</th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n                    {tabledata.map(apprec =>\r\n                        <tr key={apprec.id}>\r\n                            <td>{apprec.id}</td>\r\n                            <td >\r\n                                <input type=\"text\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\", \"min-width\": \"50px\" }} placeholder=\"Başlık\" name=\"title\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.title} />\r\n\r\n                            </td>\r\n                            \r\n\r\n                            <td style={{ \"resize\": \"vertical\", \"overflow-y\": \"scroll\", \"height\": \"120px\", \"min-width\": \"500px\" }} className=\"p-2\">\r\n\r\n\r\n                                <ReactQuill className=\"h-100\" theme=\"snow\" onChange={(e) => apprec.caption = e} defaultValue={apprec.caption} />\r\n\r\n                                    {/*  <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Başvuru Turu\" name=\"message\" defaultValue={apprec.message} onChange={(e) => updateRecord(apprec, e)} />*/}\r\n\r\n                                </td>\r\n\r\n                                {/*<input type=\"text\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\", \"min-width\": \"100px\" }} placeholder=\"Açıklama\" name=\"caption\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.caption} />*/}\r\n\r\n                            \r\n                            <td>\r\n                                <input type=\"text\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\", \"min-width\": \"100px\" }} placeholder=\"Video Link\" name=\"url\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.url} />\r\n                            </td>\r\n                            <td>\r\n                                <Multiselect className=\"p-0\"\r\n                                    options={typeOptions.map(b => b.appType)}\r\n                                    emptyRecordMsg=\"Başka Başvuru Tipi Yok\"\r\n\r\n                                    isObject={false}\r\n                                    onSelect={(selectedList, selectedItem) => { apprec.roles = selectedList.join() }}\r\n                                    onRemove={(selectedList, selectedItem) => { apprec.roles = selectedList.join() }}\r\n                                    placeholder=\"\"\r\n                                    selectedValues={!isEmpty(apprec.roles) ? apprec.roles.split(',') : []}\r\n                                />\r\n\r\n                              </td>\r\n\r\n                            <td><a href={'gethelpfile?id=' + apprec.id} download={apprec.fileName}> {apprec.fileName} </a></td>\r\n                            <td>{apprec.userName}</td>\r\n                            {/*<td>{apprec.postDate}</td>*/}\r\n                            <td className=\"text-start\">  <button onClick={() => sil(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button><br />\r\n                                <button  onClick={() => {\r\n                                    document.getElementById('myModal').style.display = \"block\";\r\n                                    document.getElementById('myModal').classList.remove(\"hide\");\r\n                                    selectedRecord = apprec;\r\n                                }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0 text-start\">\r\n                                    Dosya Ekle</button><br />\r\n\r\n                                <button onClick={() => { updatehelplist(apprec); }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Güncelle</button>\r\n                            </td>\r\n                        </tr>\r\n                    )}\r\n                    <tr className=\"bg-white\">\r\n                        <td></td>\r\n                        <td >\r\n                            <input type=\"text\" className=\"form-control form-control-sm  \" id=\"title\" placeholder=\"Başlık\" name=\"title\" onChange={handleInputChange}  />\r\n\r\n                        </td>\r\n\r\n                        <td>\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"caption\" placeholder=\"Açıklama\" name=\"caption\" onChange={handleInputChange} />\r\n                        </td>\r\n                        <td>\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"url\" placeholder=\"Link\" name=\"url\" onChange={handleInputChange} />\r\n                        </td>\r\n                        <td>\r\n                            <Multiselect className=\"bg-white text-dark form-select-sm m-0 p-0\"\r\n                                options={typeOptions} // Options to display in the dropdown\r\n                                //selectedValues={appData.başvuruTipi} // Preselected value to persist in dropdown\r\n                                onSelect={onSelect} // Function will trigger on select event\r\n                                onRemove={onRemove} // Function will trigger on remove event\r\n                                displayValue=\"appType\" // Property name to display in the dropdown options\r\n                                emptyRecordMsg=\"Başka Başvuru Tipi Yok\"\r\n                                ref={multiselectRef}\r\n                            />\r\n                        </td>\r\n                        <td></td>\r\n                       {/* <td></td>*/}\r\n                        <td></td>\r\n                        <td>  <button onClick={Add} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">Ekle</button></td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n    var listTable = <div class=\"spinner-border  \" ></div>;\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n\r\n    return (\r\n        <div className=\" mt-2 rounded\">\r\n\r\n            <h5>Yardım Dosyaları</h5>\r\n            <div className=\"row\">\r\n                <div className=\"col-12 text-center\">\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n            <div className=\"modal\" id=\"myModal\" >\r\n                <div class=\"modal-dialog modal  modal-dialog-centered \">\r\n                    <div class=\"modal-content\" >\r\n                        <div class=\"modal-body\" id=\"mymodalbody\" >\r\n\r\n                                <div className=\"row\">\r\n                                    <div className=\"col-10\">\r\n\r\n                                        <label for=\"formFile\" class=\"form-label\">Dosya Yukle</label>\r\n                                        <br />\r\n                                    <input class=\"form-control form-control-sm mt-2\" type=\"file\" id=\"formFile\" onChange={(e) => SendFiles(e)} />\r\n                                </div>\r\n\r\n                                <div className=\"col-2 text-end\">\r\n                                  <div class=\"spinner-border  spinner-border-sm\" hidden id=\"fileuploadsp\" ></div>\r\n                                 </div>\r\n\r\n \r\n                                </div>\r\n                           \r\n                        </div>\r\n                        <div class=\"modal-footer\">\r\n                            <button type=\"button\" class=\"btn btn-danger\" id=\"downclosemodal\" data-bs-dismiss=\"modal\">Close</button>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport SablonMappingPanel from './SablonMappingPanel';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage,sendpost,sendget } from '../GlobalState.js';\r\n\r\n\r\nexport default function ReportSetting(props) {\r\n\r\n    const [listData, setListData] = useState(null);\r\n    const [useroptions, setOptions] = useState([]);\r\n    const [postdata, setPostData] = useState({});\r\n    \r\n    var options = [\"kontrolor\", \"basvuruSahibi\", \"basvuruYapan\",\"basvuruTipi\", \"basvuruYapanIsimSoyisim\", \"role\", \"basvuruDurumu\",  \"mevki\",\r\n        \"mahalle\", \"ada\", \"basvuruTarihi\", \"id\",    \"arsaSahibiTel\", \"arsaSahibiTC\", \"sokak\",\r\n        \"no\", \"arsaSahibi\", \"idariMahalle\", \"ucret\", \"iadeEden\", \"kontrolBitmeTarihi\", \"onayVerilmeTarihi\", \"iadeTarihi\",\r\n        \"taslakOlusturmaTarihi\", \"kabulEdilmeTarihi\", \"surecTamamlanmaTarihi\", \"eimzaAcilmaTrihi\", \"vekilName\", \r\n        \"vekilTC\", \"vekilTel\", \"duzeltmeSayi\", \"harcOdemeTarihi\"];\r\n\r\n    options = options.concat(useroptions);\r\n    const colorset = [\"#f0f7ff\", \"#FFFFFF\", \"#FFFFFF\", \"#f0f7ff\"];\r\n\r\n    options = options.sort(function (a, b) {\r\n        if (a == null || b == null)\r\n            return 0;\r\n        return a.toLowerCase().localeCompare(b.toLowerCase());\r\n    });\r\n\r\n\r\n    var sablonlist = [];\r\n\r\n    const multiselectRef = React.createRef();\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n\r\n    }, [])\r\n\r\n    const removeReport = (recid) => {\r\n\r\n        showConfirmMessage(recid + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            sendpost(\"removereport\", recid, \"myspinner\", fetchList, (resp) => {\r\n                showErrorMessage(\"Rapor Silinemedi\");\r\n            }));\r\n    }\r\n\r\n    const updatereport = (recid) => {\r\n        sendpost(\"savesablon\", postdata, \"myspinner\", (resp) => {\r\n            showSuccessMessage(postdata.name + \" İsimli Rapor Kaydedilmiştir\")\r\n            multiselectRef.current.resetSelectedValues();\r\n            document.getElementById(\"SablonAdi\").value = \"\";\r\n            document.getElementById(\"filter\").value = \"\";\r\n            fetchList();\r\n            setPostData({})\r\n\r\n        }, (resp) => {\r\n            showErrorMessage(\"Rapor Guncellenemedi\");\r\n        })\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const fetchList = () => {\r\n        sendget(\"reportlist\", \"myspinner\", (resp) => {\r\n            resp.json().then(value => {\r\n                setListData(value)\r\n            })\r\n            \r\n        }, (resp) => {\r\n            showErrorMessage(\"Rapor Listesi Alınamadı\");\r\n        })\r\n    }\r\n\r\n\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"row ms-2 me-2 pb-3\">\r\n                {tabledata.map((apprec, idx) =>\r\n                    <div className={\"col-md-6 col-12  \"}>\r\n                        <div className=\"border rounded-3  mt-3 p-0 text-center border-1\" style={{ \"background-color\": colorset[idx % colorset.length] }}>\r\n                            <div className=\"d-inline float-start\">\r\n                                <button onClick={() => removeReport(apprec.name)} className=\"btn btn-secondary btn-sm  text-decoration-none \">Sil</button>\r\n                            </div>\r\n                            <div className=\"d-inline \">\r\n                                <button onClick={() => setPostData(apprec)} className=\"btn btn-link btn-sm text-decoration-none \">{apprec.name}</button>\r\n                            </div>\r\n\r\n                        </div>\r\n                    </div>\r\n                )}\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n    const Add = () => {\r\n        postdata.name = document.getElementById(\"SablonAdi\").value;\r\n        var ft = document.getElementById(\"filter\").value;\r\n        var baseRow = document.getElementById(\"baseRow\").value;\r\n        var sort = \"\"//document.getElementById(\"sort\").value;\r\n        \r\n        postdata.sort = sort;\r\n        postdata.baseRow = baseRow;\r\n\r\n        if (sort.length > 0 && sort.endsWith(\",\"))\r\n            postdata.sort = sort.substring(0, sort.length - 1);\r\n\r\n        postdata.filter = ft;\r\n        if (ft.length > 0 && ft.endsWith(\",\"))\r\n            postdata.filter = ft.substring(0, ft.length - 1);\r\n\r\n        if (isEmpty(postdata.name)) {\r\n            showErrorMessage(\"Ekran ismi boş olamaz\");\r\n            return;\r\n        }\r\n        postdata.colNames = document.getElementById(\"colNames\").value \r\n        if (isEmpty(postdata.colNames)) {\r\n            showErrorMessage(\"Kolon İsmi Boş Olamaz\");\r\n            return;\r\n        }\r\n\r\n\r\n        sendpost(\"savereport\", postdata, \"myspinner\", (resp) => {\r\n            showSuccessMessage(postdata.name + \" İsimli Rapor Kaydedilmiştir\")\r\n           //multiselectRef.current.resetSelectedValues();\r\n            document.getElementById(\"SablonAdi\").value = \"\";\r\n            document.getElementById(\"filter\").value = \"\";\r\n            document.getElementById(\"colNames\").selectedIndex = -1;\r\n            document.getElementById(\"baseRow\").selectedIndex = -1;\r\n            fetchList();\r\n            setPostData({})\r\n\r\n        }, (resp) => {\r\n            showErrorMessage(\"Bir Hata Oluştu\");\r\n        })\r\n    }\r\n\r\n\r\n    const AddFilter = () => {\r\n        var andor = document.getElementById(\"andor\").value;\r\n        if (document.getElementById(\"andor\").disabled == true)\r\n            andor = \"\";\r\n        var oper = document.getElementById(\"oper\").value;\r\n        var filtervalue = document.getElementById(\"filtervalue\").value;\r\n        var filterColSelect = document.getElementById(\"filterColSelect\").value;\r\n        var myfilter = andor + \" \" + filterColSelect + \" \" + oper + \" \" + filtervalue + \" \";\r\n        document.getElementById(\"filter\").value += myfilter;\r\n        document.getElementById(\"andor\").disabled = false;\r\n\r\n\r\n    }\r\n    const ClearFilter = () => {\r\n        document.getElementById(\"filter\").value = \"\";\r\n        document.getElementById(\"andor\").disabled = true;\r\n    }\r\n    const clearSort = () => {\r\n        document.getElementById(\"sort\").value = \"\";\r\n    }\r\n\r\n    const AddArtan = () => {\r\n        var filterColSelect = document.getElementById(\"siraColSelect\").value;\r\n        document.getElementById(\"sort\").value = filterColSelect;\r\n\r\n    }\r\n    const AddAzalan = () => {\r\n        var filterColSelect = document.getElementById(\"siraColSelect\").value;\r\n        document.getElementById(\"sort\").value =  \"-\" + filterColSelect;\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const onSelect = (selectedList, selectedItem) => {\r\n        var clist = selectedList.map(rec => \"<option value='\" + rec + \"'>\" + rec + \"</option>\");\r\n        // document.getElementById(\"filterColSelect\").innerHTML = clist;\r\n        document.getElementById(\"filterColSelect\").selectedIndex = -1;\r\n        document.getElementById(\"siraColSelect\").innerHTML = clist;\r\n\r\n    }\r\n\r\n    const onRemove = (selectedList, removedItem) => {\r\n        var clist = selectedList.map(rec => \"<option value='\" + rec + \"'>\" + rec + \"</option>\");\r\n        // document.getElementById(\"filterColSelect\").innerHTML = clist;\r\n        document.getElementById(\"filterColSelect\").selectedIndex = -1;\r\n        document.getElementById(\"siraColSelect\").innerHTML = clist;\r\n    }\r\n\r\n    return (\r\n        <div className=\"p-2 rounded-3\" style={{ \"background-color\": \"#EDEDF7\", \"min-height\": \"100vh\" }}>\r\n            <div className=\"row \" >\r\n\r\n                <div className=\"col-12 col-md-6 \" >\r\n\r\n\r\n                </div>\r\n                {/*<div className=\"col-12 col-md-6 text-end  pt-1\" >*/}\r\n                {/*    <button onClick={() => savefilename(rec)} className=\"btn btn-primary btn-sm text-decoration-none me-2\">Kaydet</button>*/}\r\n\r\n                {/*    <button onClick={() => window.changeComponent(<FileSettingList />)} className=\"btn btn-secondary btn-sm text-decoration-none\">Vazgeç</button>*/}\r\n                {/*</div>*/}\r\n            </div>\r\n\r\n            <div className=\"row mt-3 p-3 d-flex flex-wrap pe-4\" key={postdata.name}>\r\n                <div className=\"col-12 col-md-6 d-flex flex-column\">\r\n                    <div className=\" bg-white rounded-3\" >\r\n                        <div className=\"p-3 fw-bold border-bottom mb-3\" >\r\n                            Yeni Rapor Oluştur\r\n                        </div>\r\n                        <div className=\"bg-light m-4  p-3 rounded-3 textvmuted fw-bold align-middle\"  >\r\n                            <span className=\"fa fa-info pe-3\" style={{ color: \"lightblue\", fontSize: \"26px\" }} ></span>\r\n                            Bu alanda, İsatatistiklerde kullanılmak üzere raporla oluşturabilirsiniz.\r\n                        </div>\r\n\r\n\r\n                        {isEmpty(postdata.name) != true && < div className=\"row ms-2 me-2   mb-4 pb-4 border-bottom\">\r\n                            <div className=\"col-12 align-middle   text-center \" >\r\n                                <span className=\"text-success fw-bold\"> {postdata.name} </span> Raporu düzenliyorsunuz\r\n                                <button onClick={() => {\r\n                                    setPostData({})\r\n\r\n\r\n                                }} className=\"ms-2 btn btn-sm btn-secondary text-decoration-none\">Vazgeç</button>\r\n                            </div>\r\n                        </div>}\r\n\r\n\r\n                        <div className=\"m-4   pt-3  border-top\">\r\n                            Rapor Adı <span className=\"text-danger\">*</span>\r\n                            <input type=\"text\" className=\"form-control form-control-sm \" id=\"SablonAdi\" placeholder=\"\" name=\"Name\" defaultValue={postdata.name} />\r\n                            <span className=\"textvmuted small\">Oluşturacağınız rapora bir isim veriniz</span>\r\n                        </div>\r\n                        <div className=\"m-4  \">\r\n                            Kolon Değeri <span className=\"text-danger\">*</span>\r\n                            <select className=\"form-select form-select-sm \" id=\"colNames\" name=\"colNames\">\r\n                                <option value=\"\">  </option>\r\n                                {options.map(c => <option value={c} selected={postdata.colNames == c}> {c} </option>)}\r\n\r\n                            </select>\r\n\r\n                            {/*<Multiselect className=\"\"*/}\r\n                            {/*    options={options}*/}\r\n                            {/*    emptyRecordMsg=\"Başka Başvuru Tipi Yok\"*/}\r\n                            {/*    ref={multiselectRef}*/}\r\n                            {/*    isObject={false}*/}\r\n                            {/*    onSelect={onSelect} // Function will trigger on select event*/}\r\n                            {/*    onRemove={onRemove} // Function will trigger on remove event*/}\r\n                            {/*    selectedValues={postdata.colNames != null ? postdata.colNames.split(\",\") : []}*/}\r\n                            {/*    placeholder=\"\"*/}\r\n                            {/*/>*/}\r\n                            <span className=\"textvmuted small\">Ekranda hangi kolonların(bilgilerin) görüntüleneceğini seçin</span>\r\n                        </div>\r\n\r\n\r\n                        <div className=\"m-4  \">\r\n                            Satır Değerleri <span className=\"text-danger\">*</span>\r\n                            <select className=\"form-select form-select-sm \" id=\"baseRow\" name=\"baseRow\">\r\n                                <option value=\"\">  </option>\r\n                                {options.map(c => <option value={c} selected={postdata.baseRow == c}> {c} </option>)}\r\n                                \r\n                            </select>\r\n\r\n                            <span className=\"textvmuted small\">Ekranda hangi kolonların(bilgilerin) görüntüleneceğini seçin</span>\r\n                        </div>\r\n\r\n\r\n\r\n\r\n\r\n                        <div className=\"row mt-5 m-3 mt-1 border-top \">\r\n                            <div className=\"col-md-11 col-12\">\r\n                                Uygulanacak Filtre\r\n                                <input type=\"text\" className=\"form-control form-control-sm\" id=\"filter\" placeholder=\"Filtre\" name=\"filter\" defaultValue={postdata.filter} />\r\n\r\n                            </div>\r\n                            <div className=\"col-md-1 col-12 text-end\">\r\n                                <br />\r\n                                <button onClick={ClearFilter} className=\"ms-1 btn btn-sm btn-secondary\">Sil</button>\r\n\r\n                            </div>\r\n\r\n                        </div>\r\n\r\n\r\n\r\n                        <div className=\"row m-3 mt-1\">\r\n                            <div className=\"col-md-4 col-12 border-top mt-4\">\r\n                            </div>\r\n                            <div className=\"col-md-4 col-12\">\r\n                                Filtre Ekleme Yöntemi\r\n                                <select className=\"form-select form-select-sm \" id=\"andor\" name=\"andor\" placeholder=\"Filtre\" disabled={isEmpty(postdata.filter)}>\r\n                                    <option value=\"AND\"> AND </option>\r\n                                    <option value=\"OR\"> OR </option>\r\n                                </select>\r\n\r\n                            </div>\r\n                            <div className=\"col-md-4 col-12 border-top mt-4\">\r\n                            </div>\r\n\r\n                        </div>\r\n\r\n\r\n\r\n                        <div className=\"m-3\">\r\n                            <div className=\"row\">\r\n                                <div className=\"col-md-4 col-12\">\r\n                                    Filtrelenecek Alan\r\n                                    <select className=\"form-select form-select-sm \" id=\"filterColSelect\" name=\"filterColSelect\">\r\n                                        {options.map(rec => <option value={rec}> {rec} </option>)}\r\n                                    </select>\r\n                                </div>\r\n                                <div className=\"col-md-2 col-12 ps-0\">\r\n                                    Operator\r\n                                    <select className=\"form-select form-select-sm \" id=\"oper\" name=\"oper\" placeholder=\"Filtre\">\r\n                                        <option value=\"=\">{\"=\"} </option>\r\n                                        <option value=\"!=\"> {\"!=\"} </option>\r\n                                        <option value=\">\"> {\">\"} </option>\r\n                                        <option value=\"<\"> {\"<\"} </option>\r\n                                        <option value=\"LIKE\"> {\"LIKE\"} </option>\r\n                                        <option value=\"NOTLIKE\"> {\"NOTLIKE\"} </option>\r\n                                        <option value=\"ISNULL\"> {\"ISNULL\"} </option>\r\n                                        <option value=\"ISNOTNULL\"> {\"ISNOTNULL\"} </option>\r\n\r\n                                    </select>\r\n                                </div>\r\n                                <div className=\"col-md-4 col-12 ps-0\">\r\n                                    Filtre Değeri\r\n                                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"filtervalue\" placeholder=\"Filtre Değeri\" name=\"filter\" pattern=\"[a-zA-Z0-9ÜüŞşÇçÖöĞğİı ]+\" />\r\n\r\n                                </div>\r\n                                <div className=\"col-md-2 p-0 col-12 \"><br />\r\n                                    <button onClick={AddFilter} className=\"btn btn-sm btn-primary\">Ekle</button>\r\n\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n\r\n                        {/*<div className=\"m-3 mt-5\">*/}\r\n                        {/*    <div className=\"row \">*/}\r\n                        {/*        <div className=\"col-md-6 col-12\">*/}\r\n                        {/*            Sıralamada Uygulanacak  Alan*/}\r\n                        {/*            <select className=\"form-select form-select-sm\" id=\"siraColSelect\" name=\"siraColSelect\" >*/}\r\n                        {/*                {isEmpty(postdata.colNames) == false && postdata.colNames.split(\",\").map(x => <option value={x} >{x}</option>)}*/}\r\n                        {/*            </select>*/}\r\n                        {/*        </div>*/}\r\n                        {/*        <div className=\"col-md-6 col-12 text-end\"><br />*/}\r\n                        {/*            <button onClick={AddArtan} className=\"btn btn-sm btn-primary\">Artan</button>*/}\r\n                        {/*            <button onClick={AddAzalan} className=\"ms-1 btn btn-sm btn-info\">Azalan</button>*/}\r\n                        {/*            <button onClick={clearSort} className=\"ms-1 btn btn-sm btn-secondary\">Sil</button>*/}\r\n                        {/*        </div>*/}\r\n                        {/*    </div>*/}\r\n                        {/*    <div className=\" mt-1\">*/}\r\n                        {/*        Uygulanacak Sıralama*/}\r\n                        {/*        <input type=\"text\" className=\"form-control form-control-sm\" id=\"sort\" placeholder=\"Sıralama\" name=\"sort\" disabled defaultValue={postdata.sort} />*/}\r\n                        {/*    </div>*/}\r\n                        {/*</div>*/}\r\n\r\n\r\n                        <div className=\"row mt-3\">\r\n                            <div className=\"col-12 text-center pb-2\">\r\n                                <button onClick={Add} className=\"btn  btn-primary m-1\">Raporu Kaydet</button>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                {/*----------------------------------------------------------------------------------------------------*/}\r\n                <div className=\"col-12 col-md-6 d-flex flex-column bg-white rounded-3\">\r\n                    <div className=\" \" >\r\n                        <div className=\"p-3 fw-bold border-bottom\" >\r\n                            Oluşturulan Raporlar\r\n                        </div>\r\n                        <div className=\"bg-light m-3  p-3 mb-2 rounded-3 textvmuted fw-bold align-middle\"  >\r\n                            <span className=\"fa fa-info pe-3\" style={{ color: \"lightblue\", fontSize: \"26px\" }} ></span>\r\n                            Oluşturduğunuz ekranları silebilir veya özelliklerini değiştirebilirsiniz. Ekran isminin üzerine tıkladıktan sonra “Yeni Ekran Oluşturma” alanından özelliklerini düzenleyebilirsiniz.                       </div>\r\n                        <div className=\"\">\r\n                            {listData != null ? renderTable(listData) : \"\"}\r\n                        </div>\r\n\r\n                    </div>\r\n                </div>\r\n                {/*----------------------------------------------------------------------------------------------------*/}\r\n            </div >\r\n\r\n\r\n        </div >\r\n\r\n\r\n\r\n    );\r\n\r\n\r\n}\r\n","\r\nimport React, { useState, useEffect } from 'react';\r\nimport UserLabel from '../User/UserLabel.js';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { ajaxFail, showConfirmMessage, showSuccessMessage, removeTurkcLow, isEmpty, showErrorMessage, useGlobalState } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\nimport bootstrap from 'bootstrap/dist/js/bootstrap.min.js'\r\n\r\nexport default function SettingRoles(props) {\r\n\r\n    const [userName, setUserName] = useGlobalState('userName');\r\n    const [listData, setListData] = useState(null);\r\n    const [aciklama, setAciklamaData] = useState([]);\r\n\r\n    const [postdata, setpostdata] = useState({});\r\n\r\n    const [popover, setpopover] = useState({});\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n        getyetkiaciklamalist();\r\n\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n\r\n    const multiselectRefNew = React.createRef();\r\n\r\n    const multiselectRef = React.createRef();\r\n\r\n    const removeRecord = (id) => {\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removerole\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }))\r\n    }\r\n\r\n\r\n\r\n    const submitUpdateRecord = (rec) => {\r\n        if (isEmpty(postdata.name)) {\r\n            showErrorMessage(\"Rol ismi boş olamaz.\");\r\n            return;\r\n        }\r\n        fetch(\"updaterole\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                setpostdata({})\r\n                fetchList();\r\n                showSuccessMessage(\"Güncelleme Başarıyla Tamamlanmştır\")\r\n            }\r\n        });\r\n    }\r\n\r\n    const getyetkiaciklamalist = () => {\r\n\r\n        fetch(\"getyetkiaciklamalist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setAciklamaData(value);\r\n                    setTimeout(() => {\r\n                        var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"popover\"]'))\r\n                        var popoverList = popoverTriggerList.filter(x => isEmpty(x.dataset.bsContent)==false).map(function (popoverTriggerEl) {\r\n                            return new bootstrap.Popover(popoverTriggerEl)\r\n                        })\r\n                    }, 300);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getAciklama = (yetki) => {\r\n        var a = aciklama.find(x => x.yetki == yetki);\r\n        if (a != null)\r\n            return a.aciklama;\r\n        return \"\";\r\n    }\r\n\r\n    const fetchList = () => {\r\n\r\n        fetch(\"getrolelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const Add = (rec) => {\r\n      \r\n        fetch(\"addrole\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                fetchList();\r\n\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const scrollToBottom = () => {\r\n        const element = document.getElementById(\"activepaneldiv\");\r\n        // element.scrollTo(0, element.scrollHeight);\r\n        element.scrollTop = element.scrollHeight\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' || target.type === 'radio' ? target.checked : target.value;\r\n        const name = target.name;\r\n        postdata[name] = value;\r\n    }\r\n\r\n    const handleCheckBoxChange = (event) => {\r\n        var perms = [];\r\n        $('#checkboxarea').find(':checkbox:checked').each(function () {\r\n            if ($(this).is(':checked') == true)\r\n                perms.push($(this).attr('name'));\r\n\r\n        });\r\n\r\n        setpostdata({ ...postdata, perms: perms.join(\",\") })\r\n    }\r\n\r\n    const onSelect = (selectedList, selectedItem) => {\r\n        var clist = selectedList.join();\r\n        postdata[\"perms\"] = clist;\r\n    }\r\n    const onRemove = (selectedList, removedItem) => {\r\n        var clist = selectedList.join();\r\n        postdata[\"perms\"] = clist;\r\n    }\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' || target.type === 'radio' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n    const hasperm = (p) => {\r\n        if (postdata == null || postdata.perms == null)\r\n            return false;\r\n        if (postdata.perms == p)\r\n            return true;\r\n        if (postdata.perms.includes(\",\" + p + \",\") || postdata.perms.endsWith(\",\" + p) || postdata.perms.startsWith(p + \",\"))\r\n            return true;\r\n\r\n        return false;\r\n    }\r\n    const checkboxlist = () => {\r\n        return <div className=\"row p-2  align-middle\" id=\"checkboxarea\" key={aciklama.length}>\r\n\r\n        \r\n\r\n            {/*--------------------------------------------------------------------------------------------*/}\r\n\r\n            <div className=\"col-md-4 col-12 align-middle m-0 \" >\r\n                <div className=\"fw-bold text-center pb-1\" >\r\n                    Başvuru Yetkileri\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1 \" name={UserPermConstants.Basvuru_Liste} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Basvuru_Liste)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Basvuru_Liste) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Basvuru_Liste\")} key={aciklama.length}>\r\n                        {UserPermConstants.Basvuru_Liste}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Gorebildigi_Basvurulari_Editleme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Gorebildigi_Basvurulari_Editleme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Gorebildigi_Basvurulari_Editleme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Gorebildigi_Basvurulari_Editleme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Gorebildigi_Basvurulari_Editleme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1 \" name={UserPermConstants.Tum_Geciken_Basvurular} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Tum_Geciken_Basvurular)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Tum_Geciken_Basvurular) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Tum_Geciken_Basvurular\")} key={aciklama.length}>\r\n                        {UserPermConstants.Tum_Geciken_Basvurular}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Gizli_Basvuru_Gorme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Gizli_Basvuru_Gorme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Gizli_Basvuru_Gorme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Gizli_Basvuru_Gorme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Gizli_Basvuru_Gorme}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Ilgili_Basvurulari_Gorme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Ilgili_Basvurulari_Gorme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Ilgili_Basvurulari_Gorme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Ilgili_Basvurulari_Gorme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Ilgili_Basvurulari_Gorme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Kalan_Sure_Gorme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Kalan_Sure_Gorme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Kalan_Sure_Gorme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Gizli_Alanlari_Gorme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Kalan_Sure_Gorme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Gizli_Alanlari_Gorme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Gizli_Alanlari_Gorme)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Gizli_Alanlari_Gorme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Gizli_Alanlari_Gorme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Gizli_Alanlari_Gorme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Basvurudan_Sonra_Dinamik_Editleme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Basvurudan_Sonra_Dinamik_Editleme)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Basvurudan_Sonra_Dinamik_Editleme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Basvurudan_Sonra_Dinamik_Editleme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Basvurudan_Sonra_Dinamik_Editleme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Basvurudan_Sonra_Sabit_Editleme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Basvurudan_Sonra_Sabit_Editleme)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Basvurudan_Sonra_Sabit_Editleme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Basvurudan_Sonra_Sabit_Editleme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Basvurudan_Sonra_Sabit_Editleme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Eksiklik_Girme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Eksiklik_Girme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Eksiklik_Girme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Eksiklik_Girme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Eksiklik_Girme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Basvuru_Vekili_Update} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Basvuru_Vekili_Update)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Basvuru_Vekili_Update) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Basvuru_Vekili_Update\")} key={aciklama.length}>\r\n                        {UserPermConstants.Basvuru_Vekili_Update}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Is_Yuku} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Is_Yuku)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Is_Yuku) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Is_Yuku\")} key={aciklama.length}>\r\n                        {UserPermConstants.Is_Yuku}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.BASKA_BASVURU_GONDERME} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.BASKA_BASVURU_GONDERME)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.BASKA_BASVURU_GONDERME) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"BASKA_BASVURU_GONDERME\")} key={aciklama.length}>\r\n                        Başkasına Ait Başvuruyu Gönderme\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Basvuru_Arsiv} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Basvuru_Arsiv)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Basvuru_Arsiv) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Basvuru_Arsiv\")} key={aciklama.length}>\r\n                        {UserPermConstants.Basvuru_Arsiv}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Basvuru_Arsiv_Cikar} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Basvuru_Arsiv_Cikar)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Basvuru_Arsiv_Cikar) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Basvuru_Arsiv_Cikar\")} key={aciklama.length}>\r\n                        {UserPermConstants.Basvuru_Arsiv_Cikar}\r\n                    </label>\r\n                </div>\r\n\r\n            </div>\r\n\r\n\r\n\r\n            {/*--------------------------------------------------------------------------------------------*/}\r\n\r\n            <div className=\"col-md-4 col-12 align-middle m-0\" >\r\n                <div className=\"fw-bold text-center pb-1\" >\r\n                    İşlem Yetkileri\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1 \" name={UserPermConstants.Yeni_Basvuru_Yapabilme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Yeni_Basvuru_Yapabilme)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Yeni_Basvuru_Yapabilme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Yeni_Basvuru_Yapabilme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Yeni_Basvuru_Yapabilme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1 \" name={UserPermConstants.Yeni_Basvuruda_Zorunlu_Alanlari_Bos_Birakabilme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Yeni_Basvuruda_Zorunlu_Alanlari_Bos_Birakabilme)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Yeni_Basvuruda_Zorunlu_Alanlari_Bos_Birakabilme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Yeni_Basvuruda_Zorunlu_Alanlari_Bos_Birakabilme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Yeni_Basvuruda_Zorunlu_Alanlari_Bos_Birakabilme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Edevletsiz_Basvuru} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Edevletsiz_Basvuru)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Edevletsiz_Basvuru) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Edevletsiz_Basvuru\")} key={aciklama.length}>\r\n                        {UserPermConstants.Edevletsiz_Basvuru}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.EImzali_Gonderme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.EImzali_Gonderme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.EImzali_Gonderme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"EImzali_Gonderme\")} key={aciklama.length}>\r\n                        {UserPermConstants.EImzali_Gonderme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Iade_Basvuruyu_Gonderme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Iade_Basvuruyu_Gonderme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Iade_Basvuruyu_Gonderme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Iade_Basvuruyu_Gonderme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Iade_Basvuruyu_Gonderme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Manuel_Bildirim_Gonderme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Manuel_Bildirim_Gonderme)} />\r\n                    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.Manuel_Bildirim_Gonderme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Manuel_Bildirim_Gonderme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Manuel_Bildirim_Gonderme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Kullaniciyla_Kart_Paylasimi} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Kullaniciyla_Kart_Paylasimi)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Kullaniciyla_Kart_Paylasimi) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Kullaniciyla_Kart_Paylasimi\")} key={aciklama.length}>\r\n                        {UserPermConstants.Kullaniciyla_Kart_Paylasimi}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Link_ile_Kart_Paylasimi} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Link_ile_Kart_Paylasimi)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Link_ile_Kart_Paylasimi) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Link_ile_Kart_Paylasimi\")} key={aciklama.length}>\r\n                        {UserPermConstants.Link_ile_Kart_Paylasimi}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Basvuru_Silme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Basvuru_Silme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Basvuru_Silme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Basvuru_Silme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Basvuru_Silme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Basvuru_Onaylama} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Basvuru_Onaylama)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Basvuru_Onaylama) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Basvuru_Onaylama\")} key={aciklama.length}>\r\n                        {UserPermConstants.Basvuru_Onaylama}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Basvuru_Onaylama_Kontrolorden_Sonraki_Biti_Onayi} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Basvuru_Onaylama_Kontrolorden_Sonraki_Biti_Onayi)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Basvuru_Onaylama_Kontrolorden_Sonraki_Biti_Onayi) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Basvuru_Onaylama_Kontrolorden_Sonraki_Biti_Onayi\")} key={aciklama.length}>\r\n                        {UserPermConstants.Basvuru_Onaylama_Kontrolorden_Sonraki_Biti_Onayi}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Havale_Yapma} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Havale_Yapma)} />\r\n                    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.Havale_Yapma) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Havale_Yapma\")} key={aciklama.length}>\r\n                        {UserPermConstants.Havale_Yapma}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Ruhsat_Kesme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Ruhsat_Kesme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Ruhsat_Kesme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Ruhsat_Kesme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Ruhsat_Kesme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Ruhsat_Onaylama} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Ruhsat_Onaylama)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Ruhsat_Onaylama) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Ruhsat_Onaylama\")} key={aciklama.length}>\r\n                        {UserPermConstants.Ruhsat_Onaylama}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Adres_Defterini_Duzenleme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Adres_Defterini_Duzenleme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Adres_Defterini_Duzenleme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Adres_Defterini_Duzenleme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Adres_Defterini_Duzenleme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Adres_Defterini_Gorme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Adres_Defterini_Gorme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Adres_Defterini_Gorme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Adres_Defterini_Gorme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Adres_Defterini_Gorme}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.MAKS_Veri_Girisi} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.MAKS_Veri_Girisi)} />\r\n                    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.MAKS_Veri_Girisi) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"MAKS_Veri_Girisi\")} key={aciklama.length}>\r\n                        {UserPermConstants.MAKS_Veri_Girisi}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Gizli_Aktiviteleri_Gorme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Gizli_Aktiviteleri_Gorme)} />\r\n                    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.Gizli_Aktiviteleri_Gorme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Gizli_Aktiviteleri_Gorme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Gizli_Aktiviteleri_Gorme}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Tarife_Gorme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Tarife_Gorme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Tarife_Gorme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Tarife_Gorme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Tarife_Gorme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Tarife_Duzenleme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Tarife_Duzenleme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Tarife_Duzenleme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Tarife_Duzenleme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Tarife_Duzenleme}\r\n                    </label>\r\n                </div>\r\n            </div>\r\n\r\n            {/*--------------------------------------------------------------------------------------------*/}\r\n\r\n            <div className=\"col-md-4 col-12 align-middle m-0\" >\r\n                <div className=\"fw-bold text-center pb-1\" >\r\n                    Dosya ve İmza Yetkileri\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Dosya_Yukleme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Dosya_Yukleme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Dosya_Yukleme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Dosya_Yukleme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Dosya_Yukleme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Dosya_Gizleme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Dosya_Gizleme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Dosya_Gizleme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Dosya_Gizleme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Dosya_Gizleme}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Dosya_Degistirme_Silme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Dosya_Degistirme_Silme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Dosya_Degistirme_Silme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Dosya_Degistirme_Silme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Dosya_Degistirme_Silme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Kontrolor_Dosyasi_Yukleme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Kontrolor_Dosyasi_Yukleme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Kontrolor_Dosyasi_Yukleme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Kontrolor_Dosyasi_Yukleme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Kontrolor_Dosyasi_Yukleme}\r\n                    </label>\r\n                </div>\r\n                {(userName.toLowerCase() == \"admin\" || userName.toLowerCase() ==\"a\") && < div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Imzaya_Açma} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Imzaya_Açma)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Imzaya_Açma) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Imzaya_Açma\")} key={aciklama.length}>\r\n                        {UserPermConstants.Imzaya_Açma}\r\n                    </label>\r\n                </div>}\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1 \" name={UserPermConstants.Dosyalari_Eimzaya_Acima} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Dosyalari_Eimzaya_Acima)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Dosyalari_Eimzaya_Acima) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Dosyalari_Eimzaya_Acima\")} key={aciklama.length}>\r\n                        {UserPermConstants.Dosyalari_Eimzaya_Acima}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Imza_Guncelleme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Imza_Guncelleme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Imza_Guncelleme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Imza_Guncelleme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Imza_Guncelleme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Imza_Silme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Imza_Silme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Imza_Silme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Imza_Silme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Imza_Silme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Imza_Veri_Girisi} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Imza_Veri_Girisi)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Imza_Veri_Girisi) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Imza_Veri_Girisi\")} key={aciklama.length}>\r\n                        {UserPermConstants.Imza_Veri_Girisi}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Imza_Vize_Kontrol} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Imza_Vize_Kontrol)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Imza_Vize_Kontrol) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Imza_Vize_Kontrol\")} key={aciklama.length}>\r\n                        {UserPermConstants.Imza_Vize_Kontrol}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Imza_Yerlestirme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Imza_Yerlestirme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Imza_Yerlestirme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Imza_Yerlestirme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Imza_Yerlestirme}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1 \" name={UserPermConstants.Vekalet_Onay} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Vekalet_Onay)} />\r\n                    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.Vekalet_Onay) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Vekalet_Onay\")} key={aciklama.length}>\r\n                        {UserPermConstants.Vekalet_Onay}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1 \" name={UserPermConstants.Imza_Sertifikali} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Imza_Sertifikali)} />\r\n                    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.Imza_Sertifikali) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Imza_Sertifikali\")} key={aciklama.length}>\r\n                        {UserPermConstants.Imza_Sertifikali}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1 \" name={UserPermConstants.Eimza_Geri_Alma} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Eimza_Geri_Alma)} />\r\n                    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.Eimza_Geri_Alma) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Eimza_Geri_Alma\")} key={aciklama.length}>\r\n                        {UserPermConstants.Eimza_Geri_Alma}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1 \" name={UserPermConstants.HARC_DOSYALARI} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.HARC_DOSYALARI)} />\r\n                    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.HARC_DOSYALARI) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"HARC_DOSYALARI\")} key={aciklama.length}>\r\n                        {UserPermConstants.HARC_DOSYALARI}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1 \" name={UserPermConstants.DWG_Karsilastirma} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.DWG_Karsilastirma)} />\r\n                    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.DWG_Karsilastirma) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"DWG_Karsilastirma\")} key={aciklama.length}>\r\n                        {UserPermConstants.DWG_Karsilastirma}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1 \" name={UserPermConstants.Surec_Sonu_Dosya_Indirme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Surec_Sonu_Dosya_Indirme)} />\r\n                    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.Surec_Sonu_Dosya_Indirme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"DWG_Karsilastirma\")} key={aciklama.length}>\r\n                        {UserPermConstants.Surec_Sonu_Dosya_Indirme}\r\n                    </label>\r\n                </div>\r\n                \r\n               \r\n\r\n                {/*<div className=\"pt-1 checkbox\" >*/}\r\n                {/*    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1 \" name={UserPermConstants.Son_Imza} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Son_Imza)} />*/}\r\n                {/*    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Son_Imza) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Son_Imza\")} key={aciklama.length}>*/}\r\n                {/*        {UserPermConstants.Son_Imza}*/}\r\n                {/*    </label>*/}\r\n                {/*</div>*/}\r\n            </div>\r\n\r\n            {/*--------------------------------------------------------------------------------------------*/}\r\n\r\n            <div className=\"col-md-4 col-12 align-middle mt-5\" >\r\n                <div className=\"fw-bold text-center pb-1\" >\r\n                    Yönetici Yetkileri (Başvuru)\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Basvuru_Formu} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Basvuru_Formu)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Basvuru_Formu) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Basvuru_Formu\")} key={aciklama.length}>\r\n                        {UserPermConstants.Basvuru_Formu}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Dosyalar} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Dosyalar)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Dosyalar) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Dosyalar\")} key={aciklama.length}>\r\n                        {UserPermConstants.Dosyalar}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Ekran_Yonetimi} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Ekran_Yonetimi)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Ekran_Yonetimi) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Ekran_Yonetimi\")} key={aciklama.length}>\r\n                        {UserPermConstants.Ekran_Yonetimi}\r\n                    </label>\r\n                </div>\r\n\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Kadastral_Ayarlar} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Kadastral_Ayarlar)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Kadastral_Ayarlar) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Kadastral_Ayarlar\")} key={aciklama.length}>\r\n                        {UserPermConstants.Kadastral_Ayarlar}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Surecler} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Surecler)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Surecler) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Surecler\")} key={aciklama.length}>\r\n                        {UserPermConstants.Surecler}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Yardim_Ekranlari} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Yardim_Ekranlari)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Yardim_Ekranlari) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Yardim_Ekranlari\")} key={aciklama.length}>\r\n                        {UserPermConstants.Yardim_Ekranlari}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Duyuru_Yonetimi} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Duyuru_Yonetimi)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Duyuru_Yonetimi) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Duyuru_Yonetimi\")} key={aciklama.length}>\r\n                        {UserPermConstants.Duyuru_Yonetimi}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Pop_Up_Yonetimi} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Pop_Up_Yonetimi)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Pop_Up_Yonetimi) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Pop_Up_Yonetimi\")} key={aciklama.length}>\r\n                        {UserPermConstants.Pop_Up_Yonetimi}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Tarife_Yonetimi} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Tarife_Yonetimi)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Tarife_Yonetimi) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Tarife_Yonetimi\")} key={aciklama.length}>\r\n                        {UserPermConstants.Tarife_Yonetimi}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Yonetmelik_Yukleme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Yonetmelik_Yukleme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Yonetmelik_Yukleme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Yonetmelik_Yukleme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Yonetmelik_Yukleme}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Kurum_Bilgileri} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Kurum_Bilgileri)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Kurum_Bilgileri) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Kurum_Bilgileri\")} key={aciklama.length}>\r\n                        {UserPermConstants.Kurum_Bilgileri}\r\n                    </label>\r\n                </div>\r\n                {/*<div className=\"pt-1 checkbox \" >*/}\r\n                {/*    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Ada_Parsel_Girisi} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Ada_Parsel_Girisi)} />*/}\r\n                {/*    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Ada_Parsel_Girisi) ? \"fw-bold\" : \"textvmuted\")} key={aciklama.length} tabindex=\"0\" data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Ada_Parsel_Girisi\")}>*/}\r\n                {/*        {UserPermConstants.Ada_Parsel_Girisi}*/}\r\n                {/*    </label>*/}\r\n                {/*</div>*/}\r\n\r\n                {/*<div className=\"pt-1 checkbox\" >*/}\r\n                {/*    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Basvuru_Tipleri} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Basvuru_Tipleri)} />*/}\r\n                {/*    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Basvuru_Tipleri) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Basvuru_Tipleri\")} key={aciklama.length}>*/}\r\n                {/*        {UserPermConstants.Basvuru_Tipleri}*/}\r\n                {/*    </label>*/}\r\n                {/*</div>*/}\r\n\r\n\r\n            </div>\r\n            {/*--------------------------------------------------------------------------------------------*/}\r\n\r\n            <div className=\"col-md-4 col-12 align-middle mt-5\" >\r\n                <div className=\"fw-bold text-center pb-1\" >\r\n                    Yönetici Yetkileri (Kullanıcı)\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Kullanici_Rolleri} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Kullanici_Rolleri)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Kullanici_Rolleri) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Kullanici_Rolleri\")} key={aciklama.length}>\r\n                        {UserPermConstants.Kullanici_Rolleri}\r\n                    </label>\r\n                </div>\r\n                {/*<div className=\"pt-1 checkbox\" >*/}\r\n                {/*    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Kullanici_Rollerini_Editleme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Kullanici_Rollerini_Editleme)} />*/}\r\n                {/*    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.Kullanici_Rollerini_Editleme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Kullanici_Rollerini_Editleme\")} key={aciklama.length}>*/}\r\n                {/*        {UserPermConstants.Kullanici_Rollerini_Editleme}*/}\r\n                {/*    </label>*/}\r\n                {/*</div>*/}\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Kullanici_Listesini_Gorme_Profil_Bilgilerini} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Kullanici_Listesini_Gorme_Profil_Bilgilerini)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Kullanici_Listesini_Gorme_Profil_Bilgilerini) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Kullanici_Listesini_Gorme_Profil_Bilgilerini\")} key={aciklama.length}>\r\n                        {UserPermConstants.Kullanici_Listesini_Gorme_Profil_Bilgilerini}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Kullanici_Tipleri} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Kullanici_Tipleri)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Kullanici_Tipleri) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Kullanici_Tipleri\")} key={aciklama.length}>\r\n                        {UserPermConstants.Kullanici_Tipleri}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Kullanici_Kayit_Formu} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Kullanici_Kayit_Formu)} />\r\n                    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.Kullanici_Kayit_Formu) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Kullanici_Kayit_Formu\")} key={aciklama.length}>\r\n                        {UserPermConstants.Kullanici_Kayit_Formu}\r\n                    </label>\r\n                </div>\r\n\r\n\r\n\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Kullanici_Bilgilerini_Editleme_Roller_Denetim_Yetkileri_Haric} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Kullanici_Bilgilerini_Editleme_Roller_Denetim_Yetkileri_Haric)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Kullanici_Bilgilerini_Editleme_Roller_Denetim_Yetkileri_Haric) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Kullanici_Bilgilerini_Editleme_Roller_Denetim_Yetkileri_Haric\")} key={aciklama.length}>\r\n                        {UserPermConstants.Kullanici_Bilgilerini_Editleme_Roller_Denetim_Yetkileri_Haric}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Kullanici_Denetim_Yetkilerini_Editleme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Kullanici_Denetim_Yetkilerini_Editleme)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Kullanici_Denetim_Yetkilerini_Editleme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Kullanici_Denetim_Yetkilerini_Editleme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Kullanici_Denetim_Yetkilerini_Editleme}\r\n                    </label>\r\n                </div>\r\n\r\n\r\n\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Kullanici_Silme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Kullanici_Silme)} />\r\n                    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.Kullanici_Silme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Kullanici_Silme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Kullanici_Silme}\r\n                    </label>\r\n                </div>\r\n\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Kullnici_Kara_Liste} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Kullnici_Kara_Liste)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Kullnici_Kara_Liste) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Kullnici_Kara_Liste\")} key={aciklama.length}>\r\n                        {UserPermConstants.Kullnici_Kara_Liste}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Sabitlenen_Profil_Degistirme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Sabitlenen_Profil_Degistirme)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Sabitlenen_Profil_Degistirme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Sabitlenen_Profil_Degistirme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Sabitlenen_Profil_Degistirme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1 \" name={UserPermConstants.Sifre_Degistirme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Sifre_Degistirme)} />\r\n                    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.Sifre_Degistirme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Sifre_Degistirme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Sifre_Degistirme}\r\n                    </label>\r\n                </div>\r\n                {/*<div className=\"pt-1 checkbox\" >*/}\r\n                {/*    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1 \" name={UserPermConstants.Yeni_Kullanici_Kaydetme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Yeni_Kullanici_Kaydetme)} />*/}\r\n                {/*    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.Yeni_Kullanici_Kaydetme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Yeni_Kullanici_Kaydetme\")} key={aciklama.length}>*/}\r\n                {/*        {UserPermConstants.Yeni_Kullanici_Kaydetme}*/}\r\n                {/*    </label>*/}\r\n                {/*</div>*/}\r\n                {/*<div className=\"pt-1 checkbox\" >*/}\r\n                {/*    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1 \" name={UserPermConstants.Yeni_Kullanici_Kaydinda_Zorunlu_Alanlari_Bos_Birakabilme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Yeni_Kullanici_Kaydinda_Zorunlu_Alanlari_Bos_Birakabilme)} />*/}\r\n                {/*    <label className={\"form-check-label pt-1  d-inline \" + (hasperm(UserPermConstants.Yeni_Kullanici_Kaydinda_Zorunlu_Alanlari_Bos_Birakabilme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Yeni_Kullanici_Kaydinda_Zorunlu_Alanlari_Bos_Birakabilme\")} key={aciklama.length}>*/}\r\n                {/*        {UserPermConstants.Yeni_Kullanici_Kaydinda_Zorunlu_Alanlari_Bos_Birakabilme}*/}\r\n                {/*    </label>*/}\r\n                {/*</div>*/}\r\n\r\n            </div>\r\n\r\n\r\n            {/*--------------------------------------------------------------------------------------------*/}\r\n\r\n            <div className=\"col-md-4 col-12 align-middle mt-5\" >\r\n                <div className=\"fw-bold text-center pb-1\" >\r\n                    İstatistik Yetkileri\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Anlik_Istatistikleri_Gorme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Anlik_Istatistikleri_Gorme)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Anlik_Istatistikleri_Gorme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Anlik_Istatistikleri_Gorme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Anlik_Istatistikleri_Gorme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Kontrolor_Istatistiklerini_Gorme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Kontrolor_Istatistiklerini_Gorme)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Kontrolor_Istatistiklerini_Gorme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Kontrolor_Istatistiklerini_Gorme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Kontrolor_Istatistiklerini_Gorme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Mekansal_Istatistikleri_Gorme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Mekansal_Istatistikleri_Gorme)} />\r\n                    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.Mekansal_Istatistikleri_Gorme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Mekansal_Istatistikleri_Gorme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Mekansal_Istatistikleri_Gorme}\r\n                    </label>\r\n                </div>\r\n\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Muellif_Istatistiklerini_Gorme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Muellif_Istatistiklerini_Gorme)} />\r\n                    <label className={\"form-check-label pt-1 d-inline \" + (hasperm(UserPermConstants.Muellif_Istatistiklerini_Gorme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Muellif_Istatistiklerini_Gorme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Muellif_Istatistiklerini_Gorme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Proje_Istatistiklerini_Gorme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Proje_Istatistiklerini_Gorme)} />\r\n                    <label className={\"form-check-label pt-1  \" + (hasperm(UserPermConstants.Proje_Istatistiklerini_Gorme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Proje_Istatistiklerini_Gorme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Proje_Istatistiklerini_Gorme}\r\n                    </label>\r\n                </div>\r\n                <div className=\"pt-1 checkbox\" >\r\n                    <input type=\"checkbox\" className=\"form-check-input big-checkbox me-1\" name={UserPermConstants.Zamansal_Istatistikleri_Gorme} onChange={handleCheckBoxChange} checked={hasperm(UserPermConstants.Zamansal_Istatistikleri_Gorme)} />\r\n                    <label className={\"form-check-label pt-1 \" + (hasperm(UserPermConstants.Zamansal_Istatistikleri_Gorme) ? \"fw-bold\" : \"textvmuted\")} data-bs-toggle=\"popover\" data-bs-trigger=\"hover focus\" data-bs-content={getAciklama(\"Zamansal_Istatistikleri_Gorme\")} key={aciklama.length}>\r\n                        {UserPermConstants.Zamansal_Istatistikleri_Gorme}\r\n                    </label>\r\n                </div>\r\n            </div>\r\n\r\n        </div >\r\n\r\n\r\n\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"table-responsive  mainpagescroll\" >\r\n                <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\" >\r\n                    <thead className=\"text-center\" style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }}>\r\n                        <tr>\r\n                            {/* <th className=\"text-start\">ID</th>*/}\r\n                            <th className=\"text-start textvmuted\">Rol Adı</th>\r\n                            {/*<th style={{ \"min-width\": \"250px\" }}>Yetkiler</th>*/}\r\n                            <th className=\"text-start textvmuted\">Başvuru Takip</th>\r\n                            <th className=\"text-start textvmuted\">Varsayılan Rol</th>\r\n                            <th className=\"text-start\"></th>\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody >\r\n                        {tabledata.map(apprec =>\r\n                            <tr key={apprec.id}>\r\n                                {/*<td>*/}\r\n                                {/*    {apprec.id}*/}\r\n                                {/*</td>*/}\r\n                                <td>\r\n                                    <a href=\"#\" onClick={() => setpostdata(apprec)} className=\"dropdown-item text-primary text-decoration-none\"> {apprec.name}</a>\r\n\r\n                                    {/* <input type=\"text\" className=\"form-control form-control-sm\" name=\"name\" defaultValue={apprec.name} onChange={(e) => updateRecord(apprec, e)} />*/}\r\n                                </td>\r\n                                {/*<td>*/}\r\n                                {/*    <Multiselect className=\"p-0 form-control-sm bg-white\"*/}\r\n                                {/*        options={perms}*/}\r\n                                {/*        emptyRecordMsg=\"Başka Kullanıcı Tipi Yok\"*/}\r\n\r\n                                {/*        isObject={false}*/}\r\n                                {/*        onSelect={(selectedList, selectedItem) => { apprec.perms = selectedList.join() }}*/}\r\n                                {/*        onRemove={(selectedList, selectedItem) => { apprec.perms = selectedList.join() }}*/}\r\n                                {/*        placeholder=\"Yetkiler\"*/}\r\n                                {/*        selectedValues={apprec.perms != null ? apprec.perms.split(',').sort(function (a, b) {return a.localeCompare(b);}) : []}*/}\r\n                                {/*    />*/}\r\n                                {/*</td>*/}\r\n                                <td >\r\n                                    <input type=\"checkbox\" className=\"form-check-input big-checkbox\" disabled name=\"takip\" onChange={(e) => updateRecord(apprec, e)} checked={apprec.takip} />\r\n                                </td>\r\n                                <td >\r\n                                    <input type=\"radio\" className=\"form-check-input big-checkbox\" disabled name=\"defaultrole\" onChange={(e) => updateRecord(apprec, e)} checked={apprec.defaultrole} />\r\n                                </td>\r\n                                <td>\r\n\r\n                                    <div className=\"dropdown\">\r\n                                        <button className=\"btn btn-primary btn-sm dropdown-toggle\" type=\"button\" id=\"dropdownMenuButton1\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n                                            İşlemler\r\n                                        </button>\r\n                                        <ul class=\"dropdown-menu shadow-sm\" aria-labelledby=\"dropdownMenuButton1\">\r\n\r\n                                            <li className=\"\">\r\n                                                <a href=\"#\" onClick={() => setpostdata(apprec)} className=\"dropdown-item text-primary text-decoration-none\">Güncelle</a>\r\n\r\n\r\n                                            </li>\r\n                                            <li className=\"\">\r\n                                                <a href=\"#\" onClick={() => { Add({ name: apprec.name + \"-2\", perms: apprec.perms, takip: apprec.takip }); }} className=\"dropdown-item text-primary text-decoration-none\">Kopyala</a>\r\n\r\n\r\n                                            </li>\r\n                                            <li>\r\n                                                <a href=\"#\" onClick={() => removeRecord(apprec.id)} className=\"dropdown-item text-danger text-decoration-none \">Sil</a>\r\n                                            </li>\r\n\r\n                                        </ul>\r\n                                    </div>\r\n                                </td>\r\n                            </tr>\r\n                        )}\r\n\r\n\r\n                    </tbody>\r\n                </table>\r\n            </div >\r\n        return (mytable);\r\n    }\r\n\r\n    const filterTable = (event) => {\r\n        var textbox = document.getElementById(\"mySearchInput\")\r\n        if (textbox == null)\r\n            return;\r\n        var value = textbox.value.toLowerCase();\r\n        var keywords = value.split(\" \");\r\n\r\n\r\n        $(\"#checkboxarea .checkbox\").filter(function () {\r\n            var t1 = removeTurkcLow($(this).text());\r\n            for (let index = 0; index < keywords.length; ++index) {\r\n                var t2 =  removeTurkcLow(keywords[index]);\r\n                if (t1.indexOf(t2) == -1) {\r\n                    return $(this).toggle(false);\r\n                }\r\n            }\r\n           return $(this).toggle(true);\r\n        });\r\n\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div className=\"m-2 rounded-3\" style={{ \"background-color\": \"#EDEDF7\", \"min-height\": \"100vh\" }} key={aciklama.length}>\r\n\r\n            <div className=\"row d-flex  flex-wrap p-4\">\r\n                <div className=\"col-md-8 col-12 d-flex flex-column\" >\r\n                    <div className=\"bg-white rounded-3\" >\r\n                        <div className=\"row ms-2 me-2 pt-3  mb-4 pb-4 border-bottom\">\r\n                            <div className=\"col-4 align-middle fw-bold pt-4 text-center \" >\r\n                                YENİ ROL OLUŞTUR\r\n                            </div>\r\n                            <div className=\"col-8\" >\r\n                                <div className=\"bg-light p-3 rounded-3 textvmuted fw-bold \" style={{ \"text-align\": \"justify\" }}>\r\n                                    <span className=\"fa fa-info pe-3\" style={{ color: \"lightblue\", fontSize: \"26px\" }} ></span>\r\n                                    Bu ekranda istediğiniz yetkilerden seçim yaparak, yetki grupları (yeni kullanıcı rolleri) oluşturabilirsiniz.\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n\r\n                        {postdata.id > 0 && < div className=\"row ms-2 me-2   mb-4 pb-4 border-bottom\">\r\n                            <div className=\"col-12 align-middle   text-center \" >\r\n                                <span className=\"text-success fw-bold\"> {postdata.name} </span>rölünü düzenliyorsunuz\r\n                                <button onClick={() => {\r\n                                    setpostdata({})\r\n\r\n\r\n                                }} className=\"ms-2 btn btn-sm btn-secondary text-decoration-none\">Vazgeç</button>\r\n                            </div>\r\n                        </div>}\r\n\r\n                        <div className=\"m-2 pb-4 mb-4 mt-4 border-bottom\" key={postdata.id}>\r\n                            <div className=\"row pt-2  mt-3\">\r\n                                <div className=\"col-md-4 col-12\" >\r\n                                    <div>\r\n                                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"rolname\" name=\"name\" onChange={handleInputChange} placeholder=\"Rol İsmi\" defaultValue={postdata.name} />\r\n                                        <span className=\"textvmuted\">Role vermek istediğiniz ismi yazınız.</span>\r\n                                    </div>\r\n                                </div>\r\n                                <div className=\"col-12 col-md-3 align-middle \" >\r\n                                    <input type=\"checkbox\" className=\"form-check-input big-checkbox \" id=\"takip\" name=\"takip\" onChange={handleInputChange} defaultChecked={postdata.takip} />\r\n                                    <span className=\"align-middle ms-1\">Başvuru Takip </span>\r\n                                    <br />\r\n                                    <span className=\"textvmuted\">Başvurularla ilgili bildirim gitsin mı?</span>\r\n                                </div>\r\n                                <div className=\"col-12 col-md-3 align-middle \" >\r\n                                    <input type=\"checkbox\" className=\"form-check-input big-checkbox\" id=\"defaultrole\" name=\"defaultrole\" onChange={handleInputChange} defaultChecked={postdata.defaultrole} />\r\n                                    <span className=\"align-middle ms-1\"> Varsayılan Rol</span>\r\n                                    <br />\r\n                                    <span className=\"textvmuted\">Yeni kullanıcıların varsayılan rolu</span>\r\n                                </div>\r\n                                <div className=\"col-12 col-md-2 align-middle p-0\" >\r\n                                    <button onClick={submitUpdateRecord} className=\"btn btn-sm btn-primary text-decoration-none p-1 \">Kaydet</button>&nbsp;\r\n                                    <button onClick={() => {\r\n                                        document.getElementById(\"rolname\").value = \"\";\r\n                                        document.getElementById(\"takip\").checked = false;\r\n                                        document.getElementById(\"defaultrole\").checked = false;\r\n\r\n                                    }} className=\"btn btn-sm btn-info text-decoration-none p-1\">Temizle</button>\r\n                                </div>\r\n\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"row border-top pt-3\" >\r\n                            <div className=\"col-12 col-md-3\" >\r\n\r\n                            </div  >\r\n                            <div className=\"col-12 col-md-6\" >\r\n                                <input className=\"form-control form-control-sm border-secondary mb-2 \" id=\"mySearchInput\" type=\"text\" placeholder=\"Ara\" onKeyUp={filterTable} />\r\n                            </div  >\r\n                            <div className=\"col-12 col-md-3\" >  </div  >\r\n                        </div>\r\n\r\n                        {checkboxlist()}\r\n\r\n\r\n\r\n                    </div>\r\n                </div>\r\n                <div className=\"col-md-4 col-12  d-flex flex-column bg-white rounded-3 p-2\" >\r\n\r\n\r\n                    <div className=\"align-middle fw-bold text-start\" >\r\n                        Oluşturulan Roller\r\n                    </div>\r\n                    <div className=\"fw-bold text-justify textvmuted mb-3 mt-2\" style={{ \"text-align\": \"justify\" }}>\r\n                        Oluşturduğunuz rollerin üzerinde tıklayarak, rolu düzenleyebilir, kopyalayabilir veya silebilirsiniz.\r\n                    </div>\r\n\r\n                    {listTable}\r\n\r\n                </div>\r\n            </div>\r\n        </div >\r\n\r\n    );\r\n\r\n\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport Application from \"./Application.js\"\r\nimport { useGlobalState, logout, ajaxFail, removeTurkcLow, showErrorMessage } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\n\r\n\r\nexport default function AllApplicationList(props) {\r\n\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userName, setuserName] = useGlobalState('userName');\r\n    var changeComponent = props.changeComponent;\r\n\r\n    const [showremoved, setShowremoved] = useState(false);\r\n    const [applist, setApplist] = useState(null);\r\n    const [appGroups, setAppGroups] = useState([]);\r\n    const [devamstat, setDevamstat] = useState(null);\r\n    const [filter, setFilter] = useState(null);\r\n\r\n    const [surecList, setSurecList] = useState([]);\r\n    const [mysablonlist, setMysablonlist] = useState(null);\r\n    const [colnames, setColnames] = useState([\"id\", \"basvuruTarihi\", \"basvuruTipi\", \"basvuruDurumu\", \"ada\", \"mahalle\", \"mevki\", \"basvuruYapan\"]);\r\n\r\n    var sortField = null;\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        getSablon();\r\n        fetchSurecList();\r\n    }, [])\r\n\r\n    const myCompare = (a, b) => {\r\n        if (a[sortField] < b[sortField]) {\r\n            return -1;\r\n        }\r\n        if (a[sortField] > b[sortField]) {\r\n            return 1;\r\n        }\r\n        return 0;\r\n    }\r\n    const myCompareRev = (a, b) => {\r\n        if (a[sortField] < b[sortField]) {\r\n            return 1;\r\n        }\r\n        if (a[sortField] > b[sortField]) {\r\n            return -1;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n\r\n    const myCompareBasvuruTipi = (a, b) => {\r\n        var s1 = a[sortField];\r\n        var s2 = b[sortField];\r\n        if (s1 == null) return -1;\r\n        if (s2 == null) return 1;\r\n\r\n        var sa = s1.replaceAll('\"name\":', \"\").replaceAll(']', \"\").replaceAll('[', \"\").replaceAll('{', \"\").replaceAll('}', \"\").replaceAll('\"', \"\");\r\n        var sb = s2.replaceAll('\"name\":', \"\").replaceAll(']', \"\").replaceAll('[', \"\").replaceAll('{', \"\").replaceAll('}', \"\").replaceAll('\"', \"\");\r\n\r\n        if (sa < sb) {\r\n            return -1;\r\n        }\r\n        if (sa > sb) {\r\n            return 1;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n        var temp = [...applist]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setApplist(temp);\r\n    }\r\n\r\n\r\n    const getAppGroupList = () => {\r\n\r\n        fetch(\"getappgrouplist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    value.unshift({ name: \"Tümü\" })\r\n                    setAppGroups(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getSablon = () => {\r\n        var refreshButton = document.getElementById(\"refreshButton\");\r\n        if (refreshButton != null) {\r\n            refreshButton.classList.remove(\"fa\", \"fa-refresh\")\r\n            refreshButton.classList.add(\"spinner-grow\", \"spinner-grow-sm\")\r\n        }\r\n\r\n        fetch(\"getmysablon\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n\r\n            else {\r\n                response.json().then(async list => {\r\n                    var list = list.filter(r => r.forListView == true);\r\n                    if (list != null && list.length > 0) {\r\n                        var data = list[0];\r\n                        if (window.localStorage.getItem('sablon') != null && list[window.localStorage.getItem('sablon')] != null)\r\n                            data = list[window.localStorage.getItem('sablon')];\r\n                        if (data.filter != null && data.filter.length > 0)\r\n                            setFilter(data.filter);\r\n                        if (data.colNames != null && data.colNames.length > 0) {\r\n                            var d = data.colNames.replaceAll('\"', \"\");\r\n                            if (d.length > 0)\r\n                                setColnames(d.split(\",\"));\r\n                        }\r\n                    }\r\n                    setMysablonlist(list);\r\n                });\r\n\r\n                getApplicationList();\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const appsauthorlist = (applist) => {\r\n        var ids = applist.map(x => x.id).join();\r\n        fetch(\"appsauthorlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(ids)\r\n\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    applist.forEach((k) => { k.müellif = \"\" });\r\n                    data.forEach((k) => { applist.find(x => x.id == k.appID).müellif += k.userName + \"(\" + k.muellifType + \")  \" });\r\n                    setApplist(applist);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const getcontrollerlist = (applist) => {\r\n        var ids = applist.map(x => x.id).join();\r\n        fetch(\"getcontrollerlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(ids)\r\n\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    try {\r\n                        data = JSON.parse(data)\r\n                        data.forEach((k) => { applist.find(x => x.id == k.appID).kontrolor = k.userName });\r\n                        appsauthorlist(applist)\r\n                    } catch (error) {\r\n                        setApplist([]);\r\n                    }\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getApplicationList = () => {\r\n        fetch(\"myallapplicationlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            var refreshButton = document.getElementById(\"refreshButton\");\r\n            if (refreshButton != null && refreshButton.classList.contains(\"fa-refresh\") == false) {\r\n                refreshButton.classList.remove(\"spinner-grow\", \"spinner-grow-sm\")\r\n                refreshButton.classList.add(\"fa\", \"fa-refresh\")\r\n            }\r\n\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n\r\n                response.json().then(async data => {\r\n                    getcontrollerlist(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const filterTable = (event) => {\r\n        const target = event.target;\r\n        const value = target.value.toLowerCase();\r\n        $(\"#myTable tr\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n            var t1 = removeTurkcLow($(this).text())\r\n            for (let index = 0; index < keywords.length; ++index) {\r\n                if (t1.indexOf(removeTurkcLow(keywords[index])) == -1)\r\n                    return $(this).toggle(false);\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n\r\n\r\n    const passFilter = (rec, filter) => {\r\n        if (filter == null || filter.length == 0) return true;\r\n        var result = false;\r\n        var conds = filter.split(\",\");\r\n        if (conds == null) return true;\r\n        for (var i = 0; i < conds.length; i++) {\r\n            var currentCondition = conds[i].trim();\r\n            var and = currentCondition.includes(\"AND\") || conds.length == 1;\r\n            and = and || (i == 0 && conds.length > 1 && conds[1].trim().includes(\"AND\"));\r\n            currentCondition = currentCondition.replaceAll(\"AND\", \"\");\r\n            currentCondition = currentCondition.replaceAll(\"OR\", \"\");\r\n            if (currentCondition.includes('>')) {\r\n                var c = currentCondition.split(\">\");\r\n                var colname = c[0].trim();\r\n                var value = c[1].trim().split(\";\");\r\n                if (rec[c[0]] != null) {\r\n                    if (!value.some(v => parseInt(rec[colname]) > parseInt(v))) {\r\n                        if (and == true) return false;\r\n                    }\r\n                    else result = true;\r\n                }\r\n                else {\r\n                    if (rec.appData != null && rec.appData.length > 0) {\r\n                        var dynamicSoru = JSON.parse(rec.appData);\r\n                        if (dynamicSoru[colname] == null || !value.some(v => parseInt(dynamicSoru[colname]) > parseInt(v))) {\r\n                            if (and == true) return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n                    else\r\n                        if (and == true) return false;\r\n                }\r\n            }\r\n            if (currentCondition.includes('<')) {\r\n                var c = currentCondition.split(\"<\");\r\n                var colname = c[0].trim();\r\n                var value = c[1].trim().split(\";\");\r\n                if (rec[colname] != null) {\r\n                    if (!value.some(v => parseInt(rec[colname]) < parseInt(v))) {\r\n                        if (and == true) return false;\r\n                    }\r\n                    else result = true;\r\n                }\r\n                else {\r\n                    if (rec.appData != null && rec.appData.length > 0) {\r\n                        var dynamicSoru = JSON.parse(rec.appData);\r\n                        if (dynamicSoru[colname] == null || !value.some(v => parseInt(dynamicSoru[colname].value) < parseInt(v))) {\r\n                            if (and == true) return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n                    else\r\n                        if (and == true) return false;\r\n                }\r\n\r\n            }\r\n            if (currentCondition.includes('=')) {\r\n                var c = currentCondition.split(\"=\");\r\n                var colname = c[0].trim();\r\n                var value = c[1].trim().split(\";\");\r\n                if (rec[colname] != null) {\r\n                    if (!value.some(v => parseInt(rec[colname]) == parseInt(v))) {\r\n                        if (and == true) return false;\r\n                    }\r\n                    else result = true;\r\n                }\r\n                else {\r\n                    if (rec.appData != null && rec.appData.length > 0) {\r\n                        var dynamicSoru = JSON.parse(rec.appData);\r\n                        if (dynamicSoru[colname] == null || !value.some(v => parseInt(dynamicSoru[colname].value) == parseInt(v))) {\r\n                            if (and == true) return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n                    else\r\n                        if (and == true) return false;\r\n                }\r\n            }\r\n            if (currentCondition.includes('!=')) {\r\n                var c = currentCondition.split(\"!=\");\r\n                var colname = c[0].trim();\r\n\r\n                var value = c[1].trim().split(\";\");\r\n                if (rec[colname] != null) {\r\n                    if (!value.some(v => parseInt(rec[colname]) != parseInt(v))) {\r\n                        if (and == true) return false;\r\n                    }\r\n                    else result = true;\r\n                }\r\n                else {\r\n                    if (rec.appData != null && rec.appData.length > 0) {\r\n                        var dynamicSoru = JSON.parse(rec.appData);\r\n                        if (dynamicSoru[colname] == null || !value.some(v => parseInt(dynamicSoru[colname].value) == parseInt(v))) {\r\n                            if (and == true) return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n                    else\r\n                        if (and == true) return false;\r\n                }\r\n            }\r\n            if (currentCondition.includes('ISNOTNULL')) {\r\n                var c = currentCondition.split(\"ISNOTNULL\");\r\n                var colname = c[0].trim();\r\n\r\n\r\n                if (rec[colname] == null) {\r\n                    if (rec.appData != null && rec.appData.length > 0) {\r\n                        var dynamicSoru = JSON.parse(rec.appData);\r\n                        if (dynamicSoru[colname] == null) {\r\n                            if (and == true) return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n                    else\r\n                        if (and == true) return false;\r\n                }\r\n            }\r\n            if (currentCondition.includes('ISNULL')) {\r\n                var c = currentCondition.split(\"ISNULL\");\r\n                var colname = c[0].trim();\r\n                if (rec[colname] != null) {\r\n                    if (rec.appData != null && rec.appData.length > 0) {\r\n                        var dynamicSoru = JSON.parse(rec.appData);\r\n                        if (dynamicSoru[colname] != null) {\r\n                            if (and == true) return false;\r\n                        }\r\n\r\n                        else result = true;\r\n                    }\r\n                }\r\n            }\r\n            if (currentCondition.includes('LIKE')) {\r\n                var c = currentCondition.split(\"LIKE\");\r\n                var colname = c[0].trim();\r\n                var value = c[1].trim().split(\";\");\r\n\r\n                if (rec[colname] != null) {\r\n                    if (!value.some(v => rec[colname].toString().includes(v))) {\r\n                        if (and == true) return false;\r\n                    }\r\n                    else result = true;\r\n                }\r\n                else {\r\n                    if (rec.appData != null && rec.appData.length > 0) {\r\n                        var dynamicSoru = JSON.parse(rec.appData);\r\n                        if (dynamicSoru[colname] == null || !value.some(v => dynamicSoru[colname].value.toString().includes(v))) {\r\n                            if (and == true) return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n                    else\r\n                        if (and == true) return false;\r\n                }\r\n            }\r\n\r\n            if (currentCondition.includes('NOTLIKE')) {\r\n                var c = currentCondition.split(\"NOTLIKE\");\r\n                var colname = c[0].trim();\r\n                var value = c[1].trim().split(\";\");\r\n                if (rec[colname] != null) {\r\n                    if (value.some(v => rec[colname].toString().includes(v))) {\r\n                        if (and == true) return false;\r\n                    }\r\n                    else result = true;\r\n                }\r\n                else {\r\n                    if (rec.appData != null && rec.appData.length > 0) {\r\n                        var dynamicSoru = JSON.parse(rec.appData);\r\n                        if (dynamicSoru[colname] == null || value.some(v => dynamicSoru[colname].value.toString().includes(v))) {\r\n                            if (and == true) return false;\r\n                        }\r\n                        else result = true;\r\n                    }\r\n\r\n                }\r\n            }\r\n\r\n\r\n        }\r\n\r\n        return result;\r\n    }\r\n\r\n\r\n    const filterColumn = (event) => {\r\n        const target = event.target;\r\n\r\n        var cl = colnames;\r\n        $(\"#myTable tr\").filter(function () {\r\n            for (var c = 0; c < cl.length; c++) {\r\n                if (document.getElementById(cl[c]).value != null && document.getElementById(cl[c]).value.length > 0)\r\n                    if (removeTurkcLow($(this).children().eq(c).text()).indexOf(removeTurkcLow(document.getElementById(cl[c]).value)) == -1)\r\n                        return $(this).toggle(false);\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n\r\n\r\n    const handleGroupChange = () => {\r\n        var sab = document.getElementById(\"groupSelect\").value;\r\n        var data = appGroups[sab];\r\n        setDevamstat(data);\r\n    }\r\n\r\n    const handleSablonChange = () => {\r\n        var sab = document.getElementById(\"sablonSelect\").value;\r\n        window.localStorage.setItem('sablon', sab);\r\n        var data = mysablonlist[sab];\r\n        if (data.filter != null)\r\n            setFilter(data.filter);\r\n        if (data.colNames != null && data.colNames.length > 0) {\r\n            var d = data.colNames.replaceAll('\"', \"\");\r\n            if (d.length > 0) {\r\n                var temp = applist;\r\n                if (data.sort != null && data.sort.length > 0) {\r\n                    var sf = data.sort.split(\",\");\r\n                    if (sf.length > 0) {\r\n                        for (var i = 0; i < sf.length; i++) {\r\n                            if (sf[i][0] == '-') {\r\n                                sortField = sf[i].substring(1);\r\n                                temp.sort(myCompareRev);\r\n                            }\r\n                            else {\r\n                                sortField = sf[i];\r\n                                temp.sort(myCompare);\r\n                            }\r\n                        }\r\n                    }\r\n\r\n                }\r\n                setApplist(temp);\r\n                setColnames(d.split(\",\"));\r\n            }\r\n        }\r\n    }\r\n\r\n    const fetchSurecList = () => {\r\n\r\n        fetch(\"sureclist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setSurecList(value);\r\n                    getAppGroupList();\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const setAppRemovedState = (app, isremoved) => {\r\n        app.removed = isremoved;\r\n        fetch(\"saveapplication\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(app)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                getApplicationList();\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const deleteApp = (app) => {\r\n        var comment = window.prompt(\"Lütfen Silme Nedenini Açıklayınız\")\r\n        if (comment == null || comment.length == 0) {\r\n            showErrorMessage(\"Açıklama Boş Olamaz\", \"Lütfen Silme Nedenini Yazınız\");\r\n            return;\r\n        }\r\n\r\n\r\n       if (app.removed != true) {\r\n            setAppRemovedState(app, true);\r\n            return;\r\n        }\r\n        fetch(\"removeapp\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(app.id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setApplist(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getDurumName = (i) => {\r\n        var r = surecList.find(element => element.id == i);\r\n        if (r == null) return i;\r\n        return r.name;\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderToList = (tabledata) => {\r\n        if (tabledata == null)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (tabledata.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n\r\n        var mytable =\r\n            <div className=\"mt-1\">\r\n                <div className=\"mt-1 p-2 row\" style={{ \"background-color\": \"#fff8dd\" }}>\r\n                    <div class=\"col-md-2 pt-4\">\r\n                        {role != null && role.indexOf(UserPermConstants.Basvuru_Silme) > -1 && <div class=\"form-check form-switch \">\r\n                            <input class=\"form-check-input\" type=\"checkbox\" id=\"flexSwitchCheckDefault\" defaultChecked={false} onClick={(value) => setShowremoved(value.target.checked)} />\r\n                            <label class=\"form-check-label\" for=\"flexSwitchCheckDefault\" >Silinenler</label>\r\n                        </div>}\r\n                    </div>\r\n                    <div className=\"col-12 col-md-3\">\r\n                        Ekran\r\n                        {mysablonlist != null ? <select className=\"form-select form-select-sm\" id=\"sablonSelect\" name=\"sablonSelect\" onChange={handleSablonChange} defaultValue={window.localStorage.getItem('sablon')}>\r\n                            {mysablonlist.map((s, idx) => <option value={idx} > {s.name}</option>)}\r\n                        </select> : \"\"}\r\n                    </div>\r\n                    <div className=\"col-12 col-md-3\">\r\n                        Gruplar\r\n                        {appGroups != null ? <select className=\"form-select form-select-sm\" id=\"groupSelect\" name=\"groupSelect\" onChange={handleGroupChange}>\r\n                            {appGroups.map((s, idx) => <option value={idx} > {s.name}</option>)}\r\n                        </select> : \"\"}\r\n                    </div>\r\n                    <div className=\"col-12 col-md-3\">\r\n                        Arama\r\n                        <input className=\"form-control form-control-sm\" id=\"myInput\" type=\"text\" placeholder=\"\" onKeyUp={filterTable} />\r\n\r\n                    </div>\r\n                    <div className=\"col-12 col-md-1 text-end pt-2\">\r\n                        <a onClick={getSablon} href=\"#\" className=\"text-primary\"> <i className=\"fa fa-refresh\" id=\"refreshButton\"></i></a>\r\n                    </div>\r\n\r\n                </div>\r\n\r\n\r\n                <div className=\"table-responsive\">\r\n                    <table className='table mt-3 table-vdstriped' aria-labelledby=\"tabelLabel\">\r\n                        <thead>\r\n                            <tr>\r\n                                {colnames.map(c =>\r\n                                    <th> <div><button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(c)}> {c.toUpperCase() == \"ADA\" ? \"ADA/PARSEL\" : c.toUpperCase()}</button></div>\r\n                                        <div>\r\n                                            <input type=\"text\" className=\"form-control form-control-sm\" id={c} placeholder=\"\" name={c} onChange={filterColumn} />\r\n                                        </div></th>\r\n                                )}\r\n                            </tr>\r\n                        </thead>\r\n                        <tbody id=\"myTable\">\r\n                            {tabledata.map(apprec =>\r\n                                (showremoved == true ? apprec.removed == true : apprec.removed != true) &&\r\n                                passFilter(apprec, filter) == true && (devamstat == null || devamstat.appState == undefined || devamstat.appState.split(\",\").includes(apprec.basvuruDurumu + \"\")) &&\r\n\r\n                                <tr key={apprec.id} className=\"p-1\">\r\n                                    {colnames.map(c => {\r\n                                        if (apprec[c] != null)\r\n                                            if (c == \"basvuruDurumu\") return <td name={c}>{getDurumName(apprec[c])}</td>\r\n                                            else return <td name={c}>{apprec[c]}</td>\r\n                                        try {\r\n                                            var appDData = JSON.parse(apprec.appData);\r\n                                            if (appDData != null && appDData[c] != null) {\r\n                                                if (appDData[c].type != null && appDData[c].type == \"checkbox\") {\r\n                                                    return <td name={c}><input type=\"checkbox\" className=\"form-check-input p-0\" checked={appDData[c].value} /></td>\r\n                                                }\r\n                                                return <td name={c}>{appDData[c].value}</td>\r\n                                            }\r\n                                        }\r\n                                        catch (ex) {\r\n                                            return <td name={c}>{ex.toString()}</td>\r\n                                        }\r\n\r\n                                        return <td></td>\r\n                                    })}\r\n                                    <td>\r\n                                       { (role != null && role.indexOf(UserPermConstants.Basvuru_Silme) > -1)&&  <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }}>\r\n                                                {apprec.removed != true && <a href=\"#\" onClick={() => { changeComponent(<Application key={apprec.id} appData={apprec} changeComponent={changeComponent} backButton={<AllApplicationList changeComponent={props.changeComponent} />}/>) }} className=\" text-decoration-none \"><i className=\"fa fa-edit align-middle\" style={{ \"font-size\": \"24px\" }}></i></a>}\r\n                                                {apprec.removed == true && <a href=\"/#\" onClick={() => { setAppRemovedState(apprec, false) }} className=\"text-decoration-none align-middle\" ><i className=\"fa fa-refresh align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n                                                 <a href=\"/#\" onClick={() => { deleteApp(apprec) }} className=\"text-decoration-none material-icons align-middle\" >delete</a>\r\n\r\n                                        </div>}\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n    var  tabledata = renderToList(applist);\r\n   \r\n\r\n    return <div  >\r\n        <div className=\"  align-items-center justify-content-center p-1\" >\r\n            {tabledata}\r\n        </div>\r\n    </div>\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, removeTurkcLow, sendpost, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport $ from 'jquery';\r\n\r\nexport default function HavaleSablonSetting(props) {\r\n    var basvuruTipi = props.basvuruTipi;\r\n\r\n\r\n    const [listData, setListData] = useState([]);\r\n    const [denetimList, setDenetimList] = useState([]);\r\n    const [basvuruTipleri, setBasvuruTipleri] = useState([]);\r\n    const [kontrolorList, setKontrolorList] = useState([]);\r\n    const [kontrolorListForSelectTask, setKontrolorListForSelectTask] = useState([]);\r\n    const [postdata, setPostData] = useState({});\r\n    const [isAdimlari, setIsAdimlari] = useState([]);\r\n    const [selectableIsAdimlari, setselectableIsAdimlari] = useState([]);\r\n    const [mapping, setMapping] = useState([]);\r\n    const multiselectRef = React.createRef();\r\n    const multiselectRefNew = React.createRef();\r\n    const colorset = [\"#f0f7ff\", \"#FFFFFF\", \"#FFFFFF\", \"#f0f7ff\"];\r\n\r\n\r\n    useEffect(() => {\r\n        fetchDenetimList();\r\n        fetchList();\r\n        fetchKontrollers();\r\n        fetchIsAdimlariList();\r\n    }, [])\r\n\r\n\r\n    const fetchIsAdimlariList = () => {\r\n        sendpost(\"basvurutipisadimlist\", null, \"\", (response) => {\r\n            response.json().then(value => {\r\n                setIsAdimlari(value)\r\n            })\r\n\r\n        })\r\n    }\r\n\r\n\r\n\r\n\r\n    const fetchDenetimList = () => {\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n\r\n\r\n                    setBasvuruTipleri(value.filter(x => x.isadimi != true))\r\n                    if (props.isAdimlari) {\r\n                        setDenetimList(value.filter(x => x.isadimi == true && props.isAdimlari.some(y => y.isAdimi == x.id)));\r\n                        setselectableIsAdimlari(value.filter(x => x.isadimi == true && props.isAdimlari.some(y => y.isAdimi == x.id)));\r\n                    }\r\n                    else {\r\n                        var isadimlar = value.filter(x => x.isadimi == true);\r\n                        \r\n                        setDenetimList(isadimlar);\r\n\r\n                    }\r\n                })\r\n            }\r\n        });\r\n    }\r\n    const getDenetimName = (id) => {\r\n        try { return denetimList.find(x => x.id == id).name }\r\n        catch (ex) { return \"Error \" + id + \" \" + denetimList .length}\r\n    }\r\n\r\n\r\n    const recalculateSira = () => {\r\n\r\n        const sortedArray = mapping.map(x => x.sira).sort((a, b) => a - b);\r\n        const max = sortedArray[sortedArray.length - 1];\r\n        var missingNumbers = [];\r\n        for (let i = 0; i <= max; i++) {\r\n            if (!sortedArray.includes(i)) {\r\n                missingNumbers.push(i);\r\n            }\r\n        }\r\n        for (var x of missingNumbers) {\r\n            for (var r of mapping) {\r\n                if (r.sira >= x)\r\n                    r.sira--;\r\n            }\r\n        }\r\n\r\n\r\n        return mapping;\r\n    };\r\n\r\n\r\n    const showTable = () => {\r\n        var maxSira = 0;\r\n        mapping.forEach(x => maxSira = Math.max(maxSira, x.sira))\r\n        if (mapping.filter(x => x.sira == maxSira).length > 1)\r\n            maxSira++;\r\n        var map2 = mapping.sort((a, b) => a.sira - b.sira)\r\n\r\n        return <table className='table  table-sm' aria-labelledby=\"tabelLabel\">\r\n            <thead>\r\n                <td> </td>\r\n                <th className='text-start'>Sıra</th>\r\n                <th className='text-start'>Kontrolör</th>\r\n                <th className='text-start'>İş Adımı</th>\r\n                <th className='text-start'></th>\r\n            </thead>\r\n            <tbody >\r\n                {map2.map((rec, idx) => <tr style={rec.sira % 2 == 0 ? { \"background-color\": \"#f3f9ff\", height: \"auto\" } : { height: \"auto\" }}>\r\n                    <td>\r\n                        <div hidden={isEmpty(rec.Completed) == false}>\r\n\r\n                            <button disabled={rec.sira <= 0} type=\"button\" className=\"btn btn-link p-0 m-0 shadow-none\" onClick={(e) => {\r\n                                rec.sira--;\r\n                                map2 = recalculateSira(map2);\r\n                                setMapping([...map2]);\r\n\r\n                            }} >\r\n                                <span class=\"material-icons\">\r\n                                    remove_circle\r\n                                </span>\r\n                            </button>\r\n                            <button type=\"button\" className=\"btn btn-link p-0 m-0 shadow-none\" disabled={rec.sira >= maxSira} onClick={(e) => {\r\n                                rec.sira++;\r\n                                map2 = recalculateSira(map2);\r\n                                setMapping([...map2]);\r\n\r\n                            }}>\r\n                                <span class=\"material-icons\">\r\n                                    add_circle\r\n                                </span>\r\n                            </button>\r\n\r\n                        </div>\r\n                    </td>\r\n\r\n                    <td> {rec.sira + 1}</td>\r\n\r\n                    <td>\r\n                        {rec.userName}</td>\r\n                    <td> {getDenetimName(rec.isadimi)}\r\n                    </td>\r\n\r\n\r\n                    <td width=\"10%\">\r\n                        {rec.Completed == null && <button type=\"button\" className=\"btn btn-link shadow-none text-decoration-none text-danger btn-sm\" onClick={() => { setMapping(map2.filter((x, i) => idx != i)); }} >\r\n                            <i className=\"fa fa-trash-o\"></i>\r\n                        </button>}\r\n                    </td></tr>\r\n                )}\r\n\r\n            </tbody>\r\n        </table>\r\n\r\n    }\r\n\r\n\r\n    const fetchKontrollers = () => {\r\n        // var rec = e.target.value;\r\n        /* if (rec == null || rec == -1) {\r\n             if (kontrolorList.length > 0)\r\n                 setKontrolorList([])\r\n             return;\r\n         }*/\r\n        fetch(\"userswithperm\", {\r\n            method: 'POST',\r\n            headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n            body: JSON.stringify(\"\")\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setKontrolorList(data)\r\n                });\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const removeRecord = (rec) => {\r\n        showConfirmMessage(rec.sablonName + \" İsimli Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removehavalesablon\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(rec)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        if (basvuruTipi != null)\r\n                            value = value.filter(x => x.basvuruTipi.includes(basvuruTipi.name))\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }));\r\n    }\r\n\r\n\r\n\r\n\r\n    const fetchList = () => {\r\n\r\n        fetch(\"havalesablonlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    if (basvuruTipi != null)\r\n                        value = value.filter(x => x.basvuruTipi.includes(basvuruTipi.name))\r\n\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const Reset = () => {\r\n\r\n        document.getElementById(\"denetim\").value = null;\r\n        document.getElementById(\"kontolor\").value = null\r\n        /*document.getElementById(\"mapping\").value = null;*/\r\n        setMapping([])\r\n        /* document.getElementById(\"parallel\").disabled = true;*/\r\n\r\n    }\r\n\r\n    const Add = () => {\r\n        var maxSira = -1;\r\n        mapping.forEach(x => maxSira = Math.max(maxSira, x.sira))\r\n\r\n        var d = document.getElementById(\"denetim\").value\r\n        var k = document.getElementById(\"kontolor\").value\r\n        if (d == -1 || d == null) {\r\n            showErrorMessage(\"İş Adımını Seçiniz\");\r\n            return;\r\n        }\r\n        if (k == -1 || k == null) {\r\n            showErrorMessage(\"Kontrolörü Seçiniz\");\r\n            return;\r\n        }\r\n\r\n        /*var parallel = document.getElementById(\"parallel\").checked*/\r\n\r\n        if (d == null || k == null) return;\r\n        //if (document.getElementById(\"mapping\").value != null && document.getElementById(\"mapping\").value != \"\")\r\n        //    document.getElementById(\"mapping\").value += \",\" + (parallel == true ? \"&\" : \"\");\r\n        /* document.getElementById(\"parallel\").disabled = false;*/\r\n        setMapping([...mapping, { sira: maxSira + 1, isadimi: d, userName: k }]);\r\n        setPostData({ ...postdata })\r\n    }\r\n\r\n    const SaveSablon = () => {\r\n        var update = true;\r\n\r\n        if (postdata.id == null) {\r\n            update = false\r\n        }\r\n        var m = mappingToString();\r\n        var s = document.getElementById(\"sablonName\").value\r\n\r\n        if (m == null || m == \"\" || s == null || s == \"\") {\r\n            showErrorMessage(\"Tüm alanları doldurnuz\");\r\n            return;\r\n        }\r\n        //  postdata.basvuruTipi=b\r\n        postdata.mapping = m;\r\n        postdata.sablonName = s;\r\n\r\n        if (basvuruTipi != null && isEmpty(postdata.basvuruTipi))\r\n            postdata.basvuruTipi = basvuruTipi.name;\r\n\r\n\r\n        fetch(\"savehavalesablon\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    if (update)\r\n                        showSuccessMessage(\"Guncelleme Başarılı\")\r\n                    else\r\n                        showSuccessMessage(\"Şablon Oluşturuldu\")\r\n\r\n                    if (basvuruTipi != null)\r\n                        value = value.filter(x => x.basvuruTipi.includes(basvuruTipi.name))\r\n                    setListData(value);\r\n                })\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const filterTable = (event) => {\r\n        const target = event.target;\r\n        const value = target.value.toLowerCase();\r\n        $(\"#myTable tr\").filter(function (idx) {\r\n            var keywords = removeTurkcLow(value);\r\n            var childs = $(this).children();\r\n            var text = removeTurkcLow(childs.eq(1).children().eq(0).val()) + \" \" + removeTurkcLow(childs.eq(3).children().eq(0).val());\r\n            if (listData[idx].basvuruTipi != null)\r\n                text = text + \" \" + removeTurkcLow(listData[idx].basvuruTipi);\r\n            if (text.toLowerCase().indexOf(keywords.toLowerCase()) == -1)\r\n                return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n\r\n    }\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"row ms-2 me-2 pb-3\">\r\n                {tabledata.map((apprec, idx) =>\r\n                    <div className={\"col-md-6 col-12  \"}>\r\n                        <div className=\"border rounded-3  mt-3 p-0 text-center border-1\" style={{ \"background-color\": colorset[idx % colorset.length] }}>\r\n                            <div className=\"d-inline float-start\">\r\n                                <button onClick={() => removeRecord(apprec)} className=\"btn btn-secondary btn-sm  text-decoration-none \">Sil</button>\r\n                            </div>\r\n                            <div className=\"d-inline \">\r\n                                <button onClick={() => {\r\n                                    setPostData(apprec);\r\n                                    setMapping(stringToMapping(apprec.mapping))\r\n\r\n                                    if (isEmpty(apprec.basvuruTipi) == false) {\r\n                                        var b = basvuruTipleri.filter(x => apprec.basvuruTipi.split(\",\").includes(x.name)).map(x => x.id);\r\n                                        var i = isAdimlari.filter(x => b.includes(x.basvuruTipi)).map(x => x.isAdimi)\r\n                                        setselectableIsAdimlari(denetimList.filter(x => i.includes(x.id)))\r\n                                    }\r\n\r\n                                }} className=\"btn btn-link btn-sm text-decoration-none \">{apprec.sablonName}</button>\r\n                            </div>\r\n\r\n                        </div>\r\n                    </div>\r\n                )}\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n\r\n    const getMappingName = (rec) => {\r\n        var username = rec.split(\"=\")[0].replace(\"&\", \"\");\r\n        var k = kontrolorList.find(x => x.userName == username);\r\n        if (k == null) {\r\n            return username + \" kullanıcısı bulunamadı !\";\r\n        }\r\n        var d = denetimList.find(x => x.id == rec.split(\"=\")[1]);\r\n        return k.name + \" \" + k.family + \"(\" + (d == null ? \"\" : d.name) + \")  \"\r\n\r\n    }\r\n\r\n    const gnerateHavaleMappingNames = (rec) => {\r\n        if (denetimList.length > 0 && kontrolorList.length > 0 && isEmpty(rec.mapping) == false) {\r\n            var mapping = rec.mapping.split(\",\");\r\n            var ret = mapping.map(x => getMappingName(x));\r\n            var sire = -1;\r\n            for (var i = 0; i < ret.length; i++) {\r\n                if (mapping[i].includes(\"&\") == false)\r\n                    sire++;\r\n                ret[i] = sire + \": \" + ret[i]\r\n\r\n            }\r\n            return ret.join(\" , \")\r\n\r\n        }\r\n        return \"\";\r\n    }\r\n\r\n\r\n    const mappingToString = () => {\r\n        var s = mapping.map((x, idx) => {\r\n            var amp = \"\";\r\n            if (idx > 0 && mapping[idx - 1].sira == x.sira) amp = \"&\"\r\n            return amp + x.userName + \"=\" + x.isadimi\r\n        })\r\n        return s.join(\",\")\r\n    }\r\n    const stringToMapping = (str) => {\r\n        var arr = str.split(\",\");\r\n        var s = arr.map(x => ({ \"userName\": x.split(\"=\")[0], \"isadimi\": x.split(\"=\")[1], sira: 0 }))\r\n        var sira = -1;\r\n        s.forEach(x => {\r\n            if (x.userName.startsWith(\"&\")) {\r\n                x.userName = x.userName.substr(1);\r\n                x.sira = sira;\r\n            }\r\n            else {\r\n                sira++;\r\n                x.sira = sira;\r\n\r\n            }\r\n        })\r\n        return s;\r\n    }\r\n    const onSelect = (selectedList) => {\r\n\r\n        var b = basvuruTipleri.filter(x => selectedList.includes(x.name)).map(x => x.id);\r\n        var i = isAdimlari.filter(x => b.includes(x.basvuruTipi)).map(x => x.isAdimi)\r\n        setselectableIsAdimlari(denetimList.filter(x => i.includes(x.id)))\r\n\r\n        setPostData({\r\n            ...postdata, ...{\r\n                basvuruTipi: selectedList.length == 0 ? null : selectedList.join()\r\n            }\r\n        })\r\n    }\r\n\r\n    return (\r\n        <div className=\"p-2 rounded-3\" style={{ \"background-color\": \"#EDEDF7\", \"min-height\": \"100vh\" }}>\r\n            <div className=\"row mt-1 p-3 d-flex flex-wrap pe-4\" key={postdata.sablonName}>\r\n                <div className=\"col-12 col-md-6 d-flex flex-column\">\r\n                    <div className=\" bg-white rounded-3\" >\r\n                        <div className=\"p-3 fw-bold border-bottom mb-3\" >\r\n                            Yeni Havale Şablonu Oluştur\r\n                        </div>\r\n                        <div className=\"bg-light m-4  p-3 rounded-3 textvmuted fw-bold align-middle\"  >\r\n                            <span className=\"fa fa-info pe-3\" style={{ color: \"lightblue\", fontSize: \"26px\" }} ></span>\r\n                            Bu alanda, Yeni Havale Şablonları oluşturabilirsiniz.\r\n                        </div>\r\n\r\n\r\n                        {isEmpty(postdata.sablonName) != true && < div className=\"row ms-2 me-2   mb-4 pb-4 border-bottom\">\r\n                            <div className=\"col-12 align-middle   text-center \" >\r\n                                <span className=\"text-success fw-bold\"> {postdata.sablonName} </span> şablonunu düzenliyorsunuz (Id: {postdata.id})\r\n                                <button onClick={() => {\r\n                                    setPostData({})\r\n                                }} className=\"ms-2 btn btn-sm btn-secondary text-decoration-none\">Vazgeç</button>\r\n                            </div>\r\n                        </div>}\r\n\r\n\r\n                        <div className=\"m-4   pt-1\">\r\n                            Şablon Adı <span className=\"text-danger\">*</span>\r\n                            <input type=\"text\" className=\"form-control form-control-sm \" id=\"sablonName\" placeholder=\"\" name=\"sablonName\" defaultValue={postdata.sablonName} />\r\n                            <span className=\"textvmuted small\">Oluşturacağınız şablona bir isim veriniz</span>\r\n                        </div>\r\n\r\n                        <div className=\"m-4  \">\r\n                            Başvuru Tipi <span className=\"text-danger\">*</span>\r\n                            {basvuruTipi == null ?\r\n                                <> <Multiselect className=\"p-0 ps-1 form-control-sm bg-white\"\r\n                                    options={basvuruTipleri.map(x => x.name)}\r\n                                    emptyRecordMsg=\"Başka Kayıt Yok\"\r\n                                    displayValue=\"name\"\r\n                                    isObject={false}\r\n                                    ref={multiselectRefNew}\r\n                                    selectedValues={isEmpty(postdata.basvuruTipi) == false ? postdata.basvuruTipi.split(',') : []}\r\n                                    onSelect={(selectedList, removedItem) => {\r\n                                        onSelect(selectedList)\r\n                                    }} // Function will trigger on select event\r\n                                    onRemove={(selectedList, removedItem) => {\r\n                                        onSelect(selectedList)\r\n                                    }} // Function will trigger on remove event\r\n                                /> <div className=\"textvmuted small\">Şablonun hangi başvuru tiplerinde görüntüleneceğini seçin</div></>\r\n                                : <div>{postdata.basvuruTipi}</div>\r\n                            }\r\n\r\n                        </div>\r\n\r\n                        <div className=\"row ms-3 mt-1\">\r\n                            <div className=\"col-12 col-md-5 pe-0\">\r\n                                İş Adımları <span className=\"text-danger\">*</span>\r\n                                <select className=\"form-select form-select-sm \" id=\"denetim\" name=\"denetim\" placeholder=\"Denetim\" onChange={(e) => {\r\n                                    setKontrolorListForSelectTask(kontrolorList.filter(x => x.role == e.target.value))\r\n                                }\r\n                                }>\r\n                                    <option value={-1}></option>\r\n                                    {selectableIsAdimlari.map(x => <option value={x.id}>{x.name} </option>)}\r\n                                </select>\r\n                            </div>\r\n\r\n                            <div className=\"col-12 col-md-5 pe-0\">\r\n                                Kontrolörler <span className=\"text-danger\">*</span>\r\n                                <select className=\"form-select form-select-sm\" id=\"kontolor\" name=\"kontolor\" placeholder=\"Denetim\">\r\n                                    <option value={-1}></option>\r\n                                    {kontrolorListForSelectTask.map(x => <option value={x.userName}>{x.name + \" \" + x.family} </option>)}\r\n                                </select>\r\n                            </div>\r\n                            {/*<div className=\"col-6 col-md-2\">*/}\r\n                            {/*    <br />*/}\r\n                            {/*    <input type=\"checkbox\" className=\"form-check-input\" id=\"parallel\" name=\"parallel\" disabled={document.getElementById(\"mapping\") != null && document.getElementById(\"mapping\").value.length == 0} /> Paralel*/}\r\n\r\n                            {/*</div>*/}\r\n                            <div className=\"col-6 col-md-2\">\r\n                                <br />\r\n                                <button onClick={Add} className=\"btn btn-sm btn-primary text-decoration-none \">Ekle</button>\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"m-4 mt-3\" key={postdata}>\r\n                            {showTable(postdata)}\r\n                        </div>\r\n\r\n                        <div className=\"m-4 mt-1 mb-1\">\r\n                            <span className=\"textvmuted small\">{mappingToString()}</span>\r\n\r\n                        </div>\r\n\r\n                        <div className=\"row mt-2 mb-2\">\r\n                            <div className=\"col-12 text-center\">\r\n                                <button onClick={SaveSablon} className=\"btn btn-sm btn-primary text-decoration-none \">Şablonu Kaydet</button>\r\n                                <button onClick={Reset} className=\"btn btn-sm btn-primary text-decoration-none ms-1\">Sıfırla</button>\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n                    </div>\r\n                </div>\r\n                {/*----------------------------------------------------------------------------------------------------*/}\r\n                <div className=\"col-12 col-md-6 d-flex flex-column bg-white rounded-3\">\r\n                    <div className=\" \" >\r\n                        <div className=\"p-3 fw-bold border-bottom\" >\r\n                            Oluşturulan Şablonlar\r\n                        </div>\r\n                        <div className=\"bg-light m-3  p-3 mb-2 rounded-3 textvmuted fw-bold align-middle\"  >\r\n                            <span className=\"fa fa-info pe-3\" style={{ color: \"lightblue\", fontSize: \"26px\" }} ></span>\r\n                            Oluşturduğunuz havale şablonları silebilir veya özelliklerini değiştirebilirsiniz. Şablon isminin üzerine tıkladıktan sonra “Yeni Şablon Oluşturma” alanından özelliklerini düzenleyebilirsiniz.                       </div>\r\n                        <div className=\"\">\r\n                            {listData != null ? renderTable(listData) : \"\"}\r\n                        </div>\r\n\r\n                    </div>\r\n                </div>\r\n                {/*----------------------------------------------------------------------------------------------------*/}\r\n            </div >\r\n        </div >\r\n\r\n\r\n\r\n    );\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Application from \"./Application.js\"\r\nimport { ajaxFail, removeTurkcLow, calcBusinessDays } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\n\r\nexport default function IadeListesi(props) {\r\n    const surebg = [\"#c9f7f5\", \"#e1f0ff\", \"#fff4de\", \"#ffe2e5\"]\r\n    const suretxt = [\"text-info\", \"text-primary\", \"text-warning\", \"text-danger\"]\r\n    const [applist, setApplist] = useState(null);\r\n    const [denetimlist, setDenetimlist] = useState([]);\r\n    var sortField = null;\r\n    const me = <IadeListesi changeComponent={props.changeComponent} />\r\n    useEffect(() => {\r\n        fetchlist();\r\n\r\n    }, [])\r\n\r\n    const myCompare = (a, b) => {\r\n        if (a[sortField] < b[sortField]) {\r\n            return -1;\r\n        }\r\n        if (a[sortField] > b[sortField]) {\r\n            return 1;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n    \r\n    const fetchlist = (denetimlist) => {\r\n        fetch(\"getiadelistesi\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            var refreshButton = document.getElementById(\"refreshButton\");\r\n            if (refreshButton != null && refreshButton.classList.contains(\"fa-refresh\") == false) {\r\n                refreshButton.classList.remove(\"spinner-grow\", \"spinner-grow-sm\")\r\n                refreshButton.classList.add(\"fa\", \"fa-refresh\")\r\n            }\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n\r\n                response.json().then(async applist => {\r\n                    setApplist(applist);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getapp = (id) => {\r\n        fetch(\"getapp\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    props.changeComponent(<Application appData={data} changeComponent={props.changeComponent} backButton={me} />)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const filterTable = (event) => {\r\n        const target = event.target;\r\n        const value = target.value.toLowerCase();\r\n        $(\"#myTable tr\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n\r\n            for (let index = 0; index < keywords.length; ++index)\r\n                if (removeTurkcLow($(this).text()).indexOf(removeTurkcLow(keywords[index])) == -1)\r\n                    return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n        var temp = [...applist]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setApplist(temp);\r\n    }\r\n\r\n\r\n    if (applist == null)\r\n        return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n    if (applist.length == 0)\r\n        return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n\r\n\r\n    return (<div>\r\n        <div>\r\n            <div className=\"row\">\r\n                <div className=\"col-12 pb-2\">\r\n                    <h5 className=\"text-primary\">İade Edilen Başvurular</h5 >\r\n                </div>\r\n            </div>\r\n            <div className=\"row \" >\r\n                <div className=\"col-12 col-md-3\"></div>\r\n                <div className=\"col-12 col-md-6\">\r\n                    <input className=\"form-control form-control-sm\" id=\"myInput\" type=\"text\" placeholder=\"Arama\" onKeyUp={filterTable} />\r\n\r\n                </div>\r\n\r\n\r\n            </div>\r\n            <div className=\"row \" id=\"havalepanel\">\r\n\r\n\r\n                <div className=\"col-12\">\r\n                    <table className='table  table-sm' aria-labelledby=\"tabelLabel\">\r\n                        <thead>\r\n                            <tr >\r\n\r\n\r\n                                <th className='text-start'>\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"appID\")}>  Başvuru No </button>\r\n                                </th>\r\n                                <th className='text-start'>\r\n                                    Taşınmaz Sahibi\r\n                                </th>\r\n                                <th className='text-start'>\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"basvuruYapan\")}>  Başvuru Yapan </button>\r\n\r\n                                </th>\r\n                                <th className='text-start'>\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"basvuruTipi\")}>  Başvuru Tipi </button>\r\n\r\n                                </th>\r\n                                <th className='text-start'>\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"mevki\")}> Mevki </button>\r\n\r\n                                </th>\r\n                                <th className='text-start'>\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"mahalle\")}>  Mahalle </button>\r\n\r\n                                </th>\r\n                                <th className='text-start'>\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"ada\")}>   Ada Parsel </button>\r\n\r\n                                </th>\r\n                                <th className='text-start'>\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"basvuruTarihi\")}>  Başvuru Tarihi </button>\r\n\r\n                                </th>\r\n                                {/*<th className='text-start'>*/}\r\n                                {/*    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"iadeTarihi\")}>  Iade Tarihi </button>*/}\r\n                                {/*</th>*/}\r\n                                <th className='text-start'>\r\n                                   {/* <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"duzeltmeSayi\")}>  Duzeltme Sayısı </button>*/}\r\n                                </th>\r\n                                <th className='text-start'></th>\r\n\r\n                            </tr>\r\n                        </thead>\r\n                        <tbody id=\"myTable \" className=\"text-center\">\r\n                            {applist.map((rec, idx) => <tr>\r\n                                <td> {rec.id}  </td>\r\n                                <td>\r\n                                    {rec.arsaSahibi}\r\n                                </td>\r\n                                <td> \r\n                                    {rec.basvuruYapan}\r\n                                </td>\r\n                                <td> {rec.basvuruTipi}\r\n                                </td>\r\n                                <td> {rec.mevki}  </td>\r\n                                <td>  {rec.mahalle} </td>\r\n                                <td> {rec.ada}</td>\r\n                                <td> {rec.basvuruTarihi}</td>\r\n                               {/* <td> {rec.iadeTarihi}</td>*/}\r\n                                <td>\r\n                                    <a href=\"#\" onClick={() => getapp(rec.id)} className=\" text-decoration-none \"><i className=\"fa fa-edit align-middle\" style={{ \"font-size\": \"24px\" }}></i></a>\r\n\r\n                                </td></tr>\r\n                            )}\r\n\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div >\r\n        </div >\r\n    </div>\r\n    );\r\n\r\n\r\n}\r\n\r\n\r\n\r\n","import React, { Component } from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport SideBar from '../Header/SideBar.js';\r\nimport SideBarComponent from '../Header/SideBarComponent.js';\r\nimport Application from \"./Application.js\"\r\n\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default class SharedApplicationList extends Component {\r\n    sortField = \"\";\r\n    constructor(props) {\r\n        super(props);\r\n        this.state = {\r\n            status: \"init\", applist: [], colnames: [\"id\", \"basvuruTarihi\", \"basvuruTipi\", \"ada\", \"mahalle\", \"mevki\", \"basvuruYapan\"]\r\n        };\r\n        this.getApplicationList = this.getApplicationList.bind(this);\r\n        this.refreshList = this.refreshList.bind(this)\r\n       \r\n        this.filterTable = this.filterTable.bind(this)\r\n        this.handleSablonChange = this.handleSablonChange.bind(this)\r\n        this.renderToList = this.renderToList.bind(this)\r\n        this.changeComponent = props.changeComponent;\r\n        this.filter = null;\r\n        this.mysablons = null;\r\n        this.view = props.view;\r\n    }\r\n\r\n    refreshList(data) {\r\n        this.setState({\r\n            status: \"init\", applist: data\r\n        })\r\n    }\r\n    componentDidMount() {\r\n        this.getApplicationList();\r\n    }\r\n\r\n    myCompare = (a, b) => {\r\n        if (a[this.sortField] < b[this.sortField]) {\r\n            return -1;\r\n        }\r\n        if (a[this.sortField] > b[this.sortField]) {\r\n            return 1;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n    myCompareBasvuruTipi = (a, b) => {\r\n        var s1 = a[this.sortField];\r\n        var s2 = b[this.sortField];\r\n        if (s1 == null) return -1;\r\n        if (s2 == null) return 1;\r\n\r\n        var sa = s1.replaceAll('\"name\":', \"\").replaceAll(']', \"\").replaceAll('[', \"\").replaceAll('{', \"\").replaceAll('}', \"\").replaceAll('\"', \"\");\r\n        var sb = s2.replaceAll('\"name\":', \"\").replaceAll(']', \"\").replaceAll('[', \"\").replaceAll('{', \"\").replaceAll('}', \"\").replaceAll('\"', \"\");\r\n\r\n        if (sa < sb) {\r\n            return -1;\r\n        }\r\n        if (sa > sb) {\r\n            return 1;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n\r\n    sortList = (fildname) => {\r\n        this.sortField = fildname;\r\n        var temp = this.state.applist;\r\n        if (fildname.toUpperCase() == \"BASVURUTIPI\")\r\n            temp.sort(this.myCompareBasvuruTipi);\r\n        else\r\n            temp.sort(this.myCompare);\r\n        this.setState({ applist: temp, status: \"done\" });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    showApplication(id) {\r\n        this.setState({ applist: this.state.applist, status: \"appdetails\", appid: id });\r\n    }\r\n\r\n\r\n    getApplicationList() {\r\n        fetch(\"getmysharedapp\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            var refreshButton = document.getElementById(\"refreshButton\");\r\n            if (refreshButton != null && refreshButton.classList.contains(\"fa-refresh\") == false) {\r\n                refreshButton.classList.remove(\"spinner-grow\", \"spinner-grow-sm\")\r\n                refreshButton.classList.add(\"fa\", \"fa-refresh\")\r\n            }\r\n            if (!response.ok) {\r\n                const error = response.statusText;\r\n                console.log(error);\r\n                this.setState({ status: response.statusText })\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    this.setState({ applist: data, status: \"done\" });\r\n\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n    showApplication(id) {\r\n        this.setState({ applist: this.state.applist, status: \"appdetails\", appid: id });\r\n    }\r\n\r\n    filterTable(event) {\r\n        const target = event.target;\r\n        const value = target.value.toLowerCase();\r\n        $(\"#myTable tr\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n            for (let index = 0; index < keywords.length; ++index)\r\n                if ($(this).text().toLowerCase().indexOf(keywords[index]) == -1)\r\n                    return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n    passFilter(rec, filter) {\r\n        if (filter == null || filter.length == 0) return true;\r\n\r\n        var conds = filter.split(\",\");\r\n        if (conds == null) return true;\r\n        for (var i = 0; i < conds.length; i++) {\r\n            if (conds[i].includes('>')) {\r\n                var c = conds[i].split(\">\");\r\n                if (rec[c[0]] != null && !(parseInt(rec[c[0]]) > parseInt(c[1]))) return false;\r\n            }\r\n            if (conds[i].includes('<')) {\r\n                var c = conds[i].split(\"<\");\r\n                if (rec[c[0]] != null && !(parseInt(rec[c[0]]) < parseInt(c[1]))) return false;\r\n            }\r\n            if (conds[i].includes('=')) {\r\n                var c = conds[i].split(\"=\");\r\n                if (rec[c[0]] != null && !(rec[c[0]] == c[1]))\r\n                    return false;\r\n            }\r\n\r\n        }\r\n\r\n        return true;\r\n    }\r\n\r\n\r\n    filterColumn = (event) => {\r\n        const target = event.target;\r\n        const value = target.value.toLowerCase();\r\n        var cl = this.state.colnames;\r\n        $(\"#myTable tr\").filter(function () {\r\n            for (var c = 0; c < cl.length; c++) {\r\n                if (document.getElementById(cl[c]).value != null && document.getElementById(cl[c]).value.length > 0)\r\n                    if ($(this).children().eq(c).text().toLowerCase().indexOf(document.getElementById(cl[c]).value) == -1)\r\n                        return $(this).toggle(false);\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n\r\n\r\n    handleSablonChange() {\r\n        var sab = document.getElementById(\"sablonSelect\").value;\r\n        var data = this.mysablons[sab];\r\n        if (data.filter != null)\r\n            this.filter = data.filter;\r\n        if (data.colNames != null && data.colNames.length > 0) {\r\n            var d = data.colNames.replaceAll('\"', \"\");\r\n            if (d.length > 0)\r\n                this.setState({ ...this.state, colnames: d.split(\",\") });\r\n        }\r\n    }\r\n\r\n    renderToList(tabledata) {\r\n        var mytable =\r\n            <div className=\"mt-1\">\r\n                <div className=\"mt-1 row bg-light rounded\">\r\n                    <div className=\"col-3 text-end pt-2\">\r\n                    </div>\r\n                    <div className=\"col-6  justify-content-center p-2\">\r\n                        <input className=\"form-control form-control-sm \" id=\"myInput\" type=\"text\" placeholder=\"Arama...\" onKeyUp={this.filterTable} />\r\n                    </div>\r\n\r\n                    <div className=\"col-3 text-end pt-2\">\r\n                        <a onClick={this.getApplicationList} href=\"#\" className=\"text-primary\"> <i className=\"fa fa-refresh\" id=\"refreshButton\"></i></a>\r\n                    </div>\r\n                </div>\r\n                <table className='table mt-3 table-striped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead>\r\n                        <tr>\r\n                            {this.state.colnames.map(c =>\r\n                                <th> <div><button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => this.sortList(c)}> {c.toUpperCase()}</button></div>\r\n                                    <div>\r\n                                        <input type=\"text\" className=\"form-control form-control-sm\" id={c} placeholder={c} name={c} onChange={this.filterColumn} />\r\n                                    </div></th>\r\n                            )}\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody id=\"myTable\">\r\n                        {tabledata.map(apprec =>\r\n                            this.passFilter(apprec, this.filter) == false ? \"\" :\r\n                                <tr key={apprec.id}>\r\n                                    {this.state.colnames.map(c => {\r\n                                        if (c == \"basvuruTipi\" && apprec[c] != null) {\r\n                                            return <td>{apprec[c].replaceAll('\"name\":', \"\").replaceAll(']', \"\").replaceAll('[', \"\").replaceAll('{', \"\").replaceAll('}', \"\").replaceAll('\"', \"\")}</td>\r\n                                        }\r\n                                        if (apprec[c] != null)\r\n                                            return <td name={c}>{apprec[c]}</td>\r\n\r\n                                        var appDData = JSON.parse(apprec.appData);\r\n                                        if (appDData!=null && appDData[c] != null)\r\n                                            return <td name={c}>{appDData[c]}</td>\r\n                                        return <td></td>\r\n                                    })}\r\n                                    <td>\r\n                                        {apprec.removed != true && <a href=\"#\" onClick={() => { this.changeComponent(<Application key={apprec.id} appData={apprec} changeComponent={this.changeComponent} backButton={<SharedApplicationList changeComponent={this.changeComponent} />} />) }} className=\" text-decoration-none \"><i className=\"fa fa-edit align-middle\" style={{ \"font-size\": \"24px\" }}></i></a>}\r\n                                    </td>\r\n                                </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n    render() {\r\n        var tabledata =  <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n        if (this.state.status != \"init\")\r\n            tabledata =           <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        if (this.state.applist.length > 0) {\r\n            if (this.view == \"card\")\r\n                tabledata = this.renderToCards(this.state.applist);\r\n            else\r\n                tabledata = this.renderToList(this.state.applist);\r\n        }\r\n\r\n\r\n\r\n        return <div>\r\n\r\n            <div  >\r\n                <div className=\"  align-items-center justify-content-center  p-1\" >\r\n                    {tabledata}\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    }\r\n\r\n};\r\n","import React, { Component, useEffect, useState } from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport { Navigate } from 'react-router-dom';\r\nimport $ from 'jquery';\r\nimport Register from \"./Register.js\";\r\nimport { useGlobalState, logout, removeTurkcLow, showErrorMessage, isEmpty, sendget, setHtmlTag } from '../GlobalState.js';\r\nimport SideBarComponent from '../Header/SideBarComponent.js';\r\nimport UserWorkLoad from './UserWorkLoad.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport UserDetails from './UserDetails.js';\r\n\r\n\r\nexport default function UserList(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userlist, setUserlist] = useState([]);\r\n    const [denetimPermList, setDenetimPermList] = useState([]);\r\n    const [sortDirection, setSortDirection] = useState({});\r\n    const [roleList, setroleList] = useState([]);\r\n    const [showKaraliste, setShowKaraListe] = useState(false);\r\n\r\n    useEffect(() => {\r\n        fetchRoles()\r\n    }, [])\r\n\r\n\r\n    const filterTable = (event) => {\r\n        const target = event.target;\r\n        const value = target.value.toLowerCase();\r\n        $(\"#myTable tr\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n            for (let index = 0; index < keywords.length; ++index)\r\n                if (removeTurkcLow($(this).text()).indexOf(removeTurkcLow(keywords[index])) == -1)\r\n                    return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n        setHtmlTag(\"usercount\",$(\"#myTable tr:visible\").length + \" kullanıcı\")\r\n       \r\n    }\r\n\r\n    var sortField = \"\";\r\n\r\n    const myCompare = (a, b) => {\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n        var ret = 1;\r\n        if (sortDirection[sortField] == \"ZA\")\r\n            ret = -1;\r\n\r\n        if (av == null && bv != null)\r\n            return -1 * ret;\r\n        if (av != null && bv == null)\r\n            return 1 * ret;\r\n        if (av == null && bv == null)\r\n            return 0;\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * ret\r\n\r\n        if (av < bv) {\r\n            return -1 * ret;\r\n        }\r\n        if (av > bv) {\r\n            return 1 * ret;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == \"ZA\") {\r\n            sortDirection[sortField] = \"AZ\";\r\n        }\r\n        else {\r\n            sortDirection[sortField] = \"ZA\";\r\n        }\r\n\r\n        var temp = [...userlist]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setUserlist(temp);\r\n    }\r\n\r\n\r\n\r\n    const fetchRoles = () => {\r\n        fetch(\"getrolelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(response.statusText)\r\n                })\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setroleList(value);\r\n                    getdenetimperms()\r\n                })\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const getdenetimperms = () => {\r\n        fetch(\"getdenetimperms\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(\"\")\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(response.statusText)\r\n                })\r\n            }\r\n\r\n            else {\r\n                response.json().then(value => {\r\n                    setDenetimPermList(value);\r\n                    getUserList();\r\n                })\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n    const deleteUser = (username) => {\r\n        if (window.confirm(\"Kullanıcıyı Silmek Beklenmeyen Hatalara Sebep Olabilir. Silmek Istediğinzden Emin misiniz?\") == false)\r\n            return;\r\n        fetch(\"deleteuser\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(username)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                if (response.status == 401) {\r\n                    logout();\r\n                }\r\n                else showErrorMessage(response.statusText);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setUserlist(data);\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const getUserList = () => {\r\n        sendget(\"userlist\", \"loadingSpinner\", (response) => {\r\n            response.json().then(async data => {\r\n                setUserlist(data);\r\n            });\r\n        })\r\n\r\n    }\r\n\r\n\r\n    if (userlist != null)\r\n        for (var u of userlist) {\r\n            u.yetkiler = denetimPermList.filter(r => r.creatorUserName == u.userName).map(r => r.name).join();\r\n        }\r\n\r\n\r\n\r\n    const setKaraListeDurum = (e) => {\r\n        var c = e.target.checked;\r\n        setShowKaraListe(c);\r\n\r\n    }\r\n\r\n    const getRoleName = (rec) => {\r\n        if (rec.role == null)\r\n            return \"\";\r\n        var role = roleList.find(r => r.id == rec.role);\r\n        if (role != null)\r\n            return role.name;\r\n    }\r\n\r\n    const filterColumn = (event) => {\r\n        const target = event.target;\r\n        var cl = [\"userName\", \"name\", \"family\", \"telefon\", \"tc\", \"email\", \"id\", \"role\", \"yetkiler\", \"edveletConfirmed\"]\r\n        $(\"#myTable tr\").filter(function () {\r\n            for (var c = 0; c < cl.length; c++) {\r\n                var value = document.getElementById(cl[c]).value\r\n                if (isEmpty(value) || value == \"-\")\r\n                    continue;\r\n                var res = true;\r\n                if (value.startsWith(\"-\")) {\r\n                    res = false;\r\n                    value = value.substr(1);\r\n                }\r\n                if (res == true) {\r\n                    if (removeTurkcLow($(this).children().eq(c).text()).indexOf(removeTurkcLow(value)) == -1)\r\n                        return $(this).toggle(false);\r\n                }\r\n                else {\r\n                    if (removeTurkcLow($(this).children().eq(c).text()).indexOf(removeTurkcLow(value)) != -1)\r\n                        return $(this).toggle(false);\r\n                }\r\n\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n        setHtmlTag((\"usercount\", $(\"#myTable tr:visible\").length + \" kullanıcı\"));\r\n        \r\n\r\n    }\r\n\r\n\r\n    const renderAppTable = (data) => {\r\n        var dataset = data.filter(x => showKaraliste == false || x.karaliste == true);\r\n        var mytable =\r\n            <div>\r\n                \r\n                {data.length > 0 &&\r\n                    <div className=\"table-responsive mainpagescroll\" style={{ \"height\": \"82vh\" }}>\r\n                        <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                            <thead className=\"text-center\" style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light\">\r\n                                <tr>\r\n\r\n                                    <th>\r\n                                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"userName\")}>K.Adı </button>\r\n                                        <div>\r\n                                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"userName\" name=\"userName\" onChange={filterColumn} />\r\n                                        </div>\r\n                                    </th>\r\n                                    <th>\r\n                                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"name\")}>Adı</button>\r\n                                        <div>\r\n                                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" name=\"name\" onChange={filterColumn} />\r\n                                        </div>\r\n                                    </th>\r\n                                    <th>\r\n                                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"family\")}>Soyadı</button>\r\n                                        <div>\r\n                                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"family\" name=\"family\" onChange={filterColumn} />\r\n                                        </div>\r\n                                    </th>\r\n                                    <th>\r\n                                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"tel\")}>Telefon</button>\r\n                                        <div>\r\n                                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"telefon\" name=\"telefon\" onChange={filterColumn} />\r\n                                        </div>\r\n                                    </th>\r\n                                    <th>\r\n                                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"tc\")}>TC</button>\r\n                                        <div>\r\n                                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"tc\" name=\"tc\" onChange={filterColumn} />\r\n                                        </div>\r\n                                    </th>\r\n                                    <th>\r\n                                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"email\")}>Email</button>\r\n                                        <div>\r\n                                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"email\" name=\"email\" onChange={filterColumn} />\r\n                                        </div>\r\n                                    </th>\r\n                                    <th>\r\n                                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"id\")}>Kodu</button>\r\n                                        <div>\r\n                                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"id\" name=\"id\" onChange={filterColumn} />\r\n                                        </div>\r\n                                    </th>\r\n                                    <th>\r\n                                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"role\")}>Rol</button>\r\n                                        <div>\r\n                                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"role\" name=\"role\" onChange={filterColumn} />\r\n                                        </div>\r\n                                    </th>\r\n                                    <th>\r\n                                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"yetkiler\")}>Yetkiler</button>\r\n                                        <div>\r\n                                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"yetkiler\" name=\"yetkiler\" onChange={filterColumn} />\r\n                                        </div>\r\n                                    </th>\r\n                                    <th>\r\n                                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"regDate\")}>Kayıt</button>\r\n                                        <div>\r\n                                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"edveletConfirmed\" name=\"edveletConfirmed\" onChange={filterColumn} />\r\n                                        </div>\r\n                                    </th>\r\n\r\n                                    <th id=\"usercount\"> {dataset.length} kullanıcı</th>\r\n                                </tr>\r\n                            </thead>\r\n                            <tbody id=\"myTable\">\r\n                                {dataset.map(apprec =>\r\n                                    <tr >\r\n                                        {/*<td width=\"32px\"><img className=\"rounded-circle\" style={{ width: \"32px\", height: \"32px\" }} src={\"/getuserpic?user=\" + apprec.userName} /></td>*/}\r\n                                        <td>{apprec.userName}</td>\r\n                                        <td>{apprec.name}</td>\r\n                                        <td>{apprec.family}</td>\r\n                                        <td>{apprec.tel}</td>\r\n                                        <td>{apprec.tc}</td>\r\n                                        <td>{apprec.email}</td>\r\n                                        <td>{apprec.id}</td>\r\n                                        <td>{getRoleName(apprec)}</td>\r\n                                        <td>{apprec.yetkiler}</td>\r\n                                        <td>{apprec.regDate}</td>\r\n                                        <td width=\"64px\">\r\n                                            <a href=\"#\" onClick={() => { props.changeComponent(<UserDetails rec={apprec} changeComponent={props.changeComponent} backButton={<UserList changeComponent={props.changeComponent} />} />) }} className=\" text-decoration-none material-icons align-middle\" style={{ \"font-size\": \"20px\" }}>edit</a>\r\n                                            &nbsp;&nbsp;\r\n                                            {role.indexOf(UserPermConstants.Kullanici_Silme) > -1 ? <a href=\"/#\" onClick={() => { deleteUser(apprec.userName) }} className=\"text-decoration-none material-icons align-middle\" style={{ \"font-size\": \"20px\" }}>delete</a> : \"\"}\r\n                                        </td>\r\n                                    </tr>\r\n                                )}\r\n                            </tbody>\r\n                        </table>\r\n                    </div>}\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    if (role.indexOf(UserPermConstants.Kullanici_Listesini_Gorme_Profil_Bilgilerini) === -1) {\r\n        return <Navigate to='/' />\r\n    }\r\n\r\n    var leftpanelitems = [\r\n        { name: \"Kullanıcılar\", target: <span>{renderAppTable(userlist)}</span>, icon: \"fa fa-users\" },\r\n        { name: \"İş Yuku\", target: <UserWorkLoad />, icon: \"fa fa-bar-chart\" }]\r\n\r\n    if (role.indexOf(UserPermConstants.Yeni_Kullanici_Kaydetme) > -1) {\r\n        leftpanelitems.push({ name: \"Yeni Kullanıcı\", target: <Register />, icon: \"fa fa-user-plus\" });\r\n    }\r\n\r\n\r\n\r\n    return <div >\r\n\r\n        <div  >\r\n            <div className=\"row\">\r\n                <div className=\"col-4\">\r\n                    <input class=\"form-check-input me-1\" type=\"checkbox\" onChange={setKaraListeDurum} />\r\n                    Karaliste'deki kullanıcıları göster\r\n                </div>\r\n                <div className=\"col-4\">\r\n                    <input className=\"form-control form-control-sm\" type=\"text\" placeholder=\"Arama\" onKeyUp={filterTable} />\r\n                </div>\r\n            </div>\r\n            <div className=\"w-100 mt-1 d-flex align-items-center justify-content-center\"  >\r\n                <div className=\"spinner-border spinner-border-sm\" hidden id=\"loadingSpinner\"></div>\r\n            </div>\r\n            {renderAppTable(userlist)}\r\n\r\n        </div>\r\n    </div>\r\n\r\n\r\n\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { ajaxFail, showConfirmMessage, showSuccessMessage } from '../GlobalState.js';\r\n\r\nexport default function AppGroupSetting(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState(null);\r\n    const [options, setSurecData] = useState([]);\r\n\r\n    const multiselectRef = React.createRef();\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value.trim();\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const removeRecord = (id) => {\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removeappgroup\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }));\r\n    }\r\n\r\n\r\n\r\n    const submitUpdateRecord = (rec) => {\r\n\r\n        fetch(\"updateappgroup\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Güncelleme Başarılı\")\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchList = () => {\r\n\r\n        fetch(\"getappgrouplist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchsureclist = () => {\r\n\r\n        fetch(\"sureclist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setSurecData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const Add = () => {\r\n        fetch(\"addappgroup\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                document.getElementById(\"name\").value = \"\";\r\n                fetchList();\r\n\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n\r\n        var mytable = <div className=\"rounded-3 mb-2  ps-2\">\r\n\r\n\r\n\r\n            {tabledata.map(apprec =>\r\n                < div className=\"row rounded-3 pt-2 pb-2\" key={apprec.id}>\r\n                    <div className=\"col-4\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm border-0\" name=\"name\" defaultValue={apprec.name} onChange={(e) => updateRecord(apprec, e)} />\r\n                    </div>\r\n                    <div className=\"col-6\" >\r\n                        <Multiselect className=\"p-0 ps-1 form-control-sm bg-white\"\r\n                            options={options}\r\n                            emptyRecordMsg=\"Başka Başvuru Durmu Yok\"\r\n                            ref={multiselectRef}\r\n                            isObject={true}\r\n                            onSelect={(selectedList, selectedItem) => { apprec.appState = selectedList.map(x => x.id).join() }}\r\n                            onRemove={(selectedList, selectedItem) => { apprec.appState = selectedList.map(x => x.id).join() }}\r\n                            selectedValues={apprec.appState != null ? options.filter(x=>apprec.appState.split(',').includes(x.id+\"\")==true)  : []}\r\n                            displayValue=\"name\" \r\n                        />\r\n                    </div>\r\n                    <div className=\"col-2 text-end\" >\r\n                        <button onClick={() => submitUpdateRecord(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Güncelle</button>&nbsp;\r\n                        <button onClick={() => removeRecord(apprec.id)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button>\r\n                    </div>\r\n                </div>\r\n            )}\r\n            <div className=\"row rounded-3 mb-2 pb-2\">\r\n                <div className=\"col-4\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" placeholder=\"Yeni Grup\" name=\"name\" onChange={handleInputChange} defaultValue=\"\" />\r\n                </div>\r\n                <div className=\"col-8 text-end\">  <button onClick={Add} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">Ekle</button></div>\r\n\r\n\r\n            </div>\r\n        </div>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n    \r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n        fetchsureclist();\r\n\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div className=\"bg-light \">\r\n            <h5>Başvuru Grupları</h5>\r\n            {listTable}\r\n        </div>\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Application from \"./Application.js\"\r\nimport { ajaxFail, removeTurkcLow, calcBusinessDays, isEmpty } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\n\r\nexport default function DelayedApplications(props) {\r\n    const surebg = [\"#c9f7f5\", \"#e1f0ff\", \"#fff4de\", \"#ffe2e5\"]\r\n    const suretxt = [\"text-info\", \"text-primary\", \"text-warning\", \"text-danger\"]\r\n    const [applist, setApplist] = useState(null);\r\n    const [denetimlist, setDenetimlist] = useState([]);\r\n    var sortField = null;\r\n    const me = <DelayedApplications changeComponent={props.changeComponent}/>\r\n    useEffect(() => {\r\n        fetchDenetimList();\r\n\r\n    }, [])\r\n\r\n    const myCompare = (a, b) => {\r\n        if (a[sortField] < b[sortField]) {\r\n            return -1;\r\n        }\r\n        if (a[sortField] > b[sortField]) {\r\n            return 1;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n    \r\n\r\n\r\n    const fetchDenetimList = () => {\r\n        var refreshButton = document.getElementById(\"refreshButton\");\r\n        if (refreshButton != null) {\r\n            refreshButton.classList.remove(\"fa\", \"fa-refresh\")\r\n            refreshButton.classList.add(\"spinner-grow\", \"spinner-grow-sm\")\r\n        }\r\n\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setDenetimlist(value)\r\n                    fetchlist();\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getColorIdx = (diffDays, rec) => {\r\n        var d = denetimlist.find(x => x.id == rec.denetimID);\r\n        var i = diffDays > d * 2 / 3 ? 0 : diffDays > d / 3 ? 1 : diffDays > 0 ? 2 : 3;\r\n        return i;\r\n    }\r\n\r\n    const getVerilenSure = (rec) => {\r\n\r\n        var d = denetimlist.find(x => x.id == rec.denetimID);\r\n        if (d == null) return \"\";\r\n        d = d.deadline;\r\n        if (d == null) return \"\";\r\n        return d;\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const getDenetimSure = (rec) => {\r\n\r\n        var d = denetimlist.find(x => x.id == rec.denetimID);\r\n        if (d == null || rec.deliverDate==null) return 0;\r\n\r\n\r\n        d = d.deadline;\r\n        if (d == null) return 0;\r\n\r\n        //completed is the deadline refrence\r\n\r\n         var havaleDate = rec.mappingDate;\r\n        var deliverdate = rec.deliverDate.split(\" \")[0].replaceAll(\".\", \"-\") + \" 12:00:00\";\r\n        var h = new Date(deliverdate);\r\n        havaleDate = new Date(havaleDate.split(\" \")[0].replaceAll(\".\", \"-\") + \" 12:00:00\");\r\n        if (h < havaleDate)\r\n            h = havaleDate;\r\n        //duzeltmeIste is sonDuzeltmeTarihi\r\n        if (isEmpty(rec.duzeltmeIste) == false && rec.duzeltmeIste.includes(\" \")) {\r\n            var sonduzeltme = new Date(rec.duzeltmeIste.split(\" \")[0].replaceAll(\".\", \"-\") + \" 12:00:00\");\r\n            if (h < sonduzeltme)\r\n                h = sonduzeltme;\r\n        }\r\n\r\n\r\n\r\n        var diffDays = d - calcBusinessDays(new Date(Date.now()), h)\r\n        return diffDays\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n    \r\n\r\n    const fetchlist = (e) => {\r\n        fetch(\"delayedcontrollist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n\r\n            var refreshButton = document.getElementById(\"refreshButton\");\r\n            if (refreshButton != null && refreshButton.classList.contains(\"fa-refresh\") == false) {\r\n                refreshButton.classList.remove(\"spinner-grow\", \"spinner-grow-sm\")\r\n                refreshButton.classList.add(\"fa\", \"fa-refresh\")\r\n            }\r\n\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setApplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getapp = (id) => {\r\n        fetch(\"getapp\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    props.changeComponent(<Application appData={data} changeComponent={props.changeComponent} backButton={me} />)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const filterTable = (event) => {\r\n        const target = event.target;\r\n        const value = target.value.toLowerCase();\r\n        $(\"#myTable tr\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n\r\n            for (let index = 0; index < keywords.length; ++index)\r\n                if (removeTurkcLow($(this).text()).indexOf(removeTurkcLow(keywords[index])) == -1)\r\n                    return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n        var temp = [...applist]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setApplist(temp);\r\n    }\r\n\r\n\r\n    if (applist == null)\r\n        return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n    if (applist.length == 0)\r\n        return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n    applist.forEach(x => x.gecikme = getDenetimSure(x));\r\n    applist.forEach(x => x.verilesure = getVerilenSure(x));\r\n\r\n    return (<div>\r\n        <div>\r\n            <div className=\"row\">\r\n                <div className=\"col-12 pb-2\">\r\n                    <h5 className=\"text-primary\">Geciken Başvurular</h5 >\r\n                </div>\r\n            </div>\r\n            <div className=\"row \" >\r\n                <div className=\"col-12 col-md-3\"></div>\r\n                <div className=\"col-12 col-md-6\">\r\n                    <input className=\"form-control form-control-sm\" id=\"myInput\" type=\"text\" placeholder=\"Arama\" onKeyUp={filterTable} />\r\n\r\n                </div>\r\n\r\n                <div className=\"col-12 col-md-3 text-end pt-2\">\r\n                    <a onClick={fetchDenetimList} href=\"#\" className=\"text-primary\"> <i className=\"fa fa-refresh\" id=\"refreshButton\"></i></a>\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n\r\n\r\n                <div className=\"col-12\">\r\n                    <table className='table  table-sm' aria-labelledby=\"tabelLabel\">\r\n                        <thead>\r\n                            <tr >\r\n\r\n                                <th className='text-start'>\r\n                                    Sıra\r\n                                </th>\r\n                                <th className='text-start'>\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"appID\")}>  Başvuru No </button>\r\n                                </th>\r\n                                <th className='text-start'>\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"userName\")}>  Kontrolör </button>\r\n\r\n                                </th>\r\n                                <th className='text-start'>\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"denetimID\")}>  Başvuru Tipi </button>\r\n\r\n                                </th>\r\n                                <th className='text-start'>\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"verilesure\")}>  Belirlenen Süre </button>\r\n\r\n                                </th>\r\n                                <th className='text-start'>\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"mappingDate\")}>  Havale </button>\r\n\r\n                                </th>\r\n                                <th className='text-start'>\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"message\")}>   Başvuru Durumu </button>\r\n\r\n                                </th>\r\n                                <th className='text-start'>\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"completed\")}>  Sıraya Girme Tarihi </button>\r\n\r\n                                </th>\r\n                                <th className='text-start'>\r\n                                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"gecikme\")}>  Geciken Süre </button>\r\n\r\n                                </th>\r\n                                <th className='text-start'></th>\r\n\r\n                            </tr>\r\n                        </thead>\r\n                        <tbody id=\"myTable\">\r\n                            {applist.filter(x => x.gecikme<0).map((rec, idx) => <tr>\r\n                                <td> {idx + 1}</td>\r\n                                <td> {rec.appID}  </td><td>\r\n                               {/* <img class=\"rounded-circle\" style={{ width: \"32px\", height: \"32px\" }} src={\"/getuserpic?user=\" + rec.userName} /> */}{rec.userName}</td>\r\n                                <td> {denetimlist.find(x => x.id == rec.denetimID).name}</td> \r\n                                <td> {rec.verilesure}\r\n                                </td> \r\n                                <td> {rec.mappingDate}  </td>\r\n                                <td>  {rec.message} </td>\r\n                                <td> {rec.deliverDate}  </td>\r\n                                {/*<td> {rec.completed == null ? \"\" : rec.completed}</td>*/}\r\n                                <td>\r\n                                    <div className={\"ps-3 pe-3 p-2 text-center fw-bolder \" + suretxt[getColorIdx(rec.gecikme, rec)]} style={{ \"background-color\": surebg[getColorIdx(rec.gecikme, rec)], \"border-radius\": 5 }}>{rec.gecikme}</div>\r\n\r\n                                    \r\n\r\n                                </td>\r\n                                <td>\r\n                                    <a href=\"#\" onClick={() => getapp(rec.appID)} className=\" text-decoration-none \"><i className=\"fa fa-edit align-middle\" style={{ \"font-size\": \"24px\" }}></i></a>\r\n\r\n                                </td></tr>\r\n                            )}\r\n\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div >\r\n        </div >\r\n    </div>\r\n    );\r\n\r\n\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport Application from \"./Application.js\"\r\nimport $ from 'jquery';\r\nimport { ajaxFail, removeTurkcLow, showErrorMessage } from '../GlobalState.js';\r\n\r\nexport default function TakipEdilenler(props) {\r\n    const [takiplist, setTakiplist] = useState(null);\r\n\r\n    useEffect(() => {\r\n        fetchTakipList();\r\n\r\n    }, [])\r\n\r\n    const fetchTakipList = (e) => {\r\n\r\n        var refreshButton = document.getElementById(\"refreshButton\");\r\n        if (refreshButton != null) {\r\n            refreshButton.classList.remove(\"fa\", \"fa-refresh\")\r\n            refreshButton.classList.add(\"spinner-grow\", \"spinner-grow-sm\")\r\n        }\r\n\r\n        fetch(\"takipedilenbasvurular\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n\r\n            var refreshButton = document.getElementById(\"refreshButton\");\r\n            if (refreshButton != null && refreshButton.classList.contains(\"fa-refresh\") == false) {\r\n                refreshButton.classList.remove(\"spinner-grow\", \"spinner-grow-sm\")\r\n                refreshButton.classList.add(\"fa\", \"fa-refresh\")\r\n            }\r\n\r\n            if (!response.ok) {\r\n                response.text().then(async data => {\r\n                    showErrorMessage(data);\r\n                    setTakiplist([])\r\n                });\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setTakiplist(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const  filterTable = (event) => {\r\n        const target = event.target;\r\n        const value = target.value.toLowerCase();\r\n        $(\"#myTable tr\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n            for (let index = 0; index < keywords.length; ++index)\r\n                if (removeTurkcLow($(this).text()).indexOf(removeTurkcLow(keywords[index])) == -1)\r\n                    return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n\r\n        if (takiplist == null )\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n\r\n        if (takiplist.length == 0)\r\n            return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n        var mytable =\r\n            <div className=\"mt-1\">\r\n                <div className=\"mt-1 p-2 row\" style={{ \"background-color\": \"#fff8dd\" }}>\r\n                    <div className=\"col-12 col-md-4\">\r\n                    </div>\r\n                    <div className=\"col-12 col-md-4\">\r\n                        Arama\r\n                        <input className=\"form-control form-control-sm\" id=\"myInput\" type=\"text\" placeholder=\"\" onKeyUp={filterTable} />\r\n                    </div>\r\n                    <div className=\"col-12 col-md-4 text-end pt-2\">\r\n                        <a onClick={fetchTakipList} href=\"#\" className=\"text-primary\"> <i className=\"fa fa-refresh\" id=\"refreshButton\"></i></a>\r\n                    </div>\r\n                </div>\r\n\r\n\r\n                <div className=\"table-responsive\">\r\n                    <table className='table mt-3 table-vdstriped' aria-labelledby=\"tabelLabel\">\r\n                        <tbody id=\"myTable\">\r\n                            {takiplist.map(apprec =>\r\n                                <tr key={apprec.id} className=\"p-1\">\r\n                                    <td>\r\n                                        {apprec.id}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.basvuruTipi}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.mevki}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.mahalle}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.ada}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.basvuruYapan}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.arsaSahibi}\r\n                                    </td>\r\n                                    <td>\r\n                                        {apprec.basvuruTarihi}\r\n                                    </td>\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }}>\r\n                                            {apprec.removed != true && <a href=\"#\" onClick={() => { props.changeComponent(<Application key={apprec.id} appData={apprec} changeComponent={props.changeComponent} backButton={<TakipEdilenler changeComponent={props.changeComponent} />} />) }} className=\" text-decoration-none \"><i className=\"fa fa-edit align-middle\" style={{ \"font-size\": \"24px\" }}></i></a>}\r\n                                        </div>\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n    return (\r\n        <div>\r\n                {renderToList()}\r\n    </div>\r\n    );\r\n\r\n\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, chartColors, exportExcel, sendpost } from '../GlobalState.js';\r\nimport ReactDOM from 'react-dom';\r\nexport default function SurecSta(props) {\r\n\r\n    const [reccount, setReccount] = useState(0);\r\n    const [appTypeGroups, setappTypeGroups] = useState([]);\r\n    const [appTypes, setappTypes] = useState([]);\r\n    const [denetimlist, setDenetimList] = useState([]);\r\n\r\n\r\n    var sortField = null;\r\n    var sortDirection = {}\r\n    const myCompare = (a, b) => {\r\n        if (sortField == null)\r\n            sortField = \"transactionUUID\"\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n        if (av == null && bv == null)\r\n            return 0;\r\n        if (av == null && bv != null)\r\n            return -1 * sortDirection[sortField];\r\n        if (av != null && bv == null)\r\n            return 1 * sortDirection[sortField];\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * sortDirection[sortField];\r\n\r\n        if (av < bv) {\r\n            return -1 * sortDirection[sortField];\r\n        }\r\n        if (av > bv) {\r\n            return 1 * sortDirection[sortField];\r\n        }\r\n        return 0;\r\n    }\r\n\r\n\r\n    const sortList = (fildname, data) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == -1) {\r\n            sortDirection[sortField] = 1;\r\n        }\r\n        else {\r\n            sortDirection[sortField] = -1;\r\n        }\r\n        let sortablelist = [];\r\n\r\n        data.forEach(function (item) {\r\n            var obj = {};\r\n            obj.basvuruDurumu = item[0];\r\n            obj.Toplam = item[1];\r\n            sortablelist.push(obj);\r\n        })\r\n        sortablelist.sort(myCompare);\r\n\r\n        let temp = [[\"this will be removed by generatetable\"]]\r\n        sortablelist.forEach(function (item) {\r\n            temp.push([item.basvuruDurumu, item.Toplam]);\r\n        })\r\n        ReactDOM.render(generateTable(temp), document.getElementById(\"tablePart\"))\r\n    }\r\n\r\n\r\n\r\n    var totalrec = document.getElementById(\"totalrec\");\r\n    if (totalrec != null && reccount > 0)\r\n        totalrec.innerHTML = \"Toplam \" + reccount + \" Başvuru\";\r\n\r\n    if (denetimlist.length > 0 && document.getElementById(\"myscript\").childElementCount == 0) {\r\n\r\n        const script = document.createElement(\"script\");\r\n        script.src = \"https://www.gstatic.com/charts/loader.js\";\r\n        script.async = true;\r\n        document.getElementById(\"myscript\").appendChild(script);\r\n        script.onload = () => {\r\n            window.google.charts.load('current', { packages: ['corechart'] });\r\n            window.google.charts.setOnLoadCallback(populateProjectData);\r\n        }\r\n    }\r\n\r\n\r\n    const fetchSurecList = () => {\r\n        fetch(\"sureclist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n\r\n                response.json().then(value => {\r\n                    setDenetimList(value);\r\n\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    useEffect(() => {\r\n        fetchSurecList();\r\n        fetchAppTypeGrupList();\r\n        getAppTypes();\r\n    }, []);\r\n\r\n\r\n    const fetchAppTypeGrupList = () => {\r\n        fetch(\"apptypegroupslist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setappTypeGroups(value);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const getAppTypes = () => {\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    value = value.filter(x => x.isadimi != true);\r\n                    setappTypes(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const populateProjectData = () => {\r\n\r\n        const grup = document.getElementById(\"grup\").value;\r\n        const appType = document.getElementById(\"apptype\").value;\r\n        const startDate = document.getElementById(\"startdate\").value;\r\n        const endDate = document.getElementById(\"enddate\").value;\r\n\r\n        // Create the body object\r\n        const body = {};\r\n        if (grup && grup != -1) body.grup = Number(grup);\r\n        if (appType && appType != -1) body.appType = appType;\r\n        if (startDate) body.startDate = startDate;\r\n        if (endDate) body.endDate = endDate;\r\n\r\n\r\n        sendpost(\"countprojectbytype\", body, \"filterspin\", (response) => {\r\n            response.json().then(async data => {\r\n                var dataset = JSON.parse(data);\r\n                var rec = 0;\r\n\r\n\r\n\r\n                data = JSON.parse(dataset[0]);\r\n                var dataarray1 = [];\r\n                var colors = ['#2E4C6D', '#396EB0', '#DADDFC', '#FC997C', '#66806A', '#7E8BD9', '#558D97', '#B4C6A6', '#FFC286', '#FFF1AF'];\r\n                dataarray1.push(['Durum', 'Toplam', { role: \"style\" }]);\r\n                var cidx = 0;\r\n                for (var i in data) {\r\n                    dataarray1.push([i, data[i], colors[cidx++]]);\r\n                }\r\n\r\n\r\n                drawChart(dataarray1, 'userstaticpanel2');\r\n                setReccount(rec)\r\n            });\r\n        });\r\n}\r\n\r\nconst generateTable = (data) => {\r\n    data.shift();\r\n    return <div className=\"table-responsive\">\r\n        <table className='table  mt-3 table-vdstriped p-0' aria-labelledby=\"tabelLabel\" id=\"reportTable\">\r\n            <thead >\r\n                <th>\r\n\r\n                </th>\r\n                <th className=\"text-start\">\r\n                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"basvuruDurumu\", data)} > Başvuru Durumu </button>\r\n                </th>\r\n                <th className=\"text-start\">\r\n                    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"Toplam\", data)} >  Toplam Başvuru </button>\r\n                </th>\r\n            </thead>\r\n            <tbody id=\"myTable\">\r\n                {data.map((rec, idx) => \r\n                    <tr>\r\n                        <td className=\"text-start\">\r\n                            {idx + 1}\r\n                        </td>\r\n                        <td className=\"text-start\">\r\n                            {rec[0]}\r\n                        </td >\r\n                        <td className=\"text-start\">\r\n                            {rec[1]}\r\n                        </td>\r\n                    </tr>\r\n                )}\r\n                <tr className=\"text-start text-success fw-bold\">\r\n                    <td >\r\n                        \r\n                    </td>\r\n                    <td className=\"text-start \">\r\n                        Toplam\r\n                    </td >\r\n                    <td className=\"text-start\">\r\n                        {data.reduce((s, x) => s + Number(x[1]),0)}\r\n                    </td>\r\n                </tr>\r\n            </tbody>\r\n        </table>\r\n       \r\n    </div>\r\n}\r\n\r\nconst handleGroupChange = (event) => {\r\n    const target = event.target;\r\n    const value = target.value;\r\n\r\n\r\n}\r\n\r\n\r\n    const drawChart = (dataarray, target) => {\r\n        var filteredData=dataarray.filter((x, idx) => idx == 0 || x[1] > 0)\r\n        var data = window.google.visualization.arrayToDataTable(filteredData);\r\n        var options = {\r\n            colors: chartColors,\r\n            chartArea: {\r\n                top: 20,\r\n                width: '90%',\r\n                height: '80%'\r\n            },\r\n            hAxis: {\r\n                slantedTextAngle: 45,\r\n                textStyle: {\r\n                    fontSize: 14\r\n\r\n                },\r\n                baselineColor: \"EEF8FB\"\r\n\r\n            },\r\n            vAxis: {\r\n                gridlines: {\r\n                    color: \"EEF8FB\"\r\n                },\r\n\r\n                minorGridlines: {\r\n                    color: 'transparent'\r\n\r\n                },\r\n                textStyle: {\r\n                    fontSize: 16 // or the number you want\r\n                }\r\n                ,\r\n                baselineColor: \"DDF7FD\"\r\n\r\n            },\r\n            annotations: {\r\n                stem: {\r\n                    length: 0\r\n                },\r\n                alwaysOutside: true,\r\n                textStyle: {\r\n                    auraColor: 'none'\r\n                }\r\n\r\n            },\r\n            animation: {\r\n                duration: 1200,\r\n                easing: 'out',\r\n                \"startup\": true\r\n            },\r\n\r\n            width: '100%',\r\n            legend: 'none'\r\n\r\n        };\r\n\r\n\r\n        var chart = new window.google.visualization.ColumnChart(document.getElementById(target));\r\n        if (filteredData.length > 1)\r\n            chart.draw(data, options);\r\n        else {\r\n            document.getElementById(target).innerHTML = \"\";\r\n        }\r\n        ReactDOM.render(generateTable(dataarray), document.getElementById(\"tablePart\"));\r\n    }\r\n\r\n\r\n\r\n\r\nreturn (\r\n    <div className=\"mt-1\" style={{ \"height\": \"100%\" }}>\r\n\r\n        <div id=\"myscript\"></div>\r\n        \r\n\r\n        <div className=\"row\">\r\n            <div className=\"col-11\">\r\n                <h4>Anlık Süreç Bilgileri</h4>\r\n            </div>\r\n            <div className=\"col-1 text-end\">\r\n                <a download=\"report.csv\" id=\"downloadlink\" onClick={() => { exportExcel(\"reportTable\", \"downloadlink\") }} href=\"#\" className=\"btn btn-link btn-sm text-decoration-none text-success\"><i class=\"fa fa-file-excel-o\" aria-hidden=\"true\"></i></a>\r\n            </div>\r\n        </div>\r\n\r\n\r\n        <div className=\"text-end text-muted\">  <h6 id=\"totalrec\" ></h6></div>\r\n\r\n        {/*<div className=\"row mt-1\">*/}\r\n        {/*    <div className=\"col-12\">*/}\r\n        {/*        <h6 className=\"fw-bold\">Filtrele</h6>*/}\r\n        {/*    </div>*/}\r\n        {/*</div>*/}\r\n\r\n        <div className=\"row\">\r\n            <div className=\"col-md-3 col-12\">\r\n                Başvuru Gurubu\r\n                <select className=\"form-select form-select-sm\" id=\"grup\" name=\"grup\" required={true} onChange={() => document.getElementById(\"apptype\").selectedIndex=0} >\r\n                    <option value={-1}> </option>\r\n                    {appTypeGroups.map(x => <option value={x.id}>{x.name}</option>)}\r\n                </select>\r\n            </div>\r\n            <div className=\"col-md-3 col-12\">\r\n                Başvuru Tipi\r\n                <select className=\"form-select form-select-sm\" id=\"apptype\" name=\"appType\" required={true} onChange={() => document.getElementById(\"grup\").selectedIndex = 0} >\r\n                    <option value={-1}> </option>\r\n                    {appTypes.map(x => <option value={x.name}>{x.name}</option>)}\r\n                </select>\r\n            </div>\r\n            <div className=\"col-md-2 col-12\">\r\n                Başlangıç Tarih\r\n                <input type=\"date\" className=\"form-control form-control-sm\" id=\"startdate\" />\r\n            </div>\r\n            <div className=\"col-md-2 col-12\">\r\n                Bitiş Tarih\r\n                <input type=\"date\" className=\"form-control form-control-sm\" id=\"enddate\" />\r\n            </div>\r\n            <div className=\"col-md-2 col-12\">\r\n                <br />\r\n                <button className=\"btn btn-primary btn-sm\" onClick={populateProjectData}> Filtrele</button>\r\n                <span id=\"filterspin\" className=\"spinner-border spinner-border-sm\" hidden></span>\r\n            </div>\r\n        </div>\r\n\r\n\r\n\r\n        <div id=\"userstaticpanel2\" style={{ \"height\": \"600px\" }} className=\"w-100  text-center\">\r\n            <div class=\"spinner-border\"></div>\r\n        </div>\r\n\r\n        <div id=\"tablePart\" className=\"w-100  text-center\"><div class=\"spinner-border\"></div></div>\r\n\r\n\r\n    </div>\r\n\r\n);\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, chartColors, isEmpty, exportExcel } from '../GlobalState.js';\r\nimport ReactDOM from 'react-dom';\r\n\r\nexport default function PersonelPerfSta(props) {\r\n\r\n    const [appType, setAppType] = useState(null);\r\n    const [refcounter, setRefcount] = useState(props.counter);\r\n    const [userapps, setUserApps] = useState(null);\r\n    const [startDate, setStartDate] = useState(null);\r\n    const [endDate, setEndDate] = useState(null);\r\n    const [selectedPersons, setSelectedPersons] = useState([]);\r\n\r\n    var sortField = null;\r\n    var sortDirection = {}\r\n    const myCompare = (a, b) => {\r\n        if (sortField == null)\r\n            sortField = \"transactionUUID\"\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n        if (av == null && bv == null)\r\n            return 0;\r\n        if (av == null && bv != null)\r\n            return -1 * sortDirection[sortField];\r\n        if (av != null && bv == null)\r\n            return 1 * sortDirection[sortField];\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * sortDirection[sortField];\r\n\r\n        if (av < bv) {\r\n            return -1 * sortDirection[sortField];\r\n        }\r\n        if (av > bv) {\r\n            return 1 * sortDirection[sortField];\r\n        }\r\n        return 0;\r\n    }\r\n\r\n    const filterPersons = (data) => {\r\n        const checkboxes = document.querySelectorAll('#reportTable input[type=\"checkbox\"]:checked');\r\n        const checkedIds = Array.from(checkboxes).map(checkbox => checkbox.id);\r\n        setSelectedPersons(checkedIds)\r\n\r\n    }\r\n\r\n    const sortList = (fildname, data) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == -1) {\r\n            sortDirection[sortField] = 1;\r\n        }\r\n        else {\r\n            sortDirection[sortField] = -1;\r\n        }\r\n        let sortablelist = [];\r\n\r\n        data.forEach(function (item) {\r\n            var obj = {};\r\n            obj.Kullanıcı = item[0];\r\n            obj.Toplam = item[1];\r\n            obj.Biten = item[5];\r\n            obj.Devam = item[9];\r\n            obj.Sırada = item[13];\r\n            sortablelist.push(obj);\r\n        })\r\n        sortablelist.sort(myCompare);\r\n\r\n        let temp = [[\"this will be removed by generatetable\"]]\r\n        sortablelist.forEach(function (item) {\r\n            temp.push([item.Kullanıcı, item.Toplam, 0, 0, 0, item.Biten, 0, 0, 0, item.Devam, 0, 0, 0, item.Sırada]);\r\n        })\r\n        ReactDOM.render(generateTable(temp), document.getElementById(\"tablePart\"))\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        setAppType(target.value);\r\n    }\r\n\r\n\r\n    useEffect(() => {\r\n        const script = document.createElement(\"script\");\r\n        script.src = \"https://www.gstatic.com/charts/loader.js\";\r\n        script.async = true;\r\n        document.getElementById(\"myscript\").appendChild(script);\r\n        script.onload = () => {\r\n            window.google.charts.load('current', { packages: ['corechart'] });\r\n            window.google.charts.setOnLoadCallback(getWorkLoadList);\r\n\r\n        }\r\n\r\n    }, [props.counter]);\r\n\r\n\r\n    const generateTable = (data) => {\r\n        data.shift();\r\n        return <div className=\"table-responsive\">\r\n            <table className='table  mt-3 table-vdstriped p-0' aria-labelledby=\"tabelLabel\" id=\"reportTable\">\r\n                <thead >\r\n                    <th className=\"text-start\">\r\n                        <button className=\"btn btn-primary bg-primary btn-sm p-1 m-0 \" onClick={filterPersons} >\r\n                            Göster\r\n                        </button>\r\n\r\n                    </th>\r\n                    <th>\r\n\r\n                    </th>\r\n                    <th className=\"text-start\">\r\n                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"Kullanıcı\", data)} > Kullanıcı </button>\r\n                    </th>\r\n                    <th className=\"text-start\">\r\n                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"Toplam\", data)} > Toplam </button>\r\n                    </th>\r\n                    <th className=\"text-start\">\r\n                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"Biten\", data)} > Biten </button>\r\n                    </th>\r\n                    <th className=\"text-start\">\r\n                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"Devam\", data)} >  Devam Eden </button>\r\n                    </th>\r\n                    <th className=\"text-start\">\r\n                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"Sırada\", data)} > Sırada Bekleyen </button>\r\n                    </th>\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n                    {data.map((rec, idx) => (rec[1] > 0 || rec[5] > 0 || rec[9] > 0 || rec[13] > 0) &&\r\n                        <tr>\r\n                            <td className=\"text-start\">\r\n                                <input type=\"checkbox\" className=\"form-check-input form-check-input-sm\" id={rec[0]} />\r\n                            </td>\r\n                            <td className=\"text-start\">\r\n                                {idx + 1}\r\n                            </td>\r\n                            <td className=\"text-start\">\r\n                                {rec[0]}\r\n                            </td >\r\n                            <td className=\"text-start\">\r\n                                {rec[1]}\r\n                            </td>\r\n                            <td className=\"text-start\">\r\n                                {rec[5]}\r\n                            </td>\r\n                            <td className=\"text-start\">\r\n                                {rec[9]}\r\n                            </td>\r\n                            <td className=\"text-start\">\r\n                                {rec[13]}\r\n                            </td>\r\n                        </tr>\r\n                    )}\r\n\r\n                    <tr className=\"text-start text-success fw-bold\">\r\n                        <td ></td>\r\n                        <td ></td>\r\n                        <td className=\"text-start\">\r\n                            Toplam\r\n                        </td>\r\n                        <td className=\"text-start\">\r\n                            {data.reduce((s, rec) => s + rec[1], 0)}\r\n                        </td>\r\n                        <td className=\"text-start\">\r\n                            {data.reduce((s, rec) => s + rec[5], 0)}\r\n                        </td>\r\n                        <td className=\"text-start\">\r\n                            {data.reduce((s, rec) => s + rec[9], 0)}\r\n                        </td>\r\n                        <td className=\"text-start\">\r\n                            {data.reduce((s, rec) => s + rec[13], 0)}\r\n                        </td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n        </div>\r\n    }\r\n\r\n\r\n    const getWorkLoadList = () => {\r\n        fetch(\"getuserworkloads\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n                this.setState({ status: response.statusText })\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n\r\n\r\n                    var basvurutipleri = new Set();\r\n                    var c = document.getElementById(\"basvurutipleri\");\r\n\r\n                    // Collect unique items into the set\r\n                    for (var i = 0; i < data.length; i++) {\r\n                        // mapperusername is basvurutipi\r\n                        data[i].basvuruTipi = data[i].mapperUserName;\r\n                        basvurutipleri.add(data[i].basvuruTipi);\r\n                    }\r\n\r\n                    // Convert the set to an array and sort it\r\n                    var sortedBasvuruTipleri = Array.from(basvurutipleri).sort((a, b) => a.localeCompare(b, \"tr\"));\r\n\r\n                    // Append sorted options to the select box\r\n                    for (var basvuruTipi of sortedBasvuruTipleri) {\r\n                        var opt = document.createElement('option');\r\n                        opt.value = basvuruTipi;\r\n                        opt.innerHTML = basvuruTipi;\r\n                        c.appendChild(opt);\r\n                    }\r\n\r\n                    // Set the default selected index to none\r\n                    c.selectedIndex = -1;\r\n\r\n                    setUserApps(data)\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const generateReport = (data) => {\r\n        var dataarray = [];\r\n        var userstat = {}\r\n        dataarray.push(['', 'Toplam', { role: 'annotation' }, { role: 'annotation' }, { role: 'style' },\r\n            'Biten', { role: 'annotation' }, { role: 'annotation' }, { role: 'style' },\r\n            'Devam Eden', { role: 'annotation' }, { role: 'annotation' }, { role: 'style' },\r\n            'Sırada Bekleyen', { role: 'annotation' }, { role: 'annotation' }, { role: 'style' }]);\r\n        // 'Günllük Ortalama', { role: 'annotation' }, { role: 'annotation' }, { role: 'style' }\r\n\r\n        for (var i = 0; i < data.length; i++) {\r\n            userstat[data[i].userName] = { toplam: 0, biten: 0, devam: 0, bekleyen: 0, ortalama: 0, namefamily: data[i].message }\r\n            data[i].namefamily = data[i].message\r\n        }\r\n\r\n\r\n        for (var i = 0; i < data.length; i++) {\r\n            if (appType != null && appType != \"\" && data[i].basvuruTipi != appType)\r\n                continue;\r\n\r\n            if (!isEmpty(startDate) && !isEmpty(data[i].mappingDate)\r\n                && data[i].mappingDate.replaceAll(\".\", \"/\").split(\" \")[0] < startDate)\r\n                continue;\r\n\r\n            if (!isEmpty(endDate) && !isEmpty(data[i].mappingDate)\r\n                && data[i].mappingDate.replaceAll(\".\", \"/\").split(\" \")[0] > endDate)\r\n                continue;\r\n\r\n            if (selectedPersons.length > 0 && !selectedPersons.includes(data[i].namefamily))\r\n                continue;\r\n\r\n\r\n            userstat[data[i].userName].toplam++;\r\n\r\n            if (data[i].started == null && data[i].completed == null) {\r\n                if (data[i].duzeltmeDurum == true)\r\n                    userstat[data[i].userName].devam++;\r\n                else\r\n                    userstat[data[i].userName].bekleyen++;\r\n            }\r\n            else if (data[i].started != null && data[i].completed == null) {\r\n                if (data[i].denetimID != 10)\r\n                    userstat[data[i].userName].devam++;\r\n                else\r\n                    userstat[data[i].userName].biten++;\r\n            }\r\n            else if (data[i].started != null && data[i].completed != null)\r\n                userstat[data[i].userName].biten++;\r\n        }\r\n        for (var i = 0; i < data.length; i++) {\r\n            userstat[data[i].userName].ortalama = (userstat[data[i].userName].biten / 30.0).toFixed(1);\r\n        }\r\n\r\n        var i = 0;\r\n        for (var rec in userstat)\r\n            if (userstat[rec].toplam > 0)\r\n                dataarray.push([userstat[rec].namefamily, userstat[rec].toplam, userstat[rec].toplam, \"\", 'stroke-color: #000000; stroke-width: 1;',\r\n                userstat[rec].biten, userstat[rec].biten, \"\", 'stroke-color: #000000; stroke-width: 1;',\r\n                userstat[rec].devam, userstat[rec].devam, \"\", 'stroke-color: #000000; stroke-width: 1;',\r\n                    userstat[rec].bekleyen, userstat[rec].bekleyen, \"\", 'stroke-color: #000000; stroke-width: 1;']);\r\n        //userstat[rec].ortalama, userstat[rec].ortalama.toFixed(2), \"Ort\", 'stroke-color: #E7E6E1; stroke-width: 1;'\r\n        if (dataarray.length == 1) {\r\n            document.getElementById(\"userstaticpanel2\").innerHTML = \"\";\r\n            ReactDOM.unmountComponentAtNode( document.getElementById(\"tablePart\"));\r\n            return;\r\n        }\r\n\r\n        drawChart(dataarray, 'userstaticpanel2')\r\n\r\n    }\r\n\r\n\r\n    const drawChart = (dataarray,  target) => {\r\n        var data = window.google.visualization.arrayToDataTable(dataarray);\r\n        var options = {\r\n            colors: chartColors,\r\n            chartArea: {\r\n                top: 20,\r\n                width: '90%',\r\n                height: '80%'\r\n            },\r\n            hAxis: {\r\n                slantedTextAngle: 45,\r\n                textStyle: {\r\n                    fontSize: 14\r\n\r\n                },\r\n                baselineColor: \"EEF8FB\"\r\n\r\n            },\r\n            vAxis: {\r\n                gridlines: {\r\n                    color: \"EEF8FB\"\r\n                },\r\n\r\n                minorGridlines: {\r\n                    color: 'transparent'\r\n\r\n                },\r\n                textStyle: {\r\n                    fontSize: 16 // or the number you want\r\n                }\r\n                ,\r\n                baselineColor: \"DDF7FD\"\r\n\r\n            },\r\n            annotations: {\r\n                stem: {\r\n                    length: 0\r\n                },\r\n                alwaysOutside: true,\r\n                textStyle: {\r\n                    auraColor: 'none'\r\n                }\r\n\r\n            },\r\n            animation: {\r\n                duration: 1200,\r\n                easing: 'out',\r\n                \"startup\": true\r\n            },\r\n\r\n            width: '100%',\r\n            legend: { position: \"top\" },\r\n\r\n        };\r\n        var chart = new window.google.visualization.ColumnChart(document.getElementById(target));\r\n\r\n       \r\n\r\n        chart.draw(data, options);\r\n        ReactDOM.render(generateTable(dataarray), document.getElementById(\"tablePart\"));\r\n        \r\n    }\r\n\r\n    if (userapps != null)\r\n        generateReport(userapps)\r\n\r\n\r\n    return (\r\n        <div className=\"border  rounded-2 mt-1\" style={{ \"height\": \"100%\" }}>\r\n            <div id=\"myscript\"></div>\r\n            <div className=\"row\">\r\n                <div className=\"col-11\">\r\n            <h4>Personel Performansı</h4>\r\n                </div>\r\n                <div className=\"col-1 text-end\">\r\n                    <a download=\"report.csv\" id=\"downloadlink\" onClick={() => { exportExcel(\"reportTable\", \"downloadlink\") }} href=\"#\" className=\"btn btn-link btn-sm text-decoration-none text-success\"><i class=\"fa fa-file-excel-o\" aria-hidden=\"true\"></i></a>\r\n            </div>\r\n            </div>\r\n\r\n            <div className=\"row\">\r\n                <div className=\"col-md-3 col-12\">\r\n                    Başvuru Tipi\r\n                    <select className=\"form-select form-select-sm\" id=\"basvurutipleri\" name=\"basvuruTipi\" required={true} onChange={handleInputChange}>\r\n                        <option value=\"\"></option>\r\n                    </select>\r\n                </div>\r\n                <div className=\"col-md-3 col-12\">\r\n                    Başlangıç Tarih\r\n                    <input type=\"date\" className=\"form-control form-control-sm\" id=\"startdate\" onChange={(e) => setStartDate(e.target.value.replaceAll(\"-\", \"/\"))} />\r\n                </div>\r\n\r\n                <div className=\"col-md-3 col-12\">\r\n                    Bitiş Tarih\r\n                    <input type=\"date\" className=\"form-control form-control-sm\" id=\"enddate\" onChange={(e) => setEndDate(e.target.value.replaceAll(\"-\", \"/\"))} />\r\n                </div>\r\n            </div>\r\n\r\n            <div style={{ \"max-width\": \"300px\" }} className=\"p-1 mb-3\">\r\n\r\n            </div>\r\n\r\n            <div id=\"userstaticpanel2\" style={{ \"height\": \"600px\" }} className=\"w-100  text-center\"><div class=\"spinner-border\"></div></div>\r\n            <div id=\"tablePart\" className=\"w-100  text-center\"><div class=\"spinner-border\"></div></div>\r\n        </div>\r\n\r\n    );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { isEmpty, chartColors, exportExcel } from '../GlobalState.js';\r\n\r\nimport ReactDOM from 'react-dom';\r\n\r\nexport default function TmamlanmaStat(props) {\r\n\r\n    const [appType, setAppType] = useState(null);\r\n    const [appGurupType, setAppGurupType] = useState(-1);\r\n    const [startDate, setStartDate] = useState(null);\r\n    const [endDate, setEndDate] = useState(null);\r\n    const [userapps, setUserApps] = useState(null);\r\n    const [chartType, setChartType] = useState(\"ko\");\r\n\r\n\r\n\r\n    const [appTypeGroups, setappTypeGroups] = useState([]);\r\n    const [appTypeList, setappTypeList] = useState([]);\r\n\r\n    const [selectedPersons, setSelectedPersons] = useState([]);\r\n\r\n    var userdataarray = [];\r\n    var basvurutipidataarray = [];\r\n    var userstat = {}\r\n    var basvurutipistat = {}\r\n    var mevkistat = {}\r\n    var mahallestat = {}\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchAppTypeGrupList();\r\n        getAppTypes();\r\n\r\n        const script = document.createElement(\"script\");\r\n        script.src = \"https://www.gstatic.com/charts/loader.js\";\r\n        script.async = true;\r\n        document.getElementById(\"myscript\").appendChild(script);\r\n        script.onload = () => {\r\n            window.google.charts.load('current', { packages: ['corechart'] });\r\n            window.google.charts.setOnLoadCallback(getUserApps);\r\n        }\r\n\r\n    }, [props.counter]);\r\n\r\n\r\n    const fetchAppTypeGrupList = () => {\r\n        fetch(\"apptypegroupslist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n               \r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setappTypeGroups(value);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const getAppTypes = () => {\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n               \r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    value = value.filter(x => x.isadimi != true);\r\n                    setappTypeList(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        setAppType(target.value);\r\n    }\r\n\r\n\r\n    var sortField = null;\r\n    var sortDirection = {}\r\n    const myCompare = (a, b) => {\r\n        if (sortField == null)\r\n            sortField = \"transactionUUID\"\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n        if (av == null && bv == null)\r\n            return 0;\r\n        if (av == null && bv != null)\r\n            return -1 * sortDirection[sortField];\r\n        if (av != null && bv == null)\r\n            return 1 * sortDirection[sortField];\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * sortDirection[sortField];\r\n\r\n        if (av < bv) {\r\n            return -1 * sortDirection[sortField];\r\n        }\r\n        if (av > bv) {\r\n            return 1 * sortDirection[sortField];\r\n        }\r\n        return 0;\r\n    }\r\n\r\n\r\n    const sortList = (fildname, data) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == -1) {\r\n            sortDirection[sortField] = 1;\r\n        }\r\n        else {\r\n            sortDirection[sortField] = -1;\r\n        }\r\n        let sortablelist = [];\r\n        for (var rec in data) {\r\n            var obj = data[rec];\r\n            obj.indexname = rec.name;\r\n            sortablelist.push(obj);\r\n        }\r\n        sortablelist.sort(myCompare);\r\n\r\n        let temp = {}\r\n        sortablelist.forEach(function (item) {\r\n            temp[item.name] = item;\r\n        })\r\n        ReactDOM.render(generateTable(temp), document.getElementById(\"tablePart\"))\r\n    }\r\n\r\n\r\n\r\n    const getUserApps = () => {\r\n        fetch(\"getuserapps\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    alert(response.statusText)\r\n                })\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    var data = JSON.parse(value)\r\n                  /*  var basvurutipleri = new Set()\r\n                    var c = document.getElementById(\"basvurutipleri\");\r\n                    for (var i = 0; i < data.length; i++) {\r\n                        if (basvurutipleri.has(data[i].basvuruTipi) == false) {\r\n                            basvurutipleri.add(data[i].basvuruTipi);\r\n                            var opt = document.createElement('option');\r\n                            opt.value = data[i].basvuruTipi;\r\n                            opt.innerHTML = data[i].basvuruTipi;\r\n                            c.appendChild(opt);\r\n                        }\r\n\r\n                    }\r\n                    c.selectedIndex = -1;*/\r\n                    setUserApps(data)\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    \r\n\r\n    const filterPersons = (data) => {\r\n        const checkboxes = document.querySelectorAll('#reportTable input[type=\"checkbox\"]:checked');\r\n        const checkedIds = Array.from(checkboxes).map(checkbox => checkbox.id);\r\n        setSelectedPersons(checkedIds)\r\n    }\r\n\r\n    const generateTable = (data) => {\r\n        var keys = Object.keys(data);\r\n        return <div className=\"table-responsive\" >\r\n            <table className='table  mt-3 table-vdstriped p-0' aria-labelledby=\"tabelLabel\" id=\"reportTable\">\r\n                <thead >\r\n                    <th className=\"text-start\">\r\n                        {chartType == \"ko\" && <button className=\"btn btn-primary bg-primary text-white btn-sm p-1 m-0 \" onClick={filterPersons} >\r\n                            Göster\r\n                        </button>}\r\n\r\n                    </th>\r\n                    <th>\r\n\r\n                    </th>\r\n                    <th className=\"text-start\">\r\n                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"name\", data)} > İsim </button>\r\n                    </th>\r\n                    <th className=\"text-start\">\r\n                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"toplamBasvuru\", data)} >  Toplam Başvuru </button>\r\n                    </th>\r\n                    <th className=\"text-start\">\r\n                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"gunOrtalama\", data)} >   Günlük Ortalama (işgünü) </button>\r\n                    </th>\r\n                    <th className=\"text-start\">\r\n                        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"ayOrtalama\", data)} >  Aylık Ortalama </button>\r\n                    </th>\r\n                    {/*<th className=\"text-start\">*/}\r\n                    {/*    <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"yilOrtalama\", data)} >  Yıllık Ortalama </button>*/}\r\n                    {/*</th>*/}\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n                    {keys.map((rec, idx) => data[rec].toplamBasvuru > 0 &&\r\n                        <tr>\r\n                            <td className=\"text-start\">\r\n                                {chartType == \"ko\" &&\r\n                                    <input type=\"checkbox\" className=\"form-check-input form-check-input-sm\" id={rec} />\r\n                                }\r\n                            </td>\r\n                            <td className=\"text-start\">\r\n                                {idx + 1}\r\n                            </td>\r\n                            <td className=\"text-start\">\r\n                                {data[rec].name}\r\n                            </td>\r\n                            <td className=\"text-start\">\r\n                                {data[rec].toplamBasvuru}\r\n                            </td>\r\n                            <td className=\"text-start\">\r\n                                {data[rec].gunOrtalama}\r\n                            </td>\r\n                            <td className=\"text-start\">\r\n                                {data[rec].ayOrtalama}\r\n                            </td>\r\n                        </tr>\r\n                    )}\r\n                    <tr className=\"text-start text-success fw-bold\">\r\n                        <td ></td>\r\n                        <td ></td>\r\n                        <td className=\"text-start\">\r\n                             Toplam\r\n                        </td>\r\n                        <td className=\"text-start\">\r\n                            {keys.reduce((s, x) => s + Number(data[x].toplamBasvuru), 0)}\r\n                        </td>\r\n                        <td className=\"text-start\">\r\n                            {keys.reduce((s, x) => s + Number(data[x].gunOrtalama != null ? data[x].gunOrtalama:0), 0)}\r\n                        </td>\r\n                        <td className=\"text-start\">\r\n                            {keys.reduce((s, x) => s + Number(data[x].ayOrtalama != null ? data[x].ayOrtalama : 0), 0)}\r\n                        </td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n        </div>\r\n    }\r\n\r\n\r\n    const drawChartSingleCol = (mydata, target) => {\r\n        var dataarray = [];\r\n\r\n        if (mydata != userstat)\r\n            document.getElementById(\"basvurutiplericol\").hidden = true;\r\n        else\r\n            document.getElementById(\"basvurutiplericol\").hidden = false;\r\n\r\n        if (mydata != basvurutipistat)\r\n            document.getElementById(\"basvurutipigurubuicol\").hidden = true;\r\n        else\r\n            document.getElementById(\"basvurutipigurubuicol\").hidden = false;\r\n\r\n        \r\n\r\n        dataarray.push(['', 'Toplam Başvuru', { role: 'annotation' }, { role: 'annotation' }, { role: 'style' }\r\n        ]);\r\n\r\n        var nodata = true;\r\n        for (var rec in mydata) {\r\n            if (mydata[rec].toplamBasvuru > 0) {\r\n                nodata = false;\r\n                dataarray.push([mydata[rec].name,\r\n                mydata[rec].toplamBasvuru, mydata[rec].toplamBasvuru, \"\",\r\n                    'stroke-color: #000000; stroke-width: 1;'\r\n                ]\r\n                );\r\n            }\r\n        }\r\n        if (nodata == true) {\r\n            ReactDOM.unmountComponentAtNode(document.getElementById(\"tablePart\"));\r\n            document.getElementById(target).innerHTML = \"\";\r\n\r\n            return;\r\n        }\r\n\r\n\r\n        var data = window.google.visualization.arrayToDataTable(dataarray);\r\n        var options = {\r\n            colors: chartColors,\r\n            chartArea: {\r\n                // leave room for y-axis labels\r\n                top: 20,\r\n                width: '90%',\r\n                height: '80%'\r\n            },\r\n            hAxis: {\r\n                slantedTextAngle: 45,\r\n                textStyle: {\r\n                    fontSize: 14\r\n\r\n                },\r\n                baselineColor: \"EEF8FB\"\r\n\r\n            },\r\n            vAxis: {\r\n                gridlines: {\r\n                    color: \"EEF8FB\"\r\n                },\r\n\r\n                minorGridlines: {\r\n                    color: 'transparent'\r\n\r\n                },\r\n                textStyle: {\r\n                    fontSize: 16 // or the number you want\r\n                }\r\n                ,\r\n                baselineColor: \"DDF7FD\"\r\n\r\n            },\r\n            annotations: {\r\n                stem: {\r\n                    length: 0\r\n                },\r\n                alwaysOutside: true,\r\n                textStyle: {\r\n                    auraColor: 'none',\r\n                    color: '#000000',\r\n                }\r\n\r\n            },\r\n            animation: {\r\n                duration: 1200,\r\n                easing: 'out',\r\n                \"startup\": true\r\n            },\r\n\r\n            width: '100%',\r\n            legend: { position: \"top\" },\r\n\r\n        };\r\n\r\n\r\n        var chart = new window.google.visualization.ColumnChart(document.getElementById(target));\r\n\r\n        chart.draw(data, options);\r\n        ReactDOM.render(generateTable(mydata)\r\n            ,\r\n            document.getElementById(\"tablePart\")\r\n        );\r\n\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n    const drawChart = (mydata, target) => {\r\n        var dataarray = [];\r\n\r\n        if (mydata != userstat)\r\n            document.getElementById(\"basvurutiplericol\").hidden = true;\r\n        else\r\n            document.getElementById(\"basvurutiplericol\").hidden = false;\r\n\r\n        if (mydata != basvurutipistat)\r\n            document.getElementById(\"basvurutipigurubuicol\").hidden = true;\r\n        else\r\n            document.getElementById(\"basvurutipigurubuicol\").hidden = false;\r\n\r\n        dataarray.push(['', 'Toplam Başvuru', { role: 'annotation' }, { role: 'annotation' }, { role: 'style' },\r\n            'Günluk Ortalama (işgünü) ', { role: 'annotation' }, { role: 'annotation' }, { role: 'style' },\r\n            'Aylık Ortalama', { role: 'annotation' }, { role: 'annotation' }, { role: 'style' }//,\r\n            // 'Yıllık Ortalama', { role: 'annotation' }, { role: 'annotation' }, { role: 'style' }\r\n        ]);\r\n\r\n        var nodata = true;\r\n        for (var rec in mydata) {\r\n            if (mydata[rec].toplamBasvuru > 0) {\r\n                nodata = false;\r\n                dataarray.push([mydata[rec].name,\r\n                mydata[rec].toplamBasvuru, mydata[rec].toplamBasvuru, \"\",\r\n                    'stroke-color: #000000; stroke-width: 1;',\r\n                Number(mydata[rec].gunOrtalama),\r\n                Number(mydata[rec].gunOrtalama),\r\n                    \"\", 'stroke-color: #000000; stroke-width: 1;',\r\n                Number(mydata[rec].ayOrtalama),\r\n                Number(mydata[rec].ayOrtalama),\r\n                    \"\", 'stroke-color: #000000; stroke-width: 1;'//,\r\n                    //Number(mydata[rec].yilOrtalama),\r\n                    //Number(mydata[rec].yilOrtalama), \"\",\r\n                    //    'stroke-color: #000000; stroke-width: 1;'\r\n                ]\r\n                );\r\n            }\r\n        }\r\n        if (nodata == true) {\r\n            ReactDOM.unmountComponentAtNode(document.getElementById(\"tablePart\"));\r\n            document.getElementById(target).innerHTML = \"\";\r\n\r\n            return;\r\n        }\r\n\r\n\r\n        var data = window.google.visualization.arrayToDataTable(dataarray);\r\n        var options = {\r\n            colors: chartColors,\r\n            chartArea: {\r\n                // leave room for y-axis labels\r\n                top: 20,\r\n                width: '90%',\r\n                height: '80%'\r\n            },\r\n            hAxis: {\r\n                slantedTextAngle: 45,\r\n                textStyle: {\r\n                    fontSize: 14\r\n\r\n                },\r\n                baselineColor: \"EEF8FB\"\r\n\r\n            },\r\n            vAxis: {\r\n                gridlines: {\r\n                    color: \"EEF8FB\"\r\n                },\r\n\r\n                minorGridlines: {\r\n                    color: 'transparent'\r\n\r\n                },\r\n                textStyle: {\r\n                    fontSize: 16 // or the number you want\r\n                }\r\n                ,\r\n                baselineColor: \"DDF7FD\"\r\n\r\n            },\r\n            annotations: {\r\n                stem: {\r\n                    length: 0\r\n                },\r\n                alwaysOutside: true,\r\n                textStyle: {\r\n                    auraColor: 'none',\r\n                    color: '#000000',\r\n                }\r\n\r\n            },\r\n            animation: {\r\n                duration: 1200,\r\n                easing: 'out',\r\n                \"startup\": true\r\n            },\r\n\r\n            width: '100%',\r\n            legend: { position: \"top\" },\r\n\r\n        };\r\n\r\n\r\n        var chart = new window.google.visualization.ColumnChart(document.getElementById(target));\r\n\r\n        chart.draw(data, options);\r\n        ReactDOM.render(generateTable(mydata)\r\n            ,\r\n            document.getElementById(\"tablePart\")\r\n        );\r\n\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const generateReport = (data) => {\r\n        userstat = {}\r\n        basvurutipistat = {}\r\n        mevkistat = {}\r\n        mahallestat = {}\r\n\r\n        var apptypesInGrurup = null;\r\n        if (appGurupType != -1) {\r\n            apptypesInGrurup = appTypeList.filter(x => x.grup == Number(appGurupType)).map(x=>x.name)\r\n        }\r\n\r\n        for (var i = 0; i < data.length; i++) {\r\n            userstat[data[i].userName] = { toplamBasvuru: 0, ilkBasvuruTamamlandi: \"\", name: data[i].isim + \" \" + data[i].Family }\r\n            basvurutipistat[data[i].basvuruTipi] = { toplamBasvuru: 0, name: data[i].basvuruTipi }\r\n            mevkistat[data[i].mevki] = { toplamBasvuru: 0, name: data[i].mevki }\r\n            mahallestat[data[i].mahalle] = { toplamBasvuru: 0, name: data[i].mahalle }\r\n        }\r\n\r\n        for (var i = 0; i < data.length; i++) {\r\n            //ignore all exept tamamlanalar\r\n            if (data[i].basvuruDurumu != 9 && data[i].basvuruDurumu != 8)\r\n                continue;\r\n\r\n            if (!isEmpty(startDate) && !isEmpty(data[i].basvuruTarihi)\r\n                && data[i].basvuruTarihi.replaceAll(\".\", \"/\").split(\" \")[0] < startDate)\r\n                continue;\r\n\r\n            if (!isEmpty(endDate) && !isEmpty(data[i].basvuruTarihi)\r\n                && data[i].basvuruTarihi.replaceAll(\".\", \"/\").split(\" \")[0] > endDate)\r\n                continue;\r\n\r\n            if (apptypesInGrurup!=null && apptypesInGrurup.includes(data[i].basvuruTipi) == false)\r\n                continue;\r\n\r\n            if (selectedPersons.length > 0 && !selectedPersons.includes(data[i].userName))\r\n                continue;\r\n\r\n            if (isEmpty(appType) || data[i].basvuruTipi == appType)\r\n                if (data[i].Completed != null && data[i].Completed != \"\") {\r\n                    userstat[data[i].userName].toplamBasvuru++;\r\n                    var username = data[i].userName;\r\n\r\n                    if (userstat[username].ilkBasvuruTamamlandi == \"\" || data[i].Completed < userstat[username].ilkBasvuruTamamlandi) {\r\n                        userstat[username].ilkBasvuruTamamlandi = data[i].Completed;\r\n                    }\r\n                    var h = new Date(userstat[username].ilkBasvuruTamamlandi.trim() + \":00\");\r\n                    var diffTime = Date.now() - h.getTime();\r\n                    var diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1;\r\n                    userstat[username].gunOrtalama = ((userstat[username].toplamBasvuru / diffDays) * (30 / 21)).toFixed(1);\r\n                    userstat[username].ayOrtalama = ((userstat[username].toplamBasvuru / diffDays) * 30).toFixed(1);\r\n                }\r\n\r\n            basvurutipistat[data[i].basvuruTipi].toplamBasvuru++;\r\n            mevkistat[data[i].mevki].toplamBasvuru++;\r\n            mahallestat[data[i].mahalle].toplamBasvuru++;\r\n        }\r\n        if (chartType == \"ko\")\r\n            drawChart(userstat, 'userstaticpanel2')\r\n        if (chartType == \"ba\")\r\n            drawChartSingleCol(basvurutipistat, 'userstaticpanel2')\r\n        if (chartType == \"me\")\r\n            drawChartSingleCol(mevkistat, 'userstaticpanel2')\r\n        if (chartType == \"ma\")\r\n            drawChartSingleCol(mahallestat, 'userstaticpanel2')\r\n    }\r\n\r\n    if (userapps != null) {\r\n        generateReport(userapps)\r\n    }\r\n\r\n    return (\r\n        <div className=\"border  rounded-2 mt-1 w-100\" style={{ \"height\": \"100%\" }}>\r\n            <div id=\"myscript\"></div>\r\n            <div className=\"row\">\r\n                <div className=\"col-11\">\r\n                    <h4>Tamamlanma İstatistikleri</h4>\r\n                </div>\r\n                <div className=\"col-1 text-end\">\r\n                    <a download=\"report.csv\" id=\"downloadlink\" onClick={() => { exportExcel(\"reportTable\", \"downloadlink\") }} href=\"#\" className=\"btn btn-link btn-sm text-decoration-none text-success\"><i class=\"fa fa-file-excel-o\" aria-hidden=\"true\"></i></a>\r\n                </div>\r\n            </div>\r\n\r\n\r\n            <div className=\"p-1 mb-3\">\r\n                <button className={\"btn   btn-sm  rounded ps-1 pe-1 me-1  btn-primary\"} onClick={() =>setChartType(\"ko\") }>\r\n                    Kontrolör\r\n                </button>\r\n                <button className={\"btn   btn-sm  rounded ps-1 pe-1 me-1  btn-primary\"} onClick={() =>setChartType(\"ba\") }>\r\n                    Başvuru Tipi\r\n                </button>\r\n                <button className={\"btn   btn-sm  rounded ps-1 pe-1 me-1  btn-primary\"} onClick={() =>setChartType(\"me\") }>\r\n                    Mevki\r\n                </button>\r\n                <button className={\"btn   btn-sm  rounded ps-1 pe-1 me-1  btn-primary\"} onClick={() =>setChartType(\"ma\") }>\r\n                    Mahalle\r\n                </button>\r\n            </div>\r\n\r\n            <div className=\"row\">\r\n                <div className=\"col-md-3 col-12\">\r\n                    Başlangıç Tarih\r\n                    <input type=\"date\" className=\"form-control form-control-sm\" id=\"startdate\" onChange={(e) => setStartDate(e.target.value.replaceAll(\"-\",\"/\"))} />\r\n                </div>\r\n\r\n                <div className=\"col-md-3 col-12\">\r\n                    Bitiş Tarih\r\n                    <input type=\"date\" className=\"form-control form-control-sm\" id=\"enddate\" onChange={(e) => setEndDate(e.target.value.replaceAll(\"-\", \"/\"))} />\r\n                </div>\r\n\r\n                <div className=\"col-md-3 col-12\" id=\"basvurutiplericol\" >\r\n\r\n                    Başvuru Tipi\r\n                    <select className=\"form-select form-select-sm\" id=\"basvurutipleri\" name=\"basvuruTipi\" required={true} onChange={handleInputChange}>\r\n                        <option value=\"\"></option>\r\n                        {appTypeList.map(x => <option value={x.name}>{x.name }</option>) }\r\n                    </select>\r\n\r\n                </div>\r\n\r\n                <div className=\"col-md-3 col-12\" id=\"basvurutipigurubuicol\" hidden>\r\n\r\n                    Başvuru Tipi Grubu\r\n                    <select className=\"form-select form-select-sm\" id=\"basvurutipleri\" name=\"basvuruTipi\" required={true} onChange={(e) => setAppGurupType(e.target.value)}>\r\n                        <option value={-1}> </option>\r\n                        {appTypeGroups.map(x => <option value={x.id}>{x.name}</option>)}\r\n                    </select>\r\n\r\n                </div>\r\n\r\n            </div>\r\n\r\n\r\n\r\n\r\n            <div id=\"userstaticpanel2\" style={{ \"height\": \"600px\" }} className=\"w-100  text-center\">\r\n                <div class=\"spinner-border\" ></div>\r\n            </div>\r\n\r\n            <div id=\"tablePart\" className=\"w-100  text-center\">\r\n                <div class=\"spinner-border\"></div>\r\n            </div>\r\n\r\n\r\n        </div>\r\n\r\n    );\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, chartColors, exportExcel } from '../GlobalState.js';\r\nimport ReactDOM from 'react-dom';\r\nexport default function Report(props) {\r\n\r\n    const [reccount, setReccount] = useState(0);\r\n    const [refcounter, setRefcount] = useState(props.counter);\r\n    var timer = null;\r\n    var timercount = 0;\r\n    const [denetimlist, setDenetimList] = useState([]);\r\n    const [downloadUrl, setDownloadUrl] = useState(\"#\");\r\n    \r\n\r\n    const tableData = props.data;\r\n    const report = props.report;\r\n\r\n    var sortField = null;\r\n    var sortDirection = {}\r\n    const myCompare = (a, b) => {\r\n        if (sortField == null)\r\n            sortField = \"transactionUUID\"\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n        if (av == null && bv == null)\r\n            return 0;\r\n        if (av == null && bv != null)\r\n            return -1 * sortDirection[sortField];\r\n        if (av != null && bv == null)\r\n            return 1 * sortDirection[sortField];\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * sortDirection[sortField];\r\n\r\n        if (av < bv) {\r\n            return -1 * sortDirection[sortField];\r\n        }\r\n        if (av > bv) {\r\n            return 1 * sortDirection[sortField];\r\n        }\r\n        return 0;\r\n    }\r\n\r\n\r\n    const sortList = (fildname, data) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == -1) {\r\n            sortDirection[sortField] = 1;\r\n        }\r\n        else {\r\n            sortDirection[sortField] = -1;\r\n        }\r\n        let sortablelist = [];\r\n\r\n        data.forEach(function (item) {\r\n            var obj = {};\r\n            obj.basvuruDurumu = item[0];\r\n            obj.Toplam = item[1];\r\n            sortablelist.push(obj);\r\n        })\r\n        sortablelist.sort(myCompare);\r\n\r\n        let temp = [[\"this will be removed by generatetable\"]]\r\n        sortablelist.forEach(function (item) {\r\n            temp.push([item.basvuruDurumu, item.Toplam]);\r\n        })\r\n        ReactDOM.render(generateTable(temp), document.getElementById(\"tablePart\"))\r\n    }\r\n\r\n\r\n\r\n   \r\n\r\n\r\n    const fetchDenetimList = () => {\r\n        fetch(\"sureclist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n\r\n                response.json().then(value => {\r\n                    setDenetimList(value);\r\n\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    useEffect(() => {\r\n        fetchDenetimList();\r\n    }, []);\r\n\r\n    const populateProjectData = () => {\r\n        fetch(\"countprojectbytype\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({})\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n\r\n                response.json().then(async data => {\r\n                    data = JSON.parse(data);\r\n                    var dataarray = [];\r\n                    var maxDurumId = 10;\r\n                    var rec = 0;\r\n\r\n\r\n\r\n                    var temp = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\r\n                    for (var i = 0; i < data.length; i++) {\r\n                        var dt = data[i].BasvuruDurumu;\r\n                        if (maxDurumId < dt)\r\n                            maxDurumId = dt;\r\n                        temp[dt] = temp[dt] + data[i].Toplam;\r\n                        rec += data[i].Toplam;\r\n                    }\r\n\r\n\r\n                    dataarray.push(['Durum', 'Toplam', { role: 'annotation' }, { role: \"style\" }]);\r\n                    for (var i = 1; i < maxDurumId; i++) {\r\n                        if (i == 9 || i == 8) continue;//ignore sureç tamamlanan apps\r\n                        var d = denetimlist.find(rec => rec.id == i);\r\n                        dataarray.push([d == null ? i : d.name, temp[i], temp[i], ' stroke-width: 1; color:' + chartColors[(i - 1) % chartColors.length] + \"; stroke-color: #000000;\"]);\r\n                    }\r\n\r\n                    drawChart(dataarray, 'userstaticpanel2');\r\n                    setReccount(rec)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    var columns;\r\n    const generateTable = () => {\r\n\r\n        const columnSet = new Set();\r\n        \r\n        tableData.forEach(row => {\r\n            Object.keys(row).forEach(key => { if (key != report.baseRow) columnSet.add(key) });\r\n        });\r\n        \r\n        columns = Array.from(columnSet);\r\n        columns.unshift(report.baseRow)\r\n\r\n        return <div className=\"table-responsive\">\r\n            <table className='table table-vdstriped' aria-labelledby=\"tabelLabel\" id=\"reportTable\">\r\n                <thead >\r\n                    \r\n                    {columns.map(c => <th className=\"text-start ps-1\">{c}</th>)}\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n                    {tableData.map((rec, idx) => \r\n                        <tr>\r\n                            {columns.map(c => <td className=\"text-start\">{rec[c]}</td>)}\r\n                           \r\n                        </tr>\r\n                    )}\r\n                </tbody>\r\n            </table>\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n\r\n    const drawChart = (dataarray, target) => {\r\n        var data = window.google.visualization.arrayToDataTable(dataarray);\r\n        var options = {\r\n            colors: chartColors,\r\n            chartArea: {\r\n                // leave room for y-axis labels\r\n                top: 20,\r\n                width: '100%',\r\n                height: '70%'\r\n            },\r\n            hAxis: {\r\n                slantedTextAngle: 45,\r\n                textStyle: {\r\n                    fontSize: 14\r\n\r\n                },\r\n                baselineColor: \"EEF8FB\",\r\n                gridlines: {\r\n                    color: \"transparent\"\r\n                },\r\n\r\n            },\r\n            vAxis: {\r\n                gridlines: {\r\n                    color: \"EEF8FB\"\r\n                },\r\n\r\n                minorGridlines: {\r\n                    color: 'transparent'\r\n\r\n                },\r\n                textStyle: {\r\n                    fontSize: 16 // or the number you want\r\n                }\r\n                ,\r\n                baselineColor: \"DDF7FD\"\r\n\r\n            },\r\n            annotations: {\r\n                stem: {\r\n                    length: 0\r\n                },\r\n                alwaysOutside: true,\r\n                textStyle: {\r\n                    auraColor: 'none',\r\n                    color: '#000000',\r\n                }\r\n\r\n            },\r\n            animation: {\r\n                duration: 1200,\r\n                easing: 'out',\r\n                \"startup\": true\r\n            },\r\n\r\n            width: '100%',\r\n            legend: { position: \"none\" },\r\n\r\n        };\r\n\r\n\r\n        var chart = new window.google.visualization.ColumnChart(document.getElementById(target));\r\n\r\n        chart.draw(data, options);\r\n        ReactDOM.render(generateTable(), document.getElementById(\"tablePart\"));\r\n\r\n    }\r\n\r\n   \r\n\r\n    return (\r\n        <div>\r\n            <a download=\"report.csv\" id=\"downloadlink\" onClick={() => { exportExcel(\"reportTable\", \"downloadlink\") }} href=\"#\" className=\"btn btn-link btn-sm text-decoration-none text-success\"><i class=\"fa fa-file-excel-o\" aria-hidden=\"true\"></i></a>\r\n            {generateTable() }\r\n        </div>\r\n\r\n    );\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom'\r\nimport SurecSta from './SurecSta.js';\r\nimport PersonelPerfSta from './PersonelPerfSta.js';\r\nimport AppMonthStatistic from './AppMonthStatistic.js';\r\nimport BasvuruTamamlamaSta from './BasvuruTamamlamaSta.js';\r\nimport BasvuruAdetStat from './TmamlanmaStat.js';\r\nimport TahsilEdilenHarcStat from './TahsilEdilenHarcStat.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { useGlobalState, sendget, sendpost } from '../GlobalState.js';\r\nimport Report from './Report.js';\r\n\r\nexport default function StatisticPanel(props) {\r\n    const [activePanel, setActivePanel] = useState(<SurecSta />);\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [reports, setReports] = useState([]);\r\n\r\n    const makeBold = (e) => {\r\n\r\n        var btns = document.getElementById(\"buttonsbox\").querySelectorAll(\".btn\");\r\n        btns.forEach(x => { if (x.classList.contains(\"btn-link\") == false) { x.classList.remove(\"btn-primary\"); x.classList.add(\"text-muted\") } })\r\n        if (e == null) return;\r\n        var b = e.target;\r\n        b.classList.remove(\"text-muted\")\r\n        b.classList.add(\"btn-primary\")\r\n    }\r\n\r\n    useEffect(() => {\r\n        sendget(\"reportlist\", \"myspinner\", (resp) => {\r\n            resp.json().then(value => {\r\n                setReports(value)\r\n            })\r\n        })\r\n    }, [])\r\n\r\n    return <div className=\"row p-1 pb-5 pt-2 d-flex\" style={{ \"background-color\": \"#ebebeb\", \"height\": \"100%\" }} >\r\n\r\n        <div className=\"col-md-2 col-12 flex-grow-1\" id=\"buttonsbox\">\r\n            <div className=\"bg-white rounded-3 p-2\">\r\n                {role.indexOf(UserPermConstants.Anlik_Istatistikleri_Gorme) > -1 && <div className='row'>\r\n                    <div className=\"col-12 ps-2\">\r\n                        <button type=\"button\" className=\"text-start btn fw-bold  btn-sm  text-decoration-none \" onClick={(e) => { makeBold(e); setActivePanel(<SurecSta />) }}>\r\n                            Anlık Süreç Bilgileri\r\n                        </button>\r\n                    </div>\r\n                </div>}\r\n                {role.indexOf(UserPermConstants.Proje_Istatistiklerini_Gorme) > -1 && <div className='row mt-4'>\r\n                    <div className=\"col-12 ps-2\">\r\n                        <button type=\"button\" className=\"text-start btn fw-bold  btn-sm  text-decoration-none \" onClick={(e) => { makeBold(e); setActivePanel(<BasvuruAdetStat />) }}>\r\n                            Tamamlanma İstatistikleri\r\n                        </button>\r\n                    </div>\r\n                </div>}\r\n                {role.indexOf(UserPermConstants.Kontrolor_Istatistiklerini_Gorme) > -1 && <div className='row mt-4'>\r\n                    <div className=\"col-12 ps-2\">\r\n                        <button type=\"button\" className=\"text-start btn fw-bold  btn-sm  text-decoration-none \" onClick={(e) => { makeBold(e); setActivePanel(<PersonelPerfSta />) }}>\r\n                            Personel Performansı\r\n                        </button>\r\n                    </div>\r\n                </div>}\r\n\r\n\r\n                {role.indexOf(UserPermConstants.Zamansal_Istatistikleri_Gorme) > -1 && <div className='row mt-4'>\r\n                    <div className=\"col-12 ps-2\">\r\n                        <button type=\"button\" className=\"btn fw-bold  btn-sm  text-decoration-none \" onClick={(e) => { makeBold(e); setActivePanel(<AppMonthStatistic />) }}>\r\n                            Aylık Başvurular\r\n                        </button>\r\n                    </div>\r\n                </div>}\r\n\r\n                {/*<div className='row mt-4'>*/}\r\n                {/*    <div className=\"col-12 ps-2\">*/}\r\n                {/*        <button type=\"button\" className=\"btn fw-bold btn-link btn-sm text-muted text-decoration-none p-0\" onClick={() => { setActivePanel(<TahsilEdilenHarcStat />) }}>*/}\r\n                {/*            Tahsil Edilen Harçlar*/}\r\n                {/*        </button>*/}\r\n                {/*    </div>*/}\r\n                {/*</div>*/}\r\n\r\n\r\n\r\n\r\n                {reports.map(r => <div className='row mt-4 '>\r\n                    <div className=\"col-12 ps-2\">\r\n                        <button type=\"button\" className=\"btn fw-bold btn-sm  text-decoration-none \" onClick={(e) => {\r\n                            makeBold(e);\r\n                            sendpost(\"getrport\",r.id, \"myspinner\", (resp) => {\r\n                                resp.json().then(value => {\r\n                                    setActivePanel(<Report data={JSON.parse(value)} report={r} />)\r\n                                })\r\n                            })\r\n                            \r\n                        }}>\r\n                            {r.name}\r\n                        </button>\r\n                    </div>\r\n                </div>)}\r\n\r\n            </div>\r\n        </div>\r\n        <div className=\"col-md-10 col-12 rounded-3 border-1\" >\r\n\r\n            <div className=\"bg-white rounded-3 p-3 me-1 align-items-center justify-content-center border\" style={{ \"height\": \"100%\" }} >\r\n                {activePanel}\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n}\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { isEmpty, useGlobalState } from '../GlobalState.js';\r\nimport axios from \"axios\";\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport HelpPanel from './HelpPanel.js';\r\n\r\nexport default function HelpVideoPanel(props) {\r\n\r\n\r\n    const [helpRec, setHelpRec] = useState(props.helpRec);\r\n\r\n\r\n    useEffect(() => {\r\n\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"rounded\">\r\n\r\n            <div className=\"row mt-3\">\r\n                <div className=\"col-10\">\r\n                    <h5 className=\"text-primary\">Yardım Video -{helpRec.id}</h5>\r\n                </div>\r\n                <div className=\"col-2 text-end\">\r\n                    <button className=\"btn btn-sm btn-link text-decoration-none p-0 me-1\" type=\"button\" onClick={() => props.changeComponent(<HelpPanel changeComponent={props.changeComponent} />)} title=\"kapat\"> <i class=\"fa fa-close\" style={{ \"font-size\": \"18px\" }}></i></button>\r\n                 \r\n                </div>\r\n            </div>\r\n\r\n\r\n \r\n            <div className=\"row mt-3\">\r\n                <div className=\"col-10\">\r\n                    {helpRec.caption}\r\n                </div>\r\n                <div className=\"col-2 text-end\">\r\n                    {helpRec.postDate}\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row p-3\" >\r\n                <div className=\"col-12 \" style={{ resize: \"vertical\", overflow:\"hidden\" }}>\r\n\r\n                    <iframe width=\"100%\" height=\"100%\" style={{ minHeight: \"480px\" }}\r\n                        src={helpRec.url}>\r\n                    </iframe>\r\n                </div>\r\n\r\n            </div>\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { isEmpty, useGlobalState } from '../GlobalState.js';\r\nimport axios from \"axios\";\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport HelpVideoPanel from './HelpVideoPanel.js';\r\nimport $ from 'jquery';\r\nimport { logout, passFilter, removeTurkcLow } from '../GlobalState.js';\r\n\r\n\r\nexport default function HelpSettingPanel(props) {\r\n    var postdata = {};\r\n    postdata[\"FileType\"] = \"pdf\";\r\n    var selectedRecord = null;\r\n    const [listData, setListData] = useState(null);\r\n    const [makaleList, setMakaleList] = useState(null);\r\n    const [formList, setFormList] = useState(null);\r\n    const [userData, setUserData] = useState([]);\r\n    var multiselectRef = React.createRef();\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [myuserName, setuserName] = useGlobalState('userName');\r\n\r\n\r\n    useEffect(() => {\r\n        fetchUserData();\r\n\r\n\r\n    }, [])\r\n\r\n\r\n    const fetchUserData = () => {\r\n        var param = \"?user=\" + myuserName;\r\n        fetch(\"getuser\" + param, {\r\n            method: 'GET'\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setUserData(data);\r\n                    getHelpList();\r\n                    fetchMakaleList()\r\n                    fetchSampleFormList();\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const filterTable = (event) => {\r\n        var textbox = document.getElementById(\"ara\")\r\n        if (textbox == null)\r\n            return;\r\n        var value = textbox.value.toLowerCase();\r\n\r\n        $(\"#myTable div.filterable\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n            var ret = true;\r\n            var t1 = removeTurkcLow($(this).text());\r\n            for (let index = 0; index < keywords.length; ++index) {\r\n                var t2 = removeTurkcLow(keywords[index]);\r\n                if (t1.indexOf(t2) == -1)\r\n                    return $(this).toggle(false);\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n\r\n    }\r\n\r\n\r\n    const fetchMakaleList = () => {\r\n\r\n        fetch(\"getmakalelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setMakaleList(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchSampleFormList = () => {\r\n\r\n        fetch(\"getsampleformlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setFormList(value)\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getHelpList = () => {\r\n        fetch(\"gethelplist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const getFileIcon = (filname) => {\r\n        if (filname.endsWith(\"pdf\")) return <i class=\"fa fa-file-pdf-o text-danger\" style={{ \"font-size\": \"32px\" }}></i>\r\n        if (filname.endsWith(\"doc\") || filname.endsWith(\"docx\")) return <i class=\"fa fa-file-word-o text-primary\" style={{ \"font-size\": \"32px\" }}></i>\r\n        if (filname.endsWith(\"xls\") || filname.endsWith(\"xlsx\")) return <i class=\"fa fa-file-excel-o text-success\" style={{ \"font-size\": \"32px\" }}></i>\r\n        if (filname.endsWith(\"zip\") || filname.endsWith(\"rar\")) return <i class=\"fa fa-file-zip-o text-info\" style={{ \"font-size\": \"32px\" }}></i>\r\n        return <i class=\"fa fa-file-text-o\" style={{ \"font-size\": \"32px\" }}></i>\r\n    }\r\n\r\n    const renderSampleFormTable = (tabledata) => {\r\n        var mytable = <div className=\"row p-2\" >\r\n\r\n            {tabledata.map(apprec => <div className=\"col-12 col-md-4 mb-4 mt-1  filterable \" key={apprec.id} style={{ \"font-family\": \"Inter\" }}>\r\n\r\n                <div className=\"rounded-3 p-3 bg-light  rounded-4  overflow-auto\">\r\n                    <div>\r\n                        <div className=\"row align-bottom d-flex align-items-end text-secondary mt-2\">\r\n                            <div className=\"col-10  align-bottom\">\r\n                                {isEmpty(apprec.fileName) == false &&\r\n                                    <a className=\"text-decoration-none\" href={'getsampleform?id=' + apprec.id} download={apprec.fileName}>\r\n                                        {getFileIcon(apprec.fileName)} {apprec.fileName}\r\n                                    </a>\r\n                                }\r\n\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"fw-bold text-justify mt-2\" style={{ \"font-size\": \"16px\", \"color\": \"#78829d\", \"text-align\": \"justify\" }}>\r\n                            <div className=\"col-12\" > <div className=\"mt-1\" dangerouslySetInnerHTML={{ __html: apprec.caption }} /></div>\r\n                        </div>\r\n\r\n                        <div className=\" text-start mt-2\" style={{ \"font-size\": \"15px\" }}>\r\n                            <a href={apprec.url} target=\"_blank\" className=\"text-decoration-none\"> {apprec.url} </a>\r\n                        </div>\r\n\r\n                        <div className=\"row  text-secondary mt-3\">\r\n                            <div className=\"col-10  \">\r\n                                <img className=\"rounded-circle\" style={{ width: \"32px\", height: \"32px\" }} src={\"/getuserpic?user=\" + apprec.userName} />\r\n                                <span style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#4b5675\" }}>  {apprec.userName}</span> <span style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#99a1b7\" }}>{apprec.postDate}</span>\r\n                            </div>\r\n                            <div className=\"col-2 text-end  \">\r\n                                {apprec.id}\r\n                            </div>\r\n                        </div>\r\n\r\n                    </div>\r\n                </div>\r\n            </div>)}\r\n        </div>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n    const renderMakaleTable = (tabledata) => {\r\n\r\n        var mylist = tabledata.filter(x => isEmpty(x.roles) || x.roles.split(',').some(x => role.includes(x)));\r\n\r\n        var mytable = <div className=\"row\" >\r\n\r\n            {mylist.map(apprec => <div className=\"col-12 col-md-6 mb-4 mt-1  filterable\" key={apprec.id} style={{ \"font-family\": \"Inter\" }}>\r\n\r\n                <div className=\"rounded-3 p-3\">\r\n                    <div>\r\n                        <div className=\" text-start mt-1 fw-bold pb-2\" style={{ \"font-size\": \"16px\", \"font-weight\": \"600\", \"color\": \"#071437\" }}>{apprec.title}</div>\r\n                        <div className=\" text-justify\" style={{ \"font-size\": \"15px\", \"color\": \"#78829d\", \"text-align\": \"justify\" }}>\r\n                            <div className=\"col-12\" > <div className=\"mt-1\" dangerouslySetInnerHTML={{ __html: apprec.text }} /></div>\r\n                        </div>\r\n                        <div className=\"row align-bottom d-flex align-items-end text-secondary mt-3\">\r\n                            <div className=\"col-10  align-bottom\">\r\n                                <img className=\"rounded-circle\" style={{ width: \"32px\", height: \"32px\" }} src={\"/getuserpic?user=\" + apprec.userName} />\r\n                                <span style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#4b5675\" }}>  {apprec.userName}</span> <span style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#99a1b7\" }}>{apprec.sendDate}</span> {apprec.id}\r\n                            </div>\r\n                            <div className=\"col-2 text-end  align-bottom\">\r\n                                {apprec.id}\r\n                            </div>\r\n                        </div>\r\n\r\n                    </div>\r\n                </div>\r\n            </div>)}\r\n        </div>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var userTypes = userData.userType.split(\",\");\r\n        var mylist = tabledata.filter(x => isEmpty(x.roles) || x.roles.split(',').some(y => userTypes.includes(y)));\r\n        var mytable = <div className=\"row\" >\r\n            {mylist.map(apprec =>\r\n                <div className=\"col-12 col-md-4 mb-4 mt-1 filterable\" key={apprec.id} style={{ \"font-family\": \"Inter\" }}>\r\n                    <div className=\"rounded-3 p-3\">\r\n                        {isEmpty(apprec.url) == false &&\r\n                            <a className=\"text-decoration-none text-secondary\" href=\"#\" style={{ position: \"relative\", display: \"grid\" }}\r\n                                onClick={() => props.changeComponent(<HelpVideoPanel changeComponent={props.changeComponent}\r\n                                    helpRec={apprec} />)}>\r\n                                <img className=\"w-100 rounded-3 \" src={\"https://img.youtube.com/vi/\" + apprec.url.substring(apprec.url.lastIndexOf(\"/\") + 1) + \"/mqdefault.jpg\"} />\r\n\r\n                                <i class=\"fa fa-youtube-play\" style={{ position: \"absolute\", \"z-index\": 2, top: \"40%\", left: \"40%\", \"opacity\": 0.8, \"font-size\": \"48px\" }}></i>\r\n                            </a>\r\n                        }\r\n                        <div>\r\n                            <div className=\" text-start mt-1 fw-bold\" style={{ \"font-size\": \"16px\", \"font-weight\": \"600\", \"color\": \"#071437\" }}>{apprec.title}</div>\r\n                            <div className=\" fw-bold text-start \" style={{ \"font-size\": \"15px\", \"font-weight\": \"500\", \"color\": \"#78829d\" }}>\r\n                                {apprec.caption}\r\n                            </div>\r\n                            <div className=\"row mt-2 align-bottom d-flex align-items-end text-secondary\">\r\n                                <div className=\"col-8  align-bottom\">\r\n                                    <img className=\"rounded-circle\" style={{ width: \"32px\", height: \"32px\" }} src={\"/getuserpic?user=\" + apprec.userName} />\r\n                                    <span style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#4b5675\" }}> {apprec.userName} </span> <span style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#99a1b7\" }}> {apprec.postDate}</span> {apprec.id}\r\n                                </div>\r\n                                <div className=\"col-4 text-end\">\r\n                                    {isEmpty(apprec.fileName) == false &&\r\n                                        <a className=\"text-decoration-none align-middle btn-sm btn btn-primary\" href={'gethelpfile?id=' + apprec.id} download={apprec.fileName}> Ek Dosya</a>\r\n                                    }\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            )}\r\n        </div>\r\n\r\n\r\n\r\n        return (mytable);\r\n    }\r\n\r\n    var helplistTable = <div class=\"spinner-border  \" ></div>;\r\n    var sampleformTable = <div class=\"spinner-border  \" ></div>;\r\n    var makalelistTable = <div class=\"spinner-border  \" ></div>;\r\n\r\n    if (listData != null) {\r\n        helplistTable = renderTable(listData);\r\n    }\r\n    if (makaleList != null) {\r\n        makalelistTable = renderMakaleTable(makaleList);\r\n    }\r\n\r\n    if (formList != null) {\r\n        sampleformTable = renderSampleFormTable(formList);\r\n    }\r\n\r\n\r\n    return (\r\n        <div className=\"mt-2 rounded bg-light p-2 rounded-3 \" style={{ \"font-family\": \"Inter\" }}>\r\n            <div className=\"mb-3\" style={{ \"font-size\": 18, \"font-weight\": \"600\", \"color\": \"#252f4a\" }}>Yardım Paneli</div>\r\n            <div className=\"m-1 rounded-3 border   bg-white shadow-sm\" >\r\n\r\n                <div className=\"row  align-middle d-flex align-items-center \" >\r\n                    <div className=\"col-12 col-md-1 \"></div>\r\n                    <div className=\"col-12 col-md-7 pt-5 pb-4\">\r\n                        <div className=\"align-middle ms-1 me-5\" style={{ \"font-size\": 23, \"font-weight\": \"600\", \"color\": \"#252f4a\" }}>\r\n                            Size Nasıl Yardımcı Olabiliriz ?\r\n\r\n                            <div className=\"row border rounded-3 ms-1 mt-4 p-1 d-flex align-items-center\" >\r\n                                <div className=\"col-1 d-flex align-items-center\"><span className='fa fa-circle-o  text-primary' style={{ \"font-size\": 16 }}> </span></div>\r\n                                <div className=\"col-10 \">\r\n                                    <input type=\"text\" className=\"form-control form-control-sm border-0 shadow-none\" id=\"ara\" defaultValue=\"\" placeholder=\"\" name=\"ara\" onKeyUp={filterTable} />\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"col-12 col-md-4 text-center\">\r\n                        <img src={require('../Header/textlogo.png').default} style={{ \"max-width\": \"auto\", \"max-height\": \"128px\", \"object-fit\": \"cover\" }} />\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row  ms-5 me-5 mb-3 rounded-3  bg-light \" >\r\n\r\n                    <div className=\"col-12 p-2\">\r\n                        <a className=\"btn text-start  btn-outline-primary text-decoration-none me-1  border-0 rounded-2 p-2 ps-3 pe-3\" style={{ \"font-size\": 14, \"font-weight\": \"600\" }} href=\"#makalelerdiv\">\r\n                            MAKALELER\r\n                        </a>\r\n                        <a className=\"btn  text-start btn-outline-primary text-decoration-none me-1  border-0 rounded-2 p-2 ps-3 pe-3\" style={{ \"font-size\": 14, \"font-weight\": \"600\" }} href=\"#videolardiv\">\r\n                            VİDEOLAR\r\n                        </a>\r\n                        <a className=\"btn  text-start  btn-outline-primary text-decoration-none me-1  border-0 rounded-2 p-2 ps-3 pe-3\" style={{ \"font-size\": 14, \"font-weight\": \"600\" }} href=\"#formlardiv\">\r\n                            ÖRNEK FORMLAR\r\n                        </a>\r\n                        <a className=\"btn text-start  btn-outline-primary text-decoration-none me-1  border-0 rounded-2 p-2 ps-3 pe-3\" style={{ \"font-size\": 14, \"font-weight\": \"600\" }} href=\"https://universe.web.tr/iletisim/\" target=\"_blank\">\r\n                            DESTEK TALEBİ\r\n                        </a>\r\n                    </div>\r\n\r\n\r\n                </div>\r\n            </div>\r\n            <div id=\"myTable\">\r\n                <div className=\"mt-5 bg-white border rounded-3 p-4 shadow-sm border-bottom pb-3\" id=\"makalelerdiv\">\r\n                    <div className=\"mb-2 border-bottom  pb-3\" style={{ \"font-size\": 18, \"font-weight\": \"600\", \"color\": \"#252f4a\" }}>Makaleler</div>\r\n                    {makalelistTable}\r\n                </div>\r\n\r\n                <div className=\"mt-5 bg-white border rounded-3 p-4 shadow-sm\" id=\"videolardiv\">\r\n                    <div className=\"mb-2 border-bottom pb-3\" style={{ \"font-size\": 18, \"font-weight\": \"600\", \"color\": \"#252f4a\" }}>Videolar</div>\r\n                    {helplistTable}\r\n                </div>\r\n\r\n                <div className=\"mt-5 bg-white border rounded-3 p-4 shadow-sm mb-4\" id=\"formlardiv\">\r\n                    <div className=\"mb-2 border-bottom pb-3\" style={{ \"font-size\": 18, \"font-weight\": \"600\", \"color\": \"#252f4a\" }}>Örnek Formlar</div>\r\n                    {sampleformTable}\r\n                </div>\r\n            </div>\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { showConfirmMessage, showErrorMessage, showSuccessMessage, useGlobalState } from '../GlobalState.js';\r\nimport { ajaxFail, removeTurkcLow } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\n\r\nimport axios from \"axios\";\r\n\r\nexport default function FileSettingPanel(props) {\r\n    var postdata = {};\r\n    postdata[\"FileType\"] = \"\";\r\n    const [listData, setListData] = useState([]);\r\n    const [fileGurups, setFileGrupList] = useState([]);\r\n    const [typeOptions, setTypeOptions] = useState([]);\r\n    var multiselectRef = React.createRef();\r\n    var multiselectRef2 = React.createRef();\r\n    var sortField = null;\r\n    const [role, setrol] = useGlobalState('role');\r\n    const [roles, setRoles] = useState([]);\r\n    const multiselectRefNewRole = React.createRef();\r\n\r\n\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const update = (rec) => {\r\n        fetch(\"updatesablonfile\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    showSuccessMessage(\"Guncelleme Başarılı\")\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const sil = (rec) => {\r\n        showConfirmMessage(rec.id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removesablonfile\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(rec.id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }));\r\n\r\n    }\r\n\r\n    const onSelect1 = (selectedList, selectedItem) => {\r\n        postdata[\"BasvuruTipi\"] = multiselectRef.current.getSelectedItems().join(\", \")\r\n    }\r\n    const onRemove1 = (selectedList, removedItem) => {\r\n        postdata[\"BasvuruTipi\"] = multiselectRef.current.getSelectedItems().join(\", \")\r\n    }\r\n    const onSelect2 = (selectedList, selectedItem) => {\r\n        postdata[\"fileType\"] = selectedList.join(\", \")\r\n    }\r\n    const onRemove2 = (selectedList, removedItem) => {\r\n        postdata[\"fileType\"] = selectedList.join(\", \")\r\n    }\r\n\r\n\r\n    const getAppTypes = () => {\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    var opt = [];\r\n                    value = value.filter(x => x.isadimi != true);\r\n                    for (var x of value) {\r\n                        opt.push(x.name)\r\n                    }\r\n                    setTypeOptions(opt);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const fetchFileList = () => {\r\n        fetch(\"sablonfilenamelist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"table-responsive mainpagescroll\" style={{ \"height\": \"85vh\" }}>\r\n            <table className='table table-vdstriped table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light \">\r\n                    <tr>\r\n                        <th width=\"3%\">id</th>\r\n                        <th width=\"30%\">Açıklama</th>\r\n                        <th width=\"25%\">Başvuru Türü</th>\r\n                        <th width=\"20%\">Dosya İsmi</th>\r\n                        <th width=\"20%\">Tarih</th>\r\n                        <th width=\"2%\"></th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n                    {tabledata.map(apprec =>\r\n                        <tr key={apprec.id}>\r\n                            <td>{apprec.id}</td>\r\n                            <td>\r\n                                \r\n                                <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Açıklama\" name=\"caption\" defaultValue={apprec.caption} onChange={(e) => updateRecord(apprec, e)}  />\r\n\r\n                            </td>\r\n                            <td>\r\n                                <Multiselect className=\"text-dark form-select-sm m-0 p-0 w-100\"\r\n                                    options={typeOptions}\r\n                                    emptyRecordMsg=\"Başka kayıt yok\"\r\n                                    isObject={false}\r\n                                    readonly\r\n                                    selectedValues={apprec.basvuruTipi != null && apprec.basvuruTipi.length > 0 ? apprec.basvuruTipi.split(',') : []}\r\n                                    onSelect={(selectedList, removedItem) => { apprec.basvuruTipi = selectedList.length == 0 ? null : selectedList.join() }} \r\n                                    onRemove={(selectedList, removedItem) => { apprec.basvuruTipi = selectedList.length == 0 ? null : selectedList.join() }} \r\n                                    hidePlaceholder={true}\r\n                                />\r\n                                {/*{apprec.basvuruTipi != null && apprec.basvuruTipi.length > 0 ? apprec.basvuruTipi.split(',') : \"\"}*/}\r\n                            </td>\r\n                            <td>{apprec.fileName}</td>\r\n                            <td>{apprec.tarih}</td>\r\n                            <td>\r\n                                <button onClick={() => sil(apprec)} className=\"btn btn-link btn-sm text-decoration-none\">Sil</button>\r\n                                &nbsp;<button onClick={() => { update(apprec); }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Guncelle</button>\r\n                                &nbsp;<a href={\"./getsablonfile?id=\" + apprec.id} download={apprec.fileName} className=\"text-primary text-decoration-none\">İndir</a>\r\n                            </td>\r\n                        </tr>\r\n                    )}\r\n                    <tr className=\"bg-white\">\r\n                        <td></td>\r\n                        <td>\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"caption\" placeholder=\"Açıklama\" name=\"caption\" onChange={handleInputChange} />\r\n                        </td>\r\n                        <td >\r\n\r\n                            <Multiselect className=\"text-dark form-select-sm m-0 p-0\"\r\n                                options={typeOptions}\r\n                                emptyRecordMsg=\"Başka Başvuru Tipi Yok\"\r\n                                isObject={false}\r\n                                ref={multiselectRef2}\r\n                               // onSelect={onSelect2} \r\n                              //  onRemove={onRemove2} \r\n                                hidePlaceholder={true}\r\n\r\n                            />\r\n                        </td>\r\n                        <td >\r\n                        </td>\r\n                        <td>\r\n                        </td>\r\n\r\n                        <td>\r\n                            <button className=\"btn btn-sm fw-bold p-1 ps-2 pe-2 me-2\"\r\n                                style={{ \"background-color\": \"#E1F0FF\", \"color\": \"#36A4FF\" }} onClick={() => { document.getElementById(\"selectedsablonFile\").click(); }} > <i class=\"fa fa-plus\" style={{ \"font-size\": \"18px\" }}></i>\r\n                            </button>\r\n                            <input type=\"file\" id=\"selectedsablonFile\" style={{ \"display\": \"none\" }} accept=\"\" onChange={(e) => handleSelectedFile(e)} />\r\n                        </td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    const SendFiles = (file) => {\r\n\r\n        var formData = new FormData();\r\n        formData.append(\"dosya\", file);\r\n        formData.append(\"fileName\", file.name);\r\n        formData.append(\"caption\", document.getElementById(\"caption\").value);\r\n        formData.append(\"basvuruTipi\", multiselectRef2.current.getSelectedItems().join(\", \"));\r\n        axios.post(\r\n            \"submitsablonfile\",\r\n            formData,\r\n            {\r\n                headers: { \"Content-type\": \"multipart/form-data\", },\r\n            }\r\n        ).then(res => {\r\n            document.getElementById(\"caption\").value = \"\";\r\n            multiselectRef2.current.resetSelectedValues();\r\n            fetchFileList();\r\n\r\n\r\n        })\r\n            .catch(err => { showErrorMessage(err); })\r\n    }\r\n\r\n\r\n\r\n    const handleSelectedFile = (event) => {\r\n        if (event.target.files[0] != null) {\r\n            SendFiles(event.target.files[0]);\r\n        }\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n    useEffect(() => {\r\n        fetchFileList();\r\n        getAppTypes();\r\n    }, [])\r\n\r\n\r\n    var listTable = renderTable(listData);\r\n\r\n    return (\r\n        <div >\r\n            <h5>Şablon Dosyalar</h5>\r\n            <div className=\"row\">\r\n                <div className=\"col-12\">\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { ajaxFail, showConfirmMessage, showSuccessMessage } from '../GlobalState.js';\r\n\r\nexport default function FileGroupsSetting(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState([]);\r\n    const multiselectRef = React.createRef();\r\n\r\n    const multiselectRefNew = React.createRef();\r\n\r\n\r\n\r\n\r\n    const fetchFileGroupList = () => {\r\n        fetch(\"filegroupslist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"table-responsive mainpagescroll\" style={{ \"height\": \"85vh\" }}>\r\n            <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light\" >\r\n                    <tr>\r\n                         <th width=\"35px\">ID</th>\r\n                        <th>Grup Adı</th>\r\n                        <th>Sıra</th>\r\n                        <th></th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n                    {tabledata.map(apprec =>\r\n                        <tr key={apprec.id}>\r\n                             <td>{apprec.id}</td>\r\n                            <td><input type=\"text\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} placeholder=\"Dosya Grubu\" name=\"name\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.name} /></td>\r\n                            <td><input type=\"number\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} placeholder=\"Sıra\" name=\"sira\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.sira} /></td>\r\n\r\n                            <td className=\"text-end\">  <button onClick={() => { savedenetim(apprec); }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Guncelle</button>\r\n                                &nbsp;&nbsp;\r\n                                <button onClick={() => { sil(apprec.id); }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button>\r\n                            </td>\r\n                        </tr>\r\n                    )}\r\n                    <tr className=\"bg-white\">\r\n                        <td></td>\r\n                        <td>\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" placeholder=\"Dosya Grubu\" name=\"name\" onChange={handleInputChange} />\r\n                        </td>\r\n                        <td>\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"sira\" placeholder=\"Sıra\" name=\"sira\" onChange={handleInputChange} />\r\n                        </td>\r\n\r\n                        <td className=\"text-end\">  <button onClick={() => savedenetim(null)} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">Ekle</button>\r\n                        </td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n    const sil = (rec) => {\r\n        showConfirmMessage(rec.id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removefilegroup\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(rec)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }));\r\n\r\n    }\r\n\r\n\r\n\r\n    const savedenetim = (rec) => {\r\n        var r = rec;\r\n        if (r == null)\r\n            r = postdata;\r\n\r\n        fetch(\"savefilegroup\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(r)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                if (rec != null) {\r\n                    showSuccessMessage(\"Güncelleme Başarılı. \")\r\n                }\r\n                else {\r\n                    document.getElementById(\"name\").value = \"\";\r\n                    document.getElementById(\"sira\").value = \"\";\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n\r\n        if (target.name == \"deadline\" && value == '')\r\n            postdata[target.name] = null;\r\n\r\n    }\r\n\r\n\r\n    useEffect(() => {\r\n        fetchFileGroupList();\r\n    }, [])\r\n\r\n\r\n    var listTable =renderTable(listData);\r\n\r\n    return (\r\n        <div className=\"border  rounded border-light\">\r\n\r\n            <h5>Dosya Grupları</h5>\r\n            <div className=\"row\">\r\n                <div className=\"col-12\">\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\n\r\nexport default function EimzaNameSetting(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState(null);\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n\r\n\r\n\r\n    const removeRecord = (id) => {\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removeeimzaname\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    fetchList();\r\n                }\r\n            }))\r\n    }\r\n\r\n    const gerial = () => {\r\n        var uuid = document.getElementById(\"eimzauuid\");\r\n        if (uuid == null || isEmpty(uuid.value)) {\r\n            showErrorMessage(\"UUID Boş olamaz\");\r\n            return;\r\n        }\r\n\r\n\r\n        fetch(\"rolbackeimza\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(uuid.value)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.text().then(value => {\r\n                    showSuccessMessage(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const submitUpdateRecord = (rec) => {\r\n\r\n        fetch(\"updateeimzaname\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Güncelleme Başarılı\")\r\n            }\r\n        });\r\n    }\r\n    const fetchList = () => {\r\n\r\n        fetch(\"geteimzanamelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const Add = () => {\r\n        fetch(\"addeimzaname\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(document.getElementById(\"name\").value)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                document.getElementById(\"name\").value = \"\";\r\n                fetchList();\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"table-responsive mainpagescroll\" style={{ \"height\": \"85vh\" }}>\r\n                <table className='table table-striped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light\">\r\n                        <tr>\r\n                            <th width=\"50px\">No</th>\r\n                            <th >Eimza Süreç İsmi</th>\r\n                            <th width=\"190px\">Kayıt Tarihi</th>\r\n                            <th width=\"130px\">Ekleyen</th>\r\n                            <th width=\"100px\"></th>\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody id=\"myTable\">\r\n                        {tabledata.map(apprec =>\r\n                            <tr key={apprec.id}>\r\n                                <td>{apprec.id}</td>\r\n                                <td>\r\n                                    <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"\" name=\"name\" defaultValue={apprec.name} onChange={(e) => updateRecord(apprec, e)} />\r\n                                </td>\r\n                                <td>{apprec.tarih}</td>\r\n                                <td>{apprec.ekleyen}</td>\r\n\r\n                                <td>\r\n                                    <button onClick={() => submitUpdateRecord(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Güncelle</button>&nbsp;\r\n                                    <button onClick={() => removeRecord(apprec.id)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button>\r\n                                </td>\r\n                            </tr>\r\n                        )}\r\n                        <tr className=\"bg-white\">\r\n                            <td></td>\r\n                            <td>\r\n                                <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" placeholder=\"Yeni Süreç İsmi\" name=\"message\" defaultValue=\"\" />\r\n                            </td>\r\n\r\n                            <td></td>\r\n                            <td></td>\r\n                            <td>  <button onClick={Add} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">Ekle</button></td>\r\n                        </tr>\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div className=\"  rounded \">\r\n\r\n            <h5 className=\"ps-1\">Eimza Dosya Geri Yükleme</h5>\r\n            <div className=\"row mb-4 \">\r\n                <div className=\"col-9 bg-light p-2\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"UUID\" name=\"eimzauuid\" id=\"eimzauuid\" defaultValue=\"\" />\r\n                </div>\r\n                <div className=\"col-3  bg-light p-2 text-end\">\r\n                    <button onClick={gerial} className=\"btn btn-sm btn-primary mb-2 rounded-3  \">Geri Al</button>\r\n                </div>\r\n            </div>\r\n\r\n            <h5 className=\"ps-1\">Eimza Süreç İsimleri</h5>\r\n            <div className=\"row\">\r\n                <div className=\"col-12\">\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { ajaxFail, showConfirmMessage, showSuccessMessage } from '../GlobalState.js';\r\n\r\nexport default function AppTypeGroupSetting(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState([]);\r\n    const multiselectRef = React.createRef();\r\n\r\n    const multiselectRefNew = React.createRef();\r\n\r\n\r\n\r\n\r\n    const fetchList = () => {\r\n        fetch(\"apptypegroupslist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"table-responsive table-sm mainpagescroll\"  style={{ \"height\": \"85vh\" }}>\r\n                <table className='table table-vdstriped  ' aria-labelledby=\"tabelLabel\">\r\n                <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light \">\r\n                    <tr>\r\n                        <th width=\"35px\">ID</th>\r\n                        <th>Grup Adı</th>\r\n                        <th>Sıra</th>\r\n                        <th></th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n                    {tabledata.map(apprec =>\r\n                        <tr key={apprec.id}>\r\n                            <td>{apprec.id}</td>\r\n                            <td><input type=\"text\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} placeholder=\"Dosya Grubu\" name=\"name\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.name} /></td>\r\n                            <td><input type=\"number\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} placeholder=\"Sıra\" name=\"sira\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.sira} /></td>\r\n\r\n                            <td className=\"text-end\">  <button onClick={() => { save(apprec); }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Guncelle</button>\r\n                                &nbsp;&nbsp;\r\n                                <button onClick={() => { sil(apprec.id); }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button>\r\n                            </td>\r\n                        </tr>\r\n                    )}\r\n                    <tr className=\"bg-white\">\r\n                        <td></td>\r\n                        <td>\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" placeholder=\"Dosya Grubu\" name=\"name\" onChange={handleInputChange} />\r\n                        </td>\r\n                        <td>\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"sira\" placeholder=\"Sıra\" name=\"sira\" onChange={handleInputChange} />\r\n                        </td>\r\n\r\n                        <td className=\"text-end\">  <button onClick={() => save(null)} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">Ekle</button>\r\n                        </td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n    const sil = (rec) => {\r\n        showConfirmMessage(rec.id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removeapptypegroup\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(rec)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }));\r\n\r\n    }\r\n\r\n\r\n\r\n    const save = (rec) => {\r\n        var r = rec;\r\n        if (r == null)\r\n            r = postdata;\r\n\r\n        fetch(\"saveapptypegroup\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(r)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                if (rec != null) {\r\n                    showSuccessMessage(\"Güncelleme Başarılı. \")\r\n                }\r\n                else {\r\n                    document.getElementById(\"name\").value = \"\";\r\n                    document.getElementById(\"sira\").value = \"\";\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n\r\n        if (target.name == \"deadline\" && value == '')\r\n            postdata[target.name] = null;\r\n\r\n    }\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n    }, [])\r\n\r\n\r\n    var listTable = renderTable(listData);\r\n\r\n    return (\r\n        <div className=\"border  rounded border-light\">\r\n            <h5>Başvuru Tipi Grupları</h5>\r\n            <div className=\"row\">\r\n                <div className=\"col-12\">\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, showConfirmMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport ReactQuill from 'react-quill';\r\nimport 'react-quill/dist/quill.snow.css';\r\n\r\nexport default function MakaleSetting(props) {\r\n    var postdata =\"\";\r\n    const [listData, setListData] = useState(null);\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const removeRecord = (id) => {\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removemakale\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    fetchList();\r\n                }\r\n            }));\r\n    }\r\n\r\n\r\n\r\n    const submitUpdateRecord = (rec) => {\r\n\r\n        fetch(\"updatemakale\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Güncelleme Başarılı\")\r\n            }\r\n        });\r\n    }\r\n    const fetchList = () => {\r\n\r\n        fetch(\"getmakalelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const Add = () => {\r\n        fetch(\"addmakale\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({ \"title\": document.getElementById(\"title\").value, \"text\": postdata })\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n             \r\n                document.getElementById(\"title\").value = \"\";\r\n                fetchList();\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n\r\n            <table className='table table-striped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                <thead>\r\n                    <tr>\r\n                        <th width=\"2%\">No</th>\r\n                        <th width=\"18%\">Başlık</th>\r\n                        <th width=\"50%\">Açıklama</th>\r\n                        <th width=\"10%\">Kayıt Tarihi</th>\r\n                        <th width=\"10%\">Ekleyen</th>\r\n                        <th width=\"10%\"></th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n                    {tabledata.map(apprec =>\r\n                        <tr key={apprec.id}>\r\n                            <td>{apprec.id}</td>\r\n                            <td>\r\n\r\n                                <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"\" name=\"title\" defaultValue={apprec.title} onChange={(e) => updateRecord(apprec, e)} />\r\n                            </td>\r\n                            <td>\r\n                                <td style={{ \"resize\": \"vertical\", \"overflow-y\": \"scroll\", \"height\": \"120px\", \"min-width\": \"500px\" }} className=\"p-2\">\r\n                                    <ReactQuill className=\"h-100\" theme=\"snow\" onChange={(e) => apprec.text = e} defaultValue={apprec.text} />\r\n                                </td>\r\n                            {/*    <textarea className=\"form-control form-control-sm\" placeholder=\"\" name=\"text\" defaultValue={apprec.text} onChange={(e) => updateRecord(apprec, e)} />*/}\r\n                            </td>\r\n\r\n                            <td>{apprec.sendDate}</td>\r\n                            <td>{apprec.userName}</td>\r\n\r\n                            <td className=\"text-end\">\r\n                                <button onClick={() => submitUpdateRecord(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Güncelle</button>&nbsp;\r\n                                <button onClick={() => removeRecord(apprec.id)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button>\r\n                            </td>\r\n                        </tr>\r\n                    )}\r\n                    <tr className=\"bg-white\">\r\n                        <td></td>\r\n                        <td>\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"Başlık\" id=\"title\" name=\"title\" defaultValue=\"\" />\r\n                        </td>\r\n                        <td>\r\n                            <ReactQuill className=\"\" theme=\"snow\" value=\"\" onChange={(e) => postdata = e} />\r\n                           \r\n                        </td>\r\n\r\n                        <td></td>\r\n                        <td></td>\r\n\r\n                        <td className=\"text-end\">  <button onClick={Add} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">Ekle</button></td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div className=\"  rounded \">\r\n\r\n            <h5 className=\"ps-1\">Duyurular</h5>\r\n            <div className=\"row\">\r\n                <div className=\"col-12\">\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { showConfirmMessage, showErrorMessage, showSuccessMessage, useGlobalState } from '../GlobalState.js';\r\nimport axios from \"axios\";\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\n\r\nexport default function SampleFormSetting(props) {\r\n    var postdata = {};\r\n    postdata[\"FileType\"] = \"pdf\";\r\n    var selectedRecord = null;\r\n    const [listData, setListData] = useState(null);\r\n    const [typeOptions, setTypeOptions] = useState([]);\r\n    var multiselectRef = React.createRef();\r\n    const [role, setRole] = useGlobalState('role');\r\n\r\n    useEffect(() => {\r\n        getHelpList();\r\n        initModal();\r\n    }, [])\r\n\r\n    const sil = (rec) => {\r\n        showConfirmMessage(rec.id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removesampleform\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(rec.id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }));\r\n    }\r\n\r\n\r\n    const SendFiles = (event) => {\r\n        document.getElementById(\"fileuploadsp\").hidden = false;\r\n\r\n\r\n\r\n        var selectedFile = { file: event.target.files[0] }\r\n        var formData = new FormData();\r\n        formData.append(\"file\", selectedFile.file);\r\n        formData.append(\"caption\", selectedFile.file.name);\r\n        formData.append(\"appid\", selectedRecord.id);\r\n        axios.post(\"submitsampleform\",formData,\r\n            {\r\n                headers: {\r\n                    \"Content-type\": \"multipart/form-data\",\r\n                },\r\n            }\r\n        ).then(res => {\r\n            document.getElementById(\"fileuploadsp\").hidden = true;\r\n            var locModal = document.getElementById('myModal');\r\n            locModal.style.display = \"none\";\r\n            locModal.classList.add(\"hide\");\r\n            setListData(res.data);\r\n        })\r\n            .catch(err => { showErrorMessage(err); })\r\n    }\r\n\r\n\r\n    const initModal = () => {\r\n        var locModal = document.getElementById('myModal');\r\n        var btnclosedown = document.getElementById('downclosemodal');\r\n        btnclosedown.addEventListener('click', (e) => {\r\n            locModal.style.display = \"none\";\r\n            locModal.classList.add(\"hide\");\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const onSelect = (selectedList, selectedItem) => {\r\n        postdata[\"roles\"] = multiselectRef.current.getSelectedItems().map(c => c.appType).join(\", \")\r\n    }\r\n    const onRemove = (selectedList, removedItem) => {\r\n        postdata[\"roles\"] = multiselectRef.current.getSelectedItems().map(c => c.appType).join(\", \")\r\n    }\r\n\r\n\r\n\r\n\r\n    const getHelpList = () => {\r\n        fetch(\"getsampleformlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const updatehelplist = (rec) => {\r\n        fetch(\"updatesampleform\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value)\r\n                    showSuccessMessage(\"Güncelleme Başarılı\")\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const Add = () => {\r\n        fetch(\"addsampleform\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                document.getElementById(\"caption\").value = \"\";\r\n                document.getElementById(\"url\").value = \"\";\r\n                getHelpList();\r\n            }\r\n        });\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n    var controlPanel = \"\";\r\n\r\n\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n\r\n            <table className='table table-vdstriped table-sm text-start' aria-labelledby=\"tabelLabel\">\r\n                <thead className=\"text-start\">\r\n                    <tr>\r\n                        <th width=\"3%\" className=\"text-start\">No</th>\r\n                        <th width=\"30%\" className=\"text-start\">Açıklama</th>\r\n                        <th width=\"27%\" className=\"text-start\">Link</th>\r\n                        <th width=\"10%\" className=\"text-start\">Dosya</th>\r\n                        <th width=\"10%\" className=\"text-start\">Ekleyen</th>\r\n                        <th width=\"10%\" className=\"text-start\">Kayıt Tarihi</th>\r\n                        <th width=\"10%\" className=\"text-end\"></th>\r\n                    </tr>\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n                    {tabledata.map(apprec =>\r\n                        <tr key={apprec.id}>\r\n                            <td>{apprec.id}</td>\r\n                            <td>\r\n                                {apprec.caption}\r\n\r\n                            </td>\r\n                            <td>\r\n                                <a href={apprec.url} target=\"_blank\" > {apprec.url} </a>\r\n                            </td>\r\n\r\n                            <td><a href={'getsampleform?id=' + apprec.id} download={apprec.fileName}> {apprec.fileName} </a></td>\r\n                            <td>{apprec.userName}</td>\r\n                            <td>{apprec.postDate}</td>\r\n                            <td>{role.indexOf(UserPermConstants.Yonetmelik_Yukleme) != -1 && <>\r\n                                <button onClick={() => sil(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button>&nbsp;&nbsp;&nbsp;\r\n                                <button onClick={() => {\r\n                                    document.getElementById('myModal').style.display = \"block\";\r\n                                    document.getElementById('myModal').classList.remove(\"hide\");\r\n                                    selectedRecord = apprec;\r\n                                }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">\r\n                                    Dosya Ekle</button></>}</td>\r\n                        </tr>\r\n                    )}\r\n                    {role.indexOf(UserPermConstants.Yonetmelik_Yukleme) != -1 &&\r\n                        <tr className=\"bg-white\">\r\n                            <td></td>\r\n                            <td>\r\n                                <input type=\"text\" className=\"form-control form-control-sm\" id=\"caption\" placeholder=\"Açıklama\" name=\"caption\" onChange={handleInputChange} />\r\n                            </td>\r\n                            <td>\r\n                                <input type=\"text\" className=\"form-control form-control-sm\" id=\"url\" placeholder=\"Link\" name=\"url\" onChange={handleInputChange} />\r\n                            </td>\r\n                            <td></td>\r\n                            <td></td>\r\n                            <td></td>\r\n                            <td>  <button onClick={Add} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">Ekle</button></td>\r\n                        </tr>}\r\n                </tbody>\r\n            </table>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n    var listTable = <div class=\"spinner-border  \" ></div>;\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n\r\n    return (\r\n        <div className=\" mt-2 rounded\">\r\n\r\n            <h5>Örnek Formlar</h5>\r\n            <div className=\"row\">\r\n                <div className=\"col-12 text-center\">\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n            <div className=\"modal\" id=\"myModal\" >\r\n                <div class=\"modal-dialog modal  modal-dialog-centered \">\r\n                    <div class=\"modal-content\" >\r\n                        <div class=\"modal-body\" id=\"mymodalbody\" >\r\n\r\n                            <div className=\"row\">\r\n                                <div className=\"col-10\">\r\n\r\n                                    <label for=\"formFile\" class=\"form-label\">Dosya Yukle</label>\r\n                                    <br />\r\n                                    <input class=\"form-control form-control-sm mt-2\" type=\"file\" id=\"formFile\" onChange={(e) => SendFiles(e)} />\r\n                                </div>\r\n\r\n                                <div className=\"col-2 text-end\">\r\n                                    <div class=\"spinner-border  spinner-border-sm\" hidden id=\"fileuploadsp\" ></div>\r\n                                </div>\r\n\r\n\r\n                            </div>\r\n\r\n                        </div>\r\n                        <div class=\"modal-footer\">\r\n                            <button type=\"button\" class=\"btn btn-danger\" id=\"downclosemodal\" data-bs-dismiss=\"modal\">Close</button>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { isEmpty, useGlobalState } from '../GlobalState.js';\r\nimport axios from \"axios\";\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport HelpVideoPanel from './HelpVideoPanel.js';\r\nimport $ from 'jquery';\r\nimport { logout, passFilter, removeTurkcLow } from '../GlobalState.js';\r\n\r\nexport default function MevzuatPanel(props) {\r\n    var postdata = {};\r\n    postdata[\"FileType\"] = \"pdf\";\r\n    const [listData, setListData] = useState(null);\r\n\r\n\r\n    useEffect(() => {\r\n\r\n        getHelpList();\r\n\r\n    }, [])\r\n\r\n\r\n    const filterTable = (event) => {\r\n        var textbox = document.getElementById(\"ara\")\r\n        if (textbox == null)\r\n            return;\r\n        var value = textbox.value.toLowerCase();\r\n\r\n        $(\"#myTable div.filterable\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n            var ret = true;\r\n            var t1 = removeTurkcLow($(this).text());\r\n            for (let index = 0; index < keywords.length; ++index) {\r\n                var t2 = removeTurkcLow(keywords[index]);\r\n                if (t1.indexOf(t2) == -1)\r\n                    return $(this).toggle(false);\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const getHelpList = () => {\r\n        fetch(\"getyonetmenliklist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const getFileIcon = (filname) => {\r\n        if (filname.endsWith(\"pdf\")) return <i class=\"fa fa-file-pdf-o text-danger\" style={{ \"font-size\": \"32px\" }}></i>\r\n        if (filname.endsWith(\"doc\") || filname.endsWith(\"docx\")) return <i class=\"fa fa-file-word-o text-primary\" style={{ \"font-size\": \"32px\" }}></i>\r\n        if (filname.endsWith(\"xls\") || filname.endsWith(\"xlsx\")) return <i class=\"fa fa-file-excel-o text-success\" style={{ \"font-size\": \"32px\" }}></i>\r\n        if (filname.endsWith(\"zip\") || filname.endsWith(\"rar\")) return <i class=\"fa fa-file-zip-o text-info\" style={{ \"font-size\": \"32px\" }}></i>\r\n        return <i class=\"fa fa-file-text-o\" style={{ \"font-size\": \"32px\" }}></i>\r\n    }\r\n\r\n    const renderSampleFormTable = (tabledata) => {\r\n        var mytable = <div className=\"row p-2\" >\r\n\r\n            {tabledata.map(apprec => <div className=\"col-12 col-md-4 mb-4 mt-1  filterable \" key={apprec.id} style={{ \"font-family\": \"Inter\" }}>\r\n\r\n                <div className=\"rounded-3 p-3 bg-light  rounded-4 \">\r\n                    <div>\r\n                        <div className=\"row align-bottom d-flex align-items-end text-secondary mt-2\">\r\n                            <div className=\"col-10  align-bottom\">\r\n                                {isEmpty(apprec.fileName) == false &&\r\n                                    <a className=\"text-decoration-none\" href={'getyonetmenlik?id=' + apprec.id} download={apprec.fileName}>\r\n                                        {getFileIcon(apprec.fileName)} {apprec.fileName}\r\n                                    </a>\r\n                                }\r\n\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"fw-bold text-justify mt-2\" style={{ \"font-size\": \"16px\", \"color\": \"#78829d\", \"text-align\": \"justify\" }}>\r\n                            <div className=\"col-12\" > <div className=\"mt-1\" dangerouslySetInnerHTML={{ __html: apprec.caption }} /></div>\r\n                        </div>\r\n\r\n                        <div className=\" text-start mt-2\" style={{ \"font-size\": \"15px\" }}>\r\n                            <a href={apprec.url} target=\"_blank\" className=\"text-decoration-none\"> {apprec.url} </a>\r\n                        </div>\r\n\r\n                        <div className=\"row  text-secondary mt-3\">\r\n                            <div className=\"col-10  \">\r\n                                <img className=\"rounded-circle\" style={{ width: \"32px\", height: \"32px\" }} src={\"/getuserpic?user=\" + apprec.userName} />\r\n                                <span style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#4b5675\" }}>  {apprec.userName}</span> <span style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#99a1b7\" }}>{apprec.postDate}</span>\r\n                            </div>\r\n                            <div className=\"col-2 text-end  \">\r\n                                {apprec.id}\r\n                            </div>\r\n                        </div>\r\n\r\n                    </div>\r\n                </div>\r\n            </div>)}\r\n        </div>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n  \r\n\r\n\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable = <div className=\"row p-2\" >\r\n\r\n            {tabledata.map(apprec => <div className=\"col-12 col-md-4 mb-4 mt-1  filterable \" key={apprec.id} style={{ \"font-family\": \"Inter\" }}>\r\n\r\n                <div className=\"rounded-3 p-3 bg-light  rounded-4 overflow-auto\">\r\n                    <div>\r\n                        <div className=\"fw-bold text-justify mt-2 \" style={{ \"font-size\": \"16px\", \"color\": \"#78829d\", \"text-align\": \"justify\" }}>\r\n                            <div className=\"col-12\" > <div className=\"mt-1\" dangerouslySetInnerHTML={{ __html: apprec.caption }} /></div>\r\n                        </div>\r\n                        <div className=\"row align-bottom d-flex align-items-end text-secondary mt-2 overflow-auto\">\r\n                            <div className=\"col-10  align-bottom overflow-auto\">\r\n                                {isEmpty(apprec.fileName) == false &&\r\n                                    <a className=\"text-decoration-none\" href={'getyonetmenlik?id=' + apprec.id} download={apprec.fileName}>\r\n                                        {getFileIcon(apprec.fileName)} {apprec.fileName}\r\n                                    </a>\r\n                                }\r\n\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n                        <div className=\" text-start mt-2\" style={{ \"font-size\": \"15px\" }}>\r\n                            <a href={apprec.url} target=\"_blank\" className=\"text-decoration-none\"> {apprec.url} </a>\r\n                        </div>\r\n\r\n                        <div className=\"row  text-secondary mt-3\">\r\n                            <div className=\"col-10  \">\r\n                                <img className=\"rounded-circle\" style={{ width: \"32px\", height: \"32px\" }} src={\"/getuserpic?user=\" + apprec.userName} />\r\n                                <span style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#4b5675\" }}>  {apprec.userName}</span> <span style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#99a1b7\" }}>{apprec.postDate}</span>\r\n                            </div>\r\n                            <div className=\"col-2 text-end  \">\r\n                                {apprec.id}\r\n                            </div>\r\n                        </div>\r\n\r\n                    </div>\r\n                </div>\r\n            </div>)}\r\n        </div>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n    var mevzuatTable = <div class=\"spinner-border  \" ></div>;\r\n    if (listData != null) {\r\n        mevzuatTable = renderTable(listData);\r\n    }\r\n \r\n\r\n\r\n    return (\r\n        <div className=\"mt-2 rounded bg-light p-2 rounded-3 \" style={{ \"font-family\": \"Inter\" }}>\r\n            <div className=\"mb-3\" style={{ \"font-size\": 18, \"font-weight\": \"600\", \"color\": \"#252f4a\" }}>Mevzuat Paneli</div>\r\n            <div className=\"m-1 rounded-3 border   bg-white shadow-sm\" >\r\n\r\n                <div className=\"row  align-middle d-flex align-items-center \" >\r\n                    <div className=\"col-12 col-md-1 \"></div>\r\n                    <div className=\"col-12 col-md-7 pt-5 pb-4\">\r\n                        <div className=\"align-middle ms-1 me-5\" style={{ \"font-size\": 23, \"font-weight\": \"600\", \"color\": \"#252f4a\" }}>\r\n                            Aradığınız Yönetmeliği Hızlıca Bulun\r\n\r\n                            <div className=\"row border rounded-3 ms-1 mt-4 p-1 d-flex align-items-center\" >\r\n                                <div className=\"col-1 d-flex align-items-center\"><span className='fa fa-circle-o  text-primary' style={{ \"font-size\": 16 }}> </span></div>\r\n                                <div className=\"col-10 \">\r\n                                    <input type=\"text\" className=\"form-control form-control-sm border-0 shadow-none\" id=\"ara\" defaultValue=\"\" placeholder=\"\" name=\"ara\" onKeyUp={filterTable} />\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"col-12 col-md-4 text-center\">\r\n                        <img src={require('../Header/textlogo.png').default} style={{ \"max-width\": \"auto\", \"max-height\": \"128px\", \"object-fit\": \"cover\" }} />\r\n                    </div>\r\n                </div>\r\n\r\n            </div>\r\n            <div id=\"myTable\">\r\n                <div className=\"mt-5 bg-white border rounded-3 p-4 shadow-sm mb-4\" id=\"formlardiv\">\r\n                    <div className=\"mb-2 border-bottom pb-3\" style={{ \"font-size\": 18, \"font-weight\": \"600\", \"color\": \"#252f4a\" }}>Mevzuat</div>\r\n                    {mevzuatTable}\r\n                </div>\r\n            </div>\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport Application from \"./Application.js\"\r\nimport { useGlobalState, logout, passFilter, removeTurkcLow, isEmpty, showErrorMessage } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport { userInfo } from 'os';\r\n\r\nexport default function DeletedAppList(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userName, setUserName] = useGlobalState('userName');\r\n    const [applist, setApplist] = useState(null);\r\n\r\n    const [spinnerClass, setSpinnerClass] = useState(\"fa fa-refresh\");\r\n    const [devamstat, setDevamstat] = useState(null);\r\n\r\n    const [surecList, setSurecList] = useState([]);\r\n    const [colnames, setColnames] = useState([\"id\", \"mahalle\", \"ada\", \"basvuruTipi\", \"basvuruDurumu\", \"basvuruYapan\", \"basvuruTarihi\", \"removedby\", \"removeComment\"]);\r\n    const [sortDirection, setSortDirection] = useState({});\r\n\r\n\r\n    var sortField = null;\r\n\r\n\r\n    useEffect(() => {\r\n       \r\n        fetchSurecList();\r\n    }, []);\r\n\r\n\r\n\r\n    const stopSpinner = () => {\r\n        setSpinnerClass(\"fa fa-refresh\")\r\n    }\r\n\r\n    const startSpinner = () => {\r\n        setSpinnerClass(\"spinner-grow spinner-grow-sm\")\r\n    }\r\n\r\n\r\n\r\n\r\n    const myCompare = (a, b) => {\r\n\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n\r\n        if (sortField == \"basvuruDurumu\") {\r\n            av = getDurumName(av);\r\n            bv = getDurumName(bv);\r\n        }\r\n\r\n        var ret = 1;\r\n        if (sortDirection[sortField] == \"ZA\")\r\n            ret = -1;\r\n\r\n        if (av == null && a.appData != null && a.appData.length > 2) {\r\n            var oa = a.appDataObject[sortField];\r\n            if (oa != null && oa.value != null)\r\n                av = oa.value;\r\n        }\r\n        if (bv == null && b.appData != null && b.appData.length > 2) {\r\n            var ob = b.appDataObject[sortField];\r\n            if (ob != null && ob.value != null)\r\n                bv = ob.value;\r\n        }\r\n        if (av == null && bv != null)\r\n            return -1 * ret;\r\n        if (av != null && bv == null)\r\n            return ret;\r\n\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * ret;\r\n\r\n        if (av < bv) {\r\n            return -1 * ret;\r\n        }\r\n        if (av > bv) {\r\n            return ret;\r\n        }\r\n        return 0;\r\n    }\r\n    const myCompareRev = (a, b) => {\r\n        return -1 * myCompare(a, b)\r\n    }\r\n\r\n\r\n\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == \"ZA\") {\r\n            sortDirection[sortField] = \"AZ\";\r\n        }\r\n        else {\r\n            sortDirection[sortField] = \"ZA\";\r\n        }\r\n\r\n\r\n        var temp = [...applist]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setApplist(temp);\r\n    }\r\n    const getSortedList = (data, temp) => {\r\n        if (data.sort != null && data.sort.length > 0) {\r\n            var sf = data.sort.split(\",\");\r\n            if (sf.length > 0) {\r\n                for (var i = 0; i < sf.length; i++) {\r\n                    if (sf[i][0] == '-') {\r\n                        sortField = sf[i].substring(1);\r\n                        temp.sort(myCompareRev);\r\n                    }\r\n                    else {\r\n                        sortField = sf[i];\r\n                        temp.sort(myCompare);\r\n                    }\r\n                }\r\n            }\r\n\r\n        }\r\n        return temp;\r\n    }\r\n\r\n\r\n\r\n\r\n    const getApplicationList = (sablonlist, removed) => {\r\n        fetch(\"applicationlist?removedstatus=1\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n\r\n                response.json().then(async applist => {\r\n                    setApplist(applist);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const filterTable = (event) => {\r\n        var textbox = document.getElementById(\"mySearchInput\")\r\n        if (textbox == null)\r\n            return;\r\n        var value = textbox.value.toLowerCase();\r\n\r\n        $(\"#myTable tr\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n            var ret = true;\r\n            var t1 = removeTurkcLow($(this).text());\r\n            for (let index = 0; index < keywords.length; ++index) {\r\n                var t2 = removeTurkcLow(keywords[index]);\r\n                if (t1.indexOf(t2) == -1)\r\n                    return $(this).toggle(false);\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n        document.getElementById(\"totalrec\").innerHTML = $(\"#myTable tr:visible\").length + \" kayıt\";\r\n    }\r\n\r\n    const getcurrentFilters = () => {\r\n        var cl = colnames;\r\n        var val = []\r\n        val.push(document.getElementById(\"mySearchInput\").value);\r\n        for (var c = 0; c < cl.length; c++) {\r\n            val.push(document.getElementById(cl[c]).value);\r\n        }\r\n        return val;\r\n    }\r\n\r\n\r\n\r\n\r\n    const filterColumn = (root) => {\r\n        var cl = colnames;\r\n        $(root).find(\"#myTable tr\").filter(function () {\r\n\r\n            for (var c = 0; c < cl.length; c++) {\r\n                var keywordElem = root.getElementById(cl[c]);\r\n                var td = $(this).children().eq(c);\r\n                if (keywordElem != null && isEmpty(keywordElem.value) == false) {\r\n                    var keyword = keywordElem.value;\r\n                    var pass = true;\r\n                    if (keyword.startsWith(\"-\")) {\r\n                        pass = false\r\n                        keyword = keyword.substr(1);\r\n                    }\r\n                    if (keyword.length == 0) break;\r\n                    td.attr('style', 'background: #fff8dd !important');\r\n                    var t1 = removeTurkcLow(td.text());\r\n                    var t2 = removeTurkcLow(keyword);\r\n                    if ((t1.indexOf(t2) == -1) == pass)\r\n                        return $(this).toggle(false);\r\n                }\r\n                else\r\n                    td.removeAttr('style');\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n\r\n        if (root.getElementById(\"totalrec\") != null && $(\"#myTable tr:visible\") != null)\r\n            root.getElementById(\"totalrec\").innerHTML = $(\"#myTable tr:visible\").length + \" kayıt\";\r\n    }\r\n\r\n\r\n\r\n\r\n    const fetchSurecList = () => {\r\n\r\n        fetch(\"sureclist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    value.hashtable = {};\r\n                    value.forEach(element => value.hashtable[element.id] = element.name);\r\n                    setSurecList(value);\r\n                    getApplicationList()\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const setAppRemovedState = (app, isremoved, delete_comment) => {\r\n        app.removed = isremoved;\r\n        app.removeComment = delete_comment;\r\n        fetch(\"saveapplication\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(app)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                getApplicationList();\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const deleteApp = (app) => {\r\n\r\n        if (app.removed != true) {\r\n            var comment = window.prompt(\"Lütfen Silme Nedenini Açıklayınız\")\r\n            if (comment == null || comment.length == 0) {\r\n                showErrorMessage(\"Açıklama Boş Olamaz\");\r\n                return;\r\n            }\r\n            setAppRemovedState(app, true, comment);\r\n            return;\r\n        }\r\n        fetch(\"removeapp\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(app)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setApplist(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getDurumName = (i) => {\r\n\r\n        var r = surecList.find(element => element.id == i);\r\n        if (r == null) return i;\r\n        return r.name;\r\n    }\r\n\r\n    const reduceTotalNames = (str) => {\r\n        if (isEmpty(str)) return str;\r\n        var parts = str.split(',')\r\n        if (parts.length <= 2)\r\n            return str;\r\n        var vis = parts[0] + \" , \" + parts[1];\r\n        vis = vis + \", +\" + (parts.length - 2);\r\n        return <>  {vis}   <span hidden>{str}</span></>;\r\n    }\r\n\r\n    const findRowCount = (sab, tabledata) => {\r\n        return tabledata.length;\r\n    }\r\n\r\n    const generateColumnHeader = (c) => {\r\n\r\n        var t = c.toUpperCase() == \"ADA\" ? \"ADA/PARSEL\" : c.toUpperCase();\r\n        var t = c.toUpperCase() == \"REMOVECOMMENT\" ? \"SİLME NEDENİ\" : c.toUpperCase();\r\n        var t = c.toUpperCase() == \"REMOVEDBY\" ? \"SİLEN\" : c.toUpperCase();\r\n        if (t.length > 14) {\r\n            t = t.substr(0, 12) + \"...\";\r\n        }\r\n        return t;\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderToList = (tabledata) => {\r\n\r\n\r\n        if (tabledata == null || tabledata.length == 0)\r\n            return <div className=\"w-100 text-center\" >Kayıt Yok</div>;\r\n\r\n\r\n\r\n\r\n        var devamarray = [];\r\n        if (devamstat != null && devamstat.appState != undefined)\r\n            devamarray = devamstat.appState.split(\",\");\r\n\r\n\r\n        var rows = tabledata.map(apprec =>\r\n            <tr key={apprec.id}>\r\n                {colnames.map(c => {\r\n                    if (apprec[c] != null) {\r\n                        if (c == \"basvuruDurumu\") return <td >{surecList.hashtable[apprec[c]]}</td>\r\n                        else if (c == \"müellif\") {\r\n                            return <td title={apprec.allmuelliflist}>\r\n                                {apprec[c]}{apprec.muellifCount > 2 ? (\", +\" + (apprec.muellifCount - 2)) : \"\"}\r\n                            </td>\r\n                        }\r\n                        else if (c == \"kontrolor\") {\r\n                            return <td title={apprec.kontrolorNameFamily}>{reduceTotalNames(apprec.kontrolorNameFamily)}</td>\r\n                        }\r\n                        else if (c == \"tümKontrolorler\") {\r\n                            return <td title={apprec.tümKontrolorler}>{reduceTotalNames(apprec.tümKontrolorler)}</td>\r\n                        }\r\n                        else return <td >{apprec[c]}</td>\r\n                    }\r\n                    try {\r\n                        var appDData = apprec.appDataObject;\r\n                        if (appDData != null && appDData[c] != null) {\r\n                            if (appDData[c].type != null && appDData[c].type == \"checkbox\") {\r\n                                return <td className=\"text-center\"><input type=\"checkbox\" className=\"form-check-input p-0 \" checked={appDData[c].value} /></td>\r\n                            }\r\n                            return <td >{appDData[c].value}</td>\r\n                        }\r\n                    }\r\n                    catch (ex) {\r\n                        return <td>{ex.toString()}</td>\r\n                    }\r\n\r\n                    return <td></td>\r\n                })}\r\n\r\n                <td style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\", \"font-size\": \"20px\" }}>\r\n                    {apprec.removed == true && role != null && (role.indexOf(UserPermConstants.Basvuru_Silme) > -1 || (apprec.basvuruDurumu==1 && userName == apprec.basvuruYapan)) && <a href=\"/#\" onClick={() => { setAppRemovedState(apprec, false) }} className=\"text-decoration-none align-middle\" ><i className=\"fa fa-refresh align-middle\"></i></a>}\r\n                    {((userName == apprec.basvuruYapan && apprec.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Taslak) || (role != null && role.indexOf(UserPermConstants.Basvuru_Silme) > -1)) && <a href=\"/#\" onClick={() => { deleteApp(apprec) }} className=\"text-decoration-none material-icons align-middle\"  >delete</a>}\r\n                </td>\r\n            </tr>\r\n        );\r\n\r\n        var selectedSablonIndex = window.localStorage.getItem('sablon');\r\n        if (selectedSablonIndex == null)\r\n            selectedSablonIndex = 0;\r\n\r\n        var mytable =\r\n            <div className=\"mt-1\" key={selectedSablonIndex}>\r\n\r\n                <div className=\"table-responsive mainpagescroll\" style={{ \"transform\": \"rotateX(180deg)\" }}>\r\n                    <table className='table  table-vdstriped' aria-labelledby=\"tabelLabel\" style={{ \"transform\": \"rotateX(180deg)\" }}>\r\n                        <thead>\r\n                            <tr >\r\n\r\n                                {colnames.map((c, idx) =>\r\n                                    <th> <div><button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(c)} title={c}> {generateColumnHeader(c)}</button></div>\r\n                                        <div>\r\n                                            <input type=\"text\" className=\"form-control form-control-sm\" id={c} placeholder=\"\" name={c} onChange={() => filterColumn(document)} />\r\n                                        </div></th>\r\n                                )}\r\n                               \r\n                                <th id=\"totalrec\" key={rows.length}>{rows.length} kayıt</th>\r\n                            </tr>\r\n                        </thead>\r\n                        <tbody id=\"myTable\">\r\n                            {rows}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n    var tabledata = <div class=\"d-flex justify-content-center\"><div class=\"spinner-border\" role=\"status\"></div></div>\r\n\r\n    if (applist != null) {\r\n        tabledata = renderToList(applist);\r\n    }\r\n\r\n\r\n    return <div id=\"applistroot\">\r\n        {/*<div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" hidden={allready == true} ><div className=\"spinner-border\" ></div></div>*/}\r\n        <div className=\"  align-items-center justify-content-center p-1\" >\r\n\r\n            <div className=\"row\">\r\n                <div className=\"col-12 col-md-4\">\r\n                </div>\r\n                <div className=\"col-12 col-md-4\">\r\n                    <input className=\"form-control form-control-sm\" id=\"mySearchInput\" type=\"text\" placeholder=\"Ara\" onKeyUp={filterTable} />\r\n\r\n                </div>\r\n\r\n            </div>\r\n            {tabledata}\r\n\r\n        </div>\r\n    </div>\r\n\r\n\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport Application from \"./Application.js\"\r\nimport { useGlobalState, logout, passFilter, removeTurkcLow, isEmpty, showErrorMessage, showConfirmMessage } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport { userInfo } from 'os';\r\n\r\nexport default function ArchivedAppList(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userName, setUserName] = useGlobalState('userName');\r\n\r\n    const [applist, setApplist] = useState(null);\r\n\r\n    const [spinnerClass, setSpinnerClass] = useState(\"fa fa-refresh\");\r\n    const [devamstat, setDevamstat] = useState(null);\r\n\r\n    const [surecList, setSurecList] = useState([]);\r\n    const [colnames, setColnames] = useState([\"id\", \"mahalle\", \"ada\", \"basvuruTipi\", \"basvuruDurumu\", \"basvuruYapan\", \"basvuruTarihi\"]);\r\n    const [sortDirection, setSortDirection] = useState({});\r\n\r\n\r\n    var sortField = null;\r\n\r\n\r\n    useEffect(() => {\r\n\r\n        fetchSurecList();\r\n    }, []);\r\n\r\n\r\n\r\n    const stopSpinner = () => {\r\n        setSpinnerClass(\"fa fa-refresh\")\r\n    }\r\n\r\n    const startSpinner = () => {\r\n        setSpinnerClass(\"spinner-grow spinner-grow-sm\")\r\n    }\r\n\r\n\r\n\r\n\r\n    const myCompare = (a, b) => {\r\n\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n\r\n        if (sortField == \"basvuruDurumu\") {\r\n            av = getDurumName(av);\r\n            bv = getDurumName(bv);\r\n        }\r\n\r\n        var ret = 1;\r\n        if (sortDirection[sortField] == \"ZA\")\r\n            ret = -1;\r\n\r\n        if (av == null && a.appData != null && a.appData.length > 2) {\r\n            var oa = a.appDataObject[sortField];\r\n            if (oa != null && oa.value != null)\r\n                av = oa.value;\r\n        }\r\n        if (bv == null && b.appData != null && b.appData.length > 2) {\r\n            var ob = b.appDataObject[sortField];\r\n            if (ob != null && ob.value != null)\r\n                bv = ob.value;\r\n        }\r\n        if (av == null && bv != null)\r\n            return -1 * ret;\r\n        if (av != null && bv == null)\r\n            return ret;\r\n\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * ret;\r\n\r\n        if (av < bv) {\r\n            return -1 * ret;\r\n        }\r\n        if (av > bv) {\r\n            return ret;\r\n        }\r\n        return 0;\r\n    }\r\n    const myCompareRev = (a, b) => {\r\n        return -1 * myCompare(a, b)\r\n    }\r\n\r\n\r\n\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == \"ZA\") {\r\n            sortDirection[sortField] = \"AZ\";\r\n        }\r\n        else {\r\n            sortDirection[sortField] = \"ZA\";\r\n        }\r\n\r\n\r\n        var temp = [...applist]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setApplist(temp);\r\n    }\r\n    const getSortedList = (data, temp) => {\r\n        if (data.sort != null && data.sort.length > 0) {\r\n            var sf = data.sort.split(\",\");\r\n            if (sf.length > 0) {\r\n                for (var i = 0; i < sf.length; i++) {\r\n                    if (sf[i][0] == '-') {\r\n                        sortField = sf[i].substring(1);\r\n                        temp.sort(myCompareRev);\r\n                    }\r\n                    else {\r\n                        sortField = sf[i];\r\n                        temp.sort(myCompare);\r\n                    }\r\n                }\r\n            }\r\n\r\n        }\r\n        return temp;\r\n    }\r\n\r\n\r\n\r\n\r\n    const getApplicationList = (sablonlist, removed) => {\r\n        fetch(\"applicationlist?removedstatus=archived\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n\r\n                response.json().then(async applist => {\r\n                    setApplist(applist);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const filterTable = (event) => {\r\n        var textbox = document.getElementById(\"mySearchInput\")\r\n        if (textbox == null)\r\n            return;\r\n        var value = textbox.value.toLowerCase();\r\n\r\n        $(\"#myTable tr\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n            var ret = true;\r\n            var t1 = removeTurkcLow($(this).text());\r\n            for (let index = 0; index < keywords.length; ++index) {\r\n                var t2 = removeTurkcLow(keywords[index]);\r\n                if (t1.indexOf(t2) == -1)\r\n                    return $(this).toggle(false);\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n        document.getElementById(\"totalrec\").innerHTML = $(\"#myTable tr:visible\").length + \" kayıt\";\r\n    }\r\n\r\n    const getcurrentFilters = () => {\r\n        var cl = colnames;\r\n        var val = []\r\n        val.push(document.getElementById(\"mySearchInput\").value);\r\n        for (var c = 0; c < cl.length; c++) {\r\n            val.push(document.getElementById(cl[c]).value);\r\n        }\r\n        return val;\r\n    }\r\n\r\n\r\n\r\n\r\n    const filterColumn = (root) => {\r\n        var cl = colnames;\r\n        $(root).find(\"#myTable tr\").filter(function () {\r\n\r\n            for (var c = 0; c < cl.length; c++) {\r\n                var keywordElem = root.getElementById(cl[c]);\r\n                var td = $(this).children().eq(c);\r\n                if (keywordElem != null && isEmpty(keywordElem.value) == false) {\r\n                    var keyword = keywordElem.value;\r\n                    var pass = true;\r\n                    if (keyword.startsWith(\"-\")) {\r\n                        pass = false\r\n                        keyword = keyword.substr(1);\r\n                    }\r\n                    if (keyword.length == 0) break;\r\n                    td.attr('style', 'background: #fff8dd !important');\r\n                    var t1 = removeTurkcLow(td.text());\r\n                    var t2 = removeTurkcLow(keyword);\r\n                    if ((t1.indexOf(t2) == -1) == pass)\r\n                        return $(this).toggle(false);\r\n                }\r\n                else\r\n                    td.removeAttr('style');\r\n            }\r\n            return $(this).toggle(true);\r\n        });\r\n\r\n        if (root.getElementById(\"totalrec\") != null && $(\"#myTable tr:visible\") != null)\r\n            root.getElementById(\"totalrec\").innerHTML = $(\"#myTable tr:visible\").length + \" kayıt\";\r\n    }\r\n\r\n\r\n\r\n\r\n    const fetchSurecList = () => {\r\n\r\n        fetch(\"sureclist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    value.hashtable = {};\r\n                    value.forEach(element => value.hashtable[element.id] = element.name);\r\n                    setSurecList(value);\r\n                    getApplicationList()\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const setAppRemovedState = (app, isremoved, delete_comment) => {\r\n        app.removed = isremoved;\r\n        app.removeComment = delete_comment;\r\n        fetch(\"saveapplication\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(app)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                getApplicationList();\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const deleteApp = (app) => {\r\n\r\n        if (app.removed != true) {\r\n            var comment = window.prompt(\"Lütfen Silme Nedenini Açıklayınız\")\r\n            if (comment == null || comment.length == 0) {\r\n                showErrorMessage(\"Açıklama Boş Olamaz\");\r\n                return;\r\n            }\r\n            setAppRemovedState(app, true, comment);\r\n            return;\r\n        }\r\n        fetch(\"removeapp\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(app.id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setApplist(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getDurumName = (i) => {\r\n\r\n        var r = surecList.find(element => element.id == i);\r\n        if (r == null) return i;\r\n        return r.name;\r\n    }\r\n\r\n    const reduceTotalNames = (str) => {\r\n        if (isEmpty(str)) return str;\r\n        var parts = str.split(',')\r\n        if (parts.length <= 2)\r\n            return str;\r\n        var vis = parts[0] + \" , \" + parts[1];\r\n        vis = vis + \", +\" + (parts.length - 2);\r\n        return <>  {vis}   <span hidden>{str}</span></>;\r\n    }\r\n\r\n    const findRowCount = (sab, tabledata) => {\r\n        return tabledata.length;\r\n    }\r\n\r\n    const generateColumnHeader = (c) => {\r\n\r\n        var t = c.toUpperCase() == \"ADA\" ? \"ADA/PARSEL\" : c.toUpperCase();\r\n        var t = c.toUpperCase() == \"REMOVECOMMENT\" ? \"SİLME NEDENİ\" : c.toUpperCase();\r\n        if (t.length > 14) {\r\n            t = t.substr(0, 12) + \"...\";\r\n        }\r\n        return t;\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderToList = (tabledata) => {\r\n\r\n\r\n        if (tabledata == null || tabledata.length == 0)\r\n            return <div className=\"w-100 text-center\" >Kayıt Yok</div>;\r\n\r\n\r\n\r\n\r\n        var devamarray = [];\r\n        if (devamstat != null && devamstat.appState != undefined)\r\n            devamarray = devamstat.appState.split(\",\");\r\n\r\n\r\n        var rows = tabledata.map(apprec =>\r\n            <tr key={apprec.id}>\r\n                {colnames.map(c => {\r\n                    if (apprec[c] != null) {\r\n                        if (c == \"basvuruDurumu\") return <td >{surecList.hashtable[apprec[c]]}</td>\r\n                        else if (c == \"müellif\") {\r\n                            return <td title={apprec.allmuelliflist}>\r\n                                {apprec[c]}{apprec.muellifCount > 2 ? (\", +\" + (apprec.muellifCount - 2)) : \"\"}\r\n                            </td>\r\n                        }\r\n                        else if (c == \"kontrolor\") {\r\n                            return <td title={apprec.kontrolorNameFamily}>{reduceTotalNames(apprec.kontrolorNameFamily)}</td>\r\n                        }\r\n                        else if (c == \"tümKontrolorler\") {\r\n                            return <td title={apprec.tümKontrolorler}>{reduceTotalNames(apprec.tümKontrolorler)}</td>\r\n                        }\r\n                        else return <td >{apprec[c]}</td>\r\n                    }\r\n                    try {\r\n                        var appDData = apprec.appDataObject;\r\n                        if (appDData != null && appDData[c] != null) {\r\n                            if (appDData[c].type != null && appDData[c].type == \"checkbox\") {\r\n                                return <td className=\"text-center\"><input type=\"checkbox\" className=\"form-check-input p-0 \" checked={appDData[c].value} /></td>\r\n                            }\r\n                            return <td >{appDData[c].value}</td>\r\n                        }\r\n                    }\r\n                    catch (ex) {\r\n                        return <td>{ex.toString()}</td>\r\n                    }\r\n\r\n                    return <td></td>\r\n                })}\r\n\r\n                <td style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\", \"font-size\": \"20px\" }}>\r\n                    {apprec.removed != true && <a href=\"#\" onClick={() => { window.changeComponent(<Application key={apprec.id} appData={apprec} changeComponent={window.changeComponent} backButton={<ArchivedAppList changeComponent={props.changeComponent} filters={getcurrentFilters()} />} />) }} className=\" text-decoration-none material-icons align-middle\" >edit</a>}\r\n                    {apprec.removed == true && role != null && role.indexOf(UserPermConstants.Basvuru_Silme) > -1 && <a href=\"/#\" onClick={() => { setAppRemovedState(apprec, false) }} className=\"text-decoration-none align-middle\" ><i className=\"fa fa-refresh align-middle\"></i></a>}\r\n                    {((userName == apprec.basvuruYapan && apprec.basvuruDurumu == UserPermConstants.Basvuru_Durumu_Taslak) || (role != null && role.indexOf(UserPermConstants.Basvuru_Silme) > -1)) && <a href=\"/#\" onClick={() => { showConfirmMessage(\"Taslak Olmayan Başvuruları Silmek Beklenmeyen Hatalara Sebep Olabilir.\", \"Silmek Istediğinzden Emin misiniz?\", \"Evet\", \"Hayır\", () => setTimeout(()=>deleteApp(apprec),100)) }} className=\"text-decoration-none material-icons align-middle\"  >delete</a>}\r\n                </td>\r\n\r\n            </tr>\r\n        );\r\n\r\n        var selectedSablonIndex = window.localStorage.getItem('sablon');\r\n        if (selectedSablonIndex == null)\r\n            selectedSablonIndex = 0;\r\n\r\n        var mytable =\r\n            <div className=\"mt-1\" key={selectedSablonIndex}>\r\n\r\n                <div className=\"table-responsive mainpagescroll\" style={{ \"transform\": \"rotateX(180deg)\" }}>\r\n                    <table className='table  table-vdstriped' aria-labelledby=\"tabelLabel\" style={{ \"transform\": \"rotateX(180deg)\" }}>\r\n                        <thead>\r\n                            <tr >\r\n\r\n                                {colnames.map((c, idx) =>\r\n                                    <th> <div><button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(c)} title={c}> {generateColumnHeader(c)}</button></div>\r\n                                        <div>\r\n                                            <input type=\"text\" className=\"form-control form-control-sm\" id={c} placeholder=\"\" name={c} onChange={() => filterColumn(document)} />\r\n                                        </div></th>\r\n                                )}\r\n\r\n                                <th id=\"totalrec\" key={rows.length}>{rows.length} kayıt</th>\r\n                            </tr>\r\n                        </thead>\r\n                        <tbody id=\"myTable\">\r\n                            {rows}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n    var tabledata = <div class=\"d-flex justify-content-center\"><div class=\"spinner-border\" role=\"status\"></div></div>\r\n\r\n    if (applist != null) {\r\n        tabledata = renderToList(applist);\r\n    }\r\n\r\n\r\n    return <div id=\"applistroot\">\r\n        {/*<div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" hidden={allready == true} ><div className=\"spinner-border\" ></div></div>*/}\r\n        <div className=\"  align-items-center justify-content-center p-1\" >\r\n\r\n            <div className=\"row\">\r\n                <div className=\"col-12 col-md-4\">\r\n                </div>\r\n                <div className=\"col-12 col-md-4\">\r\n                    <input className=\"form-control form-control-sm\" id=\"mySearchInput\" type=\"text\" placeholder=\"Ara\" onKeyUp={filterTable} />\r\n\r\n                </div>\r\n\r\n            </div>\r\n            {tabledata}\r\n\r\n        </div>\r\n    </div>\r\n\r\n\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, sendpost, showConfirmMessage } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\nimport Application from \"./Application.js\"\r\n\r\nexport default function RemovedFiles(props) {\r\n\r\n    const [filelist, setFilelist] = useState([]);\r\n    const [sortDirection, setSortDirection] = useState({ \"transactionUUID\": 1 });\r\n\r\n    const changeComponent = props.changeComponent;\r\n    var sortField = null;\r\n\r\n    useEffect(() => {\r\n        getFileList();\r\n    }, [])\r\n\r\n\r\n    const myCompare = (a, b) => {\r\n        if (sortField == null)\r\n            sortField = \"transactionUUID\"\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n\r\n        if (av == null && a.imza != null) {\r\n            av = a.imza[sortField];\r\n        }\r\n        if (bv == null && b.imza != null) {\r\n            bv = b.imza[sortField];\r\n        }\r\n        if (av == null && bv == null)\r\n            return 0;\r\n        if (av == null && bv != null)\r\n            return -1 * sortDirection[sortField];\r\n        if (av != null && bv == null)\r\n            return 1 * sortDirection[sortField];\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * sortDirection[sortField];\r\n\r\n        if (av < bv) {\r\n            return -1 * sortDirection[sortField];\r\n        }\r\n        if (av > bv) {\r\n            return 1 * sortDirection[sortField];\r\n        }\r\n        return 0;\r\n    }\r\n\r\n\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == -1) {\r\n            sortDirection[sortField] = 1;\r\n        }\r\n        else {\r\n            sortDirection[sortField] = -1;\r\n        }\r\n\r\n        var temp = [...filelist]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setFilelist(temp);\r\n    }\r\n\r\n    \r\n\r\n    const getFileList = () => {\r\n\r\n        fetch(\"getremovedfiles\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n\r\n            else {\r\n                response.json().then(async data => {\r\n                    setFilelist(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const removefile = (rec) => {\r\n\r\n        showConfirmMessage(rec.caption + \" dosyasını silmek istediğinizden emin misiniz?\",\r\n            '', 'Evet', 'Hayır', () => {\r\n                sendpost(\"removefile\", rec,\"\", () => {\r\n                    setFilelist(filelist.filter(x => x.id != rec.id));\r\n                })\r\n            });\r\n    }\r\n\r\n    const removeRecs = () => {\r\n        var r = [];\r\n        $(\"#myTable tr\").each(function () {\r\n            if ($(this).is(\":visible\"))\r\n                r.push(filelist.find(x =>x.id == this.id));\r\n\r\n        });\r\n        if (r.length > 0) {\r\n            showConfirmMessage( r.length + \" dosyayı silmek istediğinizden emin misiniz?\",\r\n                '', 'Evet', 'Hayır', () => {\r\n                    sendpost(\"removefiles\", r,\"removeallspin\", () => {\r\n                        document.getElementById(\"arama\").value = \"\";\r\n                        $(\"#myTable tr\").each(function () {\r\n                            $(this).toggle(true)\r\n                        });\r\n                        getFileList();\r\n                    })\r\n                });\r\n        }\r\n    }\r\n    \r\n\r\n    const filterTable = event => {\r\n        const target = event.target;\r\n        const value = target.value.toLowerCase();\r\n        $(\"#myTable tr\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n            for (let index = 0; index < keywords.length; ++index)\r\n                if ($(this).text().toLowerCase().indexOf(keywords[index]) == -1)\r\n                    return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n        document.getElementById(\"totalrec\").innerHTML = $(\"#myTable tr:visible\").length + \" kayıt\";\r\n    }\r\n\r\n\r\n    return <div className=\"align-items-center justify-content-center\" >\r\n        <div className=\"row mb-2\">\r\n            <div className=\"col-6 text-center rounded-3\">\r\n                <input className=\"form-control form-control-sm\" id=\"arama\" type=\"text\" placeholder=\"Ara...\" onKeyUp={filterTable} />\r\n            </div>\r\n            <div className=\"col-6 text-end rounded-3\">\r\n                <span className=\"spinner-border spinner-border-sm\" hidden id=\"removeallspin\"></span>\r\n                < button className=\"btn btn-sm btn-danger  text-decoration-none p-1\" type=\"button\" onClick={removeRecs}>\r\n                   Tümünü Sil\r\n                </button>\r\n              \r\n            </div>\r\n        </div>\r\n\r\n        <div className=\"mb-1 w-100  text-center align-items-center justify-content-center \">\r\n           \r\n        </div>\r\n        <div className=\"overflow-auto\" style={{ maxHeight: 600 }}>\r\n\r\n            <table className='table table-vdstriped table-sm' aria-labelledby=\"tabelLabel\">\r\n                <thead>\r\n                    <tr >\r\n\r\n                        <th className=\"text-start\">\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"appId\")} >Başvuru No </button>\r\n                            </div>\r\n                        </th>\r\n\r\n                        <th className=\"text-start\">\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"id\")} >Dosya No </button>\r\n                            </div>\r\n                        </th>\r\n                        <th className=\"text-start\">\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"caption\")} >Dosya İsmi </button>\r\n                            </div>\r\n                        </th>\r\n                        {/*<th className=\"text-start\">*/}\r\n                        {/*    <div>*/}\r\n                        {/*        <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"typeId\")} >Dosya Turu </button>*/}\r\n                        {/*    </div>*/}\r\n                        {/*</th>*/}\r\n                        <th className=\"text-start\">\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"userName\")} >Ekleyen </button>\r\n                            </div>\r\n                        </th>\r\n                        <th className=\"text-start\">\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"removedBy\")} >Silen </button>\r\n                            </div>\r\n                        </th>\r\n\r\n                        <th className=\"text-start\">\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"tarih\")} >Ekleme Tarihi </button>\r\n                            </div>\r\n                        </th>\r\n\r\n                        <th className=\"text-start\">\r\n                            <div>\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"removedDate\")} >Silme Tarihi </button>\r\n                            </div>\r\n                        </th>\r\n\r\n                        <th className=\"text-start\">\r\n                            <div id=\"totalrec\" key={filelist.length}>\r\n                                {filelist.length}  kayıt\r\n                            </div>\r\n                        </th>\r\n\r\n                    </tr>\r\n                </thead>\r\n\r\n\r\n                <tbody id=\"myTable\">\r\n                    {filelist.map(apprec => <tr id={apprec.id}>\r\n                        <td >\r\n                            {apprec.appId}\r\n                        </td>\r\n                        <td >\r\n                            {apprec.id}\r\n                        </td>\r\n                        <td >\r\n                            {apprec.caption}\r\n                        </td>\r\n                        {/*<td >*/}\r\n                        {/*    {apprec.typeId}*/}\r\n                        {/*</td>*/}\r\n                        <td >\r\n                            {apprec.userName}\r\n                        </td>\r\n                        <td >\r\n                            {apprec.removedBy}\r\n                        </td>\r\n                        <td >\r\n                            {apprec.tarih}\r\n                        </td>\r\n                        <td >\r\n                            {apprec.removedDate}\r\n                        </td>\r\n                       \r\n                        <td style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }}>\r\n                            <a className=\"text-decoration-none align-middle\" href={'getfile?id=' + apprec.id + \"&appid=\" + apprec.appId + \"&sec=\" + apprec.readers} title=\"Aç\" target=\"_blank\"><i className=\"\tfa fa-television\" style={{ \"font-size\": \"18px\" }} ></i>  </a>\r\n                            <a href=\"#\" onClick={() => { removefile(apprec) }} className=\" text-decoration-none \"><i className=\"fa fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>\r\n \r\n                        </td>\r\n                    </tr>\r\n                    )}\r\n                </tbody>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { ajaxFail, isEmpty, sendpost, showErrorMessage, showSuccessMessage, levenshtein, toLowerCaseTurkce, capitalizeWords } from '../GlobalState.js';\r\nimport { typeOf } from 'react-is';\r\nimport BasvuruTipleriList from './BasvuruTipleriList.js';\r\nimport HavaleSablonSetting from './HavaleSablonSetting.js';\r\nimport bootstrap from 'bootstrap/dist/js/bootstrap.min.js'\r\nimport $ from 'jquery';\r\nimport stringSimilarity from 'string-similarity'\r\n\r\n\r\nexport default function BasvuruTipleriDetail(props) {\r\n    var postdata = {};\r\n    var listData = props.basvuruTipleri;\r\n    var appTypeGroups = props.appTypeGroups;\r\n    const multiselectRef = React.createRef();\r\n    const [basvuruTipi, setbasvuruTipi] = useState({ ...props.basvuruTipi });\r\n    const [basvuruTipiAdimlari, setBasvuruTipiAdimlari] = useState(props.basvuruTipiAdimlari.filter(x => x.basvuruTipi == basvuruTipi.id));\r\n    const multiselectRefNew = React.createRef();\r\n    const [showIsAdimlari, setShowIsAdimlari] = useState(false);\r\n\r\n    useEffect(() => {\r\n        var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"popover\"]'))\r\n        var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n            return new bootstrap.Popover(popoverTriggerEl)\r\n        })\r\n        $(\"#basvuruTipiPaneli\").on(\"click\", function (e) {\r\n            const windowElement = document.getElementById('floatingWindow');\r\n            windowElement.style.display = 'none';\r\n        });\r\n    }, [])\r\n\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value.trim();\r\n        const name = target.name;\r\n        rec[name] = value;\r\n\r\n        if (name == \"mahalleAktif\") {\r\n            document.getElementById(\"mahalleZorunlu\").checked = value\r\n            rec[\"mahalleZorunlu\"] = value;\r\n            if (value == false) {\r\n                rec[\"adaZorunlu\"] = value;\r\n                rec[\"adaAktif\"] = value;\r\n                document.getElementById(\"adaZorunlu\").checked = value\r\n                document.getElementById(\"adaAktif\").checked = value\r\n            }\r\n               \r\n        }\r\n        if (name == \"adaAktif\") {\r\n            document.getElementById(\"adaZorunlu\").checked = value\r\n            rec[\"adaZorunlu\"] = value;\r\n            if (value == true) {\r\n            document.getElementById(\"mahalleZorunlu\").checked = value\r\n            document.getElementById(\"mahalleAktif\").checked = value\r\n            \r\n            rec[\"mahalleZorunlu\"] = value;\r\n            rec[\"mahalleAktif\"] = value;\r\n            }\r\n\r\n            \r\n        }\r\n\r\n        if (isEmpty(value))\r\n            rec[name] = null;\r\n    }\r\n\r\n    const addBasvuruTipiisAdimi = (item) => {\r\n        var rec = {};\r\n        rec.basvuruTipi = basvuruTipi.id;\r\n        rec.isAdimi = item.id;\r\n        sendpost(\"savebasvurutipisadimi\", rec, \"adresspiner\", (response) => {\r\n            response.json().then(value => {\r\n                setBasvuruTipiAdimlari(value)\r\n            })\r\n        })\r\n    }\r\n\r\n    const removeBasvuruTipiisAdimi = (rec) => {\r\n        var rec2 = basvuruTipiAdimlari.find(b => b.isAdimi == rec.id);\r\n        if (rec2 == null) {\r\n            showErrorMessage(\"İş Adımı Silinemedi\");\r\n            return;\r\n        }\r\n        sendpost(\"removebasvurutipisadimi\", rec2.id, \"adresspiner\", (response) => {\r\n            response.json().then(value => {\r\n                setBasvuruTipiAdimlari(value)\r\n            })\r\n\r\n        })\r\n    }\r\n\r\n\r\n\r\n    const showWindow = (target) => {\r\n        const windowElement = document.getElementById('floatingWindow');\r\n        var inputText = toLowerCaseTurkce(target.value);\r\n        const matchedItems = props.basvuruTipleri.filter(x => x.removed!=true)\r\n            .map(item => ({\r\n                item,\r\n                similarity: stringSimilarity.compareTwoStrings(inputText.toLowerCase(), item.name.toLowerCase())\r\n            }))\r\n            .filter(({ similarity }) => similarity > 0.1) // Only keep items with some similarity\r\n            .sort((a, b) => b.similarity - a.similarity);\r\n\r\n        if (matchedItems.length > 0 && matchedItems[0].similarity == 1)\r\n            document.getElementById('kaydetbut').disabled = true;\r\n        else\r\n            document.getElementById('kaydetbut').disabled = false;\r\n\r\n        if (matchedItems.length > 0 && inputText !== '') {\r\n            windowElement.innerHTML = \"<div class='text-danger border-bottom border-primary '>Daha önce eklediğiniz benzer kayıtlar</div>\" +\r\n                matchedItems.map(item =>\r\n                    `<div class='border-bottom fw-bold text-dark' style='opacity:${0.2 + item.similarity}'>\r\n                    <button class='btn btn-link btn-sm text-decoration-none shadow-none' \r\n                            onclick=\"window.similarItemSelect(${item.item.id},'${item.item.name}')\">\r\n                        ${item.item.name + \" \" + item.similarity}\r\n                    </button>\r\n                </div>`).join('');\r\n            const rect = target.getBoundingClientRect();\r\n            windowElement.style.left = rect.left + 3 + 'px';\r\n            windowElement.style.top = rect.bottom + 5 + 'px';\r\n            windowElement.style.display = 'block';\r\n        } else {\r\n            windowElement.style.display = 'none';\r\n        }\r\n    }\r\n\r\n    window.similarItemSelect = (id, name) => {\r\n        /* showConfirmMessage(name + \" kaydının bilgileri yüklensin mı?\", \"\", \"Evet\", \"Hayır\", () => {\r\n             document.getElementById('kaudetbut').disabled = false;\r\n             window.changeComponent(<BasvuruTipleriDetail basvuruTipi={props.basvuruTipleri.find(x => x.id == id)} basvuruTipleri={props.basvuruTipleri} />);\r\n         })*/\r\n    }\r\n\r\n    const savedenetim = (rec) => {\r\n        var r = rec;\r\n\r\n        if (r == null) {\r\n            postdata.hide = showIsAdimlari;\r\n            r = postdata;\r\n        }\r\n        if (isEmpty(rec.name)) {\r\n            showErrorMessage(\"Başvuru Tipi Adı Boş Olamaz !\");\r\n            return;\r\n        }\r\n        rec.name = capitalizeWords(rec.name);\r\n        if (document.getElementById(\"basvuruTipiName\"))\r\n            document.getElementById(\"basvuruTipiName\").value = rec.name;\r\n\r\n        if (rec.grup == null) {\r\n            showErrorMessage(\"Başvuru Gurubunu Seçiniz\");\r\n            return;\r\n        }\r\n\r\n\r\n\r\n        fetch(\"savedenetim\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(r)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                if (rec.id != null) {\r\n                    showSuccessMessage(\"Başvuru Tipi Güncellendi. \")\r\n                }\r\n                else {\r\n                    showSuccessMessage(\"Başvuru Tipi Eklendi \", \"\", () => {\r\n                        response.json().then(value => {\r\n                            setbasvuruTipi(value)\r\n                        })\r\n                    })\r\n                }\r\n                //else {\r\n\r\n                //    if (document.getElementById(\"DenetimAdi\")) document.getElementById(\"DenetimAdi\").value = \"\";\r\n                //    if (document.getElementById(\"active\")) document.getElementById(\"active\").checked = false;\r\n                //    if (document.getElementById(\"onaysureci\")) document.getElementById(\"onaysureci\").checked = false;\r\n                //    if (document.getElementById(\"ruhsatsureci\")) document.getElementById(\"ruhsatsureci\").checked = false;\r\n                //    if (document.getElementById(\"hide\")) document.getElementById(\"hide\").checked = false;\r\n                //    if (document.getElementById(\"eksiksiz\")) document.getElementById(\"eksiksiz\").checked = false;\r\n                //    if (document.getElementById(\"deadline\")) document.getElementById(\"deadline\").value = \"\";\r\n                //    if (document.getElementById(\"duzeltmeDeadline\")) document.getElementById(\"duzeltmeDeadline\").value = \"\";\r\n                //    if (document.getElementById(\"duzeltmeSayi\")) document.getElementById(\"duzeltmeSayi\").value = \"\";\r\n                //    if (document.getElementById(\"hizliArsiv\")) document.getElementById(\"hizliArsiv\").checked = false;\r\n                //    if (document.getElementById(\"grup\")) document.getElementById(\"grup\").selectedIndex = -1;\r\n                //    if (multiselectRefNew.current) multiselectRefNew.current.resetSelectedValues();\r\n                //    postdata = {};\r\n\r\n                //}\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    \r\n\r\n\r\n\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"p-2 rounded-3\" style={{ \"background-color\": \"#EDEDF7\", \"min-height\": \"100vh\" }} id=\"basvuruTipiPaneli\">\r\n            <div className=\"row \" >\r\n                <div className=\"col-12 col-md-6 \" >\r\n\r\n                    <span className=\"me-3\" style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#4b5675\" }}> {basvuruTipi.userName} </span>\r\n                    <span className=\"me-3\" style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#99a1b7\" }}>{basvuruTipi.crerateTime} </span>\r\n                    <span style={{ \"font-size\": \"14px\", \"font-weight\": \"600\", \"color\": \"#99a1b7\" }}> Id: {basvuruTipi.id} </span>\r\n\r\n                </div>\r\n                <div className=\"col-12 col-md-6 text-end  pt-1\" >\r\n                    <button id=\"kaydetbut\" onClick={() => {\r\n                        savedenetim(basvuruTipi)\r\n                    }\r\n                    } className=\"btn btn-primary btn-sm text-decoration-none me-2\" > Kaydet </button>\r\n                    <button onClick={() => window.changeComponent(<BasvuruTipleriList />)} className=\"btn btn-secondary btn-sm text-decoration-none\">Geri Dön</button >\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row mt-1 p-3\" >\r\n                <div className=\"col-12 col-md-6\" >\r\n                    <div className=\" bg-white rounded-3\" >\r\n                        <div className=\"p-2 fw-bold border-bottom\" >\r\n                            Genel Özellikler\r\n\r\n                        </div>\r\n                        <div className=\"p-3 pt-2\" >\r\n                            Başvuru Tipi <span className=\"text-danger\" >* </span>\r\n                            <input type=\"text\" autocomplete=\"off\" className=\"form-control form-control-sm\" pattern=\"[a-zA-Z0-9ÜüŞşÇçÖöĞğİı\\(\\)_\\- ]+\" placeholder=\"Başvuru Tipi\" name=\"name\" id=\"basvuruTipiName\" key={basvuruTipi.name} defaultValue={basvuruTipi.name} onChange={(e) => { updateRecord(basvuruTipi, e); showWindow(e.target); }} />\r\n                            <div id=\"floatingWindow\" class=\"floating-window\"></div>\r\n                        </div>\r\n\r\n\r\n                        <div className=\"p-3 pt-1\" >\r\n                            Başvuru Grubu\r\n                            <select className=\"form-select form-select-sm\" name=\"grup\" required={true} onChange={(e) => updateRecord(basvuruTipi, e)}>\r\n                                <option></option>\r\n                                {appTypeGroups.map(x => <option value={x.id} selected={x.id == basvuruTipi.grup}>{x.name}</option>)}\r\n                            </select>\r\n                        </div>\r\n\r\n                        <div className=\"p-3 pt-1\" >\r\n                            Dilekçe Başlığı <span className=\"text-danger\" > </span>\r\n                            <input type=\"text\" autocomplete=\"off\" className=\"form-control form-control-sm\" pattern=\"[a-zA-Z0-9ÜüŞşÇçÖöĞğİı\\(\\)_\\- ]+\" placeholder=\"\" name=\"ciktiTitle\" id=\"ciktiTitle\" key={basvuruTipi.ciktiTitle} defaultValue={basvuruTipi.ciktiTitle} onChange={(e) => { updateRecord(basvuruTipi, e); }} />\r\n                            <div id=\"floatingWindow\" class=\"floating-window\"></div>\r\n                        </div>\r\n\r\n                        \r\n\r\n\r\n                        <div className=\"p-3 pt-1 row\" >\r\n                            <div class=\"col-4\" >\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\" >  Aktif </label>\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"active\" defaultChecked={basvuruTipi.active} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-7  textvmuted small\" style={{ \"text-align\": \"justify\" }}>\r\n                                <button type=\"button\" className=\"btn btn-secondary bg-secondary btn-sm fw-bold pt-0 pb-0 mt-0 \"\r\n                                    id=\"mypopover1\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\"\r\n                                    title=\"AÇIKLAMA\" data-bs-content=\" Başvurunun yayında olup olmayacagini belirler.\">?</button>\r\n\r\n\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"p-3 pt-1 row\" >\r\n                            <div class=\"col-4\" >\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\" > Gizli </label>\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"hide\" defaultChecked={basvuruTipi.hide} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-7  textvmuted\" style={{ \"text-align\": \"justify\" }}>\r\n                                <button type=\"button\" className=\"btn btn-secondary bg-secondary btn-sm fw-bold pt-0 pb-0 mt-0 \"\r\n                                    id=\"mypopover0\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\"\r\n                                    title=\"AÇIKLAMA\" data-bs-content=\"Başvuru Tipini Müelliflerden gizler\">\r\n                                    ?</button>\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"p-3 pt-1 row\" >\r\n                            <div class=\"col-4\" >\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\" > Zorunlu Dosya Kontrol </label>\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"eksiksiz\" defaultChecked={basvuruTipi.eksiksiz} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-7  textvmuted small\" style={{ \"text-align\": \"justify\" }}>\r\n                                <button type=\"button\" className=\"btn btn-secondary bg-secondary btn-sm fw-bold pt-0 pb-0 mt-0 \"\r\n                                    id=\"mypopover2\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\"\r\n                                    title=\"AÇIKLAMA\" data-bs-content=\"Bu başvuruda zorunlu olarak isaretlediğiniz dosyaların yüklenmeden başvurunun gönderilmesini engeller.\">\r\n                                    ?</button>\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"p-3 pt-1 row\" >\r\n                            <div class=\"col-4\" >\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\" > Hızlı Arşiv </label>\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"hizliArsiv\" defaultChecked={basvuruTipi.hizliArsiv} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-7  textvmuted  small\" style={{ \"text-align\": \"justify\" }}>\r\n                                <button type=\"button\" className=\"btn btn-secondary bg-secondary btn-sm fw-bold pt-0 pb-0 mt-0\"\r\n                                    id=\"mypopover3\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\"\r\n                                    title=\"AÇIKLAMA\" data-bs-content=\"Bu başvuruda zorunlu olarak isaretlediğiniz dosyaların yüklenmeden başvurunun gönderilmesini engeller.\">\r\n                                    ?</button>\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"p-3 pt-1 row\" >\r\n                            <div class=\"col-4\" >\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\" >Kabul Süreci </label>\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"kabulSureci\" defaultChecked={basvuruTipi.kabulSureci} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-7  textvmuted  small\" style={{ \"text-align\": \"justify\" }}>\r\n                                <button type=\"button\" className=\"btn btn-secondary bg-secondary btn-sm fw-bold pt-0 pb-0 mt-0\"\r\n                                    id=\"mypopover6\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\"\r\n                                    title=\"AÇIKLAMA\" data-bs-content=\"Bu başvuruda kabul süreci otomatik olarak geçilerek başvuru yapıldığı anda havale sürecine düşer. İşaretli olursa normal süreç, işaret konmazsa otomatik olarak havale aşamasına düşecek\">\r\n                                    ?</button>\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"p-3 pt-1 row\" >\r\n                            <div class=\"col-4\" >\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\" >  Onay Süreci </label>\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"onaysureci\" defaultChecked={basvuruTipi.onaysureci} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-7  textvmuted small\" style={{ \"text-align\": \"justify\" }}>\r\n                                <button type=\"button\" className=\"btn btn-secondary bg-secondary btn-sm fw-bold pt-0 pb-0 mt-0\"\r\n                                    id=\"mypopover4\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\"\r\n                                    title=\"AÇIKLAMA\" data-bs-content=\"Başvurunun kontrolü tamamlandıktan sonra yöneticinin onayına sunulmasını sağlar. Bunun için yöneticinin rolüne Kullanıcı Yönetimi /Kullanıcı Rolleri ekranından Onay yetkisi verilmelidir. \">\r\n                                    ?</button>\r\n\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"p-3 pt-1 row\" >\r\n                            <div class=\"col-4\" >\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\" >  Ruhsat Süreci </label>\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"ruhsatsureci\" defaultChecked={basvuruTipi.ruhsatsureci} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-7 textvmuted small\" style={{ \"text-align\": \"justify\" }}>\r\n                                <button type=\"button\" className=\"btn btn-secondary bg-secondary btn-sm fw-bold pt-0 pb-0 mt-0\"\r\n                                    id=\"mypopover5\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\"\r\n                                    title=\"AÇIKLAMA\" data-bs-content=\" Başvurunun ruhsat aşamasının olup olmayacağını belirler.\">\r\n                                    ?</button>\r\n\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n                        <div className=\"p-3 pt-1 row\" >\r\n                            <div class=\"col-4\" >\r\n                                <label class=\"form-check-label\" for=\"inlineCheckbox1\" >  Paralel Başvuru </label>\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"paralelBasvuru\" defaultChecked={basvuruTipi.paralelBasvuru} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-7 textvmuted small\" style={{ \"text-align\": \"justify\" }}>\r\n                                <button type=\"button\" className=\"btn btn-secondary bg-secondary btn-sm fw-bold pt-0 pb-0 mt-0\"\r\n                                    id=\"mypopover5\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\"\r\n                                    title=\"AÇIKLAMA\" data-bs-content=\"Aynı konuma paralel başvuruların yapılmasına izin verilecektir\">\r\n                                    ?</button>\r\n\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n                    </div>\r\n                </div>\r\n\r\n\r\n\r\n\r\n\r\n                <div className=\"col-12 col-md-6\" >\r\n                    <div className=\"bg-white rounded-3\" >\r\n                        <div className=\"p-2 fw-bold border-bottom\" >\r\n                            Süreler ve Kıstaslar\r\n\r\n                        </div>\r\n                        <div className=\"row p-3 pt-2\" >\r\n                            <div className=\"col-4\" >\r\n\r\n                                Düzeltme Süre <button type=\"button\" className=\"btn btn-secondary bg-secondary btn-sm fw-bold pt-0 pb-0 mt-0 ms-3 mb-1\"\r\n                                    id=\"mypopover6\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\"\r\n                                    title=\"AÇIKLAMA\" data-bs-content=\"Kontrolörlerin istediği düzeltmeler için müellife verilen süredir. Bu süre zarfında düzeltme yapılıpmaz ise  düzeltmeyi gönder butonuo pasif olur ve başvuru İade Listesi ne düşer. Kurum içindeki yetkili kullanıcı kendisi isterse düzeltmeyi gönder butonuna basarak başvuruyu müellif adına belediyeye gönderebilir.\">\r\n                                    ?</button>\r\n                                <input type=\"number\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} placeholder=\"\" name=\"duzeltmeDeadline\" onChange={(e) => updateRecord(basvuruTipi, e)} defaultValue={basvuruTipi.duzeltmeDeadline} />\r\n                            </div>\r\n                            < div className=\"col-4\" >\r\n                                Düzeltme Sayı<button type=\"button\" className=\"btn btn-secondary bg-secondary btn-sm fw-bold pt-0 pb-0 mt-0 ms-3 mb-1\"\r\n                                    id=\"mypopover7\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\"\r\n                                    title=\"AÇIKLAMA\" data-bs-content=\" Kontrolörlerin isteyeceği düzeltmelere bir sayı sınırı koyar. Bu sınır geçtiğinde düzeltmeyi gönder butonu pasif olur ve başvuru İade Listesi ne düşer. Kurum içindeki yetkili kullanıcı kendisi isterse düzeltmeyi gönder butonuna basarak başvuruyu müellif adına belediyeye gönderebilir.\">\r\n                                    ?</button>\r\n                                <input type=\"number\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} placeholder=\"\" name=\"duzeltmeSayi\" onChange={(e) => updateRecord(basvuruTipi, e)} defaultValue={basvuruTipi.duzeltmeSayi} />\r\n                            </div>\r\n\r\n\r\n\r\n\r\n                            <div className=\"col-4\" >\r\n                                Kontrol Süre <button type=\"button\" className=\"btn btn-secondary bg-secondary btn-sm fw-bold pt-0 pb-0 mt-0 ms-3 mb-1\"\r\n                                    id=\"mypopover8\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\"\r\n                                    title=\"AÇIKLAMA\" data-bs-content=\"Kontrollerini tamamlamaları için Kontrolörlere verilen süredir. Bu sürede kontrol tamamlanmazsa geciken başvurular bölümüne düşer. Verilen süre kontrolör ekranında, yetkisi olan kullanıcılara geri sayım olarak görünür. Belirtilen süre İŞ GÜNÜDÜR. Hafta sonları dahil değildir.\">\r\n                                    ?</button>\r\n                                <input type=\"number\" className=\"form-control form-control-sm  \" placeholder=\"\" name=\"deadline\" onChange={(e) => updateRecord(basvuruTipi, e)} defaultValue={basvuruTipi.deadline} />\r\n\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"row mt-2 border-top pt-3 ps-2\" >\r\n                            <div class=\"col-2\" >\r\n\r\n                            </div>\r\n                            <div class=\"col-1 text-primary\" >\r\n                                Aktif\r\n                            </div>\r\n                            <div class=\"col-1 text-primary\" >\r\n                                Zorunlu\r\n                            </div>\r\n                            <div class=\"col-3\" >\r\n                            </div>\r\n                            <div class=\"col-2\" >\r\n\r\n                            </div>\r\n                            <div class=\"col-1 text-primary\" >\r\n                                Aktif\r\n                            </div>\r\n                            <div class=\"col-1 text-primary\" >\r\n                                Zorunlu\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n                        <div className=\"row ps-3\" >\r\n                            <div class=\"col-2\" >\r\n                                Mevki\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"mevkiAktif\" defaultChecked={basvuruTipi.mevkiAktif} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"mevkiZorunlu\" defaultChecked={basvuruTipi.mevkiZorunlu} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-3\" >\r\n                            </div>\r\n                            <div class=\"col-2\" >\r\n                                Mahalle\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" id=\"mahalleAktif\" name=\"mahalleAktif\" defaultChecked={basvuruTipi.mahalleAktif} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" id=\"mahalleZorunlu\" disabled  name=\"mahalleZorunlu\" defaultChecked={basvuruTipi.mahalleZorunlu} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"row ps-3 mt-2\" >\r\n                            <div class=\"col-2\" >\r\n                                Ada/Parsel\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" id=\"adaAktif\"  name=\"adaAktif\" defaultChecked={basvuruTipi.adaAktif} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" id=\"adaZorunlu\" disabled name=\"adaZorunlu\" defaultChecked={basvuruTipi.adaZorunlu} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-3\" >\r\n                            </div>\r\n                            <div class=\"col-2\" >\r\n                                Sokak\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"sokakAktif\" defaultChecked={basvuruTipi.sokakAktif} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"sokakZorunlu\" defaultChecked={basvuruTipi.sokakZorunlu} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"row ps-3 mt-2\" >\r\n                            <div class=\"col-2\" >\r\n                                No\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"noAktif\" defaultChecked={basvuruTipi.noAktif} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"noZorunlu\" defaultChecked={basvuruTipi.noZorunlu} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-3\" >\r\n                            </div>\r\n                            <div class=\"col-2\" >\r\n                                Müellif\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"muellifAktif\" defaultChecked={basvuruTipi.muellifAktif} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"muellifZorunlu\" defaultChecked={basvuruTipi.muellifZorunlu} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"row ps-3 mt-2\" >\r\n                            <div class=\"col-2\" >\r\n                                Idari Mahalle\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"idariMahalleAktif\" defaultChecked={basvuruTipi.idariMahalleAktif} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"idariMahalleZorunlu\" defaultChecked={basvuruTipi.idariMahalleZorunlu} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n\r\n                            <div class=\"col-3\" >\r\n                            </div>\r\n                            <div class=\"col-2\" >\r\n                                Taşınmaz Sahibi\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"tasinamazSahibiAktif\" defaultChecked={basvuruTipi.tasinamazSahibiAktif} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                            <div class=\"col-1\" >\r\n                                <input type=\"checkbox\" className=\"form-check-input\" name=\"tasinamazSahibiZorunlu\" defaultChecked={basvuruTipi.tasinamazSahibiZorunlu} onChange={(e) => updateRecord(basvuruTipi, e)} />\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n\r\n\r\n                        < div className=\"p-3 pt-3 mt-3 border-top\" >\r\n                            <div style={{ \"text-align\": \"justify\" }}> Koşul\r\n                                <button type=\"button\" className=\"btn btn-secondary bg-secondary btn-sm fw-bold pt-0 pb-0 mt-0 ms-2\"\r\n                                    id=\"mypopover8\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\"\r\n                                    title=\"AÇIKLAMA\" data-bs-content=\"Başvurunun yapılabilmesi için seçilecek diğer başvuruların sürecinin tamamlanmasını gerektirir.\">\r\n                                    ?</button>\r\n                                <Multiselect className=\"p-0 ps-1 mt-1 form-control-sm\"\r\n                                    options={listData.filter(x => x.isadimi != true)}\r\n                                    emptyRecordMsg=\"Başka Kayıt Yok\"\r\n                                    ref={multiselectRef}\r\n                                    displayValue=\"name\"\r\n                                    isObject={true}\r\n                                    onSelect={(selectedList, removedItem) => basvuruTipi[\"precondition\"] = selectedList.length == 0 ? null : selectedList.map(rec => rec.id).join()} // Function will trigger on select event\r\n                                    onRemove={(selectedList, removedItem) => basvuruTipi[\"precondition\"] = selectedList.length == 0 ? null : selectedList.map(rec => rec.id).join()} // Function will trigger on remove event\r\n                                    selectedValues={basvuruTipi.precondition == null ? [] : listData.filter(x => x.isadimi != true && basvuruTipi.precondition.split(\",\").includes(x.id + \"\"))}\r\n                                />\r\n\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n\r\n                    </div>\r\n\r\n                    <div className=\"bg-white rounded-3 mt-3\" >\r\n                        <div className=\"p-2 fw-bold border-bottom\" >\r\n                            İş Adımları\r\n                            <span className=\"spinner-border spinner-border-sm ms-3\" id=\"adresspiner\" hidden>   </span>\r\n                        </div>\r\n                        {basvuruTipi.id == null && <div className=\"text-muted ps-2\">İş Adımlarını seçmek için önce Başvuru Tipini Kaydediniz </div>}\r\n\r\n\r\n                        < div className=\"p-2\" >\r\n                            <Multiselect className=\"p-0 ps-1 form-control-sm\"\r\n                                options={listData.filter(x => x.isadimi == true)}\r\n                                emptyRecordMsg=\"Başka Kayıt Yok\"\r\n                                ref={multiselectRef}\r\n\r\n                                displayValue=\"name\"\r\n                                disable={basvuruTipi.id == null}\r\n                                isObject={true}\r\n                                onSelect={(selectedList, item) => addBasvuruTipiisAdimi(item)} // Function will trigger on select event\r\n                                onRemove={(selectedList, item) => removeBasvuruTipiisAdimi(item)} // Function will trigger on remove event\r\n                                selectedValues={listData.filter(x => x.isadimi == true && basvuruTipiAdimlari.some(b => b.isAdimi == x.id))}\r\n                            />\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            {basvuruTipi.id != null ? <HavaleSablonSetting disabled basvuruTipi={basvuruTipi} isAdimlari={basvuruTipiAdimlari} key={basvuruTipiAdimlari} /> : <span className=\"text-muted p-3\">Havale Şablonları eklemek için önce Başvuru Tipini Kaydediniz </span>}\r\n\r\n        </div>\r\n\r\n    );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { ajaxFail, sendpost, isEmpty, showConfirmMessage, levenshtein, showSuccessMessage, capitalizeWords, showErrorMessage } from '../GlobalState.js';\r\nimport { typeOf } from 'react-is';\r\nimport BasvuruTipleriDetail from './BasvuruTipleriDetail.js';\r\nimport bootstrap from 'bootstrap/dist/js/bootstrap.min.js'\r\nimport $ from 'jquery';\r\n\r\nexport default function BasvuruTipleriList(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState([]);\r\n    const [userDenetimPerms, setuserDenetimPerms] = useState([]);\r\n    const [userlist, setUserList] = useState([]);\r\n    const [appTypeGroups, setappTypeGroups] = useState([]);\r\n    const [basvuruTipiAdimlari, setBasvuruTipiAdimlari] = useState([]);\r\n\r\n    const multiselectRef = React.createRef();\r\n\r\n    const multiselectRefNew = React.createRef();\r\n\r\n    const [showIsAdimlari, setShowIsAdimlari] = useState(false);\r\n\r\n    useEffect(() => {\r\n        fetchDenetimList();\r\n        fetchAppTypeGrupList();\r\n        getbasvurutipiadiımlari();\r\n        fetchUserList();\r\n\r\n        var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"popover\"]'))\r\n        var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n            return new bootstrap.Popover(popoverTriggerEl)\r\n        })\r\n        $(\"#basvuruTipiListesi\").on(\"click\", function (e) {\r\n            var windowElement = document.getElementsByClassName('floating-window');\r\n            Array.prototype.slice.call(windowElement).forEach(w => w.style.display = 'none')\r\n        });\r\n\r\n    }, [])\r\n\r\n\r\n    const showWindow = (id) => {\r\n        const windowElement = document.getElementById('floatingWindow' + id);\r\n        var target = document.getElementById('name' + id)\r\n        var inputText = target.value.toLowerCase();\r\n        const matchedItems = listData.filter(x=>x.id!=id)\r\n            .map(item => ({\r\n                item,\r\n                similarity: levenshtein(inputText.toLowerCase(), item.name.toLowerCase())\r\n            }))\r\n            .filter(({ similarity }) => similarity > 0.1) // Only keep items with some similarity\r\n            .sort((a, b) => b.similarity - a.similarity);\r\n\r\n        if (document.getElementById('save' + id) != null) {\r\n            if (matchedItems.length > 0 && matchedItems[0].similarity == 1)\r\n                document.getElementById('save' + id).disabled = true;\r\n            else\r\n                document.getElementById('save' + id).disabled = false;\r\n\r\n        }\r\n\r\n\r\n        if (matchedItems.length > 0 && inputText !== '') {\r\n            windowElement.innerHTML = \"<div class='text-danger border-bottom border-primary '>Daha önce eklediğiniz benzer kayıtlar</div>\" +\r\n                matchedItems.map(item =>\r\n                    `<div class='border-bottom fw-bold text-dark' style='opacity:${0.2 + item.similarity}'>\r\n                    <span class='btn btn-link btn-sm text-decoration-none shadow-none'>\r\n                        ${item.item.name}\r\n                    </span>\r\n                </div>`).join('');\r\n            const rect = target.getBoundingClientRect();\r\n            windowElement.style.left = rect.left + 3 + 'px';\r\n            windowElement.style.top = rect.bottom + 5 + 'px';\r\n            windowElement.style.display = 'block';\r\n        } else {\r\n            windowElement.style.display = 'none';\r\n        }\r\n    }\r\n\r\n\r\n\r\n\r\n    const fetchList = () => {\r\n        fetch(\"getdenetimperms\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(\"\")\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setuserDenetimPerms(value);\r\n\r\n                })\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchUserList = () => {\r\n        fetch(\"userlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    fetchList();\r\n                    value.forEach(x => x.fullName = x.name + \" \" + x.family + \"(\" + x.userName + \")\")\r\n                    setUserList(value);\r\n\r\n                })\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const Add = (id, username) => {\r\n        var postdata = {};\r\n        postdata.UserName = username;\r\n        postdata.DenetimId = id;\r\n        sendpost(\"mapdenetimtouser\", postdata, \"spin1\");\r\n\r\n    }\r\n\r\n    const remove = (id, username) => {\r\n        var postdata = {}\r\n        postdata.UserName = username;\r\n        postdata.denetimId = id;\r\n        sendpost(\"removedenetimfromuser\", postdata, \"spin1\");\r\n    }\r\n\r\n\r\n    const fetchAppTypeGrupList = () => {\r\n        fetch(\"apptypegroupslist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setappTypeGroups(value);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchDenetimList = () => {\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value.trim();\r\n        const name = target.name;\r\n        rec[name] = value;\r\n        if ((name == \"deadline\" || name == \"precondition\") && value == '')\r\n            rec[name] = null;\r\n    }\r\n\r\n    const renderIsAdimiTable = (tabledata) => {\r\n        if (tabledata == null)\r\n            return \"\";\r\n        var mytable = <div>\r\n            <div className=\"row mt-2 pb-2\">\r\n\r\n                <div className=\"col-3\">\r\n                    <input autocomplete=\"off\" id=\"nameNew\" type=\"text\" className=\"form-control form-control-sm\" placeholder=\"İş Adımı\" name=\"name\" onChange={(e) => { handleInputChange(e); showWindow(\"New\") }} />\r\n                    <div id=\"floatingWindowNew\" className=\"floating-window\"></div>\r\n                </div>\r\n\r\n\r\n                <div className=\"col-2\">\r\n                Aktif \r\n                    <input type=\"checkbox\" className=\"ms-2 form-check-input\" name=\"active\" id=\"active\"   defaultChecked={false} onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"col-2\">\r\n                    <input type=\"number\" className=\"form-control form-control-sm\" id=\"deadline\" placeholder=\"Kontrol Süre\" name=\"deadline\" onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"col-2\">\r\n                    <input type=\"number\" className=\"form-control form-control-sm\" id=\"duzeltmeDeadline\" placeholder=\"Düzeltme Süre\" name=\"duzeltmeDeadline\" onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"col-2\">\r\n                    <input type=\"number\" className=\"form-control form-control-sm\" id=\"duzeltmeSayi\" placeholder=\"Düzeltme Sayı\" name=\"duzeltmeSayi\" onChange={handleInputChange} />\r\n                </div>\r\n\r\n                <div className=\"col-1 text-end\" >  <button id=\"saveNew\" onClick={() => savedenetim(null)} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\"><i class=\"fa fa-plus-circle fs-5\" aria-hidden=\"true\" title=\"Ekle\"></i></button>\r\n\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"table-responsive mainpagescroll mt-2 border-top border-2\" style={{ \"height\": \"85vh\" }} >\r\n                <table className='table table-vdstriped  table-sm ' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light \">\r\n\r\n                        <th className=\"text-start\">Id</th>\r\n                        <th className=\"text-start\">\r\n                            Yapılan İşin Adı\r\n                            <button type=\"button\" className=\"btn btn-secondary bg-secondary btn-sm fw-bold pt-0 pb-0 mt-0 ms-2\" id=\"mypopover2\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\" title=\"AÇIKLAMA\" data-bs-content=\"'Başvuru Tipleri' tab'ında yer alan başvurulara ilişkin yapılan havaleler ile ilgilidir. Kontrolörlerin ilgili başvuruda gerçekleştirdikleri eylemlere verilen isimleridir. Bu sayede o başvuruda hangi kontrolör tarafından hangi işlerin yapıldığı görülmüş olur.\">?</button>\r\n\r\n                        </th>\r\n                        <th className=\"text-start\">Yetkili Kişiler <span className=\"spinner-border spinner-border-sm ms-3\" id=\"spin1\" hidden>   </span></th>\r\n                        <th className=\"text-start\">Aktif</th>\r\n                        <th className=\"text-start\">Kontrol Süre</th>\r\n                        <th className=\"text-start\">Düzeltme Süre</th>\r\n                        <th className=\"text-start\">Düzeltme Sayı</th>\r\n                        <th className=\"text-end\"></th>\r\n                    </thead>\r\n                    <tbody id=\"myTable\">\r\n                        {tabledata.map(apprec =>\r\n                            <tr key={apprec.id}>\r\n\r\n                                <td>{apprec.id}</td>\r\n                                <td>\r\n                                    <input autocomplete=\"off\" id={\"name\" + apprec.id} type=\"text\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\", \"min-width\": \"200px\" }} placeholder=\"Denetim Adı\" name=\"name\" onChange={(e) => { updateRecord(apprec, e); showWindow(apprec.id); }} defaultValue={apprec.name} />\r\n                                    <div id={\"floatingWindow\" + apprec.id} className=\"floating-window\"></div>\r\n                                </td>\r\n\r\n                                <td>\r\n                                    <Multiselect className=\"p-0 ps-1 form-control-sm bg-white mb-2\"\r\n                                        options={userlist}\r\n                                        emptyRecordMsg=\"Başka Kayıt Yok\"\r\n                                        displayValue=\"fullName\"\r\n                                        isObject={true}\r\n                                        closeOnSelect={true}\r\n                                        selectedValues={userlist.filter(x => userDenetimPerms.some(y => y.creatorUserName == x.userName && apprec.name == y.name))}\r\n                                        avoidHighlightFirstOption={true}\r\n                                        onSelect={(selectedList, item) => { Add(apprec.id, item.userName) }}\r\n                                        onRemove={(selectedList, item) => { remove(apprec.id, item.userName) }}\r\n                                    />\r\n                                </td>\r\n\r\n\r\n                                <td>\r\n                                    <input type=\"checkbox\" className=\"form-check-input\" name=\"active\" defaultChecked={apprec.active} onChange={(e) => updateRecord(apprec, e)} />\r\n                                </td>\r\n                                <td style={{ \"min-width\": \"60px\" }}><input type=\"number\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} placeholder=\"\" name=\"deadline\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.deadline} /></td>\r\n                                <td style={{ \"min-width\": \"60px\" }}><input type=\"number\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} placeholder=\"\" name=\"duzeltmeDeadline\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.duzeltmeDeadline} /></td>\r\n                                <td style={{ \"min-width\": \"60px\" }}><input type=\"number\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} placeholder=\"\" name=\"duzeltmeSayi\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.duzeltmeSayi} /></td>\r\n\r\n\r\n                                <td className=\"text-end\">\r\n                                    <button id={\"save\" + apprec.id} onClick={() => { savedenetim(apprec); }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0 shadow-none\"><i className=\"fa fa-floppy-o fs-6\" aria-hidden=\"true\" title=\"Güncelle\"></i></button>\r\n                                    &nbsp;\r\n  \r\n                                    <button onClick={() => { sil(apprec); }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0  shadow-none\"><i className=\"fa fa-trash text-danger fs-6\" aria-hidden=\"true\" title=\"Sil\"></i></button>\r\n\r\n                                </td>\r\n                            </tr>\r\n                        )}\r\n\r\n\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        </div >\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        if (tabledata == null)\r\n            return \"\";\r\n        var mytable = <div>\r\n            <div className=\" text-end mt-1\">\r\n                <button onClick={() => window.changeComponent(<BasvuruTipleriDetail basvuruTipleri={listData} basvuruTipi={new Object()} basvuruTipleri={listData} appTypeGroups={appTypeGroups} basvuruTipiAdimlari={[]} />)} className=\" btn btn-sm btn-primary\">Yeni Başvuru Tipi Oluştur </button>\r\n            </div>\r\n            <div className=\"table-responsive mainpagescroll mt-1\" style={{ \"height\": \"85vh\" }} >\r\n\r\n                <table className='table table-vdstriped  table-sm ' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light \">\r\n\r\n                        <th className=\"text-start\">Id</th>\r\n                        <th className=\"text-start\"> Başvuru Adı</th>\r\n                        <th className=\"text-start\"> Ekleme Tarihi</th>\r\n\r\n                        <th className=\"text-start\">Aktif</th>\r\n                        <th className=\"text-start\">Kabul</th>\r\n                        <th className=\"text-start\">Onay</th>\r\n                        <th className=\"text-start\">Ruhsat</th>\r\n                        <th className=\"text-start\">Zorunlu Dosya Kontrol</th>\r\n                        <th className=\"text-start\">Hızlı Arşiv</th>\r\n\r\n                        <th className=\"text-end\"></th>\r\n                    </thead>\r\n                    <tbody id=\"myTable\">\r\n                        {tabledata.filter(x => (x.isadimi == true) == showIsAdimlari).map(apprec =>\r\n                            <tr key={apprec.id}>\r\n                                <td>{apprec.id}</td>\r\n                                <td>\r\n                                    {apprec.name}\r\n                                </td>\r\n                                <td>\r\n                                    {apprec.crerateTime}\r\n                                </td>\r\n\r\n                                <td>\r\n                                    <input type=\"checkbox\" className=\"form-check-input\" name=\"active\" checked={apprec.active} disabled />\r\n                                </td>\r\n                                {showIsAdimlari == false &&  <td>\r\n                                    <input type=\"checkbox\" className=\"form-check-input\" name=\"kabulSureci\" checked={apprec.kabulSureci} disabled />\r\n                                </td>}\r\n                                {showIsAdimlari == false && <td>\r\n                                    <input type=\"checkbox\" className=\"form-check-input\" name=\"onaysureci\" checked={apprec.onaysureci} disabled />\r\n                                </td>}\r\n                                {showIsAdimlari == false && <td>\r\n                                    <input type=\"checkbox\" className=\"form-check-input\" name=\"ruhsatsureci\" checked={apprec.ruhsatsureci} disabled />\r\n                                </td>}\r\n                                {showIsAdimlari == false && <td>\r\n                                    <input type=\"checkbox\" className=\"form-check-input\" name=\"eksiksiz\" checked={apprec.eksiksiz} disabled />\r\n                                </td>}\r\n                                {showIsAdimlari == false && <td>\r\n                                    <input type=\"checkbox\" className=\"form-check-input\" name=\"hizliArsiv\" checked={apprec.hizliArsiv} disabled />\r\n                                </td>}\r\n\r\n\r\n                                {/*<td>{apprec.creatorUserName}</td>*/}\r\n                                {/*<td>{apprec.crerateTime}</td>*/}\r\n                                <td className=\"text-end\">  <button onClick={() => {\r\n                                    window.changeComponent(<BasvuruTipleriDetail basvuruTipi={apprec} appTypeGroups={appTypeGroups} basvuruTipiAdimlari={basvuruTipiAdimlari} basvuruTipleri={listData} />)\r\n\r\n                                }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\"><i className=\"fa fa-edit fs-6\" aria-hidden=\"true\" title=\"Güncelle\"></i></button>\r\n                                    &nbsp;&nbsp;\r\n                                    {/*  <button onClick={() => {\r\n                                        showConfirmMessage(apprec.hide == true ? \"Kayıt Başvuru Tiplerine Taşınacaktır\" : \"Kayıt İş Adımlarına Taşınacaktır\", \"\", \"Devam Et\", \"İptal\", () => {\r\n                                            apprec.hide = apprec.hide == true ? false : true;\r\n                                            savedenetim(apprec);\r\n                                        })\r\n\r\n\r\n                                    }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">\r\n                                        <i className={apprec.hide == true ? \"fa fa-book  fs-6\" : \"fa fa-code-fork fs-6\"} aria-hidden=\"true\" title={apprec.hide == true ? \"Başvuru Tiplerine Taşı\" : \"İş Adımlarına Taşı\"}></i></button>*/}\r\n\r\n                                    <button onClick={() => { sil(apprec); }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\"><i className=\"fa fa-trash text-danger fs-6\" aria-hidden=\"true\" title=\"Sil\"></i></button>\r\n\r\n                                </td>\r\n                            </tr>\r\n                        )}\r\n\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        </div>\r\n        return (mytable);\r\n    }\r\n\r\n    const sil = (rec) => {\r\n        var r = rec;\r\n\r\n        showConfirmMessage(rec.name + \" İsimli Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removedenetim\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(rec)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }));\r\n\r\n    }\r\n\r\n    const getbasvurutipiadiımlari = (rec) => {\r\n        sendpost(\"basvurutipisadimlist\", null, \"\", (response) => {\r\n            response.json().then(value => {\r\n                setBasvuruTipiAdimlari(value);\r\n            })\r\n\r\n        })\r\n    }\r\n\r\n    const savedenetim = (rec) => {\r\n        var r = rec;\r\n        if (r == null) {\r\n            postdata.isadimi = showIsAdimlari;\r\n            r = postdata;\r\n        }\r\n\r\n        r.name = capitalizeWords(r.name);\r\n        if (document.getElementById(\"name\" + r.id))\r\n            document.getElementById(\"name\" + r.id).value = r.name;\r\n        if (isEmpty(r.name)) {\r\n            showErrorMessage(\"İsim Boş Olamaz\");\r\n            return;\r\n        }\r\n\r\n        fetch(\"savedenetim\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(r)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                if (rec != null) {\r\n                    showSuccessMessage(\"İş Adımı Güncellendi. \")\r\n                   // fetchDenetimList();\r\n                }\r\n                else {\r\n                    fetchDenetimList();\r\n                    if (document.getElementById(\"nameNew\")) document.getElementById(\"nameNew\").value = \"\";\r\n                    if (document.getElementById(\"active\")) document.getElementById(\"active\").checked = false;\r\n                    if (document.getElementById(\"onaysureci\")) document.getElementById(\"onaysureci\").checked = false;\r\n                    if (document.getElementById(\"ruhsatsureci\")) document.getElementById(\"ruhsatsureci\").checked = false;\r\n                    if (document.getElementById(\"hide\")) document.getElementById(\"hide\").checked = false;\r\n                    if (document.getElementById(\"eksiksiz\")) document.getElementById(\"eksiksiz\").checked = false;\r\n                    if (document.getElementById(\"deadline\")) document.getElementById(\"deadline\").value = \"\";\r\n                    if (document.getElementById(\"duzeltmeDeadline\")) document.getElementById(\"duzeltmeDeadline\").value = \"\";\r\n                    if (document.getElementById(\"duzeltmeSayi\")) document.getElementById(\"duzeltmeSayi\").value = \"\";\r\n                    if (document.getElementById(\"hizliArsiv\")) document.getElementById(\"hizliArsiv\").checked = false;\r\n                    if (document.getElementById(\"grup\")) document.getElementById(\"grup\").selectedIndex = -1;\r\n                    if (multiselectRefNew.current) multiselectRefNew.current.resetSelectedValues();\r\n                    postdata = {};\r\n\r\n                }\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        var value = target.type === 'checkbox' ? target.checked : target.value;\r\n        if (target.type === 'text' && isEmpty(value) == false)\r\n            value = value.trim();\r\n\r\n        postdata[target.name] = value;\r\n\r\n        if (target.name == \"deadline\" && value == '')\r\n            postdata[target.name] = null;\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"\" id=\"basvuruTipiListesi\">\r\n            <ul className=\"nav nav-tabs nav-pills\">\r\n                <li className=\"nav-item\">\r\n                    <a className=\"nav-link active\" id=\"basvurTipleri\" aria-current=\"page\" href=\"#\" onClick={(e) => {\r\n                        document.getElementById(\"isAdimlari\").classList.remove('active');\r\n                        document.getElementById(\"basvurTipleri\").classList.add('active');\r\n                        setShowIsAdimlari(false);\r\n                    }}>Başvuru Tipleri <i className={\"fa fa-book  fs-6\"} aria-hidden=\"true\" ></i></a>\r\n                </li>\r\n                <li className=\"nav-item\">\r\n                    <a className=\"nav-link\" href=\"#\" id=\"isAdimlari\"\r\n                        onClick={(e) => {\r\n                            document.getElementById(\"basvurTipleri\").classList.remove('active');\r\n                            document.getElementById(\"isAdimlari\").classList.add('active');\r\n                            setShowIsAdimlari(true);\r\n                        }}\r\n                    >İş Adımları <i className={\"fa fa-code-fork fs-6\"} aria-hidden=\"true\" ></i></a>\r\n                </li>\r\n            </ul>\r\n            <div className=\"row\">\r\n                <div className=\"col-12\" >\r\n                    {showIsAdimlari != true ? renderTable(listData.filter(x => x.isadimi != true)) : renderIsAdimiTable(listData.filter(x => x.isadimi == true))}\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { ajaxFail, showConfirmMessage, showSuccessMessage, sendpost, sendget, isEmpty, showErrorMessage } from '../GlobalState.js';\r\n\r\nexport default function TarifeCetveliSetting(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState([]);\r\n    const [sortDirection, setSortDirection] = useState({});\r\n    var sortField = null;\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n    }, [])\r\n\r\n\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == \"ZA\") {\r\n            sortDirection[sortField] = \"AZ\";\r\n        }\r\n        else {\r\n            sortDirection[sortField] = \"ZA\";\r\n        }\r\n\r\n        var temp = [...listData]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setListData(temp);\r\n    }\r\n\r\n    const myCompare = (a, b) => {\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n        var ret = 1;\r\n        if (sortDirection[sortField] == \"ZA\")\r\n            ret = -1;\r\n\r\n        if (av == null && bv != null)\r\n            return -1 * ret;\r\n        if (av != null && bv == null)\r\n            return 1 * ret;\r\n        if (av == null && bv == null)\r\n            return 0;\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * ret\r\n\r\n        if (av < bv) {\r\n            return -1 * ret;\r\n        }\r\n        if (av > bv) {\r\n            return 1 * ret;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const fetchList = () => {\r\n        sendget(\"tarifecetvelilist\", \"spinner1\", (response) => {\r\n            response.json().then(value => {\r\n                setListData(value)\r\n            })\r\n        })\r\n    }\r\n\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        var value = target.type === 'checkbox' ? target.checked : target.value.trim();\r\n        const name = target.name;\r\n\r\n        if (isEmpty(value) == false && /^[a-zA-Z0-9_.]+$/.test(value) == false) {\r\n            showErrorMessage(\"Sadece harf, rakam veya _ girebilirsiniz\");\r\n            return;\r\n        }\r\n        rec[name] = value;\r\n        if (isEmpty(value))\r\n            rec[name] = null;\r\n    }\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"table-responsive mainpagescroll\" style={{ \"height\": \"85vh\" }}>\r\n                <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-white\" >\r\n                        <th width=\"35px\">\r\n                            <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"id\")}>Id</button>\r\n                        </th>\r\n                        <th>\r\n                            <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"name\")}>Ad</button>\r\n                        </th>\r\n                        <th>\r\n                            <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"nitelik\")}>Çarpan</button>\r\n                        </th>\r\n                        <th>\r\n                            <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"deger\")}>Değer</button>\r\n                        </th>\r\n                        <th>\r\n                            <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"low\")}>Alt Sınır</button>\r\n                        </th>\r\n                        <th>\r\n                            <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"high\")}>Üst Sınır</button>\r\n                        </th>\r\n                        <th>\r\n                            <button className=\"btn btn-link btn-sm text-decoration-none\" onClick={() => sortList(\"tarih\")}>Tarih</button>\r\n                        </th>\r\n                        <th></th>\r\n                    </thead>\r\n                    <tbody id=\"myTable\">\r\n                        {tabledata.map(apprec =>\r\n                            <tr key={apprec.id}>\r\n                                <td>{apprec.id}</td>\r\n                                <td><input type=\"text\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} name=\"name\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.name} /></td>\r\n                                <td><input type=\"text\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} name=\"nitelik\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.nitelik} /></td>\r\n                                <td><input type=\"number\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} name=\"deger\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.deger} /></td>\r\n                                <td><input type=\"number\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} name=\"low\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.low} /></td>\r\n                                <td><input type=\"number\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} name=\"high\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.high} /></td>\r\n\r\n\r\n                                <td>{apprec.tarih}</td>\r\n\r\n                                <td className=\"text-end\">  <button onClick={() => { save(apprec); }} className=\"btn btn-link btn-sm text-decoration-none  shadow-none\"><i class=\"fa fa-save\" title=\"Güncelle\"></i></button>\r\n                                   \r\n                                    <button onClick={() => { sil(apprec); }} className=\"btn btn-link btn-sm text-decoration-none  shadow-none ps-0\"><i class=\"fa fa-trash-o\" title=\"Sil\"></i></button>\r\n                                </td>\r\n                            </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n    const sil = (rec) => {\r\n        showConfirmMessage(rec.id + \" numaralı kayıt silinsin mı?\",\"\",\"Evet\",\"Hayır\", () => {\r\n\r\n       \r\n            sendpost(\"removetarifecetveli\", rec, \"spinner1\", (response) => {\r\n            response.json().then(value => {\r\n                setListData(value)\r\n            })\r\n        })\r\n        })\r\n\r\n    }\r\n\r\n\r\n\r\n    const save = (rec) => {\r\n        if (rec == null)\r\n            rec = postdata;\r\n        if (isEmpty(rec.name) || isEmpty(rec.nitelik) || isEmpty(rec.deger)) {\r\n            showErrorMessage(\"Tüm Bilgileri Doldurunuz\", \"\");\r\n            return;\r\n        }\r\n       \r\n        rec.name = rec.name.trim();\r\n        if (/^[a-zA-Z0-9_]+$/.test(rec.name) == false) {\r\n            showErrorMessage(\"Ad sadece harf veya rakam içerebilir\");\r\n            return;\r\n        }\r\n\r\n\r\n\r\n        sendpost(\"savetarifecetveli\", rec, \"spinner1\", (response) => {\r\n            response.json().then(value => {\r\n                showSuccessMessage(\"Güncelleme Başarılı\", \"\");\r\n                setListData(value)\r\n            })\r\n        })\r\n\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value.trim();\r\n\r\n        if (isEmpty(value) == false && /^[a-zA-Z0-9_.,]+$/.test(value) == false) {\r\n            showErrorMessage(\"Sadece harf, rakam veya _ girebilirsiniz\");\r\n            return;\r\n        }\r\n\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n    return (\r\n        <div className=\"border  rounded border-light\">\r\n            <div className=\"row\">\r\n                <div className=\"col-9\">\r\n                    <h5>Tarife Cetveli</h5>\r\n                </div>\r\n                <div className=\"col-3 text-end \">\r\n                    <span class=\"ms-1 spinner-border spinner-border-sm\" id=\"spinner1\" hidden></span>\r\n                </div>\r\n            </div>\r\n            \r\n            \r\n            <div className=\"row border rounded-2 m-1 p-2 \">\r\n                <div className=\"col-md-3 col-12\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" placeholder=\"Ad\" name=\"name\" onChange={handleInputChange} key={listData} />\r\n                </div>\r\n                <div className=\"col-md-2 col-12\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"sira\" placeholder=\"Çarpan\" name=\"nitelik\" onChange={handleInputChange} key={listData} />\r\n                </div>\r\n                <div className=\"col-md-2 col-12\">\r\n                    <input type=\"number\" className=\"form-control form-control-sm  \" placeholder=\"Değer\" name=\"deger\" onChange={handleInputChange} key={listData} />\r\n                </div>\r\n                <div className=\"col-md-2 col-12\">\r\n                    <input type=\"number\" className=\"form-control form-control-sm  \" placeholder=\"Alt sınır\" name=\"low\" onChange={handleInputChange} key={listData} />\r\n                </div>\r\n                <div className=\"col-md-2 col-12\">\r\n                    <input type=\"number\" className=\"form-control form-control-sm  \" placeholder=\"Üst sınır\" name=\"high\" onChange={handleInputChange} key={listData} />\r\n                </div>\r\n                <div className=\"col-md-1  col-12 text-end\">\r\n                    <button onClick={() => save(null)} className=\"btn btn-sm btn-link text-decoration-none shadow-none\"><i className=\"fa fa-plus-circle align-middle\" style={{ \"font-size\": \"20px\" }}></i> </button>\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\"col-12\">\r\n                    {renderTable(listData)}\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport TarifeSetting from './TarifeSetting';\r\nimport { ajaxFail, showConfirmMessage, showSuccessMessage, sendpost, sendget, isEmpty, showErrorMessage } from '../GlobalState.js';\r\n\r\nexport default function TarifeDetail(props) {\r\n    var postdata = {};\r\n    const [tarifeCetveli, setListData] = useState([]);\r\n    const [tarife, setTarife] = useState(props.tarife);\r\n    var changeComponent = props.changeComponent;\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n    }, [])\r\n\r\n\r\n\r\n\r\n    const [formulaParts, setFormulaParts] = useState([]);\r\n    const [selectedPart, setSelectedPart] = useState(null);\r\n  \r\n    const [finalFormula, setFinalFormula] = useState(\"\");\r\n    const [selectedOperator, setSelectedOperator] = useState(\"+\");\r\n    const [showIfModal, setShowIfModal] = useState(false);\r\n\r\n    var conditionLeft = \"\", conditionRight = \"\", ifTrueValue = \"\", ifFalseValue = \"\", conditionOperator = \"\";\r\n    //const [conditionLeft, setConditionLeft] = useState(\"\");\r\n   // const [conditionOperator, setConditionOperator] = useState(\"\");\r\n   // const [conditionRight, setConditionRight] = useState(\"\");\r\n   // const [ifTrueValue, setIfTrueValue] = useState(\"\");\r\n   // const [ifFalseValue, setIfFalseValue] = useState(\"\");\r\n    const [lastElementType, setLastElementType] = useState(\"O\");\r\n\r\n\r\n    const operators = [\"+\", \"-\", \"*\", \"/\", \"if\"];\r\n    const conditionOperators = [\"=\", \">\", \"<\", \">=\", \"<=\", \"!=\"];\r\n\r\n    const handleAddKey = (key) => {\r\n       \r\n        var c = document.getElementById(\"newFormul\").value;\r\n        document.getElementById(\"newFormul\").value= c + key\r\n       \r\n    };\r\n\r\n    const resetCombos = () => {\r\n        document.getElementById(\"tarifecetveliselect\").selectedIndex = -1;\r\n        document.getElementById(\"soruselect\").selectedIndex = -1;\r\n        document.getElementById(\"birlestirmeselect\").selectedIndex = -1;\r\n        document.getElementById(\"sabitsayi\").value = \"\";\r\n    };\r\n\r\n\r\n\r\n    const handleAddOperator = (operator) => {\r\n        if (operator === \"if\") {\r\n           \r\n            setShowIfModal(true); // Open modal to define the if statement\r\n        } else {\r\n\r\n           \r\n            var c = document.getElementById(\"newFormul\").value;\r\n            resetCombos();\r\n            var c = document.getElementById(\"newFormul\").value;\r\n            document.getElementById(\"newFormul\").value = c + \" \" + operator + \" \";\r\n           \r\n            \r\n        }\r\n    };\r\n\r\n    const handleAddConstant = (constant) => {\r\n      \r\n\r\n        var c = document.getElementById(\"newFormul\").value;\r\n        document.getElementById(\"newFormul\").value = c +  constant ;\r\n        resetCombos();\r\n    };\r\n\r\n    const handleSavePart = () => {\r\n        var currentPart=document.getElementById(\"newFormul\").value;\r\n        if (currentPart.trim() !== \"\") {\r\n            setFormulaParts((prev) => [...prev, currentPart]);\r\n            document.getElementById(\"newFormul\").value = \"\";\r\n        }\r\n    };\r\n\r\n    const handleAddToFinalFormula = () => {\r\n\r\n        var part = null;\r\n        if (selectedPart == null) {\r\n            showErrorMessage(\"Bir Formül Seçiniz\");\r\n            return;\r\n        }\r\n        part = selectedPart;\r\n\r\n        const formulaUpdate = finalFormula\r\n            ? `(${finalFormula}) ${selectedOperator} (${part})`\r\n            : part;\r\n        setFinalFormula(formulaUpdate);\r\n    };\r\n\r\n    const handleSaveIfStatement = () => {\r\n        const condition = conditionLeft + \" \" + conditionOperator + \" \" + conditionRight;\r\n        const ifStatement = 'if(' + condition + ' , ' + ifTrueValue + ' , ' + ifFalseValue + ')';\r\n        // setFormulaParts((prev) => [...prev, ifStatement]);\r\n        resetCombos();\r\n        var c=document.getElementById(\"newFormul\").value;\r\n        document.getElementById(\"newFormul\").value= c + ifStatement;\r\n        \r\n        //setCurrentPart(\"\");\r\n        setShowIfModal(false);\r\n        resetIfModal();\r\n       \r\n    };\r\n\r\n    const resetIfModal = () => {\r\n       // setConditionLeft(\"\");\r\n       // setConditionOperator(\"\");\r\n       // setConditionRight(\"\");\r\n       // setIfTrueValue(\"\");\r\n        // setIfFalseValue(\"\");\r\n        conditionLeft = \"\";\r\n        conditionRight = \"\";\r\n        ifTrueValue = \"\";\r\n        ifFalseValue = \"\";\r\n        conditionOperator = \"\";\r\n    };\r\n\r\n    const renderOptions = () => {\r\n        return [\r\n            ...tarifeCetveli.map(({ name }) => name),\r\n            ...formulaParts,\r\n            ...(isEmpty(tarife.sorular) ? [] : JSON.parse(tarife.sorular).map(x =>x.tip==\"text\"?\"'\"+x.name+\"'\":x.name)),\r\n            \"Sabit Değer\",\r\n        ];\r\n    };\r\n\r\n    const addSoru = () => {\r\n        var soruadi = document.getElementById(\"soru\").value;\r\n        var sorutipi = document.getElementById(\"sorutip\").value;\r\n        var sorudegeri = document.getElementById(\"options\").value;\r\n        if (isEmpty(soruadi) || isEmpty(sorutipi)) {\r\n            showErrorMessage(\"Soru Adı ve Soru Teipi Seçilmelidir\");\r\n            return;\r\n        }\r\n        soruadi = soruadi.trim();\r\n        if (/^[a-zA-Z0-9_]+$/.test(soruadi) == false) {\r\n            showErrorMessage(\"Soru Adı sadece harf veya rakam içerebilir\");\r\n            return;\r\n        }\r\n\r\n        var newsoru = { name: soruadi, tip: sorutipi, options: sorudegeri }\r\n        if (isEmpty(tarife.sorular)) {\r\n            tarife.sorular = JSON.stringify([newsoru])\r\n        }\r\n        else {\r\n            var s = JSON.parse(tarife.sorular);\r\n            s.push(newsoru);\r\n            tarife.sorular = JSON.stringify(s);\r\n        }\r\n        save(tarife)\r\n\r\n    };\r\n\r\n    const soruSil = (idx) => {\r\n        if (isEmpty(tarife.sorular)) {\r\n            return;\r\n        }\r\n        else {\r\n            var s = JSON.parse(tarife.sorular);\r\n            s.splice(idx, 1);\r\n            tarife.sorular = JSON.stringify(s);\r\n        }\r\n        save(tarife)\r\n\r\n    };\r\n\r\n\r\n\r\n\r\n    const renderDropdown = (key, setValue, label) => (\r\n        <div className=\"row mb-1\">\r\n            <div className=\"col-3\">\r\n                {label}\r\n            </div>\r\n            <div className=\"col-6\">\r\n                <select\r\n                   \r\n                    onChange={(e) => {\r\n                        if (e.target.value == \"Sabit Değer\")\r\n                            document.getElementById(\"id\" + key).hidden = false;\r\n                        setValue(e.target.value)\r\n                    }\r\n                    }\r\n                    className=\"form-select form-select-sm shadow-none\"\r\n                >\r\n                    <option value=\"\">Seç</option>\r\n                    {renderOptions().map((option) => (\r\n                        <option key={option} value={option}>\r\n                            {option}\r\n                        </option>\r\n                    ))}\r\n                </select>\r\n            </div>\r\n\r\n            <div className=\"col-3 ps-0\" id={\"id\" + key} hidden>\r\n                <input className=\"form-control form-control-sm\"\r\n                    type=\"text\"\r\n                    placeholder=\"\"\r\n                    onChange={(e) => {\r\n                        if (isEmpty(e.target.value)==false && /^[a-zA-Z0-9_.]+$/.test(e.target.value) == false) {\r\n                            showErrorMessage(\"Sabit değer sadece harf veya rakam içerebilir\");\r\n                            \r\n                        }\r\n                        else\r\n                          setValue(e.target.value)\r\n                    }}\r\n\r\n                    />\r\n                </div>\r\n            \r\n        </div>\r\n    );\r\n\r\n\r\n\r\n    const renderSorularTable = () => {\r\n        var sorular = [];\r\n        if (isEmpty(tarife.sorular) == false) {\r\n            sorular = JSON.parse(tarife.sorular);\r\n            if (sorular.map == null) {\r\n                showErrorMessage(\"Sorular Listesi Hatalı \" + tarife.sorular);\r\n                sorular = [];\r\n                tarife.sorular = null;\r\n            }\r\n        }\r\n\r\n        var mytable = <div className=\"border rounded-1 p-1 mb-3\">\r\n\r\n            <div className=\"row p-2\">\r\n                <div className=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"soru\" placeholder=\"Soru\" name=\"soru\" />\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <select className=\"form-select form-select-sm\" id=\"sorutip\" placeholder=\"Soru Tipi\" name=\"sorutip\" >\r\n                        <option value=\"\"></option>\r\n                        <option value=\"text\">Yazı</option>\r\n                        <option value=\"number\">Sayı</option>\r\n                        <option value=\"select\">Çoktan Seçmeli</option>\r\n\r\n                    </select>\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"options\" placeholder=\"Varsayılan Değer\" name=\"options\" />\r\n\r\n                </div>\r\n\r\n                <div className=\"col-3 text-end\">\r\n                    <button className=\"btn btn-sm btn-primary\" onClick={addSoru}>Ekle</button>\r\n                </div>\r\n            </div>\r\n\r\n\r\n            <div className=\"table-responsive mainpagescroll mt-3 border-top\">\r\n                <table className='table table-vdstriped table-sm ' aria-labelledby=\"tabelLabel\">\r\n                    <thead className=\"\">\r\n\r\n                        <th className=\"text-start\">Soru</th>\r\n                        <th className=\"text-start\">Soru Tipi</th>\r\n                        <th className=\"text-start\">Varsayılan Değer</th>\r\n\r\n                    </thead>\r\n                    <tbody >\r\n                        {sorular.map((apprec, idx) =>\r\n                            <tr className=\"mt-0 mb-0 pt-0 pb-0\">\r\n                                <td>{apprec.name} </td>\r\n                                <td>\r\n                                    {apprec.tip}\r\n                                </td>\r\n                                <td>{apprec.options}\r\n                                </td>\r\n                                <td>\r\n                                    <button className=\"btn btn-sm btn-link text-decoration-none text-danger\" onClick={(e) => soruSil(idx)}><i className=\"fa fa-trash\"></i></button>\r\n                                </td>\r\n                            </tr>\r\n                        )}\r\n\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const fetchList = () => {\r\n        sendget(\"tarifecetvelilist\", \"spinner1\", (response) => {\r\n            response.json().then(value => {\r\n                setListData(value)\r\n            })\r\n        })\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n\r\n\r\n\r\n    const save = (rec, confirm) => {\r\n        if (rec == null)\r\n            rec = postdata;\r\n        if (isEmpty(rec.name)) {\r\n            showErrorMessage(\"Tüm Bilgileri Doldurunuz\", \"\");\r\n            return;\r\n        }\r\n        sendpost(\"savetarife\", rec, \"spinner1\", (response) => {\r\n            response.json().then(value => {\r\n                if (confirm)\r\n                    showSuccessMessage(\"Tarife Kaydedildi\")\r\n                var newtarife = value.find(x => x.id == props.tarife.id);\r\n                if (newtarife) {\r\n                    setTarife(newtarife);\r\n                }\r\n            })\r\n        })\r\n\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value.trim();\r\n    }\r\n\r\n    return (\r\n        <div className=\"border  rounded border-light\">\r\n            <div className=\"row mb-2\">\r\n\r\n                <div className=\"col-2\">{tarife.id} - {tarife.tarih}\r\n                    <input type=\"text\" id=\"tarifeName\" className=\"form-control form-control-sm shadow-none\" defaultValue={tarife.name} />\r\n                </div>\r\n                <div className=\"col-7 text-primary fw-bold\">\r\n                    <br />\r\n                    <strong>Mevcut Formul</strong> : {tarife.formul}\r\n\r\n                </div>\r\n                <div className=\"col-1 text-end \">\r\n                    <span class=\"ms-1 spinner-border spinner-border-sm\" id=\"spinner1\" hidden></span>\r\n                </div>\r\n                <div className=\"col-2 text-end \">\r\n                    <button className=\"btn btn-success btn-sm me-1\" onClick={() => {\r\n                        if (isEmpty(finalFormula) == false)\r\n                            tarife.formul = finalFormula;\r\n\r\n                        var name = document.getElementById(\"tarifeName\").value;\r\n                        if (isEmpty(name) == false)\r\n                            tarife.name = name;\r\n                        save(tarife, true);\r\n                    }}>\r\n                        Kaydet\r\n                    </button>\r\n                    <button className=\"btn btn-sm btn-primary\" onClick={() => changeComponent(<TarifeSetting changeComponent={changeComponent} />)}>Geri Dön</button>\r\n                </div>\r\n            </div>\r\n\r\n            {renderSorularTable()}\r\n\r\n\r\n            <div className=\"bg-light border rounded-2 p-2 mt-5\">\r\n                <div className=\"row\">\r\n                    <div className=\"col-12 \">\r\n\r\n                        <strong>Formul Paneli</strong>\r\n                    </div>\r\n                </div>\r\n                <div className=\"row\">\r\n\r\n                    <div className=\"col-3\">\r\n                        <div className=\"\">\r\n                            Tarife Cetveli\r\n                        </div>\r\n                        <div className=\"\">\r\n                            <select id=\"tarifecetveliselect\" onChange={(e) => handleAddKey(e.target.value)} className=\"form-select shadow-none form-select-sm\">\r\n                                <option value=\"\">\r\n                                </option>\r\n                                {[...new Set(tarifeCetveli.map(({ name }) => name))].map((name) => (\r\n                                    <option value={name} key={name}>\r\n                                        {name}\r\n                                    </option>\r\n                                ))}\r\n                            </select>\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"col-3\">\r\n                        <div className=\"\">\r\n                            Tarife Soruları\r\n                        </div>\r\n                        <div className=\"\">\r\n                            {isEmpty(tarife.sorular) ? \"Soru Bulunmamaktadır\" :\r\n                                <select id=\"soruselect\"  onChange={(e) => handleAddKey(e.target.value)} className=\"form-select shadow-none form-select-sm\">\r\n                                    <option value=\"\" >\r\n                                    </option>\r\n                                    {JSON.parse(tarife.sorular).map(x => (\r\n                                        <option value={x.tip == \"text\" ? \"'\" + x.name + \"'\" : x.name}>\r\n                                            {x.tip==\"text\"?\"'\"+x.name+\"'\":x.name}\r\n                                        </option>\r\n                                    ))}\r\n                                </select>}\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"col-3\">\r\n                        <div className=\"\">\r\n                            Sabit Değer\r\n                        </div>\r\n                        <div className=\"input-group \">\r\n                            <input \r\n                                type=\"number\"\r\n                                className=\"form-control form-control-sm shadow-none\"\r\n                                placeholder=\"Saysal değer\"\r\n                                id=\"sabitsayi\"\r\n                            />\r\n                            <button className=\"btn btn-link p-0 ms-1\" onClick={() => handleAddConstant(document.getElementById(\"sabitsayi\").value)}   >\r\n                                <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i>\r\n                            </button>\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"col-2\">\r\n                        <div className=\"\">\r\n                            İşlem\r\n                        </div>\r\n\r\n                        <div className=\"btn-group\">\r\n                            {operators.map((operator) => (\r\n                                <button\r\n                                    key={operator}\r\n                                    className=\"btn btn-outline-primary btn-sm\"\r\n                                    onClick={() => handleAddOperator(operator)}\r\n                                >\r\n                                    {operator}\r\n                                </button>\r\n                            ))}\r\n                        </div>\r\n                    </div>\r\n\r\n                </div>\r\n                <div className=\"row mt-1\">\r\n                    <div className=\"col-11 pe-0\">\r\n                        <div className=\"mb-2 text-primary fw-bold\">\r\n                            Üretilecek Formül: <input type=\"text\" id=\"newFormul\" className=\"form-control form-control-sm shadow-none\"  />\r\n                        </div>\r\n                    </div>\r\n                    <div className=\"col-1 text-end\">\r\n                        <br />\r\n                        <button className=\"btn btn-primary btn-sm  shadow-none\" onClick={handleSavePart}>\r\n                            Ekle\r\n                        </button>\r\n                    </div>\r\n                </div>\r\n                <div className=\"border rounded-1 ms-1 p-1\">\r\n                    <div className=\"row\">\r\n                        <div className=\"col-12\">\r\n\r\n                            <div className=\"mb-2 fw-bold\">\r\n                                Eklenen Geçici Formüller\r\n                            </div>\r\n\r\n                        </div>\r\n                    </div>\r\n\r\n                    {formulaParts.map((part, index) => (\r\n                        <div className={\"row  m-1 \" + (index % 2 == 1 ? \"\" : \" bg-light\")} >\r\n                            <div className=\"col-12\">\r\n                                <div class=\"form-check \">\r\n                                    <input class=\"form-check-input\" type=\"radio\" name=\"flexRadioDefault\" id=\"flexRadioDefault2\"\r\n                                        onClick={() => setSelectedPart(part)}\r\n                                    />\r\n                                    <label class=\"form-check-label\" for=\"flexRadioDefault2\">\r\n                                        {part}\r\n                                    </label>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n                    ))}\r\n\r\n                    <div className=\"row  mt-2\">\r\n                        <div className=\"col-2\">\r\n                            <select id=\"birlestirmeselect\" \r\n                                className=\"form-select form-select-sm\"\r\n                                value={selectedOperator}\r\n                                onChange={(e) => setSelectedOperator(e.target.value)}\r\n                            >\r\n                                <option value=\"\"></option>\r\n                                {operators.filter(x => x != \"if\").map((operator) => (\r\n                                    <option key={operator} value={operator}>\r\n                                        {operator}\r\n                                    </option>\r\n                                ))}\r\n                            </select>\r\n\r\n                        </div>\r\n                        <div className=\"col-3\">\r\n\r\n                            <button\r\n                                className=\"btn btn-primary btn-sm\"\r\n                                onClick={() => handleAddToFinalFormula()}\r\n                            >\r\n                                Son Formüle Ekle\r\n                            </button>\r\n\r\n                            <button className=\"btn btn-warning btn-sm ms-2\" onClick={() => setFormulaParts([])}>\r\n                                Tümünü Sil\r\n                            </button>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n\r\n\r\n                <div className=\"mb-1 mt-2 ms-1 p-1 border\">\r\n                    <span className=\"fw-bold\">Son Formül</span>\r\n\r\n                    <button className=\"btn btn-warning btn-sm ms-2\" onClick={() => setFinalFormula(\"\")}>\r\n                        Temizle\r\n                    </button>\r\n                    <div className=\" p-2\">{finalFormula}</div>\r\n\r\n                </div>\r\n\r\n            </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n            {showIfModal && (\r\n                <div\r\n                    className=\"modal fade show d-block\"\r\n                    tabIndex=\"-1\"\r\n                    style={{ background: \"rgba(0,0,0,0.5)\" }}\r\n                >\r\n                    <div className=\"modal-dialog\">\r\n                        <div className=\"modal-content\">\r\n                            <div className=\"modal-header\">\r\n                                <h5 className=\"modal-title\">Koşul Ayarları</h5>\r\n                                <button\r\n                                    type=\"button\"\r\n                                    className=\"btn-close\"\r\n                                    onClick={() => setShowIfModal(false)}\r\n                                ></button>\r\n                            </div>\r\n                            <div className=\"modal-body\">\r\n                                {renderDropdown(\"conditionLeft\", (v) => conditionLeft=v, \"Sol Değer\")}\r\n                                <div className=\"row\">\r\n                                    <div className=\"col-3\">İşlem</div>\r\n                                    <div className=\"col-6\">\r\n                                        <select\r\n                                            className=\"form-select form-select-sm mb-1\"\r\n                                            \r\n                                            onChange={(e) => conditionOperator = e.target.value}>\r\n                                            <option value=\"\">Select</option>\r\n                                            {conditionOperators.map((operator) => (\r\n                                                <option key={operator} value={operator}>\r\n                                                    {operator}\r\n                                                </option>\r\n                                            ))}\r\n                                        </select>\r\n                                    </div>\r\n                                </div>\r\n                                {renderDropdown(\"conditionRight\", (v) => conditionRight=v, \"Sağ Değer\")}\r\n                                {renderDropdown(\"ifTrueValue\", (v) => ifTrueValue = v, <span className=\"text-success\">ise</span>)}\r\n                                {renderDropdown(\"ifFalseValue\", (v) => ifFalseValue = v, <span className=\"text-danger\">Değilse</span>)}\r\n                            </div>\r\n                            <div className=\"modal-footer\">\r\n                                <button\r\n                                    className=\"btn btn-primary\"\r\n                                    onClick={handleSaveIfStatement}\r\n                                >\r\n                                    Kaydet\r\n                                </button>\r\n                                <button\r\n                                    className=\"btn btn-secondary\"\r\n                                    onClick={() => setShowIfModal(false)}\r\n                                >\r\n                                    Vazgeç\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            )}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n        </div >\r\n\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { ajaxFail, showConfirmMessage, showSuccessMessage, sendpost, sendget, isEmpty, showErrorMessage } from '../GlobalState.js';\r\nimport TarifeDetail from './TarifeDetail.js';\r\n\r\nexport default function TarifeSetting(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState([]);\r\n    var changeComponent = props.changeComponent;\r\n    useEffect(() => {\r\n        fetchList();\r\n    }, [])\r\n\r\n\r\n\r\n\r\n\r\n    const fetchList = () => {\r\n        sendget(\"tarifelist\", \"spinner1\", (response) => {\r\n            response.json().then(value => {\r\n                setListData(value)\r\n            })\r\n        })\r\n    }\r\n\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"table-responsive mainpagescroll\" style={{ \"height\": \"85vh\" }}>\r\n                <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light\" >\r\n                        <th width=\"35px\" className=\"text-start\">id</th>\r\n                        <th className=\"text-start\">Ad</th>\r\n                        {/*<th>Nitelik</th>*/}\r\n                        {/*<th>Değer</th>*/}\r\n                        <th className=\"text-start\">Tarih</th>\r\n                        <th></th>\r\n                    </thead>\r\n                    <tbody id=\"myTable\">\r\n                        {tabledata.map(apprec =>\r\n                            <tr key={apprec.id}>\r\n                                <td>{apprec.id}</td>\r\n                                <td >{apprec.name} </td>\r\n                                {/*<td><input type=\"text\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} name=\"nitelik\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.nitelik} /></td>*/}\r\n                                {/*<td><input type=\"number\" className=\"form-control form-control-sm  \" style={{ \"background-color\": \"transparent\" }} name=\"deger\" onChange={(e) => updateRecord(apprec, e)} defaultValue={apprec.deger} /></td>*/}\r\n                                <td className=\"text-start\">{apprec.tarih}</td>\r\n\r\n                                <td className=\"text-end\">\r\n                                    {/*<button onClick={() => { save(apprec); }} className=\"btn btn-link btn-sm text-decoration-none  shadow-none\"><i class=\"fa fa-save\" title=\"Güncelle\"></i></button>*/}\r\n                                    <button onClick={() => { changeComponent(<TarifeDetail tarife={apprec} changeComponent={changeComponent} />) }} className=\"btn btn-link btn-sm text-decoration-none  shadow-none\"><i class=\"fa fa-edit\" title=\"Güncelle\"></i></button>\r\n\r\n                                    <button onClick={() => { sil(apprec); }} className=\"btn btn-link btn-sm text-decoration-none  shadow-none ps-0\"><i class=\"fa fa-trash-o\" title=\"Sil\"></i></button>\r\n                                </td>\r\n                            </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n    const sil = (rec) => {\r\n        showConfirmMessage(rec.id + \" numaralı kayıt silinsin mı?\", \"\", \"Evet\", \"Hayır\", () => {\r\n\r\n\r\n            sendpost(\"removetarife\", rec, \"spinner1\", (response) => {\r\n                response.json().then(value => {\r\n                    setListData(value)\r\n                })\r\n            })\r\n        })\r\n\r\n    }\r\n\r\n\r\n\r\n    const save = (rec) => {\r\n        if (rec == null)\r\n            rec = postdata;\r\n        if (isEmpty(rec.name) ) {\r\n            showErrorMessage(\"Tarife İsmini Doldurunuz\", \"\");\r\n            return;\r\n        }\r\n        sendpost(\"savetarife\", rec, \"spinner1\", (response) => {\r\n            response.json().then(value => {\r\n                setListData(value)\r\n            })\r\n        })\r\n\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value.trim();\r\n    }\r\n\r\n    return (\r\n        <div className=\"border  rounded border-light\">\r\n            <div className=\"row\">\r\n                <div className=\"col-9\">\r\n                    <h5>Tarifeler</h5>\r\n                </div>\r\n                <div className=\"col-3 text-end \">\r\n                    <span class=\"ms-1 spinner-border spinner-border-sm\" id=\"spinner1\" hidden></span>\r\n                </div>\r\n            </div>\r\n\r\n\r\n            <div className=\"row border rounded-2 m-1 p-2\">\r\n                <div className=\"col-md-4 col-12\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" placeholder=\"Yeni Tarife Adı\" name=\"name\" onChange={handleInputChange} key={listData} />\r\n                </div>\r\n                <div className=\"col-md-4 col-12\">\r\n                    {/*<input type=\"text\" className=\"form-control form-control-sm\" id=\"sira\" placeholder=\"Nitelik\" name=\"nitelik\" onChange={handleInputChange} key={listData} />*/}\r\n                </div>\r\n                <div className=\"col-md-3 col-12\">\r\n                    {/*<input type=\"number\" className=\"form-control form-control-sm  \" laceholder=\"Değer\" name=\"deger\" onChange={handleInputChange} key={listData} />*/}\r\n                </div>\r\n                <div className=\"col-md-1  col-12 text-end\">\r\n                    <button onClick={() => save(null)} className=\"btn btn-sm btn-link text-decoration-none shadow-none\"><i className=\"fa fa-plus-circle align-middle\" style={{ \"font-size\": \"20px\" }}></i> </button>\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\"col-12\">\r\n                    {renderTable(listData)}\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, sendget, showSuccessMessage, useGlobalState, showErrorMessage, sendpost, getHtmlTag, isEmpty } from '../GlobalState.js';\r\n\r\nimport CommunicationSetting from './CommunicationSetting.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport ReactQuill from 'react-quill';\r\nimport 'react-quill/dist/quill.snow.css';\r\nimport axios from \"axios\";\r\n\r\nexport default function AllEvents(props) {\r\n    var [events, setEvents] = useState({ items:[]});\r\n    var [currentPage, setCurrentPage] = useState(1);\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userName, setUserName] = useGlobalState('userName');\r\n\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n\r\n    const Pagination = ( totalCount, pageSize, currentPage, onPageChange ) => {\r\n        const totalPages = Math.ceil(totalCount / pageSize);\r\n        if (totalPages <= 1) return null; // No pagination needed for a single page\r\n        const handlePageChange = (page) => {\r\n            if (page > 0 && page <= totalPages) {\r\n                onPageChange(page);\r\n            }\r\n        };\r\n        const pageNumbers = Array.from({ length: totalPages }, (_, index) => index + 1);\r\n        return (\r\n            <div\r\n                className=\"overflow-auto w-100 mainpagescroll\"\r\n                style={{\r\n                    whiteSpace: \"nowrap\",\r\n                    maxWidth: \"100%\",\r\n                }}\r\n            >\r\n            <nav aria-label=\"Page navigation\">\r\n                <ul className=\"pagination mb-0 pb-0\">\r\n                    {pageNumbers.map((page) => (\r\n                        <li\r\n                            key={page}\r\n                            className={`page-item  ${page === currentPage ? \"active\" : \"\"}`}>\r\n                            <button\r\n                                className=\"page-link \"\r\n                                onClick={() => handlePageChange(page)}\r\n                            >\r\n                                {page}\r\n                            </button>\r\n                        </li>\r\n                    ))}\r\n                </ul>\r\n                </nav>\r\n            </div>\r\n        );\r\n    };\r\n\r\n    const sendRequest = (cp) => {\r\n        var keywords = getHtmlTag(\"keyword\", \"value\");\r\n        var start = getHtmlTag(\"startDate\", \"value\");\r\n        var end = getHtmlTag(\"endDate\", \"value\");\r\n        if (isEmpty(keywords) && isEmpty(start) && isEmpty(end)  ) {\r\n            showErrorMessage(\"Anahtar kelime boş olamaz\")\r\n            return;\r\n        }\r\n        var keywords = {\r\n            keywords: keywords,\r\n            startDate: start,\r\n            endDate:end\r\n        }\r\n        sendpost(\"geteventlist?pageNumber=\" + cp, JSON.stringify(keywords), \"loadspin1\", (response) => {\r\n            response.json().then(async data => {\r\n                setEvents(data);\r\n                setCurrentPage(cp)\r\n            });\r\n        })\r\n    }\r\n\r\n    return (\r\n        <div className=\"rounded-3\">\r\n            <h5>Geçmiş Aktiviteler</h5>\r\n\r\n            <div className=\"row\">\r\n                <div className=\"col-3\">\r\n                    Anahtar Kelimeler <input type=\"text\" className=\"form-control form-control-sm\" placeholder=\"\" id=\"keyword\" />\r\n                </div>\r\n                <div className=\"col-2\">\r\n                    Başlangıç  <input type=\"date\" className=\"form-control form-control-sm\" placeholder=\"Anahtar Kelimeler\" id=\"startDate\" />\r\n                </div>\r\n                <div className=\"col-2\">\r\n                    Bitiş <input type=\"date\" className=\"form-control form-control-sm\" placeholder=\"Anahtar Kelimeler\" id=\"endDate\" />\r\n                </div>\r\n                <div className=\"col-3\"><br />\r\n                    <button className=\"btn btn-sm btn-primary me-1\" onClick={()=>sendRequest(1)}>Göster</button>\r\n                    <button className=\"btn btn-sm btn-primary me-1\" onClick={() => setEvents({ items: [] })}>Temizle</button>\r\n                    <span class=\"spinner-border  spinner-border-sm\" hidden id=\"loadspin1\" ></span>\r\n                </div>\r\n            </div>\r\n            <div className=\"row mt-1\">\r\n                <div className=\"col-12\" id=\"pagination\">\r\n                    {Pagination(events.totalCount, 200, currentPage, (p) => {\r\n                        setCurrentPage(p)\r\n                        sendRequest(p);\r\n                    })}\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"border rounded-3 mt-2\" key={events}>\r\n\r\n                {\r\n                    events.items.map((e, idx) =>\r\n                        <div className=\"row border-bottom\" style={{ backgroundColor: (idx % 2 == 0) ? \"#efffff\" : \"\" }}>\r\n                            <div className=\"col-8\">\r\n                                {e.comment}\r\n                            </div>\r\n                            <div className=\"col-2\">\r\n                                {e.eventDate}\r\n                            </div>\r\n                            <div className=\"col-2\">\r\n                                {e.userName}\r\n                            </div>\r\n                        </div>\r\n                    )\r\n                }\r\n            </div>\r\n        </div>\r\n    );\r\n\r\n\r\n}\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport MessageMenu from './MessageMenu.js';\r\nimport EImzaMenu from '../Eimza/EImzaMenu.js';\r\nimport FileSettingList from '../Setting/FileSettingList.js';\r\nimport EkranSetting from '../Setting/EkranSetting.js';\r\nimport DocumentSetting from '../Setting/MevzuaatSetting.js';\r\nimport BasvuruAlanlariuSetting from '../Setting/BasvuruAlanlariSetting.js';\r\nimport GeneralSettingPanel from '../Setting/GeneralSettingPanel.js';\r\nimport AppTypePanel from '../Setting/UserTypePanel.js';\r\nimport SureclerPanel from '../Setting/SureclerPanel.js';\r\nimport RegisterSettingPanel from '../Setting/RegisterSettingPanel.js';\r\nimport DuyuruSetting from '../Setting/DuyuruSetting.js';\r\nimport HelpSettingPanel from '../Setting/HelpSettingPanel.js';\r\nimport AdaSetting from '../Setting/AdaSetting.js';\r\nimport MevkiSetting from '../Setting/MevkiSetting.js';\r\nimport ReportSetting from '../Setting/ReportSetting.js';\r\nimport SettingRoles from '../Setting/SettingRoles.js';\r\nimport Apply1 from \"../Application/Apply1.js\";\r\nimport ApplicationList from \"../Application/ApplicationList.js\";\r\nimport ApplicationListCardView from \"../Application/ApplicationListCardView.js\";\r\nimport AllApplicationList from '../Application/AllApplicationList.js';\r\nimport HavaleSablonSetting from '../Setting/HavaleSablonSetting.js';\r\nimport UserAppCard from \"../Application/UserAppCard.js\";\r\nimport IadeListesi from \"../Application/IadeListesi.js\";\r\n\r\n\r\nimport SharedApplicationList from '../Application/SharedApplicationList.js';\r\nimport UserList from \"../User/UserList.js\";\r\nimport UserWorkLoad from '../User/UserWorkLoad.js';\r\nimport Register1 from \"../User/Register1.js\";\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport AddressBook from \"../Dashboard/AddressBook.js\";\r\nimport AppGroupSetting from '../Setting/AppGroupSetting.js';\r\nimport SettingIdariMahalle from '../Setting/SettingIdariMahalle.js';\r\n\r\nimport DelayedApplications from '../Application/DelayedApplications.js';\r\nimport TakipEdilenler from '../Application/TakipEdilenler.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\nimport StatisticPanel from '../Statistic/StatisticPanel.js';\r\nimport HelpPanel from '../Dashboard/HelpPanel.js';\r\n\r\nimport Home from \"../Dashboard/Home\";\r\nimport SabitSoruSetting from '../Setting/SabitSoruSetting.js';\r\nimport SablonFileSetting from '../Setting/SablonFileSetting.js';\r\nimport FileGroupsSetting from '../Setting/FileGroupsSetting.js';\r\nimport EimzaNameSetting from '../Setting/EimzaNameSetting.js';\r\nimport AppTypeGroupSetting from '../Setting/AppTypeGroupSetting.js';\r\nimport CBSMahalleSetting from '../Setting/CBSMahalleSetting.js';\r\nimport CBSAdaSetting from '../Setting/CBSAdaSetting.js';\r\nimport MakaleSetting from '../Setting/MakaleSetting.js';\r\nimport SampleFormSetting from '../Setting/SampleFormSetting.js';\r\nimport MevzuatPanel from '../Dashboard/MevzuatPanel.js';\r\nimport DeletedAppList from '../Application/DeletedAppList.js';\r\nimport ArchivedAppList from '../Application/ArchivedAppList.js';\r\nimport MaksList from '../MAKS/MaksList.js';\r\nimport KadastralVeri from '../Application/KadastralVeri.js';\r\nimport RemovedFiles from '../Application/RemovedFiles.js';\r\nimport BasvuruTipleriList from '../Setting/BasvuruTipleriList.js';\r\nimport TarifeCetveliSetting from '../Setting/TarifeCetveliSetting.js';\r\nimport TarifeSetting from '../Setting/TarifeSetting.js';\r\nimport AllEvents from '../Setting/AllEvents.js';\r\n\r\nexport default function CommonSideBar(props) {\r\n    var panel = props.panel;\r\n    var tags = props.tags;\r\n\r\n\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userName, setUserName] = useGlobalState('userName');\r\n\r\n    useEffect(() => {\r\n\r\n    }, [role]);\r\n\r\n\r\n    var list = [];\r\n    if (panel != null)\r\n        list.push(panel.map(p => <Link to={p.target} state={p.state} className={\"d-block  p-2 m-2 text-decoration-none rounded-3 \"} >\r\n            <i style={{ \"font-size\": \"16px\" }} class={p.icon}></i>&nbsp;&nbsp;{p.name}</Link>));\r\n\r\n    if (tags != null)\r\n        list.push(tags.map(p => <div > {p}</div>));\r\n\r\n\r\n    const changeComponent = (name) => {\r\n        props.setComponent(name);\r\n\r\n    }\r\n\r\n    \r\n\r\n    return <div className=\"sidebar\" key={role}>\r\n\r\n        <div>\r\n            <a href=\"#\" onClick={() => { changeComponent(<Home changeComponent={changeComponent} />) }}>\r\n                <i className=\"fa fa-home\"></i>\r\n                Ana Ekran\r\n            </a>\r\n        </div>\r\n\r\n        <div>\r\n            <a data-bs-toggle=\"collapse\" data-bs-target=\"#basvuruoptions\" href=\"#\">\r\n                <i className=\"fa fa-clone\"></i>  Başvurular</a>\r\n        </div>\r\n        <div className=\"collapse\" id=\"basvuruoptions\">\r\n            <div>\r\n                <a href=\"#\" onClick={() => { changeComponent(<Apply1 changeComponent={changeComponent} />) }}> <i className=\"fa fa-folder-o ps-4\"></i> Yeni Başvuru</a>\r\n            </div>\r\n\r\n            <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<ApplicationList changeComponent={changeComponent} role={role} />) }}> <i className=\"fa fa-clone ps-4\"></i> Liste Görünümü</a>\r\n            </div>\r\n            <div>\r\n                <a href=\"#\" onClick={() => { changeComponent(<ApplicationListCardView changeComponent={changeComponent} role={role} userName={userName} />) }}> <i className=\"fa fa-th-large ps-4\"></i> Kart Görünümü</a>\r\n            </div>\r\n            <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<DeletedAppList changeComponent={changeComponent} role={role} />) }}> <i className=\"fa fa-trash-o ps-4\"></i> Silinen Başvurular</a>\r\n            </div>\r\n            {(userName.toLowerCase() == \"admin\" || userName.toLowerCase() == \"a\" || userName.toLowerCase() == \"universe\") && < div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<RemovedFiles changeComponent={changeComponent} role={role} />) }}> <i className=\"fa fa-trash-o ps-4\"></i> Silinen Dosyalar</a>\r\n            </div>}\r\n\r\n            <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<ArchivedAppList changeComponent={changeComponent} role={role} />) }}> <i className=\"fa fa-archive ps-4\"></i> Arşivlenen Başvurular</a>\r\n            </div>\r\n\r\n            {role.indexOf(UserPermConstants.Is_Yuku) > -1 && <div>\r\n                <a href=\"#\" onClick={() => { changeComponent(<UserAppCard changeComponent={changeComponent} role={role} userName={userName} />) }}> <i className=\"fa fa-group ps-4\"></i> İş Yükü Görünümü</a>\r\n            </div>}\r\n\r\n            {/*{role.indexOf(UserPermConstants.MAKS_Veri_Girisi) >= 0 && <div >*/}\r\n            {/*    <a href=\"#\" onClick={() => { changeComponent(<MaksList changeComponent={changeComponent} role={role} />) }}> <i className=\"fa fa-bank ps-4\"></i>MAKS Başvuruları</a>*/}\r\n            {/*</div>}*/}\r\n\r\n            <div>\r\n                <a href=\"#\" onClick={() => { changeComponent(<SharedApplicationList changeComponent={changeComponent} />) }}> <i className=\"fa fa-share-alt ps-4\"></i> Paylaşılan Başvurular</a>\r\n            </div>\r\n            <div>\r\n                <a href=\"#\" onClick={() => { changeComponent(<AllApplicationList changeComponent={changeComponent} />) }}> <i className=\"fa fa fa-cubes ps-4\"></i> Tüm Görevler</a>\r\n            </div>\r\n            <div >\r\n                {role.indexOf(UserPermConstants.Tum_Geciken_Basvurular) > -1 &&\r\n                    <a href=\"#\" onClick={() => { changeComponent(<DelayedApplications changeComponent={changeComponent} role={role} />) }}> <i className=\"fa fa-clone ps-4\"></i> Geciken Başvurular</a>\r\n                }\r\n            </div>\r\n            <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<TakipEdilenler changeComponent={changeComponent} role={role} />) }}> <i className=\"fa fa-clone ps-4\"></i> Takip Edilen Başvurular</a>\r\n            </div>\r\n\r\n            <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<IadeListesi changeComponent={changeComponent} role={role} />) }}> <i className=\"fa fa-clone ps-4\"></i> İade Listesi</a>\r\n            </div>\r\n\r\n\r\n            <div>\r\n                <EImzaMenu changeComponent={changeComponent} />\r\n            </div>\r\n\r\n        </div>\r\n        {(role.indexOf(UserPermConstants.Adres_Defterini_Duzenleme) > -1 || role.indexOf(UserPermConstants.Adres_Defterini_Gorme) > -1) &&\r\n            <div>\r\n                <a href=\"#\" onClick={() => { changeComponent(<AddressBook changeComponent={changeComponent} />) }}> <i className=\"fa fa-id-card\"></i> Adres Defteri</a>\r\n            </div>\r\n        }\r\n\r\n\r\n\r\n        <div>\r\n            <MessageMenu changeComponent={changeComponent} />\r\n        </div>\r\n\r\n        {(role.indexOf(UserPermConstants.Kontrolor_Istatistiklerini_Gorme) > -1 || role.indexOf(UserPermConstants.Proje_Istatistiklerini_Gorme) > -1\r\n            || role.indexOf(UserPermConstants.Muellif_Istatistiklerini_Gorme) > -1 || role.indexOf(UserPermConstants.Mekansal_Istatistikleri_Gorme) > -1\r\n            || role.indexOf(UserPermConstants.Zamansal_Istatistikleri_Gorme) > -1 || role.indexOf(UserPermConstants.Anlik_Istatistikleri_Gorme) > -1\r\n            || role.indexOf(UserPermConstants.Anlik_Istatistikleri_Gorme) > -1\r\n        ) && <div>\r\n                <a href=\"#\" onClick={() => { changeComponent(<StatisticPanel />) }}> <i className=\"fa fa-bar-chart\"></i> İstatistik</a>\r\n            </div>}\r\n\r\n        <div>\r\n            <a href=\"#\" onClick={() => { changeComponent(<MevzuatPanel />) }}> <i className=\"fa fa-bank\"></i> Mevzuat</a>\r\n        </div>\r\n\r\n\r\n        {(role.indexOf(UserPermConstants.Tarife_Yonetimi) > -1) && <div>\r\n            <a data-bs-toggle=\"collapse\" data-bs-target=\"#tarifecetvelioptions\" href=\"#\">\r\n                <i className=\"fa fa-dollar\"></i>Tarife Yönetimi</a></div>}\r\n        <div className=\"collapse\" id=\"tarifecetvelioptions\">\r\n\r\n            {role.indexOf(UserPermConstants.Tarife_Yonetimi) > -1 && < div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<TarifeSetting changeComponent={changeComponent} />) }}> <i className=\"fa fa-dollar ps-4\"></i> Tarifeler</a>\r\n            </div>}\r\n\r\n            {role.indexOf(UserPermConstants.Tarife_Yonetimi) > -1 && < div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<TarifeCetveliSetting />) }}> <i className=\"fa fa-dollar ps-4\"></i> Tarife Cetveli</a>\r\n            </div>}\r\n\r\n        </div>\r\n        <div>\r\n\r\n        </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n        {/* ----------------------------------------------------------------------*/}\r\n\r\n\r\n        {(role.indexOf(UserPermConstants.Basvuru_Formu) > -1 || role.indexOf(UserPermConstants.Dosyalar) > -1\r\n            || role.indexOf(UserPermConstants.Ekran_Yonetimi) > -1 || role.indexOf(UserPermConstants.Surecler) > -1\r\n            || role.indexOf(UserPermConstants.Kadastral_Ayarlar) > -1) && <div>\r\n                <a data-bs-toggle=\"collapse\" data-bs-target=\"#basvuruayarlaroptions\" href=\"#\">\r\n                    <i className=\"fa fa-gears\"></i>Başvuru Yönetimi</a></div>}\r\n\r\n        <div className=\"collapse\" id=\"basvuruayarlaroptions\">\r\n            {role.indexOf(UserPermConstants.Basvuru_Formu) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<BasvuruTipleriList />) }}> <i className=\"fa fa-edit ps-4\"></i> Başvuru Tipleri</a>\r\n            </div>}\r\n            {role.indexOf(UserPermConstants.Basvuru_Formu) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<AppTypeGroupSetting />) }}> <i className=\"fa fa-edit ps-4\"></i>Başvuru Tipi Grupları</a>\r\n            </div>}\r\n            {role.indexOf(UserPermConstants.Basvuru_Formu) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<HavaleSablonSetting />) }}> <i className=\"fa fa-dedent ps-4\"></i>Havale Sablonu</a>\r\n            </div>}\r\n            {role.indexOf(UserPermConstants.Dosyalar) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<FileSettingList />) }}> <i className=\"fa fa-folder-open-o ps-4\"></i>Dosyalar</a>\r\n            </div>}\r\n            {role.indexOf(UserPermConstants.Dosyalar) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<FileGroupsSetting />) }}> <i className=\"fa fa-folder-open-o ps-4\"></i>Dosyalar Başlıkları</a>\r\n            </div>}\r\n            {role.indexOf(UserPermConstants.Dosyalar) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<SablonFileSetting />) }}> <i className=\"fa fa-folder-open-o ps-4\"></i>Şablon Dosyalar</a>\r\n            </div>}\r\n\r\n            {role.indexOf(UserPermConstants.Basvuru_Formu) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<BasvuruAlanlariuSetting />) }}> <i className=\"fa fa-files-o ps-4\"></i> Başvuru Alanları</a>\r\n            </div>}\r\n            {/*{role.indexOf(UserPermConstants.Basvuru_Formu) > -1 && <div >*/}\r\n            {/*    <a href=\"#\" onClick={() => { changeComponent(<SabitSoruSetting />) }}> <i className=\"fa fa-question ps-4\"></i>Sabit Alanlar</a>*/}\r\n            {/*</div>}*/}\r\n            {role.indexOf(UserPermConstants.Surecler) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<SureclerPanel />) }}> <i className=\"fa fa-refresh ps-4\"></i> Başvuru Durumları</a>\r\n            </div>}\r\n            {role.indexOf(UserPermConstants.Surecler) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<AppGroupSetting />) }}> <i className=\"\tfa fa-credit-card ps-4\"></i>Başvuru Durumu Grupları</a>\r\n            </div>}\r\n\r\n            {/*<div >*/}\r\n            {/*    <a href=\"#\" onClick={() => { }}> <i className=\"fa fa-files-o ps-4\"></i> Başvuru Standartları</a>*/}\r\n            {/*</div>*/}\r\n            {role.indexOf(UserPermConstants.Ekran_Yonetimi) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<EkranSetting />) }}> <i className=\"fa fa-server ps-4\"></i>Ekran Yönetimi</a>\r\n            </div>}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n            {/*<div >*/}\r\n            {/*    <a href=\"#\" onClick={() => { changeComponent(<MevkiSetting />) }}> <i className=\"fa fa-map-marker ps-4\"></i>Mevki</a>*/}\r\n            {/*</div>*/}\r\n            {/*<div >*/}\r\n            {/*    <a href=\"#\" onClick={() => { changeComponent(<MahalleSetting />) }}> <i className=\"fa fa-map ps-4\"></i>Mahalle</a>*/}\r\n            {/*</div>*/}\r\n            {/*<div >*/}\r\n            {/*    <a href=\"#\" onClick={() => { changeComponent(<AdaSetting />) }}> <i className=\"fa fa-home ps-4\"></i>Ada/Parsel</a>*/}\r\n            {/*</div>*/}\r\n\r\n\r\n\r\n\r\n\r\n            {role.indexOf(UserPermConstants.Kadastral_Ayarlar) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<KadastralVeri changeComponent={changeComponent} />) }}> <i className=\"fa fa-dedent ps-4\"></i> Kadastral Veri</a>\r\n            </div>}\r\n\r\n\r\n\r\n            {role.indexOf(UserPermConstants.Basvuru_Formu) > -1 && <div>\r\n                <a href=\"#\" onClick={() => { changeComponent(<EimzaNameSetting changeComponent={changeComponent} />) }}> <i className=\"fa fa-bookmark ps-4\"></i>Eimza Geri Yükleme</a>\r\n            </div>}\r\n        </div >\r\n\r\n        {(role.indexOf(UserPermConstants.Kullanici_Listesini_Gorme_Profil_Bilgilerini) > -1 || role.indexOf(UserPermConstants.Kullanici_Tipleri) > -1\r\n            || role.indexOf(UserPermConstants.Kullanici_Kayit_Formu) > -1 || role.indexOf(UserPermConstants.Kullanici_Rolleri) > -1\r\n            || role.indexOf(UserPermConstants.Is_Yuku) > -1) &&\r\n            <div>  <a data-bs-toggle=\"collapse\" data-bs-target=\"#usersayarlaroptions\" href=\"#\">\r\n                <i className=\"fa fa-gears\"></i>  Kullanıcı Yönetimi </a> </div >}\r\n\r\n\r\n\r\n        <div className=\"collapse\" id=\"usersayarlaroptions\">\r\n            {role.indexOf(UserPermConstants.Kullanici_Kayit_Formu) > -1 && <div >\r\n                <a href=\"#\" onClick={() => {\r\n                    window.userdata = { tc: \"direct\" }\r\n                    changeComponent(<Register1 changeComponent={changeComponent} />)\r\n                }}> <i className=\"fa fa-user-plus ps-4\"></i> Yeni Kullanıcı</a>\r\n            </div>}\r\n            {role.indexOf(UserPermConstants.Kullanici_Listesini_Gorme_Profil_Bilgilerini) > -1 && <div >\r\n\r\n                <a href=\"#\" onClick={() => { changeComponent(<UserList changeComponent={changeComponent} />) }}> <i className=\"fa fa-users ps-4\"></i> Kullanıcılar Listesi</a>\r\n            </div>}\r\n\r\n            {role.indexOf(UserPermConstants.Kullanici_Tipleri) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<AppTypePanel />) }}> <i className=\"fa fa-map-signs ps-4\"></i> Kullanıcı Tipi</a>\r\n            </div>}\r\n\r\n            {role.indexOf(UserPermConstants.Kullanici_Kayit_Formu) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<RegisterSettingPanel />) }}> <i className=\"fa fa-address-card-o ps-4\"></i>Kullanıcı Kayıt Formu</a>\r\n            </div>}\r\n\r\n            {role.indexOf(UserPermConstants.Kullanici_Rolleri) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<SettingRoles />) }}> <i className=\"fa fa-lock ps-4\"></i>Kullanıcı Rolleri</a>\r\n            </div>}\r\n            {/*{role.indexOf(UserPermConstants.Is_Yuku) > -1 && <div >*/}\r\n            {/*    <a href=\"#\" onClick={() => { changeComponent(<UserWorkLoad changeComponent={changeComponent} />) }}> <i className=\"fa fa-bar-chart ps-4\"></i> İş Yuku</a>*/}\r\n            {/*</div>}*/}\r\n        </div >\r\n\r\n\r\n\r\n\r\n\r\n        {/*<div >*/}\r\n        {/*    <a href=\"#\" onClick={() => { changeComponent(<FollowSetting />) }}> <i className=\"fa fa-bell-o ps-4\"></i>Bidirimler</a>*/}\r\n        {/*</div>*/}\r\n\r\n\r\n\r\n\r\n        {/*<div >*/}\r\n        {/*    <a href=\"#\" onClick={() => { changeComponent(<DocumentSetting />) }}> <i className=\"fa fa-info-circle\"></i>Yönetmelik</a>*/}\r\n        {/*</div>*/}\r\n\r\n\r\n\r\n\r\n        {(role.indexOf(UserPermConstants.Duyuru_Yonetimi) > -1 || role.indexOf(UserPermConstants.Kurum_Bilgileri) > -1\r\n            || role.indexOf(UserPermConstants.Yonetmelik_Yukleme) > -1 || role.indexOf(UserPermConstants.Yardim_Ekranlari) > -1\r\n            || role.indexOf(UserPermConstants.Is_Yuku) > -1) && <div>\r\n                <a data-bs-toggle=\"collapse\" data-bs-target=\"#ayarlaroptions\" href=\"#\">\r\n                    <i className=\"fa fa-gears\"></i>  Ayarlar</a>\r\n            </div>}\r\n        <div className=\"collapse\" id=\"ayarlaroptions\">\r\n            {role.indexOf(UserPermConstants.Duyuru_Yonetimi) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<DuyuruSetting />) }}> <i className=\"fa fa-comments-o ps-4\"></i>Duyuru Yönetimi</a>\r\n            </div>}\r\n            {/*{role.indexOf(UserPermConstants.Megsis_Ayarlar) > -1 && <>*/}\r\n            {/*    <div >*/}\r\n            {/*        <a href=\"#\" onClick={() => { changeComponent(<CBSMahalleSetting changeComponent={changeComponent} />) }}> <i className=\"fa fa-map-marker ps-4\"></i>CBS Mahalleler</a>*/}\r\n            {/*    </div>*/}\r\n            <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<ReportSetting changeComponent={changeComponent} />) }}> <i className=\"fa fa-map-marker ps-4\"></i>Raporlar</a>\r\n            </div>\r\n            {/* </>*/}\r\n            {role.indexOf(UserPermConstants.Yardim_Ekranlari) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<HelpSettingPanel />) }}> <i className=\"fa fa-info-circle ps-4\"></i>Yardım</a>\r\n            </div>}\r\n            {role.indexOf(UserPermConstants.Kurum_Bilgileri) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<GeneralSettingPanel />) }}> <i className=\"fa fa-reorder ps-4\"></i>Kurum Ayarları</a>\r\n            </div>}\r\n            {/*<div >*/}\r\n            {/*    <a href=\"#\" onClick={() => { changeComponent(<SettingIdariMahalle />) }}> <i className=\"fa fa-map ps-4\"></i>Idari Mahalle</a>*/}\r\n            {/*</div>*/}\r\n\r\n            {role.indexOf(UserPermConstants.Yonetmelik_Yukleme) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<DocumentSetting />) }}> <i className=\"fa fa-bank  ps-4\"></i> Mevzuat</a>\r\n            </div>}\r\n\r\n            {role.indexOf(UserPermConstants.Yardim_Ekranlari) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<MakaleSetting />) }}> <i className=\"fa fa-dedent ps-4\"></i>Makaleler</a>\r\n            </div>}\r\n\r\n            {role.indexOf(UserPermConstants.Yardim_Ekranlari) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<SampleFormSetting />) }}> <i className=\"fa fa-dedent ps-4\"></i>Örnek Formlar</a>\r\n            </div>}\r\n\r\n            {role.indexOf(UserPermConstants.Kurum_Bilgileri) > -1 && <div >\r\n                <a href=\"#\" onClick={() => { changeComponent(<AllEvents />) }}> <i className=\"fa fa-dedent ps-4\"></i>Geçmiş Aktiviteler</a>\r\n            </div>}\r\n\r\n        </div >\r\n\r\n        <div>\r\n\r\n\r\n            <a href=\"#\" onClick={() => { changeComponent(<HelpPanel changeComponent={changeComponent} />) }}> <i className=\"\tfa fa-info ps-2\"></i> Yardım</a>\r\n\r\n        </div>\r\n\r\n\r\n    </div >\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport UploadFile from \"../User/UploadFile.js\";\r\nimport { ajaxFail, sendget, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport KadastralVeri from '../Application/KadastralVeri.js';\r\nexport default function CBSMAhalleLocal(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState([]);\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const removeRecord = (id) => {\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removecbslocalmahalle\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response)\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }))\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const submitUpdateRecord = (rec) => {\r\n\r\n        fetch(\"updatecbslocalmahalle\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Güncelleme Başarılı\")\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchList = () => {\r\n\r\n        sendget(\"cbslocalmahallelist\", \"loadspin1\", (response) => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n\r\n        })\r\n\r\n\r\n    }\r\n\r\n    const Add = () => {\r\n        fetch(\"addcbslocalmahalle\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                document.getElementById(\"name\").value = \"\";\r\n                document.getElementById(\"mahalleid\").value = \"\";\r\n                \r\n                fetchList();\r\n\r\n\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n    const handleFile = (resp) => {\r\n        fetchList();\r\n        if (resp.data != null && resp.data.length > 0) {\r\n            showErrorMessage(\"Eklenmeyen (Hatalı) Satırlar: \\n\" + resp.data)\r\n        }\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n\r\n        var mytable = <div>\r\n\r\n\r\n\r\n\r\n            {tabledata.map(apprec =>\r\n                < div className=\"row rounded-3\" key={apprec.id}>\r\n                    <div className=\"col-1\" >\r\n                        {apprec.id}\r\n                    </div>\r\n                    <div className=\"col-4\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm border-0\" name=\"mahalleid\" defaultValue={apprec.mahalleid} onChange={(e) => updateRecord(apprec, e)} />\r\n                    </div>\r\n                    <div className=\"col-4 \" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm border-0\" name=\"name\" defaultValue={apprec.name} onChange={(e) => updateRecord(apprec, e)} />\r\n                    </div>\r\n\r\n                    <div className=\"col-3 text-end\" >\r\n                        <button onClick={() => submitUpdateRecord(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Güncelle</button>&nbsp;\r\n                        <button onClick={() => removeRecord(apprec.id)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button>\r\n                    </div>\r\n                </div>\r\n            )}\r\n        </div>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    listTable = renderTable(listData);\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"bg-light m-2 p-3 \">\r\n\r\n            <div className=\"row mb-3\">\r\n                <div className=\"col-6 \" >\r\n                    <h5>CBS Mahalle Bilgi Girişi</h5>\r\n                </div>\r\n                <div className=\"col-2 \" >\r\n                    <span class=\"spinner-border  spinner-border-sm\" hidden id=\"loadspin1\" ></span>\r\n                </div>\r\n                <div className=\"col-4 text-end\" >\r\n                    <button onClick={() => props.changeComponent(<KadastralVeri changeComponent={props.changeComponent} />)} className=\"btn btn-primary btn-sm text-decoration-none \">Geri Dön</button>\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row rounded-3 p-1 mb-3\">\r\n                <div className=\"col-3\">\r\n                    Mahalle ID\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"mahalleid\" placeholder=\"\" name=\"mahalleid\" onChange={handleInputChange} defaultValue=\"\" />\r\n                </div>\r\n                <div className=\"col-3\">\r\n                    Mahalle Ad\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" placeholder=\"\" name=\"name\" onChange={handleInputChange} defaultValue=\"\" />\r\n                </div>\r\n\r\n                <div className=\"col-2\">\r\n                <br/>\r\n                    <button onClick={Add} className=\"btn btn-sm btn-primary text-decoration-none \">Ekle</button>\r\n\r\n                </div>\r\n\r\n\r\n                <div className=\"col-4 text-end\">\r\n                    <UploadFile spinner={\"loadspin1\"} setSumbitResult={handleFile} username={\"\"} filelabel={\"Dosyadan Yukle\"} target={\"addlocalmahallefile\"} />\r\n                </div>\r\n            </div>\r\n\r\n\r\n            {listTable}\r\n\r\n\r\n\r\n        </div>\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { isEmpty, showConfirmMessage, useGlobalState } from '../GlobalState.js';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport MevkiSetting from '../Setting/MevkiSetting.js';\r\nimport MahalleSetting from '../Setting/MahalleSetting.js';\r\nimport CBSMahalleSetting from '../Setting/CBSMahalleSetting.js';\r\nimport AdaSetting from '../Setting/AdaSetting.js';\r\nimport CBSAdaSetting from '../Setting/CBSAdaSetting.js';\r\nimport SettingIdariMahalle from '../Setting/SettingIdariMahalle.js';\r\nimport CBSMAhalleLocal from '../Setting/CBSMahalleLocal.js';\r\n\r\n\r\nexport default function KadastralVeri(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userName, setuserName] = useGlobalState('userName');\r\n\r\n    const [info, setInfo] = useState([\"\",\"\",\"\",\"\",\"\"]);\r\n\r\n    useEffect(() => {\r\n        getcbsinfo();\r\n    }, [])\r\n\r\n\r\n    const getcbsinfo = (rec) => {\r\n\r\n        fetch(\"getcbsinfo\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.text().then(value => {\r\n                    setInfo(value.replaceAll('\"','').split(\" \"));\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    return (\r\n        <div className=\"p-2 rounded-3\" style={{ \"background-color\": \"#EDEDF7\", \"min-height\": \"100vh\" }}>\r\n\r\n            <div className=\"row mt-3 p-3\" >\r\n                <div className=\"col-12 col-md-6 \">\r\n                    <div className=\" bg-white rounded-3 shadow-sm\" >\r\n                        <div className=\"p-3 fw-bold  text-center\" >\r\n                            <div className=\"row  pt-2  mb-4  \">\r\n                                <div className=\"col-4 align-middle fw-bold pt-4 text-center \" >\r\n                                    TAPU KADASTRODAN GELEN KADASTRAL VERİ\r\n                                </div>\r\n                                <div className=\"col-8\" >\r\n                                    <div className=\"bg-light p-3 rounded-3 textvmuted fw-bold align-middle\" >\r\n                                        <span className=\"fa fa-info pe-3\" style={{ color: \"lightblue\", fontSize: \"26px\" }} ></span>\r\n                                        Tapu Kadastronun web servis ile paylaştığı veridir\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n\r\n                        </div>\r\n                        <div className=\"row  m-3 border-top pt-2\">\r\n                            <div className=\"col-6 \" >\r\n                                <button onClick={() => 1 == 1} className=\"btn btn-link btn-sm text-decoration-none \" disabled> MEVKİ</button>\r\n                              \r\n                            </div>\r\n                            <div className=\"col-6 pt-2\" >-\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"row  m-3 border-top  pt-2\">\r\n                            <div className=\"col-6 \" >\r\n                                <button onClick={() => props.changeComponent(<CBSMahalleSetting changeComponent={props.changeComponent} />)} className=\"btn btn-link btn-sm text-decoration-none\">MAHALLE</button>\r\n                               \r\n                            </div>\r\n                            <div className=\"col-6\" >{info[3]}\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"row  m-3 border-top  pt-2  pb-5\">\r\n                            <div className=\"col-6 \" >\r\n                                <button onClick={() => props.changeComponent(<CBSAdaSetting changeComponent={props.changeComponent} />)} className=\"btn btn-link btn-sm text-decoration-none \"> ADA/PARSEL</button>\r\n                             \r\n                            </div>\r\n                            <div className=\"col-6\" >{info[1]}\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"row  m-3 border-top mt-4  pt-2 border-bottom pb-5\">\r\n                            <div className=\"col-6 \" >\r\n                                <button onClick={() => props.changeComponent(<CBSMAhalleLocal changeComponent={props.changeComponent} />)} className=\"btn btn-link btn-sm text-decoration-none \"> MAHALLE BİLGİ DÜZELTME</button>\r\n\r\n                            </div>\r\n                            <div className=\"col-6\" >                           </div>\r\n                        </div>\r\n\r\n                    </div>\r\n                </div>\r\n                <div className=\"col-12 col-md-6\">\r\n                    <div className=\"bg-white rounded-3  shadow-sm\" >\r\n                            <div className=\"p-3 fw-bold  text-center\" >\r\n                                <div className=\"row  pt-2  mb-4  \">\r\n                                    <div className=\"col-4 align-middle fw-bold pt-4 text-center \" >\r\n                                        UNIVERSE'DE KULLANILAN KADASTRAL VERİ\r\n                                    </div>\r\n                                    <div className=\"col-8\" >\r\n                                        <div className=\"bg-light p-3 rounded-3 textvmuted fw-bold align-middle\" >\r\n                                            <span className=\"fa fa-info pe-3\" style={{ color: \"lightblue\", fontSize: \"26px\" }} ></span>\r\n                                            Universe sisteminde başvurularda kullanılan ada/parsel verisidir\r\n                                        </div>\r\n                                    </div>\r\n                                </div>\r\n                        </div>\r\n                        <div className=\"row  m-3 border-top pt-2\">\r\n                            <div className=\"col-6 \" >\r\n                                <button onClick={() => props.changeComponent(<MevkiSetting changeComponent={props.changeComponent}/>)} className=\"btn btn-link btn-sm text-decoration-none \">MEVKİ</button>\r\n                            </div>\r\n                            <div className=\"col-6\" >{info[4]}\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"row  m-3 border-top  pt-2\">\r\n                            <div className=\"col-6 \" >\r\n                                <button onClick={() => props.changeComponent(<MahalleSetting changeComponent={props.changeComponent} />)} className=\"btn btn-link btn-sm text-decoration-none \">MAHALLE</button>\r\n                            </div>\r\n                            <div className=\"col-6\" >{info[2]}\r\n                            </div>\r\n                        </div>\r\n                        <div className=\"row  m-3 border-top  pt-2\">\r\n                            <div className=\"col-6 \" >\r\n                                <button className=\"btn btn-link btn-sm text-decoration-none \" onClick={() => { props.changeComponent(<SettingIdariMahalle changeComponent={props.changeComponent} />) }}> İDARİ MAHALLE</button>\r\n                            </div>\r\n                            <div className=\"col-6\" >\r\n                                <div className=\"col-6\" >{info[5]} </div>\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className=\"row  m-3 border-top  pt-2 border-bottom pb-5\">\r\n                            <div className=\"col-6 \" >\r\n                                <button onClick={() => props.changeComponent(<AdaSetting changeComponent={props.changeComponent} />)} className=\"btn btn-link btn-sm text-decoration-none \">ADA/PARSEL</button>\r\n                            </div>\r\n                            <div className=\"col-6\" >{info[0]}\r\n                            </div>\r\n                        </div>\r\n\r\n\r\n\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n}\r\n\r\n\r\n\r\n","export default __webpack_public_path__ + \"static/media/100yıl.c5f65a39.png\";","export default \"data:image/png;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwM8JjXStAWC0SPAAAAAASUVORK5CYII=\"","export default __webpack_public_path__ + \"static/media/edevlet_eimza.e31f425d.png\";","export default __webpack_public_path__ + \"static/media/eimzaerror1.baf9b920.png\";","export default __webpack_public_path__ + \"static/media/eimzaerror2.9e1824f5.jpg\";","export default __webpack_public_path__ + \"static/media/eimzaerror3.a1d1e058.jpg\";","export default __webpack_public_path__ + \"static/media/eimzaerror4.d8ee049d.jpg\";","export default __webpack_public_path__ + \"static/media/dwg.596171c6.png\";","import React, { useState, useEffect } from 'react';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { isEmpty, showInfoMessage, showConfirmMessage, showErrorMessage, useGlobalState, maskStringWithStar, sendpost, calculateDateDifference } from '../GlobalState.js';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport PDFView from '../Application/PDFView';\r\nimport EImzaDetails from './EImzaDetails';\r\nimport EImzaTekrar from './EImzaTekrar';\r\nimport EImzaList from './EImzaList';\r\nimport EimzaOnaylarim from './EimzaOnaylarim';\r\n\r\n\r\n\r\n\r\nexport default function EImza(props) {\r\n    const [e, setEimza] = useState(props.Eimza);\r\n    const [imzalayanlist, setimzalayanlist] = useState([]);\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userName, setuserName] = useGlobalState('userName');\r\n    var [guncelnecekEimza, setGuncelnecekEimza] = useState(null);\r\n\r\n\r\n\r\n    var changeComponent = props.changeComponent;\r\n    if (changeComponent != null) {\r\n        window.changeComponent = changeComponent;\r\n    }\r\n    else\r\n        changeComponent = window.changeComponent;\r\n\r\n\r\n    useEffect(() => {\r\n        if (props.showImzaciList == true)\r\n            getimzalistesi();\r\n\r\n    }, [])\r\n\r\n    var source = < EImzaList appData={props.appData} targetEimza={e} setActivePanel={props.setActivePanel} />\r\n\r\n\r\n\r\n    const getimzalistesi = () => {\r\n        document.getElementById(\"imzalistspin\" + e.id).hidden = false;\r\n        fetch(\"imzalayanlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(e.id + \"\")\r\n        }).then(async response => {\r\n            document.getElementById(\"imzalistspin\" + e.id).hidden = true;\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setimzalayanlist(value.sort((a, b) => a.sira - b.sira));\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const doremove = (id, status) => {\r\n        fetch(\"seteimzaremovestatus?eimzaid=\" + id + \"&status=\" + status, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'text/html'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                /*setEimza({ ...e, \"removed\": status == 1 })\r\n            props.updateEimza({ ...e, \"removed\": status == 1 }, imzalayanlist)*/\r\n                props.fetcheimzatasks();\r\n            }\r\n        })\r\n    }\r\n    const rejectEimza = (rec, rejectEimza) => {\r\n        e.rejectText = rejectEimza;\r\n        sendpost(\"rejecteimza\", e, \"imzalistspin\" + e.id, (response) => {\r\n            response.json().then(value => {\r\n                setEimza(value);\r\n            })\r\n        })\r\n    }\r\n\r\n\r\n\r\n    const getImzaButtons = (e, rec) => {\r\n        //if (isEmpty(e.serviceProvider) || e.serviceProvider==\"Arksigner\") {\r\n        //    return <><button className={\"btn   btn-sm  rounded ps-1 pe-1 me-1 \" + (rec.uuid != null ? \"btn-secondary\" : \"btn-primary\")} onClick={() => imzabaslat(e, rec)}>\r\n        //        Süreci_Başlat\r\n        //    </button>\r\n        //        <span class=\"ms-1 spinner-border spinner-border-sm\" role=\"status\" hidden key={rec.uuid}></span>\r\n\r\n        //        {\r\n        //            rec.uuid != null &&\r\n        //            <a href={\"https://via.arksigner.com/Imzala.aspx?documentUUID=\" + rec.uuid} className=\"btn  btn-sm btn-primary rounded text-decoration-none text-white\" target=\"_blank\">  İmzala</a>\r\n        //        }\r\n        //        {role.indexOf(UserPermConstants.Tarife_Cetveli) > -1 ? <button className=\"btn  btn-sm btn-primary rounded text-decoration-none text-white\" onClick={() => changeComponent(<EimzaOnaylarim source={source} changeComponent={changeComponent} setActivePanel={props.setActivePanel} appData={props.appData} eimza={e} imzalayanlist={imzalayanlist} imzalayan={rec} />)}> Onaylarımdan İmzala</button> : \"\"}\r\n        //    </>\r\n\r\n\r\n        //}\r\n        if (props.appData.archived == true)\r\n            return \"Arşivelenen Dosya İmzalanamz\";\r\n\r\n        if (e.rejected == true) {\r\n            return \"\";\r\n        }\r\n\r\n        return <><button className=\"btn  btn-sm btn-primary rounded text-decoration-none text-white\"\r\n            onClick={() => changeComponent(<EimzaOnaylarim source={source} changeComponent={changeComponent}\r\n                setActivePanel={props.setActivePanel} appData={props.appData} eimza={e}\r\n                imzalayanlist={imzalayanlist} imzalayan={rec} />)}> İmzala\r\n        </button>\r\n            <button className=\"ms-1 btn  btn-sm btn-danger rounded text-decoration-none text-white\"\r\n                onClick={() => showConfirmMessage(\"E-İmzayı Redetmek istediğinizden eminmisniz?\", \"İmza süreci durdurulacaktır\", \"Evet\", \"Hayır\", () => {\r\n                    setTimeout(() => {\r\n                        let rejecttext = prompt(\"Lütfen reddetme gerekçesini yazınız\");\r\n                        if (isEmpty(rejecttext)) {\r\n                            showErrorMessage(\"Red gerekçesi boş olamaz\");\r\n                            return;\r\n                        }\r\n                        rejectEimza(rec, rejecttext)\r\n                    }, 300);\r\n\r\n                })}>\r\n                Reddet\r\n            </button>\r\n        </>\r\n\r\n\r\n    }\r\n\r\n    const seteimzaremovestatus = (id, status) => {\r\n        if (status == 1)\r\n            showConfirmMessage(\"E-İmzayı Silmek İstediğinizden Emin misiniz?\", \"\", \"Evet\", \"Hayır\", () => doremove(id, status));\r\n        else\r\n            doremove(id, status)\r\n\r\n    }\r\n\r\n\r\n    const imzaiptal = () => {\r\n\r\n        fetch(\"canceleimza?id=\" + e.id, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'text/html'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                setEimza({ ...e, imzatarih: UserPermConstants.EIMZA_IPTAL });\r\n                props.fetcheimzatasks();\r\n            }\r\n        });\r\n    }\r\n\r\n    const imzabaslat = (e, rec) => {\r\n        var posrdata = { eimzaid: e.id, username: rec.userName, appid: e.appId }\r\n        document.getElementById(\"imzalabuttonarea\" + rec.id).children[1].hidden = false;\r\n        fetch(\"startsigntaskforuser\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(posrdata)\r\n        }).then(async response => {\r\n            document.getElementById(\"imzalabuttonarea\" + rec.id).children[1].hidden = true;\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                getimzalistesi();\r\n            }\r\n        });\r\n    }\r\n\r\n    const updateEimza = (e) => {\r\n\r\n        sendpost(\"updateeimza\", e, \"imzalistspin\" + e.id, (response) => {\r\n            response.json().then(async data => {\r\n                setEimza(data);\r\n            });\r\n        })\r\n\r\n    }\r\n\r\n\r\n\r\n    var minsira = Number.MAX_SAFE_INTEGER;\r\n    imzalayanlist.filter(x => isEmpty(x.imzatarih)).forEach(x => minsira = Math.min(minsira, x.sira))\r\n\r\n    return <div className=\"border p-3 pt-2 bg-light mt-4 rounded\" id={\"EimzaRec\" + e.id} >\r\n        {e.removed != true && <> <div className=\"row\" key={e.imzatarih} >\r\n        </div>\r\n            {e.eimzaTextPos == false &&\r\n                <div className=\"row\" key={e.imzatarih} >\r\n                    <div className=\"col-12 text-danger small fw-bold mb-1\"> Yüklediğiniz belgede &#34;&#123;e-imza &#34; ve &#34;e-imza&#125;&#34; ifadeleri bulunamamıştır. Yasal e-imza metni ve QR kod belgenin altına yerleştirilecektir.</div>\r\n                </div>\r\n            }</>\r\n        }\r\n        <div className=\"row \" >\r\n            {e.removed != true ? <div className=\"col-12 col-md-6 ps-0\">\r\n                {/* <span className=\"badge bg-info  mt-0\">{e.userFileId != null ? (e.userFileId):\"\"}</span>*/}\r\n\r\n\r\n                {e.success == true && role.indexOf(UserPermConstants.Surec_Sonu_Dosya_Indirme) == -1 ?\r\n                    <button className=\"btn btn-link fw-bold btn-sm text-decoration-none align-middle\" onClick={() => showInfoMessage(\"Bu dosyaya süreç tamamlandıktan sonra erişebilirsiniz\", \"\", \"Tamam\")}>\r\n                        <span className=\"fw-bold  h6 \"> {e.userFileId != null ? (e.userFileId + \" - \") : \"\"}\r\n                            {e.surecname} ({\"id: \" + e.id})\r\n                        </span>\r\n                    </button>\r\n                    :\r\n                <a href={'geteimzaoriginaldosya?eimzaid=' + e.id} className=\"text-decoration-none btn  btn-sm btn-link  p-0 text-start\"\r\n                    target=\"_blank\" download=\"imzalanacak_evrak.pdf\">\r\n                    <span className=\"fw-bold  h6 \"> {e.userFileId != null ? (e.userFileId + \" - \") : \"\"}\r\n                        {e.surecname} ({\"id: \" + e.id})\r\n                    </span>\r\n\r\n                </a>\r\n                }\r\n\r\n\r\n\r\n                {e.veriGirisindenSonraIndirme == true && isEmpty(e.veriGirisTarihi) &&\r\n                    <sup className=\"badge rounded-pill bg-danger\">\r\n                        Veri Girişi Bekleniyor\r\n                    </sup>}\r\n                {e.rejected == true &&<div>\r\n                    <span className=\"text-danger ms-1 fw-bold\">\r\n                        Eimza {e.rejectedBy} tarafından Rededildi ({e.rejectText})\r\n                    </span>\r\n                    {e.userName == userName && <button className=\"btn btn-success btn-sm ms-1 p-1\" onClick={() => { e.rejected = false; updateEimza(e); }}>Yeniden Devam Et</button>}\r\n                </div>}\r\n            </div> :\r\n                <div className=\"col-12 col-md-6\">\r\n                    {role.indexOf(UserPermConstants.Imza_Silme) > -1 &&\r\n                        <>\r\n                            <span className=\"fw-bold  h6 \"> {e.userFileId != null ? (e.userFileId + \" - \") : \"\"}\r\n                                {e.surecname} ({\"id: \" + e.id})\r\n                            </span>\r\n                         <button onClick={() => seteimzaremovestatus(e.id, 0)} className=\"btn btn-sm btn-success p-1 ms-1 ps-2 pe-2\"\r\n                                target=\"_blank\"> Geri Al</button></>\r\n                    }\r\n                </div>\r\n            }\r\n\r\n            <div className=\"col-12 col-md-6 text-end \">\r\n                {imzalayanlist.length > 0 && <span className=\"fw-bold text-primary me-2\" id=\"yeniCounter\">\r\n                    <i className={\"pe-1 fa fa-user\" + (imzalayanlist.length > 1 ? \"s\" : \"\")} style={{ fontSize: \"18px\" }} ></i>{imzalayanlist.length}\r\n                </span>}\r\n                <div class=\"btn-group\">\r\n                    <button type=\"button\" onClick={() => getimzalistesi()} className=\"rounded-1 btn btn-sm btn-primary me-1  shadow-none\"\r\n                        target=\"_blank\">\r\n                        İmza Listesi\r\n                    </button>\r\n\r\n\r\n                    <div className=\"dropdown\">\r\n                        <button class=\"btn btn-primary btn-sm dropdown-toggle shadow-none\" type=\"button\" id=\"dropdownMenuButton1\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n                            İşlemler\r\n                        </button>\r\n                        <ul class=\"dropdown-menu\" aria-labelledby=\"dropdownMenuButton1\">\r\n                            {e.imzatarih != UserPermConstants.EIMZA_IPTAL && e.removed != true && <>\r\n                                <li>\r\n                                    {isEmpty(e.imzatarih) == false && <>\r\n                                        {(e.veriGirisindenSonraIndirme == true && isEmpty(e.veriGirisTarihi) && role.indexOf(UserPermConstants.Imza_Veri_Girisi) == -1) ?\r\n                                            <span className=\"text-secondary ms-3\"><span className=\"fa fa-cloud-download\" style={{ \"font-size\": \"18px\" }}></span> Veri Girişi Bekleniyor</span>\r\n                                            : <a className=\"dropdown-item text-success \" href={'getimzalidosya?eimzaid=' + e.id} download=\"eimza.pdf\"><i className=\"fa fa-cloud-download\" style={{ \"font-size\": \"18px\" }}></i> İmzalı Dosya İndir   </a>\r\n                                        }</>\r\n                                    }\r\n                                </li>\r\n                                <li>\r\n\r\n                                    {role.indexOf(UserPermConstants.Imza_Sertifikali) > -1 && <>\r\n                                        {(e.veriGirisindenSonraIndirme == true && isEmpty(e.veriGirisTarihi) && role.indexOf(UserPermConstants.Imza_Veri_Girisi) == -1) ?\r\n                                            <span className=\"text-secondary ms-3\"><span className=\"fa fa-cloud-download\" style={{ \"font-size\": \"18px\" }}></span> Veri Girişi Bekleniyor</span>\r\n                                            :\r\n                                            (e.removed != true && e.imzatarih != null\r\n                                                    && e.imzatarih != UserPermConstants.EIMZA_IPTAL &&\r\n                                            <a className=\"dropdown-item text-success \" href={'getimzalidosya?eimzaid=' + e.id + '&sert=1'} download=\"eimza.pdf\"><i className=\"fa fa-cloud-download\" style={{ \"font-size\": \"18px\" }}></i> Sertifikalı Belge İndir</a>)\r\n                                        }\r\n                                    </>\r\n                                    }\r\n                                </li>\r\n                                {props.appData.archived != true && <>\r\n                                    {role.indexOf(UserPermConstants.Imza_Sertifikali) > -1 && e.removed != true\r\n                                        && e.imzatarih != null   && e.imzatarih != UserPermConstants.EIMZA_IPTAL &&<li>\r\n                                        <a className=\"dropdown-item text-success \" href={'UpgradePades?id=' + e.id}\r\n                                            download=\"eimza.pdf\"><i className=\"fa fa-cloud-download\"\r\n                                                style={{ \"font-size\": \"18px\" }}></i> Zaman Damgası Al</a>\r\n                                    </li>}\r\n\r\n\r\n                                    <li>\r\n                                        <button disabled={(role.indexOf(UserPermConstants.Imza_Guncelleme) == -1 && userName != e.downloadUrl)} className=\"dropdown-item \" onClick={() => { props.setActivePanel(<EImzaTekrar source={source} setActivePanel={props.setActivePanel} appData={props.appData} eimza={e} imzalayanlist={imzalayanlist} VizeKontrol={null} />) }}> <span className=\"fa fa-list-ul\" style={{ \"font-size\": \"18px\" }}>\r\n                                        </span> İmzacıları Güncelle\r\n                                        </button>\r\n                                        {<li>\r\n                                            <button disabled={(role.indexOf(UserPermConstants.Imza_Yerlestirme) == -1 && userName != e.downloadUrl)} className=\"dropdown-item \" onClick={() => props.setActivePanel(<PDFView Eimza={e} setActivePanel={props.setActivePanel} appData={props.appData} />)} > <i class=\" fa fa-file-pdf-o\" style={{ \"font-size\": \"18px\" }} aria-hidden=\"true\"></i> İmzayı Yerleştir</button>\r\n                                        </li>}\r\n                                        {role.indexOf(UserPermConstants.Imza_Veri_Girisi) > -1 && <li>\r\n                                            <button className=\"dropdown-item \" onClick={() => props.setActivePanel(<EImzaDetails eimza={e} setActivePanel={props.setActivePanel} appData={props.appData} />)}> <i class=\"fa fa-cog\" style={{ \"font-size\": \"18px\" }} aria-hidden=\"true\"></i> Veri Girişi Yap</button>\r\n\r\n                                        </li>}\r\n\r\n                                    </li>\r\n                                    {(role.indexOf(UserPermConstants.Imza_Vize_Kontrol) > -1) && <li>\r\n\r\n                                        {(e.veriGirisindenSonraIndirme == true && isEmpty(e.veriGirisTarihi)) ?\r\n                                            <span className=\"text-secondary ms-3\"><span className=\"fa fa-user\" style={{ \"font-size\": \"18px\" }}></span> Veri Girişi Bekleniyor</span>\r\n                                            :\r\n                                            <button className=\"dropdown-item \" onClick={() => { props.setActivePanel(<EImzaTekrar source={source} setActivePanel={props.setActivePanel} appData={props.appData} eimza={e} imzalayanlist={imzalayanlist} VizeKontrol={true} />) }}>\r\n                                                <span className=\"fa fa-user\" style={{ \"font-size\": \"18px\" }}></span>  Vize Kontrolü</button>\r\n\r\n                                        }\r\n                                    </li>}\r\n                                </>}\r\n\r\n\r\n                            </>\r\n\r\n                            }\r\n                            {props.appData.archived != true && <>\r\n                                <li>\r\n                                    {role.indexOf(UserPermConstants.Imza_Silme) > -1 && isEmpty(e.imzatarih) == false && e.removed != 1 &&\r\n                                        <button onClick={() => seteimzaremovestatus(e.id, 1)} className=\"dropdown-item text-danger\" target=\"_blank\" title=\"Sil\"> <span className=\"fa fa-trash-o\" style={{ \"font-size\": \"18px\" }}>\r\n\r\n                                        </span> Sil</button>\r\n                                    }\r\n                                </li>\r\n\r\n                                <li>\r\n\r\n                                    {role.indexOf(UserPermConstants.Imza_Silme) > -1 && isEmpty(e.imzatarih) && e.basvuruCiktisi != true &&\r\n                                        <button onClick={() => showConfirmMessage(\"E-İmza Süreci İptal Edilsin Mı?\", \"Bu işlem geri döndürülemez\", \"Evet\", \"Hayır\", imzaiptal)} className=\"dropdown-item text-danger\" target=\"_blank\"><i class=\" \tfa fa-minus-circle\" style={{ \"font-size\": \"18px\" }} aria-hidden=\"true\"></i> İptal Et</button>\r\n                                    }\r\n\r\n                                </li></>}\r\n\r\n\r\n\r\n                        </ul>\r\n                    </div>\r\n                </div>\r\n                <div id={\"downloadbuttons\" + e.id}>\r\n\r\n\r\n                </div>\r\n\r\n            </div>\r\n\r\n        </div>\r\n\r\n        <div className=\"row mt-1  rounded   text-secondary fw-bold\" key={e.imzatarih} >\r\n            <div className=\"col-12 col-md-4 ps-0\" title={e.userName}>Başlama: {e.tarih}</div>\r\n            <div className=\"col-12 col-md-4 ps-0\">Bitiş: {e.imzatarih}</div>\r\n            <div className=\"col-12 col-md-1 ps-0\">{e.imzaType}</div>\r\n            <div className=\"col-12 col-md-3 ps-0 pe-0 text-end\">\r\n                {e.removed != true && e.imzatarih != null\r\n                    && e.imzatarih != UserPermConstants.EIMZA_IPTAL &&\r\n                    <div className=\"text-success fw-bold \">Süreç Tamamlanmıştır</div>}\r\n            </div>\r\n\r\n\r\n\r\n        </div><span class=\"ps-0 spinner-border spinner-border-sm\" hidden id={\"imzalistspin\" + e.id} ></span>\r\n       \r\n\r\n            <div className=\"table-responsive\">\r\n\r\n                <table className='table  mt-3 table-vdstriped p-0' aria-labelledby=\"tabelLabel\">\r\n                    <tbody id=\"myTable\">\r\n                        {imzalayanlist.map((rec, idx) =>\r\n\r\n                            <tr className={((rec.imzatarih != null && rec.imzatarih.length > 0) ? \"text-success fw-bold\" : \"\")}>\r\n                                <td>\r\n                                    {rec.sira}\r\n                                </td>\r\n                                <td>\r\n                                    {rec.name} {rec.family}\r\n                                </td>\r\n                                <td>\r\n                                    {maskStringWithStar(rec.tc)}\r\n                                </td>\r\n                                <td>\r\n                                    {rec.rol}\r\n                                </td>\r\n                                <td>\r\n                                    {rec.vizeKontrolTur}\r\n                                </td>\r\n                                <td>\r\n                                    {rec.uuid}\r\n                                </td>\r\n                                <td title=\"İmzalama Tarihi\">\r\n                                    {rec.imzatarih}\r\n                                </td>\r\n                                <td title=\"Bekletme Süresi\">\r\n                                    {isEmpty(rec.siraTarih) ? \"\" :\r\n                                        (isEmpty(rec.imzatarih) ? calculateDateDifference(rec.siraTarih, new Date())\r\n                                            : calculateDateDifference(rec.siraTarih, new Date(rec.imzatarih.split(\" \")[0])))}\r\n                                </td>\r\n                                {e.imzatarih != UserPermConstants.EIMZA_IPTAL && e.removed != true &&\r\n                                    <td className=\"text-end\" width=\"25%\">\r\n                                        {isEmpty(rec.imzatarih) == false ? \"Imzaladı\" :\r\n                                            (rec.sira == minsira)\r\n                                            && <div className=\"p-0\" id={\"imzalabuttonarea\" + rec.id}>\r\n                                                {(e.rejected == true && e.rejectedBy == rec.userName) ? <span className=\"text-danger fw-bold\">Reddedildi</span> :\r\n                                                    (userName == rec.userName ? getImzaButtons(e, rec)    : UserPermConstants.EIMZA_BEKLENIYOR)}\r\n                                            </div>}\r\n\r\n\r\n                                    </td>}\r\n\r\n                            </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n           \r\n\r\n        </div>\r\n\r\n        <div class=\"modal  fade\" id={\"eimzaGuncellModal\" + e.id} tabindex=\"-1\" aria-labelledby=\"exampleModalLabel\" aria-hidden=\"true\">\r\n            <div class=\"modal-dialog modal-xl\">\r\n                <div class=\"modal-content\">\r\n                    <div class=\"modal-header\">\r\n                        <h5 class=\"modal-title\" id=\"exampleModalLabel\">Eimzayı Güncelle</h5>\r\n                        <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\" onClick={getimzalistesi}></button>\r\n                    </div>\r\n\r\n                    {guncelnecekEimza != null && <div class=\"modal-body\">\r\n                        <div class=\"row\">\r\n                            <div class=\"col-12\">\r\n                                E-İmza ID:  {guncelnecekEimza[0].id}\r\n                            </div>\r\n                        </div>\r\n                        <EImzaTekrar appData={props.appData} eimza={guncelnecekEimza[0]} imzalayanlist={guncelnecekEimza[1]} VizeKontrol={guncelnecekEimza[2]} />\r\n                    </div>}\r\n                    <div class=\"modal-footer\">\r\n                        <button type=\"button\" class=\"btn btn-sm btn-primary\" data-bs-dismiss=\"modal\" onClick={getimzalistesi}>Bitti</button>\r\n                        {/*<button type=\"button\" class=\"btn btn-sm btn-primary\">Güncelle</button>*/}\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    </div>\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport EImza from './EImza';\r\nimport ApplicationAuthorPanel from '../Application/ApplicationAuthorPanel';\r\nimport bootstrap from 'bootstrap/dist/js/bootstrap.min.js'\r\nimport $ from 'jquery';\r\n\r\n\r\nimport { useGlobalState, showConfirmMessage, showErrorMessage, isEmpty, maskStringWithStar, setHtmlTag, getHtmlTag } from '../GlobalState.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport PDFView from '../Application/PDFView';\r\n\r\nexport default function EImzaList(props) {\r\n    var appData = props.appData;\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [imzalayabilenler, setImzalayabilenler] = useState(null);\r\n    const [imzalayanlist, setimzalayanlist] = useState([]);\r\n    var [eimzatasklist, setEimzatasklist] = useState([]);\r\n    var [showFromAllApps, setShowFromAllApps] = useState(false);\r\n    const [userName, setuserName] = useGlobalState('userName');\r\n\r\n    var [eimzaNameList, setEimzaNameList] = useState([]);\r\n    const colors = [\"text-warning\", \"text-success\"]\r\n\r\n    useEffect(() => {\r\n        if (props.targetEimza == null) { \r\n        document.getElementById(\"activepaneldiv\").scrollTo(0, 0)\r\n    }\r\n        getvakaletdurums();\r\n        getyeniimzalistesi();\r\n        fetcheimzatasks();\r\n        fetchEimzaNameList();\r\n\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n    const getvakaletdurums = () => {\r\n        fetch(\"getvakaletdurums\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(appData.id),\r\n        }).then(async response => {\r\n\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    getimzalayabilenler(data);\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const imzalayanekle = (imazalayan) => {\r\n        fetch(\"imzalayanekle\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(imazalayan)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setimzalayanlist(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const adayEkle = (rec) => {\r\n        var maxSira = 0;\r\n        imzalayanlist.forEach(x => maxSira = Math.max(maxSira, x.sira))\r\n        maxSira = maxSira + 1;\r\n\r\n        var items = rec.Rol.split(',').map(item => item.trim());\r\n        var roldindex = items.indexOf(rec.selectedRol);\r\n        var siras = rec.sira.split(',').map(item => item.trim());\r\n        if (siras.length > roldindex)\r\n            if (isEmpty(siras[roldindex]) == false)\r\n                maxSira = Number(siras[roldindex]);\r\n\r\n        var imazalayan = { eimzaid: 0, sira: maxSira, userName: rec.userName, tc: rec.tc, rol: rec.selectedRol, name: rec.Name, family: rec.Family }\r\n        if (imzalayanlist.filter(x => x.userName == imazalayan.userName && x.rol == imazalayan.rol).length > 0) {\r\n            showErrorMessage(\"Adayı imza listesinde bulunmaktadır.\");\r\n            return;\r\n        }\r\n        setimzalayanlist([...imzalayanlist, imazalayan]);\r\n\r\n    }\r\n\r\n    const adaylariKopyala = (eimzaid) => {\r\n        if (eimzaid < 0)\r\n            showErrorMessage(\"Bir Eimza Sürecini Seçiniz\");\r\n        if (imzalayanlist.length > 0) {\r\n            showErrorMessage(\"Kopyalama İşlemi İçin Yeni E-İmza Listesi Boş Olmalıdır.\", \"Kopaylamadan sonra listeyi güncelleyebilirsiniz\");\r\n            return;\r\n        }\r\n\r\n        fetch(\"imzalayanlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(eimzaid)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    value.forEach(x => { x.eimzaid = 0; x.id = 0; x.imzatarih = null; x.vizeKontrolTur = null; x.uuid = null; })\r\n                    setimzalayanlist([...imzalayanlist, ...value]);\r\n\r\n\r\n                })\r\n            }\r\n        });\r\n\r\n\r\n        /*var imazalayan = { eimzaid: \"NEW\" + appData.id, sira: eimzaid, userName: \"\", tc: \"COPY\", rol: \"\", name: \"\", family: \"\" }\r\n\r\n        imzalayanekle(imazalayan)*/\r\n    }\r\n\r\n\r\n    const adaySil = (idx) => {\r\n        imzalayanlist.splice(idx, 1)\r\n        setimzalayanlist([...imzalayanlist]);\r\n    }\r\n\r\n    const getyeniimzalistesi = () => {\r\n        fetch(\"imzalayanlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(\"NEW\" + appData.id)\r\n        }).then(async response => {\r\n            if (!response.ok) { ajaxFail(response); }\r\n            else {\r\n                response.json().then(value => {\r\n                    setimzalayanlist(value);\r\n                })\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n    const getimzalayabilenler = (vekils) => {\r\n        fetch(\"imzalaybilenler\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(appData.id)\r\n        }).then(async response => {\r\n            if (!response.ok) { ajaxFail(response); }\r\n            else {\r\n                response.json().then(value => {\r\n                    var data = JSON.parse(value);\r\n                    for (var i = 0; i < data.length; i++) {\r\n                        var v = vekils.find(x => x.userName == data[i].userName);\r\n                        if (v != null)\r\n                            data[i].vekil = v.appID;\r\n                    }\r\n\r\n                    setImzalayabilenler(data);\r\n                    setTimeout(() => {\r\n                        var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"popover\"]'))\r\n                        var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n                            return new bootstrap.Popover(popoverTriggerEl)\r\n                        })\r\n                    }, 1400)\r\n                })\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const adaylar = () => {\r\n\r\n\r\n\r\n\r\n\r\n\r\n        imzalayabilenler.forEach(rec => {\r\n            rec.selectedRol = rec.Rol;\r\n            if (rec.Rol != null && rec.Rol.includes(',')) {\r\n                rec.selectedRol = rec.Rol.split(\",\")[0];\r\n            }\r\n\r\n        })\r\n\r\n        return <div className=\"p-3  border border-rounded rounded-3 bg-white\" >\r\n            <h5>E-İmza Adayları</h5>\r\n            <div className='' >\r\n                <input className=\"form-check-input\" type=\"checkbox\" name=\"Kabul\" defaultChecked={false} onChange={(e) => setShowFromAllApps(e.target.checked)} /> Aynı Konuma Yapılan Diğer Başvuruların da Adaylarını Göster\r\n            </div>\r\n\r\n\r\n\r\n            <div className=\"mt-1\">\r\n                <div className=\"table-responsive\">\r\n                    <table className='table mt-3 table-vdstriped' aria-labelledby=\"tabelLabel\">\r\n                        <thead >\r\n                            <th className='text-start'> İsim\r\n                            </th>\r\n                            <th className='text-start'>\r\n                                Soyisim\r\n                            </th >\r\n                            <th className='text-start'>\r\n                                TC\r\n                            </th>\r\n                            <th className='text-start'>\r\n                                Kullanıcı Tipi\r\n                            </th>\r\n                            <th className='text-start'>\r\n                                Başvuru\r\n                            </th>\r\n                            <th className='text-start'>\r\n                                E-İmza\r\n                            </th>\r\n\r\n                            <th className='text-start'>\r\n\r\n                            </th>\r\n                        </thead>\r\n                        <tbody id=\"myTable\" key={imzalayanlist.length}>\r\n                            {imzalayabilenler.filter(rec => (showFromAllApps == true || rec.appID == appData.id)).map(rec =>\r\n\r\n                                <tr className=\"p-1\">\r\n                                    <td>\r\n                                        {rec.Name}\r\n                                    </td>\r\n                                    <td>\r\n                                        {rec.Family}\r\n                                    </td>\r\n                                    <td>\r\n                                        {maskStringWithStar(rec.tc)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {(rec.Rol != null && rec.Rol.includes(',')) ?\r\n                                            <select className=\"form-select form-select-sm d-inline-block me-2\" onChange={(e) => rec.selectedRol = e.target.value} >\r\n                                                {rec.Rol.split(\",\").map((u, idx) => <option value={u}>{rec.sira.split(',')[idx]} - {u}</option>)}\r\n                                            </select>\r\n                                            : rec.sira.split(',')[0] + \"-\" + rec.Rol\r\n                                        }\r\n                                    </td>\r\n                                    <td >\r\n                                        {rec.appID}\r\n                                    </td>\r\n                                    <td >\r\n                                        {rec.eimza == true ? \"Evet\" :\r\n                                            <div> E-imzam Yok\r\n                                                <button className=\"btn btn-secondary ms-1 btn-sm text-decoration-none fw-bold p-1 pt-0 pb-0\" id=\"mypopover2\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\" title=\"AÇIKLAMA\" data-bs-content=\"Kullanıcıların e-imza atabilmeleri için, profil sayfalarındaki “İletişim Bilgileri” bölümünden “E-İmza Kullanabilirim” seçeneğini işaretlemeleri ve “Güncelle” butonuna basmaları gerekmektedir.\">?</button>\r\n\r\n                                            </div>\r\n\r\n\r\n                                        }\r\n                                    </td>\r\n\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n\r\n                                            {/*{rec.vekil != null && rec.mappingID >= 0 && <button className={\"btn  btn-link text-decoration-none pe-1 \" + colors[rec.vekil]} title=\"Vekalet Bilgisi\" onClick={(e) => { props.setActivePanel(<Vekalet appData={appData} setActivePanel={props.setActivePanel} mapping={{ id: rec.mappingID, userName: rec.userName, muellifType: rec.Rol }} />) }}  > <i class=\"fa fa-vimeo-square\" aria-hidden=\"true\"></i>   </button>}*/}\r\n\r\n                                            {rec.vekil != null &&\r\n                                                <button className={\"btn  btn-link text-decoration-none pe-1 \" + colors[rec.vekil]} title=\"Vekalet Bilgisi\" onClick={(e) => { props.setActivePanel(<ApplicationAuthorPanel appData={appData} setActivePanel={props.setActivePanel} />) }}  > <i class=\"fa fa-vimeo-square\" aria-hidden=\"true\"></i>   </button>}\r\n\r\n                                            &nbsp;\r\n\r\n                                            <a hidden={rec.tc == null || rec.tc.length == 0 || rec.eimza != true} href=\"#\" onClick={() => { adayEkle(rec) }} className=\" text-decoration-none \"><i className=\"fa fa-plus-circle align-middle\" style={{ \"font-size\": \"22px\" }}></i></a>\r\n                                        </div>\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    }\r\n\r\n    const recalculateSira = (mapping) => {\r\n        const sortedArray = mapping.map(x => x.sira).sort((a, b) => a - b);\r\n        const max = sortedArray[sortedArray.length - 1];\r\n        var missingNumbers = [];\r\n        for (let i = 1; i <= max; i++) {\r\n            if (!sortedArray.includes(i)) {\r\n                missingNumbers.push(i);\r\n            }\r\n        }\r\n        for (var x of missingNumbers) {\r\n            for (var r of mapping) {\r\n                if (r.sira >= x)\r\n                    r.sira--;\r\n            }\r\n        }\r\n        return mapping;\r\n    };\r\n\r\n    const imzalistesi = () => {\r\n        var maxSira = 0;\r\n        imzalayanlist.forEach(x => maxSira = Math.max(maxSira, x.sira))\r\n        if (imzalayanlist.filter(x => x.sira == maxSira).length > 1)\r\n            maxSira++;\r\n        var iz2 = imzalayanlist.sort((a, b) => a.sira - b.sira)\r\n        return <div  >\r\n            <div className=\"row\">\r\n                <div className=\"col-8\" id=\"yeniCounter\">\r\n                    <h5>Yeni E-İmza Listesi</h5>\r\n                </div>\r\n                <div className=\"col-4 text-end fw-bold text-primary\" id=\"yeniCounter\">\r\n                    <i className={\"pe-1 fa fa-user\" + (iz2.length > 1 ? \"s\" : \"\")} style={{ fontSize: \"18px\"}} ></i>{iz2.length}\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"\" key={eimzatasklist.length}>\r\n                <div className=\"table-responsive\">\r\n                    <table className='table table-vdstriped' aria-labelledby=\"tabelLabel\">\r\n                        <thead >\r\n                            <th className='text-start'>\r\n                            </th>\r\n                            <th className='text-start'> Sıra\r\n                            </th>\r\n                            <th className='text-start'> İsim\r\n                            </th>\r\n                            <th className='text-start'>\r\n                                Soyisim\r\n                            </th >\r\n                            <th className='text-start'>\r\n                                TC\r\n                            </th>\r\n                            <th className='text-start'>\r\n                                Kullanıcı Tipi\r\n                            </th>\r\n                            <th className='text-start'>\r\n                                İmza Tarihi\r\n                            </th>\r\n                        </thead>\r\n                        <tbody id=\"myTable\">\r\n                            {iz2.map((rec, idx) =>\r\n\r\n                                <tr>\r\n                                    <td>\r\n                                        <div>\r\n\r\n                                            <button disabled={rec.sira <= 1} type=\"button\" className=\"btn btn-link p-0 m-0 shadow-none\" onClick={(e) => {\r\n                                                rec.sira--;\r\n                                                iz2 = recalculateSira(iz2);\r\n                                                setimzalayanlist([...iz2]);\r\n                                            }} >\r\n                                                <span class=\"material-icons\">\r\n                                                    remove_circle\r\n                                                </span>\r\n                                            </button>\r\n                                            <button type=\"button\" className=\"btn btn-link p-0 m-0 shadow-none\" disabled={rec.sira >= maxSira} onClick={(e) => {\r\n                                                rec.sira++;\r\n                                                iz2 = recalculateSira(iz2);\r\n                                                setimzalayanlist([...iz2]);\r\n                                            }}>\r\n                                                <span class=\"material-icons\">\r\n                                                    add_circle\r\n                                                </span>\r\n                                            </button>\r\n\r\n                                        </div>\r\n                                    </td>\r\n                                    <td>\r\n                                        {rec.sira}\r\n                                    </td>\r\n                                    <td>\r\n                                        {rec.name}\r\n                                    </td>\r\n                                    <td>\r\n                                        {rec.family}\r\n                                    </td>\r\n                                    <td>\r\n                                        {maskStringWithStar(rec.tc)}\r\n                                    </td>\r\n                                    <td>\r\n                                        {rec.rol}\r\n                                    </td>\r\n\r\n                                    <td>\r\n                                        {rec.imzatarih}\r\n                                    </td>\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }}>\r\n                                            <a href=\"#\" onClick={() => { adaySil(idx) }} className=\" text-decoration-none\"><i className=\"fa  fa-trash align-middle\" style={{ \"font-size\": \"20px\" }}></i></a>\r\n                                        </div>\r\n                                    </td>\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    const fetcheimzatasks = () => {\r\n        fetch(\"getimzatasks\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(appData.id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setEimzatasklist(data);\r\n\r\n                    var maxRepeat = 20;\r\n                    var refreshIntervalId = setInterval(() => {\r\n                        if (props.targetEimza != null && document.getElementById(\"EimzaRec\" + props.targetEimza.id) != null) {\r\n                            $('#activepaneldiv').animate({ scrollTop: $(\"#EimzaRec\" + props.targetEimza.id).offset().top }, 500);\r\n                            $(\"#EimzaRec\" + props.targetEimza.id).addClass(\"border-3 border-primary \");\r\n                            clearInterval(refreshIntervalId);\r\n                        }\r\n                        if (maxRepeat < 0) {\r\n                            clearInterval(refreshIntervalId);\r\n                        }\r\n                        maxRepeat--;\r\n                    }, 200);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const changeLoginButton = (e) => {\r\n        document.getElementById(\"buttonlabel\").innerHTML = \"Süreç Başlatılıyor... \"\r\n        document.getElementById(\"buttonSpinner\").hidden = false;\r\n    }\r\n\r\n    const fetchEimzaNameList = () => {\r\n\r\n        fetch(\"geteimzanamelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setEimzaNameList(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const submiteimzadata = (posrdata) => {\r\n        changeLoginButton();\r\n        if (imzalayanlist.length == 0) {\r\n            showErrorMessage(\"En az bir İmza adayı ekleyiniz\");\r\n        }\r\n        posrdata.adaylar = JSON.stringify(imzalayanlist);\r\n        posrdata.showNamesOnPDF = getHtmlTag(\"showNamesOnPDF\",\"checked\")\r\n        var buton = document.getElementById(\"startbutton\");\r\n        if (buton) {\r\n            buton.disabled = true;\r\n        }\r\n\r\n\r\n\r\n        fetch(\"createsigntask\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(posrdata)\r\n        }).then(async response => {\r\n            document.getElementById(\"buttonlabel\").innerHTML = \"Yeni E-İmza Sürecini Başlat\"\r\n            document.getElementById(\"buttonSpinner\").hidden = true;\r\n            if (buton) {\r\n                buton.disabled = false;\r\n            }\r\n\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n\r\n\r\n\r\n                    if (document.getElementById(\"imzadosya\") != null)\r\n                        document.getElementById(\"imzadosya\").value = null;\r\n                    else\r\n                        document.getElementById(\"fileselection\").innerHTML = \"\";\r\n\r\n                    if (data == null || data.length == 0) {\r\n                        showErrorMessage(\"Dosya #eimza ibaersini içermelidir\");\r\n                        return;\r\n\r\n                    }\r\n                    setHtmlTag(\"veriGirisindenSonraIndirme\", false, \"checked\")\r\n                    setHtmlTag(\"showNamesOnPDF\", false, \"checked\")\r\n\r\n                    setimzalayanlist([]);\r\n                    setEimzatasklist(data);\r\n                    var new_element = data[0];  //this the newly created eimza\r\n                    if (new_element.eimzaTextPos != true) {\r\n                        props.setActivePanel(<PDFView Eimza={new_element} setActivePanel={props.setActivePanel} source=\"NEW_TASK\" appData={appData} changeComponent={props.changeComponent} />)\r\n                    }\r\n\r\n\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const startNewEimza = () => {\r\n        const fr = new FileReader();\r\n\r\n        //   var serviceProvider = window.location.hostname.includes(\"milas\") ? \"Arksigner\" : \"Onaylarim\";\r\n        var serviceProvider = \"Onaylarim\";\r\n        var providerselect = document.getElementById(\"onaylarimRadio\");\r\n        if (providerselect != null) {\r\n            if (providerselect.checked == true)\r\n                serviceProvider = \"Onaylarim\";\r\n            else\r\n                serviceProvider = \"Arksigner\";\r\n        }\r\n\r\n        var veriGirisindenSonraIndirme = false;\r\n        if (document.getElementById(\"veriGirisindenSonraIndirme\") != null) {\r\n            if (document.getElementById(\"veriGirisindenSonraIndirme\").checked == true) {\r\n                veriGirisindenSonraIndirme = true;\r\n            }\r\n        }\r\n\r\n        var imzatur = \"PAdES\";\r\n        var imzaturelem = document.getElementById(\"CAdES\");\r\n        if (imzaturelem != null && imzaturelem.checked == true) {\r\n            imzatur = \"CAdES\";\r\n        }\r\n\r\n\r\n        if (imzalayanlist == null || imzalayanlist.length == 0) {\r\n            showErrorMessage(\"En az bir imza adayı ekleyiniz\")\r\n            return;\r\n        }\r\n        if (props.targetFile != null) {\r\n            submiteimzadata({ id: appData.id, file: \"#id:\" + props.targetFile.id, caption: props.targetFile.caption, surecName: props.targetFile.typeName, serviceProvider: serviceProvider, imzaType: imzatur, veriGirisindenSonraIndirme: veriGirisindenSonraIndirme })\r\n            return;\r\n        }\r\n        const surecisim = document.getElementById(\"eimzasureismi\").value;\r\n        if (surecisim == null || surecisim == \"\") {\r\n            showErrorMessage(\"Bir Süreç İsmi Seçiniz\")\r\n            return;\r\n        }\r\n\r\n        const file = document.getElementById(\"imzadosya\").files[0];\r\n        if (file == null && props.targetFile == null) {\r\n            showErrorMessage(\"İmzalanacak Dosyayı Seçiniz.\")\r\n            return;\r\n        }\r\n        if (appData.basvuruDurmu != UserPermConstants.Basvuru_Durumu_Onay_Verildi\r\n            || appData.basvuruDurmu != UserPermConstants.Basvuru_Durumu_Ruhsat_Verildi\r\n            || appData.basvuruDurmu != UserPermConstants.Basvuru_Durumu_Kontrol_Tamamlandi) {\r\n            showConfirmMessage(\"Henüz kontrolünü tamamlamadığınız bir başvuruyu imzaya açmak üzeresiniz.\", \"Bu işleme devam etmek istiyor musunuz ?\", \"Evet\", \"Hayır\", () => {\r\n                fr.readAsDataURL(file);\r\n                fr.onloadend = function (evt) {\r\n                    submiteimzadata({ id: appData.id, file: evt.target.result, surecName: surecisim, serviceProvider: serviceProvider, imzaType: imzatur, veriGirisindenSonraIndirme: veriGirisindenSonraIndirme })\r\n                }\r\n            })\r\n        }\r\n        else {\r\n            fr.readAsDataURL(file);\r\n            fr.onloadend = function (evt) {\r\n                submiteimzadata({ id: appData.id, file: evt.target.result, surecName: surecisim, serviceProvider: serviceProvider, imzaType: imzatur, veriGirisindenSonraIndirme: veriGirisindenSonraIndirme })\r\n            }\r\n        }\r\n\r\n    }\r\n\r\n    if (imzalayabilenler == null) {\r\n        return <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n    }\r\n\r\n    return <div>     {(role.indexOf(UserPermConstants.Imzaya_Açma) > -1 || props.targetFile != null) && appData.archived != true &&\r\n\r\n        <div>\r\n            {props.targetFile != null ? adaylar() : \"\"}\r\n\r\n            {props.targetFile != null && <div className=\"p-3 mt-4  border border-rounded rounded-3 bg-white\">\r\n                {imzalistesi()}\r\n\r\n                <div className=\"row\">\r\n                    <div className=\"col-12 col-md-2\">\r\n                        {props.targetFile == null ? \"Eimza Süreç İsmi\" : \"\"}\r\n                    </div >\r\n                    <div className=\"col-12 col-md-4\">\r\n                        {props.targetFile == null && <select className=\"form-select form-select-sm\" id=\"eimzasureismi\" name=\"eimzasureismi\">\r\n                            <option value=\"\"></option> {eimzaNameList.map(x => <option value={x.name}> {x.name}</option>)}\r\n                        </select>}\r\n                    </div >\r\n\r\n                    {/*{role.indexOf(UserPermConstants.Tarife_Cetveli) > -1 &&*/}\r\n                    {/*    <div className=\"col-12 col-md-6\" hidden={!window.location.hostname.includes(\"milas\")}>*/}\r\n                    {/*        <div class=\"form-check form-check-inline \">*/}\r\n                    {/*            <input className=\"form-check-input\" type=\"radio\" name=\"flexRadioDefault\" id=\"onaylarimRadio\" defaultChecked={!window.location.hostname.includes(\"milas\")} />*/}\r\n                    {/*            Onaylarım*/}\r\n                    {/*        </div>*/}\r\n                    {/*        <div className=\"form-check form-check-inline \">*/}\r\n                    {/*            <input className=\"form-check-input me-0\" type=\"radio\" name=\"flexRadioDefault\" id=\"flexRadioDefault2\" defaultChecked={window.location.hostname.includes(\"milas\")} />ArkSigner*/}\r\n                    {/*        </div>*/}\r\n                    {/*    </div>}*/}\r\n                </div >\r\n\r\n                {/*{role.indexOf(UserPermConstants.Tarife_Cetveli) > -1 && <div className=\"row mt-1\" >*/}\r\n                {/*    <div className=\"col-12 col-md-3 \" >*/}\r\n                {/*        <div className=\"form-check form-check-inline fw-bold\">*/}\r\n                {/*            <input className=\"form-check-input me-0\" type=\"radio\" name=\"imzatype\" id=\"PAdES\" defaultChecked={true} />*/}\r\n                {/*            PAdES*/}\r\n                {/*        </div>*/}\r\n                {/*        <div class=\"form-check form-check-inline fw-bold\">*/}\r\n                {/*            <input className=\"form-check-input\" type=\"radio\" name=\"imzatype\" id=\"CAdES\" />*/}\r\n                {/*            CAdES*/}\r\n                {/*        </div>*/}\r\n\r\n                {/*    </div>*/}\r\n                {/*    <div className=\"col-12 col-md-9 text-secondary\" >*/}\r\n                {/*        Belge daha önce CAdES formatında imzalanmış ise CAdES olarak, PAdES formatında imzalanmış ise PAdES olarak imzaya açılmalıdır aksi taktirde önceki imzalar geçersiz olur.*/}\r\n                {/*    </div>*/}\r\n                {/*</div>}*/}\r\n                {role.indexOf(UserPermConstants.Imza_Veri_Girisi) > -1 && <div className=\"row mt-2\">\r\n                    <div className=\"col-md-6 col-12 \">\r\n                        <div class=\"form-check\">\r\n                            <input className=\"form-check-input\" type=\"checkbox\" id=\"veriGirisindenSonraIndirme\" />\r\n                            <label className=\"form-check-label\" for=\"veriGirisindenSonraIndirme\">\r\n                                Veri girişi yapılmadan imzalı dosya indirilemesin\r\n                            </label>\r\n                        </div>\r\n                    </div >\r\n                    <div className=\"col-md-6  col-12 \">\r\n                        <div class=\"form-check\">\r\n                            <input className=\"form-check-input\" type=\"checkbox\" id=\"showNamesOnPDF\" />\r\n                            <label className=\"form-check-label\" for=\"showNamesOnPDF\">\r\n                                İmzalayanların ismi dosyada görunsun. \r\n                            </label>\r\n                        </div>\r\n                    </div >\r\n                </div >}\r\n\r\n                <div className=\"row mt-2\" id=\"fileselection\">\r\n                    <div className=\"col-12 col-md-6\">\r\n                        {props.targetFile == null ?\r\n                            <input accept=\".pdf\" style={{ maxWidth: \"400px\" }} class=\"form-control form-control-sm\" type=\"file\" id=\"imzadosya\" />\r\n                            : props.targetFile.id + \"   \" + props.targetFile.typeName\r\n                        }\r\n                    </div >\r\n                    <div className=\"col-12 col-md-4\">\r\n                        <button className=\"btn   btn-sm btn-success rounded\" onClick={startNewEimza} id=\"startbutton\">\r\n                            <i className=\"\tfa fa-star pe-1\"></i>\r\n                            <span id=\"buttonlabel\">Yeni E-İmza Süreci Başlat</span>\r\n                            <span class=\"ms-1 spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\" id=\"buttonSpinner\" hidden></span>\r\n                        </button>\r\n                    </div >\r\n                </div >\r\n\r\n\r\n\r\n\r\n                <div className='mt-3' >\r\n                    <button type=\"button\" className=\" p-0 btn btn-link text-decoration-none\" data-bs-toggle=\"collapse\" data-bs-target=\"#demo\"> Adayları Başka E-imza Sürecinden Kopyala</button>\r\n                    <div id=\"demo\" className=\"collapse mt-2\">\r\n                        <div className='row ' >\r\n                            <div className='col-5' >\r\n                                <select class=\"form-select form-select-sm\" aria-label=\".form-select-sm example\" id=\"copycombobox\">\r\n                                    <option value=\"-1\" selected></option>\r\n                                    {eimzatasklist.map(ez => <option value={ez.id}  > {ez.id} - {ez.surecname}</option>)}\r\n                                </select>\r\n                            </div>\r\n                            <div className='col-3' >\r\n                                <button type=\"button\" class=\"btn btn-sm btn-primary\" onClick={(value) => adaylariKopyala(document.getElementById(\"copycombobox\").value)}> Kopyala</button>\r\n\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n\r\n            </div>}\r\n        </div >}\r\n\r\n        <div className={\"p-3 border border-rounded rounded-3 bg-white \" + (props.targetFile == null ? \"\" : \"mt-4\")}>\r\n            <div className=\"row \">\r\n                <div className=\"col-6\">\r\n                    <h5>Başlatılan E-imza Süreçleri </h5>\r\n                </div>\r\n\r\n                <div className=\"col-4 text-end\">\r\n                    <a onClick={fetcheimzatasks} href=\"#\" className=\"text-primary\"> <i className=\"\tfa fa-refresh pe-1\"></i></a>\r\n                </div>\r\n            </div>\r\n            {eimzatasklist.filter(e => e.removed != true && (role.indexOf(UserPermConstants.Imzaya_Açma) > -1 || e.imzatarih != 'İptal Edildi')).map(e =>\r\n                <div><EImza Eimza={e} key={e.id + \" \" + e.imzatarih + \" \" + e.removed} setEimzatasklist={setEimzatasklist} setActivePanel={props.setActivePanel} appData={appData} fetcheimzatasks={fetcheimzatasks} changeComponent={props.changeComponent} showImzaciList={props.targetEimza != null && props.targetEimza.id == e.id} /></div>)}\r\n        </div >\r\n\r\n\r\n        {role.indexOf(UserPermConstants.Eimza_Geri_Alma) > -1 && eimzatasklist.some(e => e.removed == true) && <div className=\"p-2 mt-5  border border-rounded rounded-3 bg-secondary\">\r\n            <div className=\"row \">\r\n                <div className=\"col-12  rounded-3\"><a href=\"#\" className=\"text-decoration-none text-white \" data-bs-toggle=\"collapse\" data-bs-target=\"#silinenliste\"> Silinen E-imza Süreçleri </a></div>\r\n            </div>\r\n            <div id=\"silinenliste\" class=\"collapse\">\r\n                {eimzatasklist.filter(e => e.removed == true).map(e =>\r\n                    <div >\r\n                        <EImza Eimza={e} key={e.id + \" \" + e.imzatarih + \" \" + e.removed} setEimzatasklist={setEimzatasklist} setActivePanel={props.setActivePanel} appData={appData} fetcheimzatasks={fetcheimzatasks} changeComponent={props.changeComponent}  />\r\n                    </div>)}\r\n            </div>\r\n        </div >}\r\n\r\n\r\n    </div>\r\n}\r\n","export const Gorebildigi_Basvurulari_Editleme = \"Görebildiği Başvuruları Düzenleme\"\r\nexport const Yeni_Basvuru_Yapabilme = \"Yeni Başvuru Yapabilme\"\r\nexport const Yeni_Basvuruda_Zorunlu_Alanlari_Bos_Birakabilme = \"Yeni Başvuruda Zorunlu Alanları Boş Bırakabilme\"\r\nexport const Adres_Defterini_Gorme = \"Adres Defterini Görme\"\r\nexport const Adres_Defterini_Duzenleme = \"Adres Defterini Düzenleme\"\r\nexport const Kontrolor_Istatistiklerini_Gorme = \"Kontrolör İstatistiklerini Görme\"\r\nexport const Proje_Istatistiklerini_Gorme = \"Proje İstatistiklerini Görme\"\r\nexport const Muellif_Istatistiklerini_Gorme = \"Müellif İstatistiklerini Görme\"\r\nexport const Mekansal_Istatistikleri_Gorme = \"Mekansal İstatistikleri Görme\"\r\nexport const Zamansal_Istatistikleri_Gorme = \"Zamansal İstatistikleri Görme\"\r\nexport const Anlik_Istatistikleri_Gorme = \"Anlık İstatistikleri Görme\"\r\nexport const Yonetmelik_Yukleme = \"Yönetmelik Yükleme\"\r\nexport const Basvuru_Tipleri = \"Başvuru Yönetimi\"\r\nexport const Basvuru_Formu = \"Başvuru Yönetimi\"\r\nexport const Basvuru_Liste = \"Tüm Başvuruları Görme\"\r\nexport const Ekran_Yonetimi = \"Ekran Yönetimi\"\r\nexport const Dosyalar = \"Dosya Yönetimi\"\r\nexport const Dosya_Alani_Yaratma = \"Dosya Alanı Yaratma\"\r\n\r\nexport const Dosya_Yukleme = \"Dosya Yükleme\"\r\nexport const Dosya_Gizleme = \"Dosya Gizleme\"\r\nexport const Dosya_Degistirme_Silme = \"Dosya Değiştirme / Silme\"\r\nexport const Ada_Parsel_Girisi = \"Ada / Parsel Girişi\"\r\nexport const Surecler = \"Süreç Yönetimi\"\r\nexport const Kullaniciyla_Kart_Paylasimi = \"Başvuru Paylaşma (Kart)\"\r\nexport const Link_ile_Kart_Paylasimi = \"Başvuru Paylaşma (Link)\"\r\nexport const Manuel_Bildirim_Gonderme = \"Manuel Bildirim Gönderme\"\r\nexport const Yeni_Kullanici_Kaydetme = \"Yeni Kullanıcı Kaydetme\"\r\nexport const Yeni_Kullanici_Kaydinda_Zorunlu_Alanlari_Bos_Birakabilme = \"Yeni Kullanıcı Kaydında Zorunlu Alanları Boş Bırakabilme\"\r\nexport const Kullanici_Listesini_Gorme_Profil_Bilgilerini = \"Kullanıcı Listesini Görme (Profil Bilgilerini)\"\r\nexport const Kullanici_Bilgilerini_Editleme_Roller_Denetim_Yetkileri_Haric = \"Kullanıcı Bilgilerini Düzenleme\"\r\n/*export const Kullanici_Rollerini_Editleme = \"Kullanıcı Rol Yönetimi\"*/\r\nexport const Kullanici_Denetim_Yetkilerini_Editleme = \"Kullanıcı Yetkilerini Düzenleme\"\r\nexport const Kullanici_Silme = \"Kullanıcı Silme\"\r\nexport const Basvuru_Silme = \"Başvuru Silme\"\r\nexport const Kullanici_Tipleri = \"Kullanıcı Tipleri\"\r\nexport const Kullanici_Kayit_Formu = \"Kullanıcı Kayıt Formu\"\r\nexport const Kullanici_Rolleri = \"Kullanıcı Rolleri\"\r\nexport const Is_Yuku = \"İş Yükü\"\r\nexport const Kullnici_Kara_Liste = \"Kullanıcıyı Kara Listeye Alma\"\r\nexport const Duyuru_Yonetimi = \"Duyuru Yönetimi\"\r\nexport const Tarife_Yonetimi = \"Tarife Yönetimi\"\r\nexport const Tarife_Gorme = \"Tarifeleri Görme\"\r\nexport const Tarife_Duzenleme = \"Tarifeleri Düzenleme\"\r\nexport const Basvuru_Standartlari = \"Başvuru Standartları\"\r\nexport const Varsayilan_Takip_Ayarlari = \"Varsayılan Takip Ayarları\"\r\nexport const Kurum_Bilgileri = \"Kurum Ayarları\"\r\nexport const Api_Yonetimi = \"Api Yönetimi\"\r\nexport const Pop_Up_Yonetimi = \"Pop-Up Yönetimi\"\r\nexport const Yardim_Ekranlari = \"Yardım Menusu\"\r\nexport const Ayarlar_Gorme = \"Ayarları Gorme\"\r\nexport const Gizli_Alanlari_Gorme = \"Başvuru Formunda Gizli Alanları Görme\"\r\nexport const Gizli_Basvuru_Gorme = \"Gizli Başvuru Turlerini Görme\"\r\nexport const Basvurudan_Sonra_Sabit_Editleme = \"Başvurudan Sonra Sabit Soruları Düzenleme\"\r\nexport const Basvurudan_Sonra_Dinamik_Editleme = \"Başvurudan Sonra Dinamik Soruları Düzenleme\"\r\nexport const Sifre_Degistirme = \"Kullanıcı Şifresini Değiştirme\"\r\nexport const Tum_Geciken_Basvurular = \"Tüm Geciken Başvuruları Görme\"\r\n\r\nexport const Basvuru_Vekili_Update = \"Başvuru Vekilini Değiştirme\"\r\nexport const Dosyalari_Eimzaya_Acima = \"İmzaya Açma (Dosyalar Sekmesinden)\"\r\n\r\nexport const Basvuru_Onaylama = \"Başvuru Kabul (Dosya Kontrol)\"\r\nexport const Eksiklik_Girme = \"Eksiklik Girme\"\r\nexport const Havale_Yapma = \"Havale Yapma\"\r\nexport const Ruhsat_Onaylama = \"Ruhsat Onaylama\"\r\nexport const Imzaya_Açma = \"İmzaya Açma (E-İmza Sekmesinden)\"\r\nexport const Imza_Silme = \"İmza Silme\"\r\nexport const Imza_Veri_Girisi = \"İmza Veri Girişi\"\r\nexport const Imza_Vize_Kontrol = \"İmza Vize Kontrol\"\r\nexport const Imza_Yerlestirme = \"İmza Yerleştirme\"\r\nexport const Imza_Guncelleme = \"İmza Güncelleme\"\r\nexport const Imza_Sertifikali = \"Sertifikalı Belge İndirme\"\r\n\r\n\r\nexport const Basvuru_Onaylama_Kontrolorden_Sonraki_Biti_Onayi = \"Başvuru Onaylama\"\r\nexport const Ruhsat_Kesme = \"Ruhsat Kesme\"\r\nexport const Son_Imza = \"Sabit İmzacı\"\r\n\r\nexport const Iade_Basvuruyu_Gonderme = \"İade Listesindeki Başvuruyu Gönderme\"\r\n\r\nexport const Vekalet_Onay = \"İmza Vekalet Onayı\"\r\n\r\nexport const Kontrolor_Dosyasi_Yukleme = \"Kontrolör Dosyası Yükleme\"\r\nexport const Ilgili_Basvurulari_Gorme = \"İlgili Başvuruları Görme\"\r\nexport const Kalan_Sure_Gorme = \"Kalan Kontrol Süreyi Görme\"\r\n\r\nexport const Kadastral_Ayarlar = \"Kadastral Veri\"\r\nexport const Edevletsiz_Basvuru = \"E-Devletsiz Başvuru Yapabilme\"\r\nexport const EImzali_Gonderme = \"E-imzalı Başvuru Gönderme\"\r\nexport const Sabitlenen_Profil_Degistirme = \"Sabitlenen Profil Verilerini Düzenleme\"\r\nexport const MAKS_Veri_Girisi = \"Maks Veri Girişi\"\r\nexport const Gizli_Aktiviteleri_Gorme = \"Gizli Geçmiş Aktiviteleri Görme\"\r\nexport const Basvuru_Arsiv = \"Başvuruyu Arşive Alma\"\r\nexport const Basvuru_Arsiv_Cikar = \"Başvuruyu Arşivden Çıkarma\"\r\n\r\nexport const Eimza_Geri_Alma = \"Silinen İmzayı Geri Alma\"\r\nexport const DWG_Karsilastirma = \"DWG Karşılaştırma\"\r\nexport const Surec_Sonu_Dosya_Indirme = \"Süreç Sonu Dosya İndirime\"\r\n\r\nexport const Basvuru_Durumu_Taslak = 1\r\nexport const Basvuru_Durumu_Onay_Bekliyor = 2\r\nexport const Basvuru_Durumu_Havale_Bekliyor = 3\r\nexport const Basvuru_Durumu_Kontrol_Sirada_Bekliyor = 4\r\nexport const Basvuru_Durumu_Kontrol_Ediliyor = 5\r\nexport const Basvuru_Durumu_Duzeltme_Bekleniyor = 6\r\nexport const Basvuru_Durumu_Kontrol_Tamamlandi = 7\r\nexport const Basvuru_Durumu_Onay_Verildi = 8\r\nexport const Basvuru_Durumu_Ruhsat_Verildi = 9\r\nexport const Basvuru_Durumu_Iade_Edildi = 10\r\nexport const Basvuru_Durumu_Ucret_Bekleniyor = 11\r\nexport const Basvuru_Durumu_Tahakkuk_Bekleniyor = 12\r\nexport const Basvuru_Durumu_EIMZA_Bekleniyor = 13\r\nexport const Basvuru_Durumu_GeriGonderildi = 14\r\nexport const Basvuru_Durumu_Harc_Odeme_Kontrolu_Bekliyor = 15;\r\n\r\nexport const EIMZA_IPTAL = \"İptal Edildi\"\r\nexport const EIMZA_BEKLENIYOR = \"İmza Bekleniyor\"\r\nexport const EIMZA_TAMAM = \"İmza Süreci Tamamlandı\"\r\n\r\n\r\nexport const BASKA_BASVURU_GONDERME = \"Başka başvuru gönderme\"\r\nexport const HARC_DOSYALARI = \"Harç Detaylar\"","import React, { useState, useEffect } from 'react';\r\nimport { useGlobalState, ajaxFail } from '../GlobalState.js';\r\n\r\n\r\nexport default function Statistic(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [sureslist, setSurecList] = useState([]);\r\n\r\n    const drawChart = (dataarray, target, ftitle) => {\r\n        var data = window.google.visualization.arrayToDataTable(dataarray);\r\n        var options = {\r\n            chartArea: {\r\n                // leave room for y-axis labels\r\n                width: '90%'\r\n            },\r\n            height: \"300\",\r\n            width: '100%',\r\n            title: ftitle,\r\n            legend: { position: \"bottom\" },\r\n            titleTextStyle: {\r\n                color: '#0098db',\r\n                fontSize: 16\r\n                //bold: true\r\n            },\r\n is3D: true,\r\n\r\n\r\n        };\r\n        var targetc=document.getElementById(target)\r\n        if (targetc) {\r\n            var chart = new window.google.visualization.PieChart(targetc);\r\n            chart.draw(data, options);\r\n        }\r\n\r\n    }\r\n\r\n    useEffect(() => {\r\n            const script = document.createElement(\"script\");\r\n            script.src = \"https://www.gstatic.com/charts/loader.js\";\r\n            script.async = true;\r\n            document.getElementById(\"myscript\").appendChild(script);\r\n            script.onload = () => {\r\n                window.google.charts.load(\"current\", { packages: ['corechart'] });\r\n                window.google.charts.setOnLoadCallback(sureclist);\r\n            }\r\n        \r\n\r\n    }, [])\r\n\r\n    const sureclist = () => {\r\n        fetch(\"sureclist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n\r\n                response.json().then(async data => {\r\n                    setSurecList(data);\r\n                    populateProjectData(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const populateProjectData = (sureclist) => {\r\n        fetch(\"countprojectbytype\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({})\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n\r\n                response.json().then(async data => {\r\n                    var dataset = JSON.parse(data);\r\n\r\n                    data = JSON.parse(dataset[0]);\r\n                    var dataarray1 = [];\r\n                    var colors = ['#2E4C6D', '#396EB0', '#DADDFC', '#FC997C', '#66806A', '#7E8BD9', '#558D97', '#B4C6A6', '#FFC286', '#FFF1AF'];\r\n                    dataarray1.push(['Durum', 'Toplam', { role: \"style\" }]);\r\n                    var cidx = 0;\r\n                    for (var i in data) {\r\n                        dataarray1.push([i, data[i], colors[cidx++]]);\r\n                    }\r\n                    drawChart(dataarray1, 'columnchart_material', 'Başvuru Durumları');\r\n\r\n\r\n\r\n\r\n                    data = JSON.parse(dataset[1]);\r\n                    var dataarray2 = [];\r\n                    var colors = ['#2E4C6D', '#396EB0', '#DADDFC', '#FC997C', '#66806A', '#7E8BD9', '#558D97', '#B4C6A6', '#FFC286', '#FFF1AF'];\r\n                    dataarray2.push(['Durum', 'Toplam', { role: \"style\" }]);\r\n                    cidx = 0;\r\n                    for (var i in data) {\r\n                        dataarray2.push([i, data[i], colors[cidx++]]);\r\n                    }\r\n\r\n\r\n                    drawChart(dataarray2, 'kullanıcilarpanel', 'Başvuru Tipleri');\r\n\r\n\r\n\r\n\r\n\r\n\r\n                    data = JSON.parse(dataset[2]);\r\n                   /* var dataarray3 = [];\r\n                    var colors = ['#2E4C6D', '#396EB0', '#DADDFC', '#FC997C', '#66806A', '#7E8BD9', '#558D97', '#B4C6A6', '#FFC286', '#FFF1AF'];\r\n                    dataarray3.push(['Durum', 'Toplam', { role: \"style\" }]);\r\n                    for (var i = 0; i < data.length; i++) {\r\n                        dataarray3.push([data[i].userName, data[i].Toplam, colors[i]]);\r\n                    }\r\n                    drawChart(dataarray3, 'kullanıcilarpanel', 'Görev Durumları')*/\r\n                    if (document.getElementById(\"aktifbasvuru\"))\r\n                        document.getElementById(\"aktifbasvuru\").innerHTML = \" Aktif: \" + data.Aktif\r\n                    if (document.getElementById(\"tamamlananbasvuru\"))\r\n                        document.getElementById(\"tamamlananbasvuru\").innerHTML = \" Tamamlanan: \" + data.Tamamlanan\r\n                    if (document.getElementById(\"toplambasvuru\"))\r\n                        document.getElementById(\"toplambasvuru\").innerHTML = \" Toplam: \" + data.Toplam\r\n\r\n\r\n\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    \r\n\r\n    //appData.basvuruDurumu != \"Kontrol Ediliyor\"\r\n    return (\r\n        <div  >\r\n            <div id=\"myscript\"></div>\r\n            <div className=\"row\">\r\n                <div className=\"col-6 p-0 m-0\">\r\n                    <div id=\"columnchart_material\"></div>\r\n                </div>\r\n                <div className=\"col-6 p-0 m-0\">\r\n                    <div id=\"kullanıcilarpanel\"></div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    );\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty } from '../GlobalState.js';\r\nexport default function ToDoList(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState([]);\r\n    //const colors = [\"#fff8dd\", \"#e8fff3\", \"#fff5f8\", \"#f8f5ff\"]\r\n    const bordercolors = [\"#50cc88\", \"#009cf7\", \"#ffc800\", \"#f1416d\"]\r\n    const colors = [\"#fff0ee\", \"#ffffff\"]\r\n    \r\n    var duyurucount = listData.length;\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const removeRecord = (id) => {\r\n        fetch(\"removetodoList\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const submitUpdateRecord = (rec) => {\r\n\r\n        fetch(\"updatetodolist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    alert(response.statusText)\r\n                })\r\n            }\r\n            else {\r\n                alert(\"Güncelleme Başarıyla Tamamlanmştır\")\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchList = () => {\r\n\r\n        fetch(\"gettodolist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const Add = () => {\r\n        fetch(\"addtodolist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                document.getElementById(\"taskName\").value = \"\";\r\n                fetchList();\r\n\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n    const changeSize = (event) => {\r\n        const target = event.target;\r\n        if (isEmpty(target.style.height))\r\n            target.style.height = target.scrollHeight + \"px\";\r\n        else\r\n            target.style.height = null;\r\n    }\r\n    \r\n\r\n    const renderTable = (tabledata) => {\r\n\r\n        var mytable = <div className=\"overflow-auto vdscrollbar\" style={{ maxHeight: \"300px\" }}>\r\n            <div className=\"row pt-1 pb-1 m-1 rounded-3\">\r\n                <div className=\"col-md-11 col-12 m-0 p-0\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"taskName\" placeholder=\"Yeni\" name=\"taskName\" onChange={handleInputChange} defaultValue=\"\" />\r\n                </div>\r\n                <div className=\"col-12 col-md-1 text-end\">  <button onClick={Add} className=\"btn btn-sm btn-link text-decoration-none p-0 shadow-none\" style={{ fontSize:\"17px\" }}><i className=\"fa fa-plus-circle\"></i></button></div>\r\n            </div>\r\n\r\n\r\n            {tabledata.map((apprec,idx) =>\r\n                < div className=\"row pt-2 pb-2 m-1 mb-1 rounded-3\" style={{ \"background-color\": colors[idx % colors.length] }} key={apprec.id}>\r\n\r\n                    <div className=\"col-md-10 col-12 \" >\r\n                        <textarea className=\"form-control form-control-sm border-0\" rows={1} style={{ \"background-color\": \"transparent\" }} name=\"taskName\" defaultValue={apprec.taskName} onChange={(e) => updateRecord(apprec, e)} onClick={ changeSize} />\r\n                    </div>\r\n\r\n                    <div className=\"col-md-2 col-12 text-end\" >\r\n                        <button onClick={() => submitUpdateRecord(apprec)} className=\"btn btn-link btn-sm text-decoration-none p-0 shadow-none\" style={{ fontSize: \"16px\" }}><i className=\"fa fa-floppy-o\"></i></button>\r\n                        <button onClick={() => removeRecord(apprec.id)} className=\"btn btn-link btn-sm text-decoration-none p-0 shadow-none\" style={{ fontSize: \"16px\" }}><i className=\"fa fa-trash-o\"></i></button>\r\n                    </div>\r\n                </div>\r\n            )}\r\n        </div>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div className=\" rounded-3 1\">\r\n            <div className=\"row\">\r\n                <div className=\"col-7\">\r\n                    <h6 style={{color: \"#0098db\"}}>Yapılacaklar Listesi</h6>\r\n                </div>\r\n                <div className=\"col-5 justify-content-end align-items-end text-end text-secondary\"><b>{duyurucount}</b> kayıt</div>\r\n            </div>\r\n\r\n           \r\n                    {listTable}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty } from '../GlobalState.js';\r\n\r\n\r\nexport default function DuyuruPanel(props) {\r\n\r\n    const [listData, setListData] = useState([]);\r\n    const colors = [\"#f2fff2\", \"#ffffff\"]\r\n    //const colors = [\"#fff8dd\", \"#e8fff3\", \"#fff5f8\", \"#f8f5ff\"]\r\n    var duyurucount = listData.length;\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n\r\n    const fetchList = () => {\r\n        fetch(\"getduyurulist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"overflow-auto vdscrollbar\" style={{ maxHeight: \"280px\" }}>\r\n                {tabledata.map((apprec, idx) =>\r\n                    <div className=\"row pt-2 ms-2 me-2 rounded-3\" style={{ \"background-color\": colors[idx % colors.length] }} key={apprec.id}>\r\n                        <div className=\"col-6\" >\r\n                            <img className=\"rounded-circle\" style={{ width: \"32px\", height: \"32px\" }} src={\"/getuserpic?user=\" + apprec.userName} /> {apprec.temp}\r\n                        </div>\r\n                        <div className=\"col-6 text-end\" >\r\n                            {apprec.postDate}\r\n                        </div>\r\n                        <div className=\"col-12 \" > <div className=\"mt-1\" dangerouslySetInnerHTML={{ __html: apprec.message }} /></div>\r\n                        <div className=\"col-12 \" >\r\n                            {isEmpty(apprec.fileName) == false &&\r\n                                <a className=\"text-decoration-none\" href={'getduyurufile?id=' + apprec.id} download={apprec.fileName}> {apprec.fileName} </a>\r\n                            }\r\n\r\n                        </div>\r\n\r\n                    </div>\r\n\r\n                )}\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div className=\"  rounded-3  shadow-sm\">\r\n            <div className=\"row\">\r\n                <div className=\"col-md-7 col-12\">\r\n                    <h6 style={{ color: \"#0098db\" }}>Duyurular</h6>\r\n                </div>\r\n                <div className=\"col-md-5 col-12 text-end text-secondary \">{duyurucount} duyuru</div>\r\n            </div>\r\n            {listTable}\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Statistic from \"./Statistic.js\";\r\nimport { useGlobalState, logout, showInfoMessage, isEmpty } from '../GlobalState.js';\r\nimport Calendar from 'react-calendar';\r\nimport 'react-calendar/dist/Calendar.css';\r\nimport ToDoList from \"./ToDoList.js\";\r\nimport AddressBook from \"./AddressBook.js\";\r\nimport DuyuruPanel from './DuyuruPanel.js';\r\nimport UserStatistics from '../User/UserStatistics.js';\r\nimport AppMonthStatistic from '../Statistic/AppMonthStatistic.js';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport EImzaListem from '../Eimza/EImzaListem.js';\r\nimport MessagePanel from '../User/MessagePanel.js';\r\n\r\n\r\n\r\nexport default function Home(props) {\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [activepannel, setActivepannel] = useState(null);\r\n\r\n    var [globalData, setGlobalData] = useGlobalState('globalData');\r\n\r\n    const fetchGeneralData = () => {\r\n        fetch(\"getgeneraldata\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setGlobalData(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const initModal = () => {\r\n        var locModal = document.getElementById('myModal');\r\n        if (locModal == null) return;\r\n        var btncloseup = document.getElementById('upclosemodal');\r\n        var btnclosedown = document.getElementById('downclosemodal');\r\n\r\n\r\n        btncloseup.addEventListener('click', (e) => {\r\n            locModal.style.display = \"none\";\r\n            locModal.classList.add(\"hide\");\r\n            if (document.getElementById(\"gosterme\").checked == true) {\r\n                disablePopup();\r\n            }\r\n        });\r\n        btnclosedown.addEventListener('click', (e) => {\r\n            locModal.style.display = \"none\";\r\n            locModal.classList.add(\"hide\");\r\n            if (document.getElementById(\"gosterme\").checked == true) {\r\n                disablePopup();\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const disablePopup = () => {\r\n        fetch(\"disablepopup\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchUserData = () => {\r\n        fetch(\"getuser\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    var userdata = JSON.parse(data);\r\n                    if (userdata != null && userdata.showPopup == true && globalData != null && isEmpty(globalData.popupMessage) == false && globalData.popupMessage.length>12) {\r\n\r\n                        var message = \"\";\r\n                        if (!isEmpty(globalData.popupMessageFile))\r\n                            message += '<a class= \"small text-decoration-none\" href=\"getgeneralfile?id=popupMessageFile\" download=\"popupMessageFile.pdf\">'+ globalData.popupMessageFile+'</a>'\r\n\r\n                        showInfoMessage(globalData.popupMessage + message, \"\", \"Bir Daha Gösterme\", \"Tamam\", disablePopup);\r\n                    }\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    useEffect(() => {\r\n       \r\n        fetchUserData();\r\n    }, []);\r\n\r\n\r\n\r\n    var stat = <Statistic />;\r\n    var addressBook = <AddressBook />;\r\n    var cal = <Calendar className=\"border border-rounded rounded-3 h-100 w-100\" />;\r\n    var todo = <ToDoList />;\r\n    var duyuru = <DuyuruPanel />;\r\n    var homepage = null;\r\nvar userstat = <UserStatistics counter={0} />;\r\n    var appmonthstat = \"\";// <AppMonthStatistic />\r\n\r\n\r\n    if (globalData != null && globalData.belediyeName != null) {\r\n        homepage = <div className=\"text-center border  rounded border m-1 pt-3 pb-3 shadow\">\r\n            <img src={require('./logobig.jpeg').default} width=\"100%\" />\r\n            <h2 className=\"font-weight-bold pt-3\" style={{ \"text-shadow\": \"0px 0px 1px grey\", color: \"#0098db\" }}>{globalData.belediyeName}</h2>\r\n        </div>\r\n    }\r\n\r\n\r\n       \r\n\r\n    const showPanel = (name) => {\r\n        setActivepannel(name);\r\n    }\r\n\r\n\r\n    return (\r\n\r\n        <div className=\"rounded-3\" >\r\n            <div className=\"\" >\r\n                <div className=\"row\">\r\n                    <div className=\"col-12 col-md-6  rounded-3 \">\r\n                             {duyuru}\r\n\r\n                    </div>\r\n                    <div className=\"col-12 col-md-4\">\r\n                         {stat} \r\n                    </div>\r\n                    <div className=\"col-12 col-md-2 pt-2\" style={{ fontSize: \"14px\" }}>\r\n                        <div className=\"border rounded-2 p-1 pt-3 pb-3 mb-3\">\r\n                            <i class=\"fa fa-bookmark-o text-primary me-1\" style={{ fontSize: \"18px\" }}></i>\r\n\r\n                            <a id=\"bekleyeneimza\" href=\"#\" className=\"text-decoration-none\" onClick={() => { props.changeComponent(<EImzaListem changeComponent={props.changeComponent} />) }}>\r\n                                Bekleyen E-İmza:0\r\n                            </a>\r\n                        </div>\r\n                        <div className=\"border rounded-2 p-1 pt-3 pb-3 mb-3\">\r\n                            <i class=\"\tfa fa-envelope-o text-primary\" style={{ fontSize: \"18px\" }}></i><span id=\"yenibildirim\"> Yeni Bildirim:0</span> \r\n                        </div>\r\n                        <div className=\"border rounded-2 p-1 pt-2 mb-3\">\r\n                            <div className=\"fw-bold text-secondary pb-3\">\r\n                                <i class=\"fa fa-folder-open-o text-primary\" style={{ fontSize: \"18px\" }}></i>  Başvurular\r\n                            </div>\r\n                            <div className=\"text-secondary pb-2\"> <i class=\"fa fa-tag text-primary ms-3\" style={{ fontSize: \"18px\" }}></i><span id=\"aktifbasvuru\">Aktif:0</span> </div>\r\n                            <div className=\"text-secondary pb-2\"> <i class=\"fa fa-check-square-o text-primary ms-3\" style={{ fontSize: \"18px\" }}></i><span id=\"tamamlananbasvuru\">Tamamlanan:0</span>  </div>\r\n                            <div className=\"text-secondary pb-2\"> <i class=\"\tfa fa-star text-primary ms-3\" style={{ fontSize: \"18px\" }}></i><span id=\"toplambasvuru\">Toplam:0</span></div>\r\n \r\n                        </div>\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row mt-2 mb-1 me-1\">\r\n                    <div className=\"col-md-6 col-12 rounded-3 \" >\r\n                        <MessagePanel messages={[]} changeComponent={props.changeComponent} height={\"35vh\"} />\r\n                    </div>\r\n                    <div className=\"col-md-6 col-12 border rounded-3 border-secondary\" >\r\n                        {todo}\r\n                    </div>\r\n                </div>\r\n                <div className=\"row  mb-3 p-2  p-3\">\r\n                    <div className=\"col-12 col-md-12\" >\r\n                        <div className=\"bg-white rounded-3 m-1\"> {appmonthstat}</div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n\r\n            {/*<div className=\"modal \" id=\"myModal\" >*/}\r\n            {/*    <div class=\"modal-dialog modal modal-dialog-scrollable modal-dialog-centered modal-lg \">*/}\r\n            {/*        <div class=\"modal-content shadow border-2 border-dark\" >*/}\r\n            {/*            <div class=\"modal-header bg-light\">*/}\r\n            {/*                <h4 class=\"modal-title\">Bilgi</h4>*/}\r\n\r\n            {/*                <button type=\"button\" class=\"btn-close\" id=\"upclosemodal\" data-bs-dismiss=\"modal\"></button>*/}\r\n\r\n            {/*            </div>*/}\r\n            {/*            <div class=\"modal-body \" id=\"mymodalbody\" >*/}\r\n\r\n            {/*            </div>*/}\r\n\r\n\r\n            {/*            <div class=\"modal-footer  bg-light\">*/}\r\n            {/*                <div className=\"form-check\">*/}\r\n            {/*                    <input className=\"form-check-input\" type=\"checkbox\" name=\"gosterme\" id=\"gosterme\" />*/}\r\n            {/*                    <label className=\"form-check-label\" for=\"gosterme\">*/}\r\n            {/*                        Tekrar Gösterme*/}\r\n            {/*                    </label>*/}\r\n            {/*                </div>*/}\r\n            {/*                <button type=\"button\" class=\"btn btn-danger\" id=\"downclosemodal\" data-bs-dismiss=\"modal\">Close</button>*/}\r\n            {/*            </div>*/}\r\n\r\n            {/*        </div>*/}\r\n            {/*    </div>*/}\r\n            {/*</div>*/}\r\n        </div>\r\n    );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/logo2.f102096b.png\";","export default __webpack_public_path__ + \"static/media/logobig.6a564770.jpeg\";","import React, { useState, useEffect } from 'react';\r\nimport { isEmpty, showSuccessMessage, useGlobalState } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\nimport background from \"../Dashboard/loading.gif\";\r\nimport EImzaDetails from '../Eimza/EImzaDetails';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport EImzaList from '../Eimza/EImzaList.js';\r\n\r\nexport default function PDFView(props) {\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [e, setEimza] = useState(props.Eimza);\r\n    const [numPages, setNumPages] = useState(null);\r\n    const [draggedObjectList, setDraggedObjectList] = useState({});\r\n\r\n    const [pageNumber, setPageNumber] = useState(1);\r\n    var zoom = 0;\r\n\r\n    if (isEmpty(e.detectedPos) == false)\r\n        e.detectedPosObject = JSON.parse(e.detectedPos)\r\n\r\n    useEffect(() => {\r\n        placeObjectsOnPic();\r\n    }, [])\r\n\r\n\r\n    const updateWidthHeight = (id) => {\r\n        var obj = document.getElementById(id);\r\n        if (obj == null)\r\n            return;\r\n\r\n        var border = Math.abs(obj.clientWidth - obj.offsetWidth);\r\n\r\n        if (id.startsWith(\"DGID\")) {\r\n            var myid = id.substring(4);\r\n            var textobj = e.detectedPosObject.find(x => x.text == myid);\r\n            if (textobj != null) {\r\n                textobj.width = obj.clientWidth + border;\r\n                textobj.height = obj.clientHeight + (2 * border)\r\n            }\r\n            return;\r\n        }\r\n\r\n\r\n        if (draggedObjectList[id] != null) {\r\n            draggedObjectList[id].width = obj.clientWidth + border;\r\n            draggedObjectList[id].height = obj.clientHeight + (2 * border)\r\n        }\r\n    }\r\n\r\n\r\n\r\n    const submitEimzaVisualSetting = () => {\r\n        updateWidthHeight(\"DGformaltext\")\r\n        updateWidthHeight(\"DGqrcode\")\r\n        updateWidthHeight(\"DGID#ruhsatno\")\r\n        updateWidthHeight(\"DGID#kot\")\r\n        updateWidthHeight(\"DGID#fikra\")\r\n        updateWidthHeight(\"DGID#bend\")\r\n        updateWidthHeight(\"DGID#madde\")\r\n\r\n\r\n        fetch(\"submitEimzaVisualSetting\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({ \"eimzaid\": e.id, \"zoom\": zoom, \"draggedObjectList\": draggedObjectList, detectedPosObject: e.detectedPosObject })\r\n\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                // ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    if (props.source == \"NEW_TASK\") {\r\n                        props.setActivePanel(<EImzaList appData={props.appData} setActivePanel={props.setActivePanel} changeComponent={props.changeComponent}/>)\r\n                        showSuccessMessage(\"Yerleştirme işlemi tamamlandı. Sayfanın altında bulunan alanda imza sürecini başlatarak evrakınızı imzalayabilirsiniz.\");\r\n                        return;\r\n                    }\r\n                    setDraggedObjectList({ ...draggedObjectList })\r\n                    setEimza(data);\r\n                    showSuccessMessage(\"Yerleştirme başarıyla tamamlandı\");\r\n                });\r\n\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    const drag = (event) => {\r\n        var id = event.target.id;\r\n        var rect = event.target.getBoundingClientRect();\r\n        var grabX = event.clientX - rect.left;\r\n        var  grabY = event.clientY - rect.top;\r\n\r\n\r\n        event.dataTransfer.setData(\"text\", id);\r\n        event.dataTransfer.setData(\"grabX\", grabX);\r\n        event.dataTransfer.setData(\"grabY\", grabY);\r\n    }\r\n    const allowDrop = (event) => {\r\n        event.preventDefault();\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const drop = (event) => {\r\n        event.preventDefault();\r\n        var dragid = event.dataTransfer.getData(\"text\");\r\n        if (dragid == null || dragid.startsWith(\"DG\") == false)\r\n            return;\r\n\r\n        var grabX = event.dataTransfer.getData(\"grabX\");\r\n        var grabY = event.dataTransfer.getData(\"grabY\");\r\n\r\n\r\n        var DraggedObject = document.getElementById(dragid);\r\n        var div = DraggedObject.parentElement;\r\n        var droppableArea = document.getElementById(\"pdfimage\");\r\n        var droppableDiv = droppableArea.parentElement;\r\n\r\n\r\n        var activepaneldiv = document.getElementById(\"activepaneldiv\");;\r\n        var scleft = activepaneldiv.scrollLeft + droppableDiv.scrollLeft;\r\n        var sctop = activepaneldiv.scrollTop + droppableDiv.scrollTop;\r\n\r\n\r\n\r\n        div.style.position = \"absolute\";\r\n\r\n        var dragWidth = DraggedObject.clientWidth\r\n        var dragHeight = DraggedObject.clientHeight\r\n\r\n\r\n\r\n        var x = event.clientX - droppableDiv.offsetLeft - grabX + scleft;\r\n        var y = event.clientY - droppableDiv.offsetTop - grabY + sctop;\r\n        if (x < 0) x = 0;\r\n        if (y < 0) y = 0;\r\n        //if (x > droppableDiv.clientWidth - dragWidth)\r\n        //    x = droppableDiv.clientWidth - dragWidth;\r\n        //if (y > droppableDiv.clientWidth - dragWidth)\r\n        //    y = droppableDiv.clientWidth - dragHeight;\r\n\r\n\r\n        div.style.left = x + \"px\";\r\n        div.style.top = y + \"px\";\r\n        div.style.zIndex = 2;\r\n        var fontsize = document.getElementById(\"fontsize\").value;\r\n        droppableDiv.appendChild(div);\r\n        if (dragid.startsWith(\"DGID\")) {\r\n            var id = dragid.substring(4);\r\n            if (e.detectedPosObject == null)\r\n                e.detectedPosObject = [];\r\n\r\n            var obj = e.detectedPosObject.find(x => x.text == id)\r\n            if (obj != null) {\r\n                obj.x = x;\r\n                obj.y = y;\r\n                obj.width = dragWidth;\r\n                obj.height = dragHeight;\r\n                obj.font = fontsize;\r\n            }\r\n            else {\r\n                e.detectedPosObject.push({ text: id, x: x, y: y, width: dragWidth, height: dragHeight, font: fontsize });\r\n            }\r\n        }\r\n        else\r\n            draggedObjectList[dragid] = { x: x, y: y, width: dragWidth, height: dragHeight, font: fontsize };\r\n\r\n    }\r\n\r\n    const dragleave = (event) => {\r\n        event.preventDefault();\r\n\r\n    }\r\n    const enter = (event) => {\r\n        event.preventDefault();\r\n\r\n    }\r\n\r\n\r\n    const zoomin = () => {\r\n        var myImg = document.getElementById(\"pdfimage\");\r\n        var currWidth = myImg.clientWidth;\r\n        zoom += 1;\r\n        myImg.style.width = (currWidth + 5000) + \"px\";\r\n\r\n    }\r\n\r\n    const zoomout = () => {\r\n        var myImg = document.getElementById(\"pdfimage\");\r\n        var currWidth = myImg.clientWidth;\r\n        if (zoom == 0) return false;\r\n        else {\r\n            myImg.style.width = (currWidth - 5000) + \"px\";\r\n            zoom -= 1;\r\n        }\r\n    }\r\n\r\n\r\n    const updateBoxfont = (id, fontsize, source) => {\r\n        var item = document.getElementById(id);\r\n        if (item != null) {\r\n            item.style.fontSize = fontsize + \"px\";\r\n            if (id.startsWith(\"DGID\"))\r\n                id = id.substring(4);\r\n\r\n            if (source != null && source[id] != null) {\r\n                source[id].font = fontsize;\r\n            }\r\n            if (e.detectedPosObject != null) {\r\n                var obj = e.detectedPosObject.find(x => x.text == id)\r\n                if (obj != null)\r\n                    obj.font = fontsize;\r\n            }\r\n        }\r\n    }\r\n\r\n    const updatefont = () => {\r\n        var fontsize = document.getElementById(\"fontsize\").value;\r\n        updateBoxfont(\"DGformaltext\", fontsize, draggedObjectList);\r\n        updateBoxfont(\"DGID#tarih\", fontsize, null);\r\n        updateBoxfont(\"DGID#ruhsatno\", fontsize, null);\r\n        updateBoxfont(\"DGID#kot\", fontsize, null);\r\n        updateBoxfont(\"DGID#fikra\", fontsize, null);\r\n        updateBoxfont(\"DGID#bend\", fontsize, null);\r\n        updateBoxfont(\"DGID#madde\", fontsize, null);\r\n\r\n    }\r\n\r\n\r\n    const hasloc = (data, text) => {\r\n        if (data.detectedPosObject == null) return false\r\n        var list = data.detectedPosObject.filter(x => x.text == text);\r\n        if (list.length > 0) {\r\n            return true\r\n        }\r\n        return false;\r\n    }\r\n\r\n    const getUnwknownItems = () => {\r\n        var paftaRuhsatOnayKod = <></>;\r\n        var paftaRuhsatTarih = <></>;\r\n        var kot = <></>;\r\n        var fikra = <></>;\r\n        var bend = <></>;\r\n        var madde = <></>;\r\n        var boxWidth = \"100%\"\r\n        if (isEmpty(e.paftaRuhsatOnayKod) == false) {\r\n            paftaRuhsatOnayKod = <div className=\"col-1\" style={{ \"background-color\": \"white\" }}>\r\n                <div style={{ minHeight: \"20px\", \"background-color\": \"white\" }}>\r\n                    <div id={\"DGID#ruhsatno\"} className=\"border border-warning border-3\" draggable=\"true\" onDragStart={drag} onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave} style={{ width: boxWidth, height: \"30px\", \"z-index\": 2, resize: \"both\", overflow: \"hidden\", fontSize: \"10px\", \"background-color\": \"transparent\" }}>\r\n                        <div className=\"text-danger\" style={{ \"background-color\": \"transparent\" }}> {e.paftaRuhsatOnayKod} </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        }\r\n\r\n        if (isEmpty(e.paftaRuhsatTarih) == false) {\r\n            paftaRuhsatTarih = <div className=\"col-1\" style={{ \"background-color\": \"white\" }}>\r\n                <div style={{ minHeight: \"20px\", \"background-color\": \"white\" }}>\r\n                    <div id={\"DGID#tarih\"} className=\"border border-warning border-3\" draggable=\"true\" onDragStart={drag} onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave} style={{ width: boxWidth, height: \"30px\", \"z-index\": 2, resize: \"both\", overflow: \"hidden\", fontSize: \"10px\", \"background-color\": \"transparent\" }}>\r\n                        <div className=\"text-danger\" style={{ \"background-color\": \"transparent\" }}> {e.paftaRuhsatTarih} </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        }\r\n\r\n        if (isEmpty(e.kot) == false) {\r\n            kot = <div className=\"col-1\" style={{ \"background-color\": \"white\" }}>\r\n                <div style={{ minHeight: \"20px\", \"background-color\": \"white\" }}>\r\n                    <div id={\"DGID#kot\"} className=\"border border-warning border-3\" draggable=\"true\" onDragStart={drag} onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave} style={{ width: boxWidth, height: \"30px\", \"z-index\": 2, resize: \"both\", overflow: \"hidden\", fontSize: \"10px\", \"background-color\": \"transparent\" }}>\r\n                        <div className=\"text-danger\" style={{ \"background-color\": \"transparent\" }}> {e.kot} </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        }\r\n        if (isEmpty(e.fikra) == false) {\r\n            fikra = <div className=\"col-1\" style={{ \"background-color\": \"white\" }}>\r\n                <div style={{ minHeight: \"20px\", \"background-color\": \"white\" }}>\r\n                    <div id={\"DGID#fikra\"} className=\"border border-warning border-3\" draggable=\"true\" onDragStart={drag} onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave} style={{ width: boxWidth, height: \"30px\", \"z-index\": 2, resize: \"both\", overflow: \"hidden\", fontSize: \"10px\", \"background-color\": \"transparent\" }}>\r\n                        <div className=\"text-danger\" style={{ \"background-color\": \"transparent\" }}> {e.fikra} </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        }\r\n        if (isEmpty(e.bend) == false) {\r\n            bend = <div className=\"col-1\" style={{ \"background-color\": \"white\" }}>\r\n                <div style={{ minHeight: \"20px\", \"background-color\": \"white\" }}>\r\n                    <div id={\"DGID#bend\"} className=\"border border-warning border-3\" draggable=\"true\" onDragStart={drag} onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave} style={{ width: boxWidth, height: \"30px\", \"z-index\": 2, resize: \"both\", overflow: \"hidden\", fontSize: \"10px\", \"background-color\": \"transparent\" }}>\r\n                        <div className=\"text-danger\" style={{ \"background-color\": \"transparent\" }}> {e.bend} </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        }\r\n        if (isEmpty(e.madde) == false) {\r\n            madde = <div className=\"col-1\" style={{ \"background-color\": \"white\" }}>\r\n                <div style={{ minHeight: \"20px\", \"background-color\": \"white\" }}>\r\n                    <div id={\"DGID#madde\"} className=\"border border-warning border-3\" draggable=\"true\" onDragStart={drag} onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave} style={{ width: boxWidth, height: \"30px\", \"z-index\": 2, resize: \"both\", overflow: \"hidden\", fontSize: \"10px\", \"background-color\": \"transparent\" }}>\r\n                        <div className=\"text-danger\" style={{ \"background-color\": \"transparent\" }}> {e.madde} </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        }\r\n\r\n\r\n        return <div className=\"row border-bottom mb-2 pb-2 \" id=\"unknownlocitems\" >\r\n            {paftaRuhsatOnayKod}\r\n            {paftaRuhsatTarih}\r\n            {kot}\r\n            {fikra}\r\n            {bend}\r\n            {madde}\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    const placeObjectsOnPic = () => {\r\n        if (isEmpty(e.detectedPos) == true)\r\n            return;\r\n\r\n        var detectedPos = JSON.parse(e.detectedPos);\r\n        for (var rec of detectedPos) {\r\n            var value = \"unkown\"\r\n            if (rec.text == \"#tarih\") {\r\n                value = e.paftaRuhsatTarih;\r\n            }\r\n            if (rec.text == \"#ruhsatno\") {\r\n                value = e.paftaRuhsatOnayKod;\r\n            }\r\n            if (rec.text == \"#kot\") {\r\n                value = e.kot;\r\n            }\r\n            if (rec.text == \"#fikra\") {\r\n                value = e.fikra;\r\n            }\r\n            if (rec.text == \"#bend\") {\r\n                value = e.bend;\r\n            }\r\n            if (rec.text == \"#madde\") {\r\n                value = e.madde;\r\n            }\r\n            var xloc = rec.x;// * PNG_PDF_RATIO;\r\n            var yloc = rec.y;// * PNG_PDF_RATIO;\r\n\r\n            var div = document.createElement('div');\r\n            div.innerHTML = value;\r\n            div.classList.add(\"border\");\r\n            div.classList.add(\"border-warning\");\r\n            div.classList.add(\"border-3\");\r\n            div.classList.add(\"text-danger\");\r\n            div.id = \"DGID\" + rec.text\r\n            div.draggable = true\r\n            div.addEventListener('dragenter', enter);\r\n            div.addEventListener('dragover', allowDrop);\r\n            div.addEventListener('dragleave', dragleave);\r\n            div.addEventListener('dragstart', drag);\r\n            div.addEventListener('drop', drop);\r\n            div.style.resize = \"both\";\r\n            div.style.overflow = \"hidden\";\r\n            div.style[\"background-color\"] = \"transparent\";\r\n\r\n\r\n\r\n            var droppableArea = document.getElementById(\"pdfimage\");\r\n            var droppableDiv = droppableArea.parentElement;\r\n\r\n\r\n            var div0 = document.createElement('div');\r\n\r\n            div0.style.left = xloc + \"px\";\r\n            div0.style.top = yloc + \"px\";\r\n            div0.style.width = rec.width + \"px\";\r\n            div0.style.height = rec.height + \"px\";\r\n            div0.style.zIndex = 2;\r\n            div0.style.position = \"absolute\";\r\n\r\n           \r\n\r\n            div0.appendChild(div);\r\n            droppableDiv.appendChild(div0);\r\n\r\n\r\n\r\n\r\n\r\n\r\n            //fontsize = 8 * PNG_PDF_RATIO;\r\n            //if (rec.font != null)\r\n            //    fontsize = rec.font * PNG_PDF_RATIO;\r\n            //textwidth = rec.width * PNG_PDF_RATIO;\r\n            //        float height = rec.height * PNG_PDF_RATIO;\r\n            //getRotationMargin(rotation, textwidth, height, 0, pageWidth, pageHeight, ref xloc, ref yloc);\r\n\r\n        }\r\n\r\n\r\n        /*\r\n        var paftaRuhsatOnayKod = <></>;\r\n        var paftaRuhsatTarih = <></>;\r\n        var kot = <></>;\r\n        var fikra = <></>;\r\n        var bend = <></>;\r\n        var madde = <></>;\r\n        var boxWidth = \"100%\"\r\n        if (isEmpty(e.paftaRuhsatOnayKod) == false) {\r\n            paftaRuhsatOnayKod = <div className=\"col-1\" style={{ \"background-color\": \"white\" }}>\r\n                <div style={{ minHeight: \"20px\", \"background-color\": \"white\" }}>\r\n                    <div id={\"DGID#ruhsatno\"} className=\"border border-warning border-3\" draggable=\"true\" onDragStart={drag} onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave} style={{ width: boxWidth, height: \"30px\", \"z-index\": 2, resize: \"both\", overflow: \"hidden\", fontSize: \"10px\", \"background-color\": \"transparent\" }}>\r\n                        <div className=\"text-danger\" style={{ \"background-color\": \"transparent\" }}> {e.paftaRuhsatOnayKod} </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        }\r\n\r\n        if (isEmpty(e.paftaRuhsatTarih) == false) {\r\n            paftaRuhsatTarih = <div className=\"col-1\" style={{ \"background-color\": \"white\" }}>\r\n                <div style={{ minHeight: \"20px\", \"background-color\": \"white\" }}>\r\n                    <div id={\"DGID#tarih\"} className=\"border border-warning border-3\" draggable=\"true\" onDragStart={drag} onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave} style={{ width: boxWidth, height: \"30px\", \"z-index\": 2, resize: \"both\", overflow: \"hidden\", fontSize: \"10px\", \"background-color\": \"transparent\" }}>\r\n                        <div className=\"text-danger\" style={{ \"background-color\": \"transparent\" }}> {e.paftaRuhsatTarih} </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        }\r\n\r\n        if (isEmpty(e.kot) == false) {\r\n            kot = <div className=\"col-1\" style={{ \"background-color\": \"white\" }}>\r\n                <div style={{ minHeight: \"20px\", \"background-color\": \"white\" }}>\r\n                    <div id={\"DGID#kot\"} className=\"border border-warning border-3\" draggable=\"true\" onDragStart={drag} onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave} style={{ width: boxWidth, height: \"30px\", \"z-index\": 2, resize: \"both\", overflow: \"hidden\", fontSize: \"10px\", \"background-color\": \"transparent\" }}>\r\n                        <div className=\"text-danger\" style={{ \"background-color\": \"transparent\" }}> {e.kot} </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        }\r\n        if (isEmpty(e.fikra) == false) {\r\n            fikra = <div className=\"col-1\" style={{ \"background-color\": \"white\" }}>\r\n                <div style={{ minHeight: \"20px\", \"background-color\": \"white\" }}>\r\n                    <div id={\"DGID#fikra\"} className=\"border border-warning border-3\" draggable=\"true\" onDragStart={drag} onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave} style={{ width: boxWidth, height: \"30px\", \"z-index\": 2, resize: \"both\", overflow: \"hidden\", fontSize: \"10px\", \"background-color\": \"transparent\" }}>\r\n                        <div className=\"text-danger\" style={{ \"background-color\": \"transparent\" }}> {e.fikra} </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        }\r\n        if (isEmpty(e.bend) == false) {\r\n            bend = <div className=\"col-1\" style={{ \"background-color\": \"white\" }}>\r\n                <div style={{ minHeight: \"20px\", \"background-color\": \"white\" }}>\r\n                    <div id={\"DGID#bend\"} className=\"border border-warning border-3\" draggable=\"true\" onDragStart={drag} onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave} style={{ width: boxWidth, height: \"30px\", \"z-index\": 2, resize: \"both\", overflow: \"hidden\", fontSize: \"10px\", \"background-color\": \"transparent\" }}>\r\n                        <div className=\"text-danger\" style={{ \"background-color\": \"transparent\" }}> {e.bend} </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        }\r\n        if (isEmpty(e.madde) == false) {\r\n            madde = <div className=\"col-1\" style={{ \"background-color\": \"white\" }}>\r\n                <div style={{ minHeight: \"20px\", \"background-color\": \"white\" }}>\r\n                    <div id={\"DGID#madde\"} className=\"border border-warning border-3\" draggable=\"true\" onDragStart={drag} onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave} style={{ width: boxWidth, height: \"30px\", \"z-index\": 2, resize: \"both\", overflow: \"hidden\", fontSize: \"10px\", \"background-color\": \"transparent\" }}>\r\n                        <div className=\"text-danger\" style={{ \"background-color\": \"transparent\" }}> {e.madde} </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        }\r\n\r\n\r\n        return <div className=\"row border-bottom mb-2 pb-2 \" id=\"unknownlocitems\" >\r\n            {paftaRuhsatOnayKod}\r\n            {paftaRuhsatTarih}\r\n            {kot}\r\n            {fikra}\r\n            {bend}\r\n            {madde}\r\n        </div>*/\r\n    }\r\n\r\n\r\n    if (props.source == \"NEW_TASK\") {\r\n        window.Swal.fire({\r\n            title: \"Lütfen QR Kod ve Kırmızı renkli yasal metni, evrakın görmek istediğiniz yerine sürükleyerek taşıyınız.\", confirmButtonText: \"Tamam\", confirmButtonColor: \"#0d6efd\",\r\n            icon: 'warning',\r\n        }).then((result) => {\r\n        })\r\n\r\n    }\r\n    return (\r\n        <div key={pageNumber} >\r\n            {props.source == \"NEW_TASK\" && <div className=\"row mb-1\"  >\r\n                <div className=\"col-12 text-center fw-bold text-danger\">\r\n                    <h5 className=\"fw-bold\">Yüklediğiniz  dosyada yasal yazı ve QR kod konumu tespit edilemedi.Lütfen QR Kod ve Kırmızı renkli yasal metni, evrakın görmek istediğiniz yerine sürükleyerek taşıyınız.</h5>\r\n                </div>\r\n            </div>}\r\n\r\n\r\n            {props.source == \"DETAL_UPDATE\" && <div className=\"row mb-1\"  >\r\n                <div className=\"col-12 text-center fw-bold text-warning\">\r\n                    Aşağıdaki maddelerin konumunu belirtiniz.\r\n                </div>\r\n            </div>}\r\n\r\n\r\n            <div className=\"row mb-1\"  >\r\n                <div className=\"col-3\">\r\n                    <h6 className=\"text-primary p-0 m-0\">PDF Ayarları</h6 >\r\n                </div>\r\n                <div className=\"col-6 text-center text-info\">\r\n                    E-İmza ID: {e.id}\r\n                </div>\r\n                <div className=\"col-3 text-end\">\r\n                    {isEmpty(e.imzatarih) == false && <a className=\"text-decoration-none align-middle me-2\" href={'getimzalidosya?eimzaid=' + e.id} download=\"eimza.pdf\"><i className=\"fa fa-cloud-download\" style={{ \"font-size\": \"20px\" }}></i>  </a>}\r\n                    {role.indexOf(UserPermConstants.Imzaya_Açma) > -1 && <a className=\"text-decoration-none btn btn-link border-0  p-0 me-2\" onClick={() => props.setActivePanel(<EImzaDetails eimza={e} setActivePanel={props.setActivePanel} appData={props.appData} />)}> <i class=\"fa fa-cog\" aria-hidden=\"true\"></i></a>}\r\n\r\n                    <button className=\"btn btn-sm btn-link text-decoration-none p-0 me-1\" type=\"button\" onClick={() => props.setActivePanel(<EImzaList appData={props.appData} setActivePanel={props.setActivePanel} changeComponent={props.changeComponent}/>)} title=\"kapat\"> <i class=\"fa fa-close\" style={{ \"font-size\": \"18px\" }}></i></button>\r\n\r\n                </div>\r\n            </div>\r\n\r\n\r\n            <div className=\"row mb-2\"  id=\"mainrow\">\r\n                {/*<div className=\"col-1\">*/}\r\n\r\n                {/*    */}{/*<button className=\"btn btn-sm btn-primary me-1\" type=\"button\" onClick={zoomin}> <i class=\"fa fa-search-plus\"></i></button>*/}\r\n                {/*    */}{/*<button className=\"btn btn-sm btn-primary me-1\" type=\"button\" onClick={zoomout}>  <i class=\"fa fa-search-minus\"></i></button>*/}\r\n\r\n                {/*</div>*/}\r\n\r\n                <div className=\"col-2\">\r\n                    <div class=\"form-group\">\r\n                        <label for=\"email\">Metin Boyutu:</label>\r\n                        <input type=\"number\" className=\"form-control form-control-sm\" id=\"fontsize\" defaultValue={10} placeholder=\"Font\" name=\"fontsize\" onChange={updatefont} />\r\n\r\n                    </div>\r\n                </div>\r\n                <div className=\"col-1\">\r\n                </div>\r\n                <div className=\"col-6 text-info text-center\">\r\n                    Kutucukları sürükleyerek belgede ilgili alana bırakın.\r\n                </div>\r\n\r\n                <div className=\"col-3 text-end\">\r\n                    <button className=\"btn btn-sm btn-primary me-1\" type=\"button\" onClick={() => setPageNumber(pageNumber + 1)}> Sıfırla</button>\r\n\r\n                    <button className=\"btn btn-sm btn-primary me-1\" type=\"button\" onClick={submitEimzaVisualSetting}> Uygula</button>\r\n\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n\r\n            {props.source != \"DETAL_UPDATE\" ? <div className=\"row border-bottom mb-2 pb-2\"  >\r\n                <div className=\"col-1\">\r\n                    <div style={{ minHeight: \"50px\" }} >\r\n                        <div className=\"border border-warning border-3 p-0\" draggable=\"true\" onDragStart={drag} onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave} style={{ width: \"auto\", height: \"50px\", \"z-index\": 2, resize: \"both\", overflow: \"hidden\", \"aspect-ratio\": \"1/1\" }}>\r\n                            <img id=\"DGqrcode\" className=\"p-0\" src={require('../Dashboard/qr.png').default} style={{ width: \"100%\", height: \"100%;auto\", \"z-index\": 2, resize: \"both\", overflow: \"auto\", \"aspect-ratio\": \"1/1\" }} />\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"col-5\" style={{ \"background-color\": \"transparent\" }}>\r\n                    <div style={{ minHeight: \"50px\", \"background-color\": \"transparent\" }}>\r\n                        <div id=\"DGformaltext\" className=\"border border-warning border-3\" draggable=\"true\" onDragStart={drag} onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave} style={{ width: \"300px\", height: \"50px\", \"z-index\": 2, resize: \"both\", overflow: \"hidden\", fontSize: \"10px\", \"background-color\": \"transparent\" }}>\r\n                            <div className=\"text-danger\" style={{ \"background-color\": \"transparent\" }}> {/*<i class=\"fa fa-arrows text-secondary\" ></i>*/} Bu belge, güvenli elektronik imza ile imzalanmıştır. Doğrulama Kodu: 2409c458dee211edb5ea0242ac120002 Doğrulama: https://www.belediye.bel.tr/eimzadogrulama</div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div> : getUnwknownItems()}\r\n\r\n\r\n\r\n\r\n\r\n\r\n            <div id=\"pdfimagediv\" style={{\r\n                backgroundImage: `url(${background})`, backgroundRepeat: \"no-repeat\", backgroundSize: \"50px 50px\", backgroundPosition: \"center\", overflow: \"auto\", width: \"100%\", height: \"700px\", \"z-index\": 1, position: \"relative\"\r\n            }} onDragOver={allowDrop} onDrop={drop} onDragEnter={enter} onDragLeave={dragleave} >\r\n\r\n                <img id=\"pdfimage\" src={\"/getdosyaasimage?eimzaid=\" + e.id} style={{ Width: \"100%\", Height: \"100%\", objectFit: \"contain\" }} />\r\n            </div>\r\n\r\n\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { Component, useEffect, useState } from 'react';\r\nimport { logout, ajaxFail } from '../GlobalState.js';\r\n\r\nexport default function UserLabel(props) {\r\n    const [myuser, setUser] = useState(props.user);\r\n\r\n    var size = props.picSize != null ? props.picSize : 32;\r\n\r\n    size=size+\"px\"\r\n    useEffect(() => {\r\n        if (myuser.family == null)\r\n            getuserinfo();\r\n    }, [])\r\n\r\n    const getuserinfo = () => {\r\n\r\n        fetch(\"getuserpublcinfo\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(props.user.userName)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    if (data != null && data.length > 0) {\r\n                        data = JSON.parse(data);\r\n                        setUser(data);\r\n                        if (props.setNameFamily) {\r\n                            props.setNameFamily(data)\r\n                        }\r\n                    }\r\n\r\n                });\r\n            }\r\n        });\r\n\r\n\r\n    }\r\n\r\n\r\n\r\n    return <span  >\r\n       {/* < img className=\"rounded-circle\" style={{ width: size, height: size }} src={\"/getuserpic?user=\" + props.user.userName} /> &nbsp;*/}\r\n         {myuser.name} {myuser.family} {props.showUserName == true ? \"(\"+props.user.userName+\")\":\"\"}\r\n    </span>\r\n\r\n\r\n}\r\n\r\n\r\n\r\n","import React, { useEffect } from 'react';\r\n\r\nimport { BrowserRouter as Router, Route, Routes, Navigate } from \"react-router-dom\";\r\nimport Register from \"./User/Register.js\";\r\nimport Login from \"./User/Login.js\";\r\n\r\nimport ApplicationListCardView from \"./Application/ApplicationListCardView.js\";\r\n\r\nimport Application from \"./Application/Application.js\";\r\nimport Dashboard from \"./Dashboard/Dashboard.js\";\r\nimport { useGlobalState } from './GlobalState.js';\r\n\r\nimport Sharing from './Application/Sharing.js';\r\nimport TwoStep from './User/TwoStep..js';\r\n\r\nexport default function App(props) {\r\n    const [role, setRole] = useGlobalState('role');\r\n    useEffect(() => {\r\n        window.process = {\r\n            ...window.process,\r\n        };\r\n    }, []);\r\n\r\n    return (\r\n        <div >\r\n            <Router>\r\n                <div className=\"container-fluid\">\r\n                   {/* {(role == null || role.length == 0) && <Login />}*/}\r\n                        \r\n\r\n                    <Routes>\r\n                        <Route path=\"/register\" element={<Register />} />\r\n                        <Route path=\"/login\" element={<Login />} />\r\n                      \r\n                        <Route path=\"/applicationlistcard\" element={<ApplicationListCardView view={\"card\"} />} />\r\n\r\n                       \r\n                        <Route path=\"/application\" element={<Application />} />\r\n                       \r\n\r\n                      \r\n                        <Route path=\"/\" element={<Dashboard />} />\r\n                        <Route path=\"/Front\" element={<Navigate to=\"/\" />} />\r\n\r\n                      \r\n                       \r\n                        <Route path=\"/appsharing\" element={<Sharing />} />\r\n                       {/* <Route path=\"/sharedapplicationlist\" element={<SharedApplicationList />} />*/}\r\n\r\n                    </Routes>\r\n                </div>\r\n            </Router>\r\n        </div>\r\n    );\r\n}\r\n","const reportWebVitals = onPerfEntry => {\n  if (onPerfEntry && onPerfEntry instanceof Function) {\n    import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n      getCLS(onPerfEntry);\n      getFID(onPerfEntry);\n      getFCP(onPerfEntry);\n      getLCP(onPerfEntry);\n      getTTFB(onPerfEntry);\n    });\n  }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\n\r\n\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport 'bootstrap/dist/css/bootstrap.min.css'\r\nimport 'bootstrap/dist/js/bootstrap.min.js'\r\nimport './index.css';\r\nReactDOM.render(\r\n    <React.StrictMode>\r\n        \r\n            <App />\r\n        \r\n    </React.StrictMode>,\r\n    document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n","import React, { useState, useEffect } from 'react';\r\nimport UserLabel from \"../User/UserLabel.js\";\r\nimport { isEmpty, showConfirmMessage, showErrorMessage, useGlobalState } from '../GlobalState.js';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport Vekalet from './Vekalet.js';\r\nimport $ from 'jquery';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\n\r\nexport default function ApplicationAuthorPanel(props) {\r\n    const appData = props.appData\r\n    const [userName, setuserName] = useGlobalState('userName');\r\n    const waiting = <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n    var muelliflist = []\r\n    const [tabledata, setTabledata] = useState([]);\r\n    const [previousAppAuthors, setPreviousAppAuthors] = useState(null);\r\n    const [userTypeList, setUserTypeList] = useState([]);\r\n    const [user, setUser] = useState(null);\r\n    const colors = [\"text-primary\", \"text-warning\", \"text-success\"]\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [vekils, setVekils] = useState([]);\r\n\r\n\r\n    useEffect(() => {\r\n        getvakaletdurums();\r\n        fetchPreviousAppsAuthers();\r\n    }, [])\r\n\r\n\r\n   \r\n    const addAuthor = (u, t) => {\r\n        if (t == null || t == \"\") {\r\n            showErrorMessage(\"Muellif Tipi Boş olamaz\");\r\n            return;\r\n        }\r\n        if (u == null || u == \"\") {\r\n            showErrorMessage(\"Kullanıcı Adı Boş olamaz\");\r\n            return;\r\n        }\r\n\r\n        fetch(\"addauther\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({\r\n                appID: appData.id,\r\n                userName: u,\r\n                muellifType: t,\r\n                ekleyen: appData.securityToken\r\n            })\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    if (isEmpty(value) == false) {\r\n                        value = value.replaceAll('\"', '');\r\n                        showErrorMessage(value)\r\n                    }\r\n                })\r\n\r\n            }\r\n            else {\r\n                document.getElementById(\"muellifusername\").value = \"\";\r\n\r\n                fetchAuthers();\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getvakaletdurums = () => {\r\n        fetch(\"getvakaletdurums\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(appData.id),\r\n        }).then(async response => {\r\n\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setVekils(data);\r\n                    fetchAuthers(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const fetchAuthers = (newlist) => {\r\n        fetch(\"appauthorlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({ \"id\": appData.id, \"secret\": appData.securityToken }),\r\n        }).then(async response => {\r\n\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    if (data == null) {\r\n                        setTabledata([])\r\n                        return;\r\n                    }\r\n                    data = JSON.parse(data)\r\n                    //the fatch result may receive before page update\r\n                    var vekiller = vekils;\r\n                    if (vekils.length == 0 && newlist != null && newlist.length > 0) {\r\n                        vekiller = newlist;\r\n                    }\r\n\r\n                    for (var i = 0; i < data.length; i++) {\r\n                        data[i].vekil = 0;\r\n                        var v = vekiller.find(x => x.id == data[i].id);\r\n                        if (v != null)\r\n                            data[i].vekil = v.appID + 1;\r\n                    }\r\n\r\n                    setTabledata(data)\r\n\r\n\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchPreviousAppsAuthers = () => {\r\n        fetch(\"appauthorlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({ \"id\":-1, \"secret\": \"\" }),\r\n        }).then(async response => {\r\n\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    if (data == null) {\r\n                        setPreviousAppAuthors([])\r\n                        return;\r\n                    }\r\n                    data = JSON.parse(data)\r\n                    var ulist = data.map(rec => <tr>\r\n                        <td width=\"30%\">\r\n                            {rec.name}  {rec.family} ({rec.userName})\r\n                        </td>\r\n                        <td width=\"30%\"> {rec.muellifType}</td>\r\n                        <td width=\"30%\">\r\n                            {rec.gecicimuellif == true ? \"Belge Miadı\" : \"\"} {isEmpty(rec.gecicisure) == false ? \"(\" + rec.gecicisure + \")\" : \"\"}\r\n                        </td>\r\n                        <td className=\"text-end\">\r\n                            <button className=\"btn btn-sm btn-link\" onClick={() => { addAuthor(rec.userName, rec.muellifType) }}> <i className=\"fa fa-plus-circle align-middle\" style={{ \"font-size\": \"18px\" }}></i> </button>\r\n                        </td></tr>\r\n                    );\r\n                    setPreviousAppAuthors(ulist)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const getuser = (myself) => {\r\n\r\n        var u = document.getElementById(\"muellifusername\").value;\r\n        if (myself != null) {\r\n            u = myself;\r\n        }\r\n        if (u == null || u == \"\") {\r\n            showErrorMessage(\"Müellif Kodunu Giriniz\");\r\n            return;\r\n        }\r\n        fetch(\"getuserpublcinfo\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(u)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(user => {\r\n                    if (user == null || user.length == 0) {\r\n                        showErrorMessage(\"Müellif Bulunamadı\");\r\n                        return;\r\n                    }\r\n                    var u = JSON.parse(user);\r\n                    if (u.name == null || u.family == null) {\r\n                        showErrorMessage(\"Bir hata oluştur\" + user);\r\n                        return;\r\n                    }\r\n                    if (isEmpty(u.userType)) {\r\n                        showErrorMessage(\"Müellif türü boş olamaz\");\r\n                        return;\r\n\r\n                    }\r\n\r\n                    var temp = u.userType.split(\",\")\r\n\r\n\r\n                    setUser(u);\r\n                    setUserTypeList(temp);\r\n                    $('#ModalButton').click();\r\n\r\n\r\n                })\r\n\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const removeAuthor = (id) => {\r\n        showConfirmMessage(\"Müellifi silmek istediğinizden emin misniz?\", \"\", \"Evet\", \"Hayır\", () => {\r\n            fetch(\"removeauther\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify({ \"id\": id, \"secret\": appData.securityToken })\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    document.getElementById(\"muellifusername\").value = \"\";\r\n                    fetchAuthers();\r\n                }\r\n            });\r\n        });\r\n    }\r\n\r\n    const isVisibleForUser = () => {\r\n        try {\r\n            if (appData.basvuruYapan == userName)\r\n                return true;\r\n            if (props.denetimpaenls != null && props.denetimpaenls.some(x => x.userName == userName))\r\n                return true;\r\n\r\n            if (role.indexOf(UserPermConstants.Havale_Yapma) > -1 || role.indexOf(UserPermConstants.Basvuru_Liste) > -1)\r\n                return true;\r\n\r\n\r\n            // müellif listesinde varsa dosyayı gostermiyoruz\r\n            if (isEmpty(appData.müellifKullanıcıAdı) == false && appData.müellifKullanıcıAdı.includes(userName + \" \"))\r\n                return false;\r\n            /* if (rec.appId == appData.id || role.indexOf(UserPermConstants.Basvuru_Onaylama) > -1)\r\n                 return true;\r\n             if (appData.relatedApps != null && appData.relatedApps.map(x => x.id).includes(rec.appId) && role.indexOf(UserPermConstants.Ilgili_Basvurulari_Gorme) > -1)\r\n                 return true;*/\r\n            return true;\r\n        }\r\n        catch (ex) {\r\n            console.log(ex);\r\n        }\r\n        return false;\r\n    }\r\n\r\n    return (\r\n        <div>\r\n            <div className=\"row\">\r\n                <div className=\"col-12 \">\r\n                    <h5 className=\"text-primary\">Müellif Listesi </h5>\r\n                </div>\r\n                <div className=\"col-2 justify-content-end align-items-end text-end \">\r\n                    {muelliflist.length > 0 && <span className=\"small badge bg-primary rounded-pill me-2\">{muelliflist.length}</span>}\r\n\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n\r\n                <div className=\"col-12 col-md-4 mt-2\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm d-inline-block\" placeholder=\"Müellif Kodu veya TCKN\" name=\"muellifusername\" id=\"muellifusername\" defaultValue=\"\" />\r\n                </div>\r\n                <div className=\"col-12 col-md-6 mt-2\">\r\n                    {appData.archived != true ? <>\r\n                        <button onClick={() => getuser()} className=\"btn btn-primary btn-sm ms-1 d-inline-block\">Müellif Ekle</button>\r\n                        <button onClick={() => getuser(userName)} className=\"btn btn-primary btn-sm ms-2 d-inline-block\">Kendimi Ekle</button></>\r\n\r\n                        : <span className=\"text-secondary fw-bold\">Arşivlenen Başvuruya Müellif Eklenemez</span>}\r\n\r\n\r\n                </div>\r\n            </div>\r\n            <div className=\"row mt-5\">\r\n                <div className=\"col-12 text-primary \">\r\n                    <h6>Başvuruya Eklenen Müellifler</h6>\r\n                </div>\r\n                <div className=\"col-12\">\r\n                    {tabledata != null ? <table className='table  table-sm' >\r\n                        <tbody >\r\n                            {tabledata.map(rec => <tr title={\"Kayıt No: \" + rec.id} key={rec.id} className=\"p-0 m-0\">\r\n                                <td width=\"30%\">\r\n                                    {rec.name}  {rec.family} ({rec.userName})\r\n                                </td>\r\n\r\n                                <td width=\"20%\">\r\n                                    {rec.muellifType}\r\n                                </td>\r\n                                <td width=\"30%\">\r\n                                    {rec.gecicimuellif == true ? \"Belge Miadı\" : \"\"} {isEmpty(rec.gecicisure) == false ? \"(\" + rec.gecicisure +\")\" : \"\"}\r\n                                </td>\r\n                                <td className=\"text-end\">\r\n                                    <button className={\"btn  btn-link text-decoration-none pe-1 \" + colors[rec.vekil]} title=\"Vekalet Bilgisi\" onClick={(e) => { props.setActivePanel(<Vekalet appData={appData} setActivePanel={props.setActivePanel} mapping={rec} />) }}  > <i class=\"fa fa-vimeo-square\" aria-hidden=\"true\"></i>   </button>\r\n\r\n                                    {isVisibleForUser()&&\r\n                                        <button className=\"btn text-danger btn-link \" onClick={() => { removeAuthor(rec.id) }} disabled={appData.archived == true}>\r\n                                        <i class=\"fa fa-trash\" aria-hidden=\"true\"></i>\r\n                                    </button>}\r\n                                </td>\r\n                            </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table> : waiting}\r\n                </div>\r\n            </div>\r\n\r\n            {appData.archived != true && <div className=\"row mt-5 border-top pt-2\">\r\n                <div className=\"col-12 text-success\">\r\n                    <h6>Önceki Başvurularınıza Eklediğiniz Müellifler</h6>\r\n                </div>\r\n                <div className=\"col-12\">\r\n                    {previousAppAuthors != null ? <table className=' table   table-sm' aria-labelledby=\"tabelLabel\">\r\n                        <tbody >\r\n                            {previousAppAuthors}\r\n                        </tbody>\r\n                    </table> : waiting}\r\n                </div>\r\n            </div>}\r\n\r\n            <button type=\"button\" id=\"ModalButton\" class=\"btn btn-primary\" data-bs-toggle=\"modal\" data-bs-target=\"#confirmModal\" hidden>\r\n\r\n            </button>\r\n\r\n\r\n            <div class=\"modal fade\" tabindex=\"-1\" role=\"dialog\" id=\"confirmModal\">\r\n                <div class=\"modal-dialog\" >\r\n                    <div class=\"modal-content\">\r\n                        <div class=\"modal-header\">\r\n                            <h5 class=\"modal-title\">Müellif Türünü Seçiniz</h5>\r\n                        </div>\r\n                        <div class=\"modal-body\">\r\n                            <div class=\"mb-3\">\r\n                                {user != null ? user.name.substr(0, 2) + \"***  \" + user.family.substr(0, 2) + \"***  için bir müellif türü seçiniz\" : \"\"}\r\n\r\n                            </div>\r\n\r\n                            <select className=\"form-select form-select-sm d-inline-block me-2\" id=\"kullanicitipleri\" name=\"userType\">\r\n                                {userTypeList.map(u => <option value={u}>{u}</option>)}\r\n\r\n                            </select>\r\n                        </div>\r\n                        <div class=\"modal-footer\">\r\n                            <button type=\"button\" class=\"btn btn-secondary\" data-bs-dismiss=\"modal\">Vazgeç</button>\r\n                            <button type=\"button\" class=\"btn btn-primary\" data-bs-dismiss=\"modal\" onClick={() => { addAuthor(user.userName, document.getElementById(\"kullanicitipleri\").value) }}>Ekle</button>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n        </div >\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 AppCard from './AppCard.js';\r\nimport UserAppCard from '../Application/UserAppCard.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { passFilter, removeTurkcLow } from '../GlobalState.js';\r\nimport { ajaxFail, isEmpty } from '../GlobalState.js';\r\n\r\nimport $ from 'jquery';\r\n\r\n\r\nexport default class ApplicationListCardView extends Component {\r\n    sortField = \"\";\r\n    constructor(props) {\r\n        super(props);\r\n        this.role = props.role;\r\n        this.userName = props.userName;\r\n        this.state = {\r\n            showgroups: false,\r\n            status: \"init\", applist: null, colnames: [\"id\", \"basvuruTarihi\", \"basvuruTipi\", \"ada\", \"mahalle\", \"mevki\", \"mimar\"]\r\n        };\r\n        this.getApplicationList = this.getApplicationList.bind(this);\r\n        \r\n        this.getAppGroupList = this.getAppGroupList.bind(this);\r\n        this.refreshList = this.refreshList.bind(this);\r\n        this.generateGroupList = this.generateGroupList.bind(this);\r\n        /*this.renderToCards = this.renderToCards.bind(this);*/\r\n        this.getAppTypes = this.getAppTypes.bind(this);\r\n        this.fetchDenetimList = this.fetchDenetimList.bind(this);\r\n        this.fetchkabullistperm = this.fetchkabullistperm.bind(this);\r\n\r\n        this.getSablon = this.getSablon.bind(this)\r\n        this.filterTable = this.filterTable.bind(this)\r\n        this.handleSablonChange = this.handleSablonChange.bind(this)\r\n        this.setDevamStat = this.setDevamStat.bind(this)\r\n        this.devamstat = { biten: false, devam: false, bekleyen: false, tumu: false };\r\n\r\n        this.filter = null;\r\n        this.mysablons = null;\r\n        this.changeComponent = props.changeComponent;\r\n        this.appGroups = null;\r\n        this.kabulPerms = null;\r\n        this.appTypes = [];\r\n        this.bordercolors = [\"#50cc88\", \"#009cf7\", \"#ffc800\", \"#f1416d\"];\r\n        this.handleDenetimChange = this.handleDenetimChange.bind(this);\r\n    }\r\n\r\n    refreshList(data) {\r\n        this.setState({\r\n            status: \"init\", applist: data\r\n        })\r\n    }\r\n    componentDidMount() {\r\n        this.getSablon();\r\n        this.fetchDenetimList();\r\n        this.getAppGroupList();\r\n        this.getAppTypes();\r\n        this.fetchkabullistperm();\r\n    }\r\n\r\n    myCompare = (a, b) => {\r\n        if (a[this.sortField] < b[this.sortField]) {\r\n            return -1;\r\n        }\r\n        if (a[this.sortField] > b[this.sortField]) {\r\n            return 1;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n\r\n\r\n    setDevamStat = (d) => {\r\n        this.devamstat = d;\r\n        this.setState({ ...this.state, \"devamstat\": d });\r\n    }\r\n\r\n    myCompareBasvuruTipi = (a, b) => {\r\n        var s1 = a[this.sortField];\r\n        var s2 = b[this.sortField];\r\n        if (s1 == null) return -1;\r\n        if (s2 == null) return 1;\r\n\r\n        var sa = s1.replaceAll('\"name\":', \"\").replaceAll(']', \"\").replaceAll('[', \"\").replaceAll('{', \"\").replaceAll('}', \"\").replaceAll('\"', \"\");\r\n        var sb = s2.replaceAll('\"name\":', \"\").replaceAll(']', \"\").replaceAll('[', \"\").replaceAll('{', \"\").replaceAll('}', \"\").replaceAll('\"', \"\");\r\n\r\n        if (sa < sb) {\r\n            return -1;\r\n        }\r\n        if (sa > sb) {\r\n            return 1;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n\r\n    sortList = (fildname) => {\r\n        this.sortField = fildname;\r\n        var temp = this.state.applist;\r\n        if (fildname.toUpperCase() == \"BASVURUTIPI\")\r\n            temp.sort(this.myCompareBasvuruTipi);\r\n        else\r\n            temp.sort(this.myCompare);\r\n        this.setState({ applist: temp, status: \"done\" });\r\n    }\r\n\r\n     fetchkabullistperm  ()  {\r\n        fetch(\"kabullistpermsnames\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(this.userName)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    this.kabulPerms=value;\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    getSablon() {\r\n        var refreshButton = document.getElementById(\"refreshButton\");\r\n        if (refreshButton != null) {\r\n            refreshButton.classList.remove(\"fa\", \"fa-refresh\")\r\n            refreshButton.classList.add(\"spinner-grow\", \"spinner-grow-sm\")\r\n        }\r\n\r\n\r\n        fetch(\"getmysablon\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n                this.setState({ status: response.statusText })\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    data = data.filter(r => r.forTableView == true);\r\n                    this.mysablons = data;\r\n                    if (data != null && data.length > 0) {\r\n                        data = this.mysablons[0];\r\n                        if (window.localStorage.getItem('sablon') != null && this.mysablons[window.localStorage.getItem('sablon')] != null)\r\n                            data = this.mysablons[window.localStorage.getItem('sablon')];\r\n                        if (data.filter != null)\r\n                            this.filter = data.filter;\r\n                        if (data.colNames != null && data.colNames.length > 0) {\r\n                            var d = data.colNames.replaceAll('\"', \"\");\r\n                            if (d.length > 0)\r\n                                this.setState({ ...this.state, colnames: d.split(\",\") });\r\n                        }\r\n                    }\r\n\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    getAppGroupList() {\r\n\r\n\r\n        fetch(\"getappgrouplist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    this.appGroups = value;\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    getAppTypes() {\r\n\r\n        fetch(\"sureclist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    this.appTypes = value;\r\n                    this.getApplicationList()\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    fetchDenetimList() {\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(data => {\r\n\r\n                    this.denetimlist = data;\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    showApplication(id) {\r\n        this.setState({ applist: this.state.applist, status: \"appdetails\", appid: id });\r\n    }\r\n\r\n    handleSablonChange(sab) {\r\n        window.localStorage.setItem('sablon', sab);\r\n        var data = this.mysablons[sab];\r\n        if (data.filter != null)\r\n            this.filter = data.filter;\r\n        if (data.colNames != null && data.colNames.length > 0) {\r\n            var d = data.colNames.replaceAll('\"', \"\");\r\n            if (d.length > 0)\r\n                this.setState({ ...this.state, colnames: d.split(\",\") });\r\n        }\r\n    }\r\n\r\n\r\n    appsauthorlist = (applist) => {\r\n        var ids = applist.map(x => x.id).join();\r\n        fetch(\"appsauthorlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(ids)\r\n\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    applist.forEach((k) => { k.müellif = \"\" });\r\n                    data.forEach((k) => { applist.find(x => x.id == k.appID).müellif += k.userName + \"(\" + k.muellifType + \")  \" });\r\n                    this.setState({ applist: applist, status: \"done\" });\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n     getcontrollerlist = (applist) => {\r\n        var ids = applist.map(x => x.id).join();\r\n        fetch(\"getcontrollerlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(ids)\r\n\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    applist.forEach(x => {\r\n                        x.tümKontrolorler = \"\"\r\n                        x.müellif = \"\";\r\n                        x.muellifCount = 0;\r\n                        x.totallContolorCount = 0;\r\n                        x.activeContolorCount = 0;\r\n                        x.allmuelliflist = \"\";\r\n                        x.kontrolorNameFamily = \"\"\r\n                        x.kontrolor = \"\"\r\n                    });\r\n                    data = JSON.parse(data)\r\n                    data.forEach((k) => {\r\n                        var apprec = applist.find(x => x.id == k.appID);\r\n\r\n                        if (k.sira == k.activeDenetim) {\r\n                            if (isEmpty(apprec.kontrolor) == false) {\r\n                                apprec.kontrolor += \", \";\r\n                                apprec.kontrolorNameFamily += \", \";\r\n                            }\r\n                            apprec.kontrolor += k.userName;\r\n                            apprec.kontrolorNameFamily += k.Name + \" \" + k.Family;\r\n                        }\r\n\r\n\r\n                        if (isEmpty(apprec.tümKontrolorler) == false)\r\n                            apprec.tümKontrolorler += \", \";\r\n                        apprec.tümKontrolorler += k.Name + \" \" + k.Family;\r\n\r\n\r\n\r\n\r\n\r\n                        if (k.userName == this.userName) {\r\n\r\n                            if (isEmpty(k.Started) && k.duzeltmeDurum != true && k.sira == k.activeDenetim) {\r\n                                apprec[\"Kontrol Durumu\"] = this.getDurumName(UserPermConstants.Basvuru_Durumu_Kontrol_Sirada_Bekliyor)\r\n                            }\r\n\r\n                            if (isEmpty(k.Started) == false && isEmpty(k.Completed) && k.sira == k.activeDenetim) {\r\n                                apprec[\"Kontrol Durumu\"] = this.getDurumName(UserPermConstants.Basvuru_Durumu_Kontrol_Ediliyor)\r\n                            }\r\n\r\n                            if (isEmpty(k.Completed) == false) {\r\n                                apprec[\"Kontrol Durumu\"] = this.getDurumName(UserPermConstants.Basvuru_Durumu_Kontrol_Tamamlandi)\r\n                            }\r\n\r\n                            if (isEmpty(k.Started) && isEmpty(k.duzeltmeIste) == false && k.duzeltmeDurum == true && k.sira == k.activeDenetim) {\r\n                                apprec[\"Kontrol Durumu\"] = this.getDurumName(UserPermConstants.Basvuru_Durumu_Duzeltme_Bekleniyor)\r\n                            }\r\n                        }\r\n\r\n\r\n\r\n\r\n\r\n                    });\r\n                    this.appsauthorlist(applist);\r\n                   \r\n\r\n\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n     getDurumName = (i) => {\r\n         var r = this.appTypes.find(element => element.id == i);\r\n        if (r == null) return i;\r\n        return r.name;\r\n    }\r\n\r\n   \r\n\r\n\r\n    getApplicationList() {\r\n        fetch(\"applicationlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            var refreshButton = document.getElementById(\"refreshButton\");\r\n            if (refreshButton != null && refreshButton.classList.contains(\"fa-refresh\") == false) {\r\n                refreshButton.classList.remove(\"spinner-grow\", \"spinner-grow-sm\")\r\n                refreshButton.classList.add(\"fa\", \"fa-refresh\")\r\n            }\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n                this.setState({ status: response.statusText })\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    var notremoved = data.filter(x => x.removed != true).sort((a, b) => {\r\n                        return a.basvuruTarihi < b.basvuruTarihi ? 1 : -1;\r\n                    });\r\n                    this.setState({ applist: notremoved, status: \"done\" });\r\n\r\n                    this.getcontrollerlist(notremoved);\r\n                });\r\n            }\r\n        });\r\n    }\r\n    showApplication(id) {\r\n        this.setState({ applist: this.state.applist, status: \"appdetails\", appid: id });\r\n    }\r\n\r\n    filterTable(event) {\r\n        const target = event.target;\r\n        const value = target.value.toLowerCase();\r\n        $(\"#myTable td.align-top div.border\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n            var t1 = removeTurkcLow($(this).text())\r\n            for (let index = 0; index < keywords.length; ++index)\r\n                if (t1.indexOf(removeTurkcLow(keywords[index])) == -1)\r\n                    return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    generateGroupList(data) {\r\n        var appglist = [];\r\n        data = data.filter(apprec => passFilter(apprec, this.filter, this.userName, this.kabulPerms) == true)\r\n        if (this.selectedDenetim != null)\r\n            data = data.filter(apprec => apprec.basvuruTipi == null || apprec.basvuruTipi.length == 0 || apprec.basvuruTipi == this.selectedDenetim)\r\n\r\n        for (var i = 0; i < this.appGroups.length + 1; i++)\r\n            appglist.push([]);\r\n        for (var i = 0; i < data.length; i++) {\r\n            var j = 0;\r\n            for (var j = 0; j < this.appGroups.length; j++)\r\n                if (this.appGroups[j].appState!=null && this.appGroups[j].appState.length > 0)\r\n                    if (this.appGroups[j].appState.split(\",\").includes(data[i].basvuruDurumu + \"\"))\r\n                        break;\r\n            appglist[j].push(data[i]);\r\n        }\r\n        return appglist;\r\n    }\r\n\r\n    handleDenetimChange() {\r\n        this.selectedDenetim = document.getElementById(\"denetimSelect\").value;\r\n        if (this.selectedDenetim.trim().length == 0)\r\n            this.selectedDenetim = null;\r\n\r\n        this.setState({ ...this.state, selectedDenetim: this.selectedDenetim });\r\n    }\r\n\r\n\r\n\r\n    findRowCount = (sab, tabledata) => {\r\n\r\n        var r = tabledata.filter(apprec =>\r\n            apprec.removed != true &&\r\n            passFilter(apprec, this.mysablons[sab].filter, this.userName, this.kabulPerms) == true && (this.selectedDenetim == null || this.selectedDenetim.appState == undefined || this.selectedDenetim.appState.split(\",\").includes(apprec.basvuruDurumu + \"\")));\r\n        return r.length;\r\n    }\r\n\r\n    renderToGroupCards(tabledata) {\r\n\r\n        var selectedSablonIndex = window.localStorage.getItem('sablon');\r\n        if (selectedSablonIndex == null)\r\n            selectedSablonIndex = 0;\r\n\r\n\r\n        var tablegdata = this.generateGroupList(tabledata);\r\n\r\n\r\n\r\n\r\n\r\n\r\n        var mytable = <div key={tabledata}>\r\n            <div className=\"  align-items-center justify-content-center  p-1\" >\r\n                <div class=\"row rounded-3 ms-2 me-2 p-2 justify-content-left bg-white\">\r\n\r\n                    <div class=\"col-md-3\">\r\n                        {this.denetimlist != null ? <select className=\"form-select form-select-sm\" id=\"denetimSelect\" name=\"denetimSelect\" onChange={this.handleDenetimChange}>\r\n                            <option value=\"\" selected></option> {this.denetimlist.map((s, idx) => <option value={s.name} > {s.name}</option>)}\r\n                        </select> : \"\"}\r\n                    </div>\r\n                    <div class=\"col-md-4\">\r\n                        <input className=\"form-control form-control-sm\" id=\"myInput\" type=\"text\" placeholder=\"Arama...\" onKeyUp={this.filterTable} />\r\n\r\n                    </div>\r\n                    <div className=\"col-5 text-end pt-2\">\r\n                        <a onClick={() => {\r\n                            this.getSablon();\r\n                            this.fetchDenetimList();\r\n                            this.getAppGroupList();\r\n                            this.getAppTypes();\r\n                        }} href=\"#\" className=\"text-primary\"> <i className=\"fa fa-refresh\" id=\"refreshButton\"></i></a>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"p-2\">\r\n                <div className=\"overflow-auto w-100 mainpagescroll\" style={{ \"white-space\": \"nowrap\" }}>\r\n                    {this.mysablons != null ? this.mysablons.map((s, idx) => <button className={\"btn  me-2 text-decoration-none border mb-1 mt-1\" + (selectedSablonIndex == idx ? \" btn-primary\" : \" btn-link\")} onClick={() => this.handleSablonChange(idx)}> {s.name} ({this.findRowCount(idx, tabledata)})</button>) : \"\"}\r\n                </div>\r\n            </div>\r\n\r\n\r\n            {/*<div className=\"mt-1 \" style={{ overflow: \"scroll\", width: \"100%\", height: \"80vh\", display: \"block\", \"overflow-x\": \"auto\", \"white-space\": \"nowrap\" }}>*/}\r\n            <div className=\"table-responsive mt-1 mainpagescroll\" style={{ \"transform\": \"rotateX(180deg)\" }}>\r\n\r\n                <table className=\"table\" id=\"myTable\" style={{ \"transform\": \"rotateX(180deg)\" }}>\r\n                    <tr className=\"m-0 p-0 text-center\">{this.appGroups.map((grec, idx) =>\r\n                        <th className=\"m-0 p-0\" style={{ \"width\": \"1%\", \"min-width\": \"17vw\" }}>\r\n                            <div className=\"border-4 ms-3 me-3 p-1 fw-bold text-dark\" style={{ \"border-bottom\": \"4px solid \" + this.bordercolors[grec.id % 4] }} >  {grec.name} ({tablegdata[idx].length})\r\n                            </div>\r\n\r\n                            {/* {Object.keys(mevki_statis[idx]).map(mev => <div className=\"text-muted m-0 p-0\"> {(mev==\"null\"|| mev==\"\")?\"Bilinmeyen\":mev} : {mevki_statis[idx][mev]} </div>)}*/}\r\n\r\n\r\n\r\n                        </th>)}\r\n                        <th className=\"m-0 p-0\" style={{ \"width\": \"1%\", \"min-width\": \"17vw\" }}>\r\n                            <div className=\"border-bottom border-4 ms-3 me-3 p-1 border-primary\"> Diğer ({tablegdata[tablegdata.length - 1].length})</div>\r\n                            {/* {Object.keys(mevki_statis[tablegdata.length - 1]).map(mev => <div className=\"text-muted m-0 p-0\"> {mev == \"null\" ? \"Bilinmeyen\" : mev} : {mevki_statis[tablegdata.length - 1][mev]} </div>)}*/}\r\n\r\n                        </th>\r\n                    </tr>\r\n\r\n\r\n                    <tr className=\"\">\r\n                        {tablegdata.map(grec =>\r\n                            <td className=\"align-top\">\r\n                                {grec.map(apprec => <AppCard appTypes={this.appTypes} apprec={apprec} colnames={this.state.colnames} changeComponent={this.changeComponent} />\r\n                                )}\r\n                            </td>\r\n\r\n                        )} </tr>\r\n                </table>\r\n            </div>\r\n        </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n    render() {\r\n        var tabledata = <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" >\r\n            <div className=\"spinner-border\" ></div>\r\n        </div>\r\n        if (this.state.applist != null) {\r\n            tabledata = <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n            if (this.state.applist.length > 0) {\r\n                if (this.appGroups.length > 0 && this.state.showgroups == false && this.kabulPerms!=null) {\r\n                    tabledata = this.renderToGroupCards(this.state.applist);\r\n                }\r\n            }\r\n        }\r\n\r\n        return <div style={{ \"background-color\": \"#f5f8fa\" }}>\r\n            {tabledata}\r\n        </div>\r\n\r\n\r\n\r\n    }\r\n\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useGlobalState, logout, showErrorMessage, removeTurkcLow } from '../GlobalState.js';\r\n\r\n\r\n\r\nexport default function NotePanel(props) {\r\n\r\n    const [appData, setData] = useState(props.appData);\r\n    // const setLastNote = props.appData[1];\r\n    const [notes, setNotes] = useState([]);\r\n    const [userName, setuserName] = useGlobalState('userName');\r\n    var panelid = \"notetable\";\r\n    if (props.panelid != null) {\r\n        panelid = props.panelid;\r\n    }\r\n\r\n    var reccount = 0;\r\n\r\n    const removeRecord = (id) => {\r\n        fetch(\"removeapplicationnotes\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(response.statusText)\r\n                })\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setNotes(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    if (notes.length > 0) {\r\n        if (document.getElementById(\"headlastnote\") != null)\r\n            document.getElementById(\"headlastnote\").innerHTML = notes[notes.length - 1].note;\r\n    }\r\n\r\n    const fetchNotes = (e) => {\r\n        fetch(\"getapplicationnotes\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: appData.id\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                showErrorMessage(response.statusText)\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setNotes(data)\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    useEffect(() => {\r\n        fetchNotes();\r\n    }, [props.appData])  //this is to force chid refresh when parent chnge appdata\r\n\r\n\r\n\r\n    const addNot = () => {\r\n        fetch(\"addnote\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({ appId: appData.id, note: document.getElementById(panelid + \"not\").value })\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                showErrorMessage(response.statusText)\r\n            }\r\n            else {\r\n                document.getElementById(panelid + \"not\").value = \"\";\r\n                fetchNotes();\r\n            }\r\n        });\r\n    }\r\n\r\n    return (\r\n        <div className=\" rounded \">\r\n            <div className=\"row\">\r\n                <div className=\"col-md-10 col-12\">\r\n                    <h5 className=\"text-primary\">Notlar </h5>\r\n\r\n                </div>\r\n                <div className=\"col-md-2 col-12 justify-content-end align-items-end text-end \">\r\n                    {notes.length > 0 && <span className=\"small badge bg-primary rounded-pill me-2\">{notes.length}</span>}\r\n\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\"col-12\">\r\n                    <div className=\"mb-4\">\r\n\r\n                        <input type=\"text\" className=\"form-control form-control-sm w-75 d-inline-block\" id={panelid + \"not\"} placeholder=\"Yeni Not\" name=\"not\" defaultValue=\"\" />\r\n                        <button type=\"button\" onClick={() => addNot()} className=\"btn btn-primary btn-sm ms-2 d-inline-block\">Ekle</button>&nbsp;\r\n\r\n                    </div>\r\n                    <table className=' table table-striped  border table-sm' aria-labelledby=\"tabelLabel\">\r\n                        <tbody >\r\n                            {notes.map(rec => <tr><td width=\"32px\">\r\n                                <img className=\"rounded-circle\" style={{ 'width': '32px', 'height': '32px' }} src={'/getuserpic?user=' + rec.userName} />\r\n                            </td>\r\n                                <td width=\"20%\"> {rec.userName} </td><td> {rec.note}</td><td width=\"25%\"> {rec.sendDate}</td>\r\n\r\n                                <td width=\"70px\">\r\n                                    <button disabled={removeTurkcLow(rec.userName) != removeTurkcLow(userName)} onClick={() => removeRecord(rec.id)}  className=\"btn btn-link btn-sm text-decoration-none m-0 p-0 text-muted\"><span className=\"text-decoration-none material-icons align-middle text-danger\" >delete</span></button>\r\n                                </td>\r\n                            </tr>\r\n                            )}\r\n                            {(appData.iadeEden != null && appData.iadeNedeni != null) && <tr><td width=\"32px\">\r\n                                <img className=\"rounded-circle\" style={{ 'width': '32px', 'height': '32px' }} src={'/getuserpic?user=' + appData.iadeEden} />\r\n                            </td>\r\n                                <td width=\"20%\"> {appData.iadeEden} </td><td> {appData.iadeNedeni}</td><td width=\"25%\"> {appData.iadeTarihi}</td>\r\n\r\n                                <td width=\"70px\" className=\"text-danger fw-bold\">\r\n                                    İade Notu\r\n                                 </td>\r\n                            </tr>  }\r\n\r\n\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        </div >\r\n    );\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { isEmpty, showErrorMessage, useGlobalState, sendpost } from '../GlobalState.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport Vekalet from '../Application/Vekalet.js';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default function EImzaTekrar(props) {\r\n    var appData = props.appData;\r\n    const eimza = props.eimza;\r\n    const VizeKontrol = props.VizeKontrol;\r\n    const [imzalayanlist, setimzalayanlist] = useState([]);\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [imzalayabilenler, setImzalayabilenler] = useState([]);\r\n    const [vizekontrolValue, setvizekontrolValue] = useState(null);\r\n\r\n    const colors = [\"text-warning\", \"text-success\"]\r\n    var [showFromAllApps, setShowFromAllApps] = useState(false);\r\n\r\n    useEffect(() => {\r\n        getimzalayabilenler();\r\n        getimzalistesi();\r\n        $('#activepaneldiv').animate({ scrollTop: 0 }, 500);\r\n        //     document.getElementById(\"activepaneldiv\").scrollTo(0, 0)\r\n    }, [])\r\n\r\n    const getimzalistesi = () => {\r\n        //  document.getElementById(\"imzalistspin\" + e.id).hidden = false;\r\n        fetch(\"imzalayanlist\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(eimza.id + \"\")\r\n        }).then(async response => {\r\n            //  document.getElementById(\"imzalistspin\" + e.id).hidden = true;\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setimzalayanlist(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n   \r\n\r\n\r\n    const adayEkle = (rec) => {\r\n        var imazalayan = rec;\r\n        var maxSira = 0;\r\n        imzalayanlist.forEach(x => maxSira = Math.max(maxSira, x.sira))\r\n\r\n        if (rec.id == null) {\r\n            imazalayan = { eimzaid: props.eimza.id + \"\", sira: maxSira + 1, userName: rec.userName, tc: rec.tc, rol: rec.selectedRol, name: rec.Name, family: rec.Family }\r\n            if (VizeKontrol != true && imzalayanlist.filter(x => x.userName == rec.userName && x.rol == imazalayan.rol).length > 0) {\r\n                showErrorMessage(\"Adayı imza listesinde bulunmaktadır.\");\r\n                return;\r\n            }\r\n            if (VizeKontrol == true && isEmpty(vizekontrolValue)) {\r\n                showErrorMessage(\"Vize Kontol Türünü Seçiniz\");\r\n                return;\r\n            }\r\n            if (!isEmpty(vizekontrolValue))\r\n                imazalayan.vizeKontrolTur = vizekontrolValue;\r\n\r\n        }\r\n       \r\n\r\n        sendpost(\"imzalayanekle\", imazalayan, \"snipper1\", (response) => {\r\n            response.json().then(value => {\r\n                setimzalayanlist(value);\r\n            })\r\n        })\r\n\r\n    }\r\n\r\n\r\n    const adaySil = (rec) => {\r\n        document.getElementById(\"snipper1\").hidden = false;\r\n        fetch(\"imzalayancikar\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            document.getElementById(\"snipper1\").hidden = true;\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setimzalayanlist(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getimzalayabilenler = () => {\r\n        fetch(\"imzalaybilenler\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(appData.id)\r\n        }).then(async response => {\r\n            if (!response.ok) { ajaxFail(response); }\r\n            else {\r\n                response.json().then(value => {\r\n\r\n                    setImzalayabilenler(JSON.parse(value));\r\n                })\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const adaylar = () => {\r\n        imzalayabilenler.forEach(rec => {\r\n            rec.selectedRol = rec.Rol;\r\n            if (rec.Rol != null && rec.Rol.includes(',')) {\r\n                rec.selectedRol = rec.Rol.split(\",\")[0];\r\n            }\r\n        })\r\n        return <div className=\"m-2 p-3  border border-rounded rounded-3 bg-white\" >\r\n            <h6>E-İmza Adayları (Eklenebilir Kişiler)</h6>\r\n            <div className='' >\r\n                <input className=\"form-check-input\" type=\"checkbox\" name=\"Kabul\" defaultChecked={false} onChange={(e) => setShowFromAllApps(e.target.checked)} /> Aynı Konuma Yapılan Diğer Başvuruların da Adaylarını Göster\r\n            </div>\r\n\r\n            {VizeKontrol == true &&\r\n                <div className=\"row mt-3\" >\r\n                    <div className=\"col-12 col-md-2 \" >\r\n                        Vize Kontol Türü\r\n                    </div>\r\n                    <div className=\"col-12 col-md-10\" >\r\n                        <div >\r\n                            <select className=\"form-select form-select-sm selectpicker\" style={{ \"maxWidth\": \"400px\" }} onChange={(e) => { setvizekontrolValue(e.target.value) }} hidden={VizeKontrol != true}>\r\n\r\n                                <option value=\"\"></option>\r\n                                <option value=\"Toprak\">Toprak</option>\r\n                                <option value=\"Zemin aplikasyon\">Zemin aplikasyon</option>\r\n                                <option value=\"Temel\">Temel</option>\r\n                                <option value=\"Bodrum\">Bodrum</option>\r\n                                <option value=\"Subasman\">Subasman</option>\r\n                                <option value=\"Kat\">Kat</option>\r\n                                <option value=\"Çatı\">Çatı</option>\r\n                                <option value=\"Su yalıtımı\">Su yalıtımı</option>\r\n                                <option value=\"Isı yalıtımı\">Isı yalıtımı</option>\r\n                                <option value=\"Kanalizasyon\">Kanalizasyon/Fosseptik</option>\r\n                                <option value=\"Mekanik tesisat\">Mekanik tesisat</option>\r\n                                <option value=\"Elektrik\">Elektrik/İletişim tesisatı</option>\r\n                            </select>\r\n                        </div>\r\n                    </div>\r\n\r\n                </div>}\r\n\r\n\r\n            <div className=\"mt-1\">\r\n                <div className=\"table-responsive\">\r\n                    <table className='table mt-3 table-vdstriped' aria-labelledby=\"tabelLabel\">\r\n                        <thead >\r\n                            <th className='text-start'> İsim\r\n                            </th>\r\n                            <th className='text-start'>\r\n                                Soyisim\r\n                            </th >\r\n                            <th className='text-start'>\r\n                                TC\r\n                            </th>\r\n                            <th className='text-start'>\r\n                                Rol\r\n                            </th>\r\n                            <th className='text-start'>\r\n                                E-İmza\r\n                            </th>\r\n                        </thead>\r\n                        <tbody id=\"myTable\">\r\n                            {imzalayabilenler.filter(rec => (showFromAllApps == true || rec.appID == appData.id)).map(rec =>\r\n\r\n                                <tr className=\"p-1\">\r\n                                    <td>\r\n                                        {rec.Name}\r\n                                    </td>\r\n                                    <td>\r\n                                        {rec.Family}\r\n                                    </td>\r\n                                    <td>\r\n                                        {rec.tc}\r\n                                    </td>\r\n                                    <td>\r\n                                        {(rec.Rol != null && rec.Rol.includes(',')) ?\r\n                                            <select className=\"form-select form-select-sm d-inline-block me-2\" onChange={(e) => rec.selectedRol = e.target.value} >\r\n                                                {rec.Rol.split(\",\").map(u => <option value={u}>{u}</option>)}\r\n                                            </select>\r\n                                            : rec.Rol\r\n                                        }\r\n                                    </td>\r\n                                    <td>\r\n                                        {rec.eimza == true ? \"Evet\" : \"Hayır\"}\r\n                                    </td>\r\n                                    <td>\r\n                                        <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }} className=\"text-end\">\r\n                                            {rec.vekil != null && rec.mappingID >= 0 && <button className={\"btn  btn-link text-decoration-none pe-1 \" + colors[rec.vekil]} title=\"Vekalet Bilgisi\" onClick={(e) => { props.setActivePanel(<Vekalet appData={appData} setActivePanel={props.setActivePanel} mapping={{ id: rec.mappingID, userName: rec.userName, muellifType: rec.Rol }} />) }}  > <i class=\"fa fa-vimeo-square\" aria-hidden=\"true\"></i>   </button>}&nbsp;\r\n                                            <a hidden={rec.tc == null || rec.tc.length == 0 || rec.eimza != true} href=\"#\" onClick={() => { adayEkle(rec) }} className=\" text-decoration-none text-primary\"><i className=\"fa fa-plus-circle align-middle\" style={{ \"font-size\": \"22px\" }}></i></a>\r\n                                        </div>\r\n                                    </td>\r\n\r\n\r\n                                    {/*<td>*/}\r\n                                    {/*    <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }}>*/}\r\n                                    {/*        <a hidden={rec.tc == null || rec.tc.length == 0 || rec.eimza != true} href=\"#\" onClick={() => { adayEkle(rec) }} className=\" text-decoration-none \"><i className=\"fa fa-plus-circle align-middle\" style={{ \"font-size\": \"22px\" }}></i></a>*/}\r\n                                    {/*    </div>*/}\r\n                                    {/*</td>*/}\r\n                                </tr>\r\n                            )}\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n            </div>\r\n        </div >\r\n    }\r\n\r\n    var maxSira = 0;\r\n    imzalayanlist.forEach(x => maxSira = Math.max(maxSira, x.sira))\r\n    if (imzalayanlist.filter(x => x.sira == maxSira).length > 1)\r\n        maxSira++;\r\n    var iz2 = imzalayanlist.sort((a, b) => a.sira - b.sira)\r\n\r\n\r\n\r\n    return <div className=\"p-0\">\r\n        <div className=\"row\">\r\n            <div className=\"col-10\">\r\n                <h6 className=\"text-primary fw-bold\">{VizeKontrol == true ? \"Vize Kontrolü\" : \"Adayları Güncelle\"} ({props.eimza.id})</h6>\r\n            </div >\r\n            <div className=\"col-2 text-end\">\r\n                <button className=\"btn btn-sm btn-link text-decoration-none p-0 me-1\" type=\"button\" onClick={() => props.setActivePanel(props.source)} title=\"kapat\"> <i class=\"fa fa-close\" style={{ \"font-size\": \"18px\" }}></i></button>\r\n\r\n            </div >\r\n        </div >\r\n        <div className=\"table-responsive m-2 p-3 mt-2  border border-rounded rounded-3 bg-white\">\r\n            <div className=\"row\">\r\n                <div className=\"col-8\">\r\n                    <h6>E-İmza Listesi (Seçilen Kişiler)</h6>\r\n                </div >\r\n                <div className=\"col-4 text-end\">\r\n                    <span class=\"spinner-border spinner-border-sm\" id=\"snipper1\" hidden></span>\r\n                </div >\r\n            </div >\r\n\r\n            <table className='table  mt-3 table-vdstriped p-0' aria-labelledby=\"tabelLabel\">\r\n                <tbody id=\"myTable\">\r\n                    {iz2.map((rec, idx) =>\r\n\r\n                        <tr className={\"p-1 \" + ((rec.imzatarih != null && rec.imzatarih.length > 0) ? \"text-success fw-bold\" : \"\")}>\r\n                            <td>\r\n                                {rec.imzatarih == null && <div>\r\n\r\n                                    <button disabled={rec.sira <= 1} type=\"button\" className=\"btn btn-link p-0 m-0 shadow-none\" onClick={(e) => {\r\n                                        rec.sira--;\r\n\r\n                                        adayEkle(rec)\r\n                                    }} >\r\n                                        <span class=\"material-icons\">\r\n                                            remove_circle\r\n                                        </span>\r\n                                    </button>\r\n                                    <button type=\"button\" className=\"btn btn-link p-0 m-0 shadow-none\" disabled={rec.sira >= maxSira} onClick={(e) => {\r\n                                        rec.sira++;\r\n                                        adayEkle(rec)\r\n                                    }}>\r\n                                        <span class=\"material-icons\">\r\n                                            add_circle\r\n                                        </span>\r\n                                    </button>\r\n\r\n                                </div>}\r\n                            </td>\r\n\r\n                            <td>\r\n                                {rec.sira}\r\n                            </td>\r\n                            <td>\r\n                                {rec.name}\r\n                            </td>\r\n                            <td>\r\n                                {rec.family}\r\n                            </td>\r\n                            <td>\r\n                                {rec.tc}\r\n                            </td>\r\n                            <td>\r\n                                {rec.rol}\r\n                            </td>\r\n                            <td>\r\n                                {rec.vizeKontrolTur}\r\n                            </td>\r\n                            <td>\r\n                                {rec.imzatarih}\r\n                            </td>\r\n                            <td>\r\n                                {rec.imzatarih == null && <div style={{ \"overflow\": \"hidden\", \"white-space\": \"nowrap\" }}>\r\n                                    <a href=\"#\" onClick={() => { adaySil(rec) }} className=\" text-decoration-none \"><i className=\"fa  fa-trash align-middle text-danger\" style={{ \"font-size\": \"20px\" }}></i></a>\r\n                                </div>}\r\n                            </td>\r\n                        </tr>\r\n                    )}\r\n                </tbody>\r\n            </table>\r\n        </div>\r\n\r\n\r\n\r\n        <div>{adaylar()}\r\n\r\n        </div >\r\n\r\n    </div>\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { isEmpty, showErrorMessage } from '../GlobalState';\r\n\r\n\r\nexport default function SharedUsersPanel(props) {\r\n    var postdata = {};\r\n    const [shareduserList, setSharedUserList] = useState([]);\r\n\r\n    var appData = props.appData;\r\n    var showCompact = props.showCompact;\r\n\r\n\r\n    useEffect(() => {\r\n        fetchSharedUsers();\r\n\r\n    }, [])\r\n\r\n\r\n\r\n    var compactList = shareduserList.map((r, idx) => <img className=\"rounded-circle\" style={{ width: \"32px\", height: \"32px\" }} title={r.userName} src={\"/getuserpic?user=\" + r.userName} />)\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n    const fetchSharedUsers = () => {\r\n        fetch(\"getsharedusers\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(appData)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(value)\r\n                })\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setSharedUserList(value);\r\n                })\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n        var mytable =\r\n            <div className=\"table-responsive  mt-2\" >\r\n                <table className='table ' aria-labelledby=\"tabelLabel\">\r\n                <thead >\r\n                    <tr>\r\n\r\n                        <th className=\"text-start\"> Kullanıcı Adı</th>\r\n                        <th className=\"text-start\"> Yetki</th>\r\n                        <th className=\"text-start\"> Süre</th>\r\n                        <th className=\"text-start\"> Paylaşan</th>\r\n                        <th className=\"text-start\"> Paylaşma Tarihi</th>\r\n                        <th> </th>\r\n\r\n                    </tr>\r\n                </thead>\r\n                <tbody id=\"myTable\">\r\n\r\n\r\n                    {tabledata.map(r =>\r\n                        <tr key={r.id} >\r\n\r\n                            <td ><img className=\"rounded-circle\" style={{ width: \"32px\", height: \"32px\" }} src={\"/getuserpic?user=\" + r.userName} /> {r.userName}</td>\r\n                            <td >{r.sharingType}\r\n                            </td>\r\n                            <td >{r.deadline}\r\n                            </td>\r\n                            <td>{r.sharedBy}</td>\r\n                            <td>{r.sharingDate}</td>\r\n                            <td>  <button onClick={() => { Sil(r.id) }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button></td>\r\n                        </tr>\r\n                    )}\r\n                    <tr className=\"bg-white\">\r\n                        <td >\r\n                            <input type=\"text\" className=\"form-control form-control-sm d-inline-block\" placeholder=\"Kullanıcı Kodu\" name=\"muellifusername\" id=\"usercode\" defaultValue=\"\" />\r\n                        </td>\r\n                        <td >\r\n\r\n                            <div class=\"form-check form-check-inline\">\r\n                                <input class=\"form-check-input\" type=\"radio\" name=\"sharingType\" id=\"goruntule\" value=\"Görüntüleme\" defaultChecked={false}/>\r\n                                <label class=\"form-check-label\" for=\"inlineRadio1\" >Görüntüleme</label>\r\n                            </div>\r\n                            <div class=\"form-check form-check-inline\">\r\n                                <input class=\"form-check-input\" type=\"radio\" name=\"sharingType\" id=\"duzenle\" value=\"Düzenleme\" defaultChecked={false}/>\r\n                                <label class=\"form-check-label\" for=\"inlineRadio2\">Düzenleme</label>\r\n                            </div>\r\n                        </td>\r\n                        <td >\r\n                            <input className=\"form-control form-control-sm\" type=\"date\" name=\"deadline\" id=\"deadline\" placeholder=\"YYYY.MM.DD\"  />\r\n\r\n                        </td>\r\n                        <td > </td>\r\n                        <td > </td>\r\n                        <td>  <button onClick={addSharing} className=\"btn btn-sm btn-link text-decoration-none m-0 p-0\">Ekle</button></td>\r\n                    </tr>\r\n                </tbody>\r\n            </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n    const Sil = (id) => {\r\n        fetch(\"removesharing\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({ \"id\": id, \"secret\": appData.securityToken })\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(response.statusText + \"  \" + value)\r\n                })\r\n            }\r\n            else {\r\n                fetchSharedUsers();\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n    const addSharing = () => {\r\n        var sharingType = \"\"\r\n        if (document.getElementById(\"goruntule\").checked == true) {\r\n            sharingType = \"Görüntüleme\";\r\n        }\r\n        else if (document.getElementById(\"duzenle\").checked == true) {\r\n            sharingType = \"Düzenleme\";\r\n        }\r\n        else {\r\n            showErrorMessage(\"Paylaştığınız kullanıcının başvuruyu düzenleme yetkisine(dosya yükleme, silme, imzalama, paylaşma, vb) sahip olmasını istiyorsanız 'Düzenleme' yi seciniz. Hiç bir işlem yapmadan sadece dosyaları gorebilmesini istiyorsanız 'Görüntüleme' yi seçebilirsiniz.\")\r\n            return;\r\n        }\r\n\r\n\r\n        var deadline = document.getElementById(\"deadline\").value;\r\n        if (isEmpty(deadline) == false) {\r\n            deadline = deadline.replaceAll(\"-\", \"/\").replaceAll(\".\", \"/\");\r\n        }\r\n        fetch(\"addsharing\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify({ userName: document.getElementById(\"usercode\").value, appId: appData.id, sharingType: sharingType, deadline: deadline, sharedBy: appData.securityToken })\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    showErrorMessage(response.statusText + \"  \" + value)\r\n                })\r\n            }\r\n            else {\r\n                document.getElementById(\"usercode\").value = null;\r\n                document.getElementById(\"deadline\").value = null;\r\n                document.getElementById(\"goruntule\").checked = false;\r\n                document.getElementById(\"duzenle\").checked = false;\r\n                fetchSharedUsers();\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n\r\n    var listTable = \"\";\r\n    if (shareduserList != null) {\r\n        listTable = renderTable(shareduserList);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n\r\n    if (showCompact == null) {\r\n        compactList = <div className=\"p-1\">\r\n            <h5 style={{ color: \"#0098db\" }}>Paylaşılan Kullanıcılar</h5>\r\n            {listTable}\r\n        </div>\r\n    }\r\n    else {\r\n        compactList = <div > {compactList} </div>\r\n    }\r\n    return (compactList);\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { isEmpty, showSuccessMessage, useGlobalState } from '../GlobalState.js';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport PDFView from '../Application/PDFView';\r\nimport EImzaList from './EImzaList.js';\r\n\r\nexport default function EImzaDetails(props) {\r\n    const [e, setEimza] = useState(props.eimza);\r\n    const [role, setRole] = useGlobalState('role');\r\n\r\n    if (isEmpty(e.detectedPos) == false)\r\n        e.detectedPosObject = JSON.parse(e.detectedPos)\r\n\r\n\r\n    useEffect(() => {\r\n        document.getElementById(\"activepaneldiv\").scrollTo(0, 0)\r\n    }, [])\r\n\r\n    const getValue = (v) => {\r\n        if (isEmpty(v)) return null;\r\n        return v;\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n    const updateeimza = (detectedPos) => {\r\n        e.detectedPos = detectedPos;\r\n        e.detectedPosObject = null;\r\n        fetch(\"updateeimza\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n\r\n            },\r\n            body: JSON.stringify(e)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                     setEimza(data);\r\n                    if (detectedPos == \"UPDATEME\")\r\n                        return;\r\n\r\n                    if ((isEmpty(data.paftaRuhsatOnayKod) == false && hasloc(data,\"#ruhsatno\") == false) ||\r\n                        (isEmpty(data.paftaRuhsatTarih) == false && hasloc(data, \"#tarih\") == false) ||\r\n                        (isEmpty(data.kot) == false && hasloc(data, \"#kot\") == false) ||\r\n                        (isEmpty(data.fikra) == false && hasloc(data, \"#fikra\") == false) ||\r\n                        (isEmpty(data.bend) == false && hasloc(data, \"#bend\") == false) ||\r\n                        (isEmpty(data.madde) == false && hasloc(data, \"#madde\") == false)\r\n                    ) {\r\n                        props.setActivePanel(<PDFView Eimza={e} setActivePanel={props.setActivePanel} source=\"DETAL_UPDATE\" />);\r\n                        return;\r\n                    } \r\n\r\n\r\n                    showSuccessMessage(\"Guncelleme Başarılı\");\r\n                    \r\n                   \r\n                    \r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const hasloc = (data,text) => {\r\n        if (data.detectedPosObject == null) return false\r\n        var list = data.detectedPosObject.filter(x => x.text == text);\r\n        if (list.length > 0) {\r\n            return true\r\n        }\r\n        return false;\r\n    }\r\n\r\n\r\n    const getloc = (text) => {\r\n        if (e.detectedPosObject == null) return <span className='text-danger'> Tespit Edilmedi</span>\r\n\r\n\r\n        var list = e.detectedPosObject.filter(x => x.text == text);\r\n        if (list.length > 0) {\r\n            return <span className='text-success'> {list[0].x} , {list[0].y} </span>\r\n        }\r\n        return <span className='text-danger'> Tespit Edilmedi</span>\r\n    }\r\n\r\n    return <div >\r\n        <div className=\"row mb-1\"  >\r\n            <div className=\"col-3\">\r\n                <h6 className=\"text-primary \">E-İmza Ayarları</h6 >\r\n            </div>\r\n            <div className=\"col-6 text-center text-info\">\r\n                E-İmza ID: {e.id}\r\n            </div>\r\n            <div className=\"col-3 text-end\">\r\n                {isEmpty(e.imzatarih) == false && <a className=\"text-decoration-none align-middle me-2\" href={'getimzalidosya?eimzaid=' + e.id} download=\"eimza.pdf\"><i className=\"fa fa-cloud-download\" style={{ \"font-size\": \"20px\" }}></i>  </a>}\r\n                {role.indexOf(UserPermConstants.Imzaya_Açma) > -1 && <a className=\"text-decoration-none btn btn-link border-0 p-0 me-2\" onClick={() => props.setActivePanel(<PDFView Eimza={e} setActivePanel={props.setActivePanel} appData={props.appData}/>)} > <i class=\" fa fa-file-pdf-o\" aria-hidden=\"true\"></i></a>}\r\n                <button className=\"btn btn-sm btn-link text-decoration-none p-0 me-1\" type=\"button\" onClick={() => props.setActivePanel(<EImzaList appData={props.appData} setActivePanel={props.setActivePanel} />)} title=\"kapat\"> <i class=\"fa fa-close\" style={{ \"font-size\": \"18px\" }}></i></button>\r\n\r\n            </div>\r\n        </div>\r\n\r\n        <div class=\"row\">\r\n\r\n            <div class=\"col-12 text-end \">\r\n                <button type=\"button\" id=\"uygulabutton\" class=\"btn btn-sm btn-primary\" onClick={() => updateeimza(e.detectedPos)}>Uygula</button>\r\n                <div id={\"downloadspinner\"} className=\"spinner-border spinner-border-sm\" hidden>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n        <div class=\"row\">\r\n            <div class=\"col-12  fw-bold text-primary\">\r\n                Yasal Yazı Ayarları\r\n            </div>\r\n\r\n            <div class=\"row mt-1\">\r\n                <div class=\"col-2 \">X\r\n                    <input type=\"number\" className=\"form-control form-control-sm\" id=\"x_text\" defaultValue={e.x_text} name=\"x_text\" onChange={(ev) => e.x_text = getValue(ev.target.value)} />\r\n                </div>\r\n\r\n                <div class=\"col-2\">Y\r\n                    <input type=\"number\" className=\"form-control form-control-sm\" id=\"y_text\" defaultValue={e.y_text} name=\"y_text\" onChange={(ev) => e.y_text = getValue(ev.target.value)} />\r\n                </div>\r\n                <div class=\"col-2 \"> Alan Eni\r\n                    <input type=\"number\" className=\"form-control form-control-sm\" id=\"w_text\" defaultValue={e.w_text} name=\"w_text\" onChange={(ev) => e.w_text = getValue(ev.target.value)} />\r\n                </div>\r\n                <div class=\"col-2 \"> Alan Boyu\r\n                    <input type=\"number\" className=\"form-control form-control-sm\" id=\"h_text\" defaultValue={e.h_text} name=\"h_text\" onChange={(ev) => e.h_text = getValue(ev.target.value)} />\r\n                </div>\r\n\r\n                <div class=\"col-2\"> Font\r\n                    <input type=\"number\" className=\"form-control form-control-sm\" id=\"font_size\" defaultValue={e.font_size} name=\"y_qr\" onChange={(ev) => e.font_size = getValue(ev.target.value)} />\r\n                </div>\r\n\r\n            </div>\r\n\r\n            <div class=\"row mt-4\">\r\n                <div class=\"col-12  fw-bold text-primary\">\r\n                    QR Kod Ayarları\r\n                </div>\r\n                <div class=\"col-2\">X\r\n                    <input type=\"number\" className=\"form-control form-control-sm\" id=\"x_qr\" defaultValue={e.x_qr} name=\"x_qr\" onChange={(ev) => e.x_qr = getValue(ev.target.value)} />\r\n                </div>\r\n\r\n                <div class=\"col-2\">Y\r\n                    <input type=\"number\" className=\"form-control form-control-sm\" id=\"y_qr\" defaultValue={e.y_qr} name=\"y_qr\" onChange={(ev) => e.y_qr = getValue(ev.target.value)} />\r\n                </div>\r\n\r\n                <div class=\"col-2\">Ölçek\r\n                    <input type=\"number\" className=\"form-control form-control-sm\" id=\"scale_qr\" defaultValue={e.scale_qr} name=\"scale_qr\" onChange={(ev) => e.scale_qr = getValue(ev.target.value)} />\r\n                </div>\r\n\r\n\r\n\r\n            </div>\r\n            <div class=\"row mt-5\">\r\n                <div class=\"col-12  fw-bold text-primary\">\r\n                    Yapı Kullanma Numaraları ve Değerleri\r\n                </div>\r\n            </div>\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3 \">\r\n                    10. Belgenin onay tarihi\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"x_qr\" defaultValue={e.yapiBelgeOnay} name=\"yapiBelgeOnay\" onChange={(ev) => e.yapiBelgeOnay = getValue(ev.target.value)} />\r\n                </div>\r\n            </div>\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    11. Belge no\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"x_qr\" defaultValue={e.yapiBelgeNo} name=\"yapiBelgeNo\" onChange={(ev) => e.yapiBelgeNo = getValue(ev.target.value)} />\r\n                </div>\r\n            </div>\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    136. Onay kodu\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"x_qr\" defaultValue={e.yapiOnayKod} name=\"yapiOnayKod\" onChange={(ev) => e.yapiOnayKod = getValue(ev.target.value)} />\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n            <div class=\"row mt-5\">\r\n                <div class=\"col-12  fw-bold text-primary\">\r\n                    Ruhsat Numaraları ve Değerleri\r\n                </div>\r\n            </div>\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    10.Ruhsatın onay tarihi\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"x_qr\" defaultValue={e.ruhsatOnayTarih} name=\"ruhsatOnayTarih\" onChange={(ev) => e.ruhsatOnayTarih = getValue(ev.target.value)} />\r\n                </div>\r\n            </div>\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    11.Ruhsat no\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"x_qr\" defaultValue={e.ruhsatNo} name=\"ruhsatNo\" onChange={(ev) => e.ruhsatNo = getValue(ev.target.value)} />\r\n                </div>\r\n            </div>\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    27.Ruhsatın geçerlilik tarihi\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"x_qr\" defaultValue={e.ruhsatTarih} name=\"ruhsatTarih\" onChange={(ev) => e.ruhsatTarih = getValue(ev.target.value)} />\r\n                </div>\r\n            </div>\r\n\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    121.Onay kodu\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"x_qr\" defaultValue={e.ruhsatOnayKod} name=\"ruhsatOnayKod\" onChange={(ev) => e.ruhsatOnayKod = getValue(ev.target.value)} />\r\n                </div>\r\n            </div>\r\n\r\n\r\n            <div class=\"row mt-5\">\r\n                <div class=\"col-12  fw-bold text-primary\">\r\n                    Yıkım Ruhsatı Değerleri \r\n                </div>\r\n            </div>\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    12.Yıkım ruhsatının onay tarihi\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"x_qr\" defaultValue={e.yikimRuhsatOnayTarihi} name=\"yikimRuhsatOnayTarihi\" onChange={(ev) => e.yikimRuhsatOnayTarihi = getValue(ev.target.value)} />\r\n                </div>\r\n            </div>\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    13.Yıkım ruhsat no\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"x_qr\" defaultValue={e.yikimRuhsatNo} name=\"yikimRuhsatNo\" onChange={(ev) => e.yikimRuhsatNo = getValue(ev.target.value)} />\r\n                </div>\r\n            </div>\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    19. Yıkım ruhsatının geçerlilik tarihi\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"x_qr\" defaultValue={e.yikimRuhsatGecerlilikTarihi} name=\"yikimRuhsatGecerlilikTarihi\" onChange={(ev) => e.yikimRuhsatGecerlilikTarihi = getValue(ev.target.value)} />\r\n                </div>\r\n            </div>\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    73.Onay kodu\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"x_qr\" defaultValue={e.yikimOnayKod} name=\"yikimOnayKod\" onChange={(ev) => e.yikimOnayKod = getValue(ev.target.value)} />\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n\r\n            <div class=\"row mt-5\">\r\n                <div class=\"col-12  fw-bold text-primary\">\r\n                    Yanan ve Yıkılan Yapılar Formu \r\n                </div>\r\n            </div>\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    7.Formun onay tarihi\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"x_qr\" defaultValue={e.yananFormOnayTarih} name=\"yananFormOnayTarih\" onChange={(ev) => e.yananFormOnayTarih = getValue(ev.target.value)} />\r\n                </div>\r\n            </div>\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    8..Form no\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"x_qr\" defaultValue={e.yananFormNo} name=\"yananFormNo\" onChange={(ev) => e.yananFormNo = getValue(ev.target.value)} />\r\n                </div>\r\n            </div>\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    67.Onay kodu\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"x_qr\" defaultValue={e.yananOnayKod} name=\"yananOnayKod\" onChange={(ev) => e.yananOnayKod = getValue(ev.target.value)} />\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n            <div class=\"row mt-5\">\r\n                <div class=\"col-10  fw-bold text-primary\">\r\n                    Pafta Değerleri\r\n                </div>\r\n                <div class=\"col-2   text-primary text-end\">\r\n                    <a className=\"text-primary\" onClick={() => updateeimza(\"UPDATEME\")} href=\"#\" title=\"Yenile\"> <i className=\"\tfa fa-refresh\"></i></a>\r\n                </div>\r\n\r\n            </div>\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    #Ruhsat Tarih\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" defaultValue={e.paftaRuhsatTarih} id=\"paftaRuhsatTarih\" name=\"paftaRuhsatTarih\" onChange={(ev) => e.paftaRuhsatTarih = getValue(ev.target.value)} />\r\n                </div>\r\n                <div class=\"col-6\">\r\n                    {getloc(\"#tarih\")}\r\n                </div>\r\n            </div>\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    #Ruhsat No\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" defaultValue={e.paftaRuhsatOnayKod} id=\"paftaRuhsatOnayKod\" name=\"paftaRuhsatOnayKod\" onChange={(ev) => e.paftaRuhsatOnayKod = getValue(ev.target.value)} />\r\n                </div>\r\n                <div class=\"col-6\">\r\n                    {getloc(\"#ruhsatno\")}\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n\r\n            <div class=\"row mt-5\">\r\n                <div class=\"col-10  fw-bold text-primary\">\r\n                    Kot Krokisi Bilgileri\r\n                </div>\r\n\r\n            </div>\r\n\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    #Madde\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" defaultValue={e.madde} id=\"madde\" name=\"madde\" onChange={(ev) => e.madde = getValue(ev.target.value)} />\r\n                </div>\r\n                <div class=\"col-6\">\r\n                    {getloc(\"#madde\")}\r\n                </div>\r\n            </div>\r\n\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    #Bend\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" defaultValue={e.bend} id=\"bend\" name=\"bend\" onChange={(ev) => e.bend = getValue(ev.target.value)} />\r\n                </div>\r\n                <div class=\"col-6\">\r\n                    {getloc(\"#bend\")}\r\n                </div>\r\n            </div>\r\n\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    #Fikra\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" defaultValue={e.fikra} id=\"fikra\" name=\"fikra\" onChange={(ev) => e.fikra = getValue(ev.target.value)} />\r\n                </div>\r\n                <div class=\"col-6\">\r\n                    {getloc(\"#fikra\")}\r\n                </div>\r\n            </div>\r\n\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    #Kot\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" defaultValue={e.kot} id=\"kot\" name=\"kot\" onChange={(ev) => e.kot = getValue(ev.target.value)} />\r\n                </div>\r\n                <div class=\"col-6\">\r\n                    {getloc(\"#kot\")}\r\n                </div>\r\n            </div>\r\n\r\n            <div class=\"row mt-5\">\r\n                <div class=\"col-10  fw-bold text-primary\">\r\n                    İŞYERİ TESLİM TUTANAĞI\r\n                    \r\n\r\n                </div>\r\n\r\n            </div>\r\n\r\n            <div class=\"row  mt-1\">\r\n                <div class=\"col-3\">\r\n                    #Teslim Tarihi\r\n                </div>\r\n                <div class=\"col-3\">\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" defaultValue={e.kot} id=\"teslimtarihi\" name=\"teslimtarihi\" onChange={(ev) => e.teslimtarihi = getValue(ev.target.value)} />\r\n                </div>\r\n                <div class=\"col-6\">\r\n                    {getloc(\"#teslimtarihi\")}\r\n                </div>\r\n            </div>\r\n\r\n\r\n        </div>\r\n\r\n\r\n\r\n    </div>\r\n\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport axios from \"axios\";\r\nimport { setVisible, showErrorMessage } from '../GlobalState.js';\r\n\r\nexport default function UploadFile(props) {\r\n    var selectedfile;\r\n    const setfile = (e) => {\r\n        selectedfile = e.target.files[0];\r\n        var formData = new FormData();\r\n        formData.append(\"file\", selectedfile);\r\n        formData.append(\"caption\", props.username);\r\n        formData.append(\"typeID\", 0);\r\n        formData.append(\"appid\", 0);\r\n\r\n\r\n        var loadspin1 = document.getElementById(props.spinner);\r\n        if (loadspin1)\r\n            loadspin1.hidden = false;\r\n\r\n\r\n        axios.post(\r\n            props.target,\r\n            formData,\r\n            {\r\n                headers: {\r\n                    \"Content-type\": \"multipart/form-data\"\r\n                },\r\n            }\r\n        )\r\n            .then(async res => {\r\n                if (loadspin1)\r\n                    loadspin1.hidden = true;\r\n                // this.setState({ status: \"ok\" }); \r\n                if (props.setFiles != null) props.setFiles(res);\r\n                if (props.setSumbitResult != null)\r\n                    props.setSumbitResult(res);\r\n            })\r\n            .catch(err => {\r\n                showErrorMessage(err)\r\n            })\r\n    }\r\n\r\n\r\n\r\n    return (\r\n        <div >\r\n\r\n            <label for=\"formFile\" className=\"form-label text-primary pt-2\" role='button'><i class=\"fa fa-upload\"></i> </label>\r\n            <input class=\"form-control form-control-sm\" hidden type=\"file\" id=\"formFile\" placeholder={props.filelabel}\r\n                onChange={(e) => { setfile(e); }}\r\n            />\r\n\r\n        </div>\r\n    );\r\n\r\n\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail } from '../GlobalState.js';\r\n\r\nexport default function (props) {\r\n\r\n\r\n    const [refcounter, setRefcount] = useState(props.counter);\r\n\r\n\r\n    useEffect(() => {\r\n\r\n        const script = document.createElement(\"script\");\r\n        script.src = \"https://www.gstatic.com/charts/loader.js\";\r\n        script.async = true;\r\n        document.getElementById(\"myscript\").appendChild(script);\r\n        script.onload = () => {\r\n            window.google.charts.load('current', { 'packages': ['bar'] });\r\n            window.google.charts.setOnLoadCallback(getWorkLoadList);\r\n        }\r\n\r\n    }, [props.counter]);\r\n\r\n\r\n    const getWorkLoadList = () => {\r\n        fetch(\"getuserworkloads\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n                this.setState({ status: response.statusText })\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    var dataarray = [];\r\n                    var userstat = {}\r\n                    var colors = [\"color: #fff8dd\", \"color: #e8fff3\", \"color: #fff5f8\", \"color: #f8f5ff\"];\r\n                    dataarray.push(['', 'Toplam', 'Biten', 'Devam Eden', 'Sırada Bekleyen', 'Günllük Ortalama', { role: \"style\" }]);\r\n\r\n                    for (var i = 0; i < data.length; i++) {\r\n                        userstat[data[i].userName] = { toplam: 0, biten: 0, devam: 0, bekleyen: 0, ortalama: 0 }\r\n                    }\r\n\r\n                    for (var i = 0; i < data.length; i++) {\r\n                        userstat[data[i].userName].toplam++;\r\n                        if (data[i].started == null && data[i].completed == null)\r\n                            userstat[data[i].userName].bekleyen++;\r\n                        if (data[i].started != null && data[i].completed == null)\r\n                            userstat[data[i].userName].devam++;\r\n                        if (data[i].started != null && data[i].completed != null)\r\n                            userstat[data[i].userName].biten++;\r\n                    }\r\n                    for (var i = 0; i < data.length; i++) {\r\n                        userstat[data[i].userName].ortalama = userstat[data[i].userName].biten / 30.0;\r\n                    }\r\n\r\n                    var i = 0;\r\n                    for (var rec in userstat)\r\n                        dataarray.push([rec, userstat[rec].toplam, userstat[rec].biten, userstat[rec].devam, userstat[rec].bekleyen, userstat[rec].ortalama, colors[0]]);\r\n\r\n                    drawChart(dataarray, 'userstaticpanel2')\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const drawChart = (dataarray, target) => {\r\n        var data = window.google.visualization.arrayToDataTable(dataarray);\r\n        var options = {\r\n            colors: ['#2E4C6D', '#DADDFC', '#FC997C', '#66806A', '#7E8BD9', '#558D97', '#B4C6A6', '#FFC286', '#FFF1AF'],\r\n            chartArea: {\r\n                // leave room for y-axis labels\r\n                width: '90%'\r\n            },\r\n            hAxis: {\r\n                textStyle: {\r\n                    fontSize: 18\r\n\r\n                }\r\n\r\n            },\r\n            vAxis: {\r\n\r\n                textStyle: {\r\n                    fontSize: 18 // or the number you want\r\n                }\r\n\r\n            },\r\n            animation: {\r\n                duration: 1000,\r\n                easing: 'out',\r\n                \"startup\": true\r\n            },\r\n            height: 100 * dataarray.length,\r\n            width: '100%',\r\n            bars: 'horizontal' // Required for Material Bar Charts.\r\n\r\n        };\r\n        var chart = new window.google.charts.Bar(document.getElementById(target));\r\n        chart.draw(data, window.google.charts.Bar.convertOptions(options));\r\n\r\n    } \r\n    return (\r\n        <div className=\"border shadow rounded-2 border p-1 mt-1 me-2\" >\r\n            <div id=\"myscript\"></div>\r\n            <div className=\"row\">\r\n                <div className=\"col-7\">\r\n                    <h4 style={{ \"text-shadow\": \"0px 0px 1px grey\", color: \"#0098db\" }}>İş Yükü</h4>\r\n                </div>\r\n\r\n            </div>\r\n            <div id=\"userstaticpanel2\"></div>\r\n        </div>\r\n\r\n    );\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import { useLocation } from 'react-router-dom'\r\nimport React, { useState, useEffect } from 'react';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { showErrorMessage, useGlobalState } from '../GlobalState.js';\r\n\r\nexport default function UserPersonelData(props) {\r\n    const [userdata, setUserData] = useState(props.userdata);\r\n    const [role, setRole] = useGlobalState('role');\r\n   \r\n    const handleInputChange = (event) => {\r\n        const target = event.target.name;\r\n        const value = event.target.type === 'checkbox' ? event.target.checked : event.target.value;\r\n        userdata[target] = value;\r\n\r\n        if (event.target.type === 'checkbox' && event.target.id === \"karaliste\")\r\n            document.getElementById(\"karalistesure\").disabled = !event.target.checked;\r\n\r\n        if (event.target.type === 'checkbox' && event.target.id === \"denetimYetkisi\" && value == true) {\r\n            showErrorMessage(\"Yetki Turleri Denetim Yetkileri Panelinden Belirlenmelidir\")\r\n        }\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    return <div key={userdata}>\r\n            <div className=\"row\">\r\n                \r\n                <div className=\"col-3\">\r\n<h5>Kişisel Bilgileri</h5>\r\n                </div>\r\n                <div className=\"col-2\">\r\n                <img className=\"rounded-circle\" style={{ width: \"48px\", height: \"48px\" }} src={\"/getuserpic?user=\" + userdata.userName + \"&_=\" + Date.now()} />\r\n                       \r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row pt-4\">\r\n                <div className=\"col-3\">\r\n                    <label htmlFor=\"UserName\" className=\"form-label\">Kullanıcı Adı</label>\r\n                </div>\r\n                <div className=\"col-8\">\r\n                    <input readOnly type=\"text\" className=\"form-control col-9\" id=\"UserName\" placeholder=\"UserName\" name=\"userName\" onChange={handleInputChange} defaultValue={userdata.userName} />\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row pt-4\">\r\n                <div className=\"col-3\">\r\n                    <label htmlFor=\"UserName\" className=\"form-label\">T.C</label>\r\n                </div>\r\n            <div className=\"col-8\">\r\n                <input type=\"text\" maxLength=\"11\" className=\"form-control col-9\" id=\"tc\" placeholder=\"T.C\" name=\"tc\" onChange={handleInputChange} defaultValue={userdata.tc} disabled={userdata.edveletConfirmed == true && role.indexOf(UserPermConstants.Sabitlenen_Profil_Degistirme)==-1  } />\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row pt-4\">\r\n                <div className=\"col-3\">\r\n                    <label htmlFor=\"Name\" className=\"form-label\">Adı</label>\r\n                </div>\r\n                <div className=\"col-8\">\r\n                <input type=\"text\" className=\"form-control\" id=\"Name\" placeholder=\"Name\" name=\"name\" onChange={handleInputChange} defaultValue={userdata.name} disabled={userdata.edveletConfirmed == true && role.indexOf(UserPermConstants.Sabitlenen_Profil_Degistirme) == -1} />\r\n\r\n                </div>\r\n            </div>\r\n\r\n\r\n            <div className=\"row pt-4\">\r\n                <div className=\"col-3\">\r\n                    <label htmlFor=\"Family\" className=\"form-label\">Soyadı</label>\r\n                </div>\r\n                <div className=\"col-8\">\r\n                <input type=\"text\" className=\"form-control\" id=\"Family\" placeholder=\"Family\" name=\"family\" onChange={handleInputChange} defaultValue={userdata.family} disabled={userdata.edveletConfirmed == true && role.indexOf(UserPermConstants.Sabitlenen_Profil_Degistirme) == -1} />\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row pt-4\">\r\n                <div className=\"col-3\">\r\n                    <label htmlFor=\"Family\" className=\"form-label\">Doğum Tarihi</label>\r\n                </div>\r\n                <div className=\"col-8\">\r\n                    <input type=\"date\" className=\"form-control\" id=\"birthdate\" placeholder=\"Doğum Tarihi\" name=\"birthdate\" onChange={handleInputChange} defaultValue={userdata.birthdate} />\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row pt-4\">\r\n                <div className=\"col-3\">\r\n                    <label htmlFor=\"RegDate\" className=\"form-label\">Üyelik Tarihi</label>\r\n                </div>\r\n                <div className=\"col-8\">\r\n                    <input readOnly type=\"text\" className=\"form-control\" id=\"RegDate\" placeholder=\"RegDate\" name=\"regDate\" defaultValue={userdata.regDate} />\r\n                </div>\r\n            </div>\r\n\r\n            <button type=\"submit\" className=\"btn btn-primary btn-sm mt-4\">Güncelle</button>\r\n        </div>\r\n\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n","import { useLocation } from 'react-router-dom'\r\nimport React, { useState, useEffect } from 'react';\r\nimport { showErrorMessage } from '../GlobalState';\r\n\r\n\r\nexport default function UserMeslekData(props) {\r\n    const [userdata, setUserData] = useState(props.userdata);\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target.name;\r\n        const value = event.target.type === 'checkbox' ? event.target.checked : event.target.value;\r\n        userdata[target] = value;\r\n\r\n        if (event.target.type === 'checkbox' && event.target.id === \"karaliste\")\r\n            document.getElementById(\"karalistesure\").disabled = !event.target.checked;\r\n\r\n        if (event.target.type === 'checkbox' && event.target.id === \"denetimYetkisi\" && value == true) {\r\n            showErrorMessage(\"Yetki Turleri Denetim Yetkileri Panelinden Belirlenmelidir\")\r\n        }\r\n\r\n    }\r\n\r\n    return <div >\r\n        <div className=\"row\">\r\n            <h5>Meslek Bilgileri</h5>\r\n            <div className=\"col-3\">\r\n\r\n            </div>\r\n            <div className=\"col-2\">\r\n             </div>\r\n        </div>\r\n\r\n        <div className=\"row pt-4\">\r\n            <div className=\"col-3\">\r\n                <label htmlFor=\"UserName\" className=\"form-label\">Meslek</label>\r\n            </div>\r\n            <div className=\"col-8\">\r\n                <input  type=\"text\" className=\"form-control col-9\" id=\"meslek\" placeholder=\"Meslek\" name=\"meslek\" onChange={handleInputChange} defaultValue={userdata.meslek} />\r\n            </div>\r\n        </div>\r\n\r\n        <div className=\"row pt-4\">\r\n            <div className=\"col-3\">\r\n                <label htmlFor=\"UserName\" className=\"form-label\">Firma</label>\r\n            </div>\r\n            <div className=\"col-8\">\r\n                <input  type=\"text\" className=\"form-control col-9\" id=\"firma\" placeholder=\"Firma\" name=\"firma\" onChange={handleInputChange} defaultValue={userdata.firma} />\r\n            </div>\r\n        </div>\r\n\r\n        <div className=\"row pt-4\">\r\n            <div className=\"col-3\">\r\n                <label htmlFor=\"Name\" className=\"form-label\">Pozisyonu</label>\r\n            </div>\r\n            <div className=\"col-8\">\r\n                <input type=\"text\" className=\"form-control\" id=\"pozisyonu\" placeholder=\"Pozisyonu\" name=\"pozisyonu\" onChange={handleInputChange} defaultValue={userdata.pozisyonu} />\r\n\r\n            </div>\r\n        </div>\r\n\r\n\r\n        <div className=\"row pt-4\">\r\n            <div className=\"col-3\">\r\n                <label htmlFor=\"Family\" className=\"form-label\">Firma Konumu</label>\r\n            </div>\r\n            <div className=\"col-8\">\r\n                <input type=\"text\" className=\"form-control\" id=\"firmaKonumu\" placeholder=\"Firma Konumu\" name=\"firmaKonumu\" onChange={handleInputChange} defaultValue={userdata.firmaKonumu} />\r\n            </div>\r\n        </div>\r\n\r\n        <div className=\"row pt-4\">\r\n            <div className=\"col-3\">\r\n                <label htmlFor=\"Family\" className=\"form-label\">Firma Web Sitesi</label>\r\n            </div>\r\n            <div className=\"col-8\">\r\n                <input type=\"text\" className=\"form-control\" id=\"firmaWebSitesi\" placeholder=\"Firma Web Sitesi\" name=\"firmaWebSitesi\" onChange={handleInputChange} defaultValue={userdata.firmaWebSitesi} />\r\n            </div>\r\n        </div>\r\n\r\n        <button type=\"submit\" className=\"btn btn-primary btn-sm mt-4\">Güncelle</button>\r\n    </div>\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, sendpost } from '../GlobalState.js';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport bootstrap from 'bootstrap/dist/js/bootstrap.min.js'\r\n\r\n\r\nexport default function DenetimPermissionPanel(props) {\r\n    \r\n    const [listData, setListData] = useState([]);\r\n    const [denetimList, setdenetimList] = useState(props.denetimList.filter(x=>x.isadimi==true));\r\n    const multiselectRefNew = React.createRef();\r\n    var username = props.username;\r\n\r\n    const fetchList = () => {\r\n        fetch(\"getdenetimperms\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(username)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                   \r\n                })\r\n                \r\n            }\r\n        });\r\n    }\r\n\r\n   \r\n\r\n\r\n\r\n   \r\n\r\n\r\n    const Add = (item) => {\r\n        var postdata = {};\r\n        postdata.UserName = username;\r\n        postdata.DenetimId = item.id;\r\n        sendpost(\"mapdenetimtouser\", postdata, \"spin1\");\r\n       \r\n    }\r\n\r\n    const Sil = (denetim) => {\r\n        var postdata = {}\r\n        postdata.UserName = username;\r\n        postdata.denetimId = denetim.id;\r\n        sendpost(\"removedenetimfromuser\", postdata, \"spin1\");\r\n    }\r\n\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n        var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"popover\"]'))\r\n        var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n            return new bootstrap.Popover(popoverTriggerEl)\r\n        })\r\n    }, [])\r\n   \r\n    var selectedids = listData.map(x => x.id);\r\n\r\n    return (\r\n        <div >\r\n            <div className=\"row\">\r\n                <div className=\"col-8\">\r\n                    <h6>İş Adımı Yetkileri\r\n                        <button type=\"button\" className=\"btn btn-secondary btn-sm fw-bold pt-0 pb-0 mt-0 ms-2\" id=\"mypopover2\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\" title=\"AÇIKLAMA\" data-bs-content=\"Kontrolörlere hangi iş adımlarının havale edilebileceğini seçebilirsiniz. Her kontrolöre sadece burada yer alan iş adımlarından havale yapılabilir.\">?</button>\r\n                   </h6>\r\n                </div>\r\n\r\n                <div className=\"col-4 text-end\">\r\n                    <span className=\"spinner-border spinner-border-sm ms-3\" id=\"spin1\" hidden>   </span>\r\n                </div>\r\n            </div>\r\n            <Multiselect className=\"p-0 ps-1 form-control-sm bg-white mb-2\"\r\n                options={denetimList}\r\n                emptyRecordMsg=\"Başka Kayıt Yok\"\r\n                displayValue=\"name\"\r\n                isObject={true}\r\n                closeOnSelect={true}\r\n                ref={multiselectRefNew}\r\n                selectedValues={listData}\r\n                avoidHighlightFirstOption={true}\r\n                onSelect={(selectedList, item) => { Add(item) }} \r\n                onRemove={(selectedList, item) => { Sil(item) }}\r\n            />\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, sendpost, useGlobalState } from '../GlobalState.js';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport bootstrap from 'bootstrap/dist/js/bootstrap.min.js'\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\n\r\nexport default function ListAppTypePermission(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState([]);\r\n    const [denetimList, setDenetimList] = useState(props.denetimList);\r\n    var username = props.username;\r\n    const multiselectRefNew = React.createRef();\r\n    const [role, setRole] = useGlobalState('role');\r\n\r\n    const fetchList = () => {\r\n        fetch(\"applistperms\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(username)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n\r\n                })\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    const Add = (item) => {\r\n        var postdata = {};\r\n        postdata.UserName = username;\r\n        postdata.appType = item.id;\r\n        sendpost(\"addapplistperm\", postdata, \"spin2\");\r\n    }\r\n\r\n    const Sil = (postdata) => {\r\n        sendpost(\"removeapplistperm\", listData.find(x => x.appType == postdata.id), \"spin2\");\r\n\r\n    }\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n        var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"popover\"]'))\r\n        var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n            return new bootstrap.Popover(popoverTriggerEl)\r\n        })\r\n    }, [])\r\n\r\n\r\n\r\n    var selectedids = listData.map(x => x.appType);\r\n    if (denetimList != null) {\r\n        selectedids.forEach(s => {\r\n            if (denetimList.find(x => x.id == s) == null) {\r\n                denetimList.push({ id: s, name: \"Bilinmeyen Başvuru Tipi\" })\r\n            }\r\n        })\r\n    }\r\n    return (\r\n        <div >\r\n            <div className=\"row\">\r\n                <div className=\"col-8\">\r\n                    <h6>Başvuru Listesi Yetkileri\r\n                        <button type=\"button\" className=\"btn btn-secondary btn-sm fw-bold pt-0 pb-0 mt-0 ms-2\" id=\"mypopover2\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\" title=\"AÇIKLAMA\"\r\n                            data-bs-content=\"Kullanıcının görebileceği başvurular, burada seçilecek başvuru tipleri ile kısıtlanır.\">\r\n                            ?</button>\r\n                    </h6>\r\n                </div>\r\n                <div className=\"col-4 text-end\">\r\n                    <span className=\"spinner-border spinner-border-sm ms-3\" id=\"spin2\" hidden>   </span>\r\n                </div>\r\n            </div>\r\n\r\n            {role.indexOf(UserPermConstants.Gizli_Aktiviteleri_Gorme) == -1 && <span>\r\n                Bu alanda başvuru tiplerinde kısıtlama yapabilmek için öncelikle Kullanıcı Rolleri ekranından kullanıcıya \"Tüm Başvuruları Görme\" yetkisi verilmelidir\r\n            </span>}\r\n\r\n\r\n            <Multiselect className=\"p-0 ps-1 form-control-sm bg-white mb-2\"\r\n                options={denetimList}\r\n                emptyRecordMsg=\"Başka Kayıt Yok\"\r\n                displayValue=\"name\"\r\n                isObject={true}\r\n                closeOnSelect={true}\r\n                ref={multiselectRefNew}\r\n                selectedValues={denetimList.filter(x => selectedids.includes(x.id))}\r\n                avoidHighlightFirstOption={true}\r\n                onSelect={(selectedList, item) => { Add(item) }}\r\n                onRemove={(selectedList, item) => { Sil(item) }}\r\n            />\r\n\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, sendpost } from '../GlobalState.js';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport bootstrap from 'bootstrap/dist/js/bootstrap.min.js'\r\n\r\n\r\nexport default function KabulAppTypePermission(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState([]);\r\n    const [denetimList, setDenetimList] = useState(props.denetimList);\r\n    var username = props.username;\r\n    const multiselectRefNew = React.createRef();\r\n    \r\n    const fetchList = () => {\r\n        fetch(\"kabullistperms\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(username)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                    \r\n                })\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n   \r\n    var selectedids = listData.map(x => x.appType);\r\n\r\n\r\n  \r\n\r\n    const Add = (item) => {\r\n       \r\n        var postdata = {};\r\n        postdata.UserName = username;\r\n        postdata.appType = item.id;\r\n        sendpost(\"addkabullistperm\", postdata, \"spin3\");\r\n\r\n       \r\n    }\r\n\r\n    const Sil = (a) => {\r\n        sendpost(\"removekabullistperm\", listData.find(x => x.appType == a.id), \"spin3\");\r\n       \r\n    }\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n        var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"popover\"]'))\r\n        var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n            return new bootstrap.Popover(popoverTriggerEl)\r\n        })\r\n    }, [])\r\n\r\n\r\n\r\n    return (\r\n        <div >\r\n            <div className=\"row\">\r\n                <div className=\"col-8\">\r\n                    <h6>Başvuru Kabul Yetkileri\r\n                        <button type=\"button\" className=\"btn btn-secondary btn-sm fw-bold pt-0 pb-0 mt-0 ms-2\" id=\"mypopover2\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\" title=\"AÇIKLAMA\" data-bs-content=\"Kullanıcının hangi başvuruları kabul edebileceğini buradan kısıtlayabilirsiniz.\">?</button>\r\n\r\n                    </h6>\r\n                </div>\r\n                <div className=\"col-4 text-end\">\r\n                    <span className=\"spinner-border spinner-border-sm ms-3\" id=\"spin3\" hidden>   </span>\r\n                </div>\r\n            </div>\r\n            <Multiselect className=\"p-0 ps-1 form-control-sm bg-white mb-2\"\r\n                options={denetimList}\r\n                emptyRecordMsg=\"Başka Kayıt Yok\"\r\n                displayValue=\"name\"\r\n                isObject={true}\r\n                closeOnSelect={true}\r\n                ref={multiselectRefNew}\r\n                selectedValues={denetimList.filter(x => selectedids.includes(x.id))}\r\n                avoidHighlightFirstOption={true}\r\n                onSelect={(selectedList, item) => { Add(item) }}\r\n                onRemove={(selectedList, item) => { Sil(item) }}\r\n            />\r\n\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import { useLocation } from 'react-router-dom'\r\nimport React, { useState, useEffect } from 'react';\r\nimport { showErrorMessage, useGlobalState } from '../GlobalState.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport DenetimPermissionPanel from './DenetimPermissionPanel.js';\r\nimport ListAppTypePermission from './ListAppTypePermission.js';\r\n\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport KabulAppTypePermission from './KabulAppTypePermission.js';\r\n\r\nexport default function UserTypeData(props) {\r\n    const [userdata, setUserData] = useState(props.userdata);\r\n    const [role, setRole] = useGlobalState('role');\r\n    const multiselectUserTypeRef = React.createRef();\r\n    const multiselectPermRef = React.createRef();\r\n    const [options, setOptions] = useState(null);\r\n    const [rolelist, setRollist] = useState(null);\r\n    const [denetimList, setDenetimList] = useState([]);\r\n\r\n    useEffect(() => {\r\n        fetchUserTypeList();\r\n        fetchRoles();\r\n        fetchDenetimList();\r\n    }, [])\r\n\r\n\r\n    const fetchRoles = () => {\r\n        fetch(\"getrolelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setRollist(value)\r\n                })\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const fetchDenetimList = () => {\r\n        fetch(\"denetimlist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n\r\n                    setDenetimList(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchUserTypeList = () => {\r\n\r\n        fetch(\"getusertypelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    var i = 0;\r\n                    var opts = [];\r\n                    for (i = 0; i < value.length; i++) {\r\n                        opts.push(value[i].appType)\r\n\r\n                    }\r\n                    setOptions(opts.sort())\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target.name;\r\n        const value = event.target.type === 'checkbox' ? event.target.checked : event.target.value;\r\n        userdata[target] = value;\r\n\r\n        if (event.target.type === 'checkbox' && event.target.id === \"karaliste\")\r\n            document.getElementById(\"karalistesure\").disabled = !event.target.checked;\r\n\r\n        if (event.target.type === 'checkbox' && event.target.id === \"gecicimuellif\") {\r\n            if (event.target.checked != true) {\r\n                document.getElementById(\"gecicisure\").value = \"\";\r\n                userdata[\"gecicisure\"] = \"\";\r\n            }\r\n            document.getElementById(\"gecicisure\").disabled = !event.target.checked;\r\n\r\n        }\r\n\r\n        if (event.target.type === 'checkbox' && event.target.id === \"denetimYetkisi\" && value == true) {\r\n            showErrorMessage(\"Yetki Turleri Denetim Yetkileri Panelinden Belirlenmelidir\")\r\n        }\r\n        return true;\r\n    }\r\n\r\n    const onSelect = (selectedList, selectedItem) => {\r\n        var clist = selectedList.join();\r\n        userdata[\"userType\"] = clist;\r\n\r\n    }\r\n\r\n    const onRemove = (selectedList, removedItem) => {\r\n        var clist = selectedList.join();\r\n        userdata[\"userType\"] = clist;\r\n       \r\n    }\r\n\r\n\r\n\r\n    return <div >\r\n        <div className=\"row\">\r\n            <h5> Kullanıcı Tipi ve Yetkileri</h5>\r\n        </div>\r\n\r\n\r\n\r\n        {(options == null || rolelist == null) ?\r\n            <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n\r\n            :\r\n            <fieldset className=\" ms-1 me-1 mt-3\">\r\n                <div className=\"row mb-1 mt-1 \">\r\n\r\n                    <div className='col-3' >\r\n                        <label htmlFor=\"Tel\" className=\"form-label\">Kullanıcı Tipi/Sıfatı</label>\r\n                    </div>\r\n                    <div className='col-8' >\r\n                        <Multiselect className=\"p-0 ps-1 form-control-sm bg-white\" id=\"kullanicitiplerim\"\r\n                            options={options}\r\n                            placeholder=\"Kullanıcı Tipi\"\r\n                            emptyRecordMsg=\"Başka Kullanıcı Tipi Yok\"\r\n                            ref={multiselectUserTypeRef}\r\n                            isObject={false}\r\n                            onSelect={onSelect} // Function will trigger on select event\r\n                            onRemove={onRemove} // Function will trigger on remove event\r\n                            selectedValues={userdata.userType != null ? userdata.userType.split(',') : []}\r\n                        />\r\n                    </div>\r\n                </div>\r\n                <div className='row mt-3' hidden={role.indexOf(UserPermConstants.Kullanici_Denetim_Yetkilerini_Editleme) == -1}>\r\n                    <div className=\"col-3\">\r\n                        <label htmlFor=\"roles\" className=\"form-label\">Rol</label>\r\n                    </div>\r\n                    <div className=\"col-8\">\r\n                        <select className=\"form-select form-select-sm\" name=\"role\" onChange={handleInputChange} >\r\n                            <option selected={userdata == null || userdata.role == null} value={null}></option>\r\n                            {\r\n                                rolelist.map(x => <option value={x.id} selected={userdata != null && x.id == userdata.role}>{x.name}</option>)\r\n                            }\r\n                        </select>\r\n                    </div>\r\n                </div >\r\n                <div className='row mt-3' hidden={role.indexOf(UserPermConstants.Kullanici_Rolleri) == -1}>\r\n                    <div className=\"col-5\">\r\n                        <label htmlFor=\"roles\" className=\"form-label\">Sabit İmzacı</label>\r\n                    </div>\r\n                    <div className=\"col-6 \" >\r\n                        <input className=\"form-check-input\" type=\"checkbox\" name=\"sabitImzaci\" id=\"sabitImzaci\" defaultChecked={userdata.sabitImzaci} onChange={handleInputChange} />\r\n\r\n                    </div>\r\n                </div >\r\n                <div className='row mt-1' hidden={role.indexOf(UserPermConstants.Gizli_Aktiviteleri_Gorme) == -1}>\r\n                    <div className=\"col-5\">\r\n                        <label htmlFor=\"roles\" className=\"form-label\">Başvuru Geçmiş Aktivite Kaydı Gizleme</label>\r\n                    </div>\r\n                    <div className=\"col-6 \" >\r\n                        <input className=\"form-check-input\" type=\"checkbox\" name=\"hideEvents\" id=\"hideEvents\" defaultChecked={userdata.hideEvents} onChange={handleInputChange} />\r\n                    </div>\r\n                </div >\r\n                <div className='row mt-1' hidden={role.indexOf(UserPermConstants.Kullanici_Rolleri) == -1}>\r\n                    <div className=\"col-5\">\r\n                        <label className=\"form-label\">Pasif Kullanıcı</label>\r\n                    </div>\r\n                    <div className=\"col-6 \" >\r\n                        <input className=\"form-check-input\" type=\"checkbox\" name=\"pasif\" id=\"pasif\" defaultChecked={userdata.pasif} onChange={handleInputChange} />\r\n                    </div>\r\n                </div >\r\n            </fieldset>\r\n        }\r\n\r\n        <div hidden={role.indexOf(UserPermConstants.Kullnici_Kara_Liste) == -1}>\r\n            <div className='row mt-2' >\r\n                <div className='col-2 ps-3' >\r\n                    Kara liste\r\n                </div>\r\n                <div className='col-1' >\r\n                    <div className=\"form-check\">\r\n                        <input className=\"form-check-input\" type=\"checkbox\" name=\"karaliste\" id=\"karaliste\" defaultChecked={userdata.karaliste} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n                <div className='col-3 ' >\r\n                   \r\n                        <input className=\"form-control form-control-sm\" type=\"date\" name=\"karalistesure\" id=\"karalistesure\" defaultValue={userdata.karalistesure} placeholder=\"Geçerlilk süresi (örnek 2022/01/01)\" onChange={handleInputChange} disabled={!userdata.karaliste} />\r\n                    \r\n                </div>\r\n                <div className='col-6 textvmuted small' >\r\n                    tarihine kadar sisteme giriş yapamaz\r\n                </div>\r\n            </div>\r\n            <div className='row mt-2 mb-3 ' >\r\n                <div className='col-2 ps-3' >\r\n                    Beyaz Liste\r\n                </div>\r\n                <div className='col-1' >\r\n                    <div className=\"form-check\">\r\n                        <input className=\"form-check-input\" type=\"checkbox\" name=\"gecicimuellif\" id=\"gecicimuellif\" defaultChecked={userdata.gecicimuellif} onChange={handleInputChange} />\r\n                    </div>\r\n\r\n                </div>\r\n                <div className='col-3 ' >\r\n                    <div >\r\n                        <input className=\"form-control form-control-sm\" type=\"date\" name=\"gecicisure\" id=\"gecicisure\" defaultValue={userdata.gecicisure} placeholder=\"Geçerlilk süresi (örnek 2022/01/01)\" onChange={handleInputChange} disabled={!userdata.gecicimuellif} />\r\n                    </div>\r\n                </div>\r\n                <div className='col-6 textvmuted small' >\r\n                            tarihine kadar başvuru yapabilir veya müellif olarak eklenebilir\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n\r\n\r\n        <div hidden={role.indexOf(UserPermConstants.Kullanici_Denetim_Yetkilerini_Editleme) == -1} >\r\n            <div className='row ms-1 me-1 mt-3 mb-4 pt-2 border bg-light' >\r\n                <DenetimPermissionPanel username={userdata.userName} denetimList={denetimList} key={denetimList} />\r\n            </div>\r\n        </div>\r\n\r\n\r\n\r\n        <div hidden={role.indexOf(UserPermConstants.Kullanici_Denetim_Yetkilerini_Editleme) == -1} >\r\n            <div className='row ms-1 me-1 mt-3 mb-4 pt-2 border bg-light' >\r\n                <ListAppTypePermission username={userdata.userName} denetimList={denetimList.filter(x=>x.isadimi!=true)} key={denetimList} />\r\n            </div>\r\n        </div>\r\n\r\n        <div hidden={role.indexOf(UserPermConstants.Kullanici_Denetim_Yetkilerini_Editleme) == -1} >\r\n            <div className='row ms-1 me-1 mt-3 mb-4 pt-2 border bg-light' >\r\n                <KabulAppTypePermission username={userdata.userName} denetimList={denetimList.filter(x => x.isadimi != true)} key={denetimList} />\r\n            </div>\r\n        </div>\r\n\r\n\r\n        <button type=\"submit\" className=\"btn btn-primary btn-sm mt-2\">Güncelle</button>\r\n\r\n    </div>\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","import { useLocation } from 'react-router-dom'\r\nimport React, { useState, useEffect } from 'react';\r\nimport { ajaxFail } from '../GlobalState.js';\r\n\r\nexport default function UserPersonelData(props) {\r\n    const [userdata, setUserData] = useState(props.userdata);\r\n    const [filds, setDynamicFields] = useState(null);\r\n\r\n    var dynamicdata = {}\r\n    var dynamicFields = \"\";\r\n\r\n\r\n    if (userdata != null && userdata.dynamicData) {\r\n        dynamicdata = JSON.parse(userdata.dynamicData);\r\n    }\r\n\r\n\r\n    useEffect(() => {\r\n        getFieldList();\r\n\r\n    }, [])\r\n\r\n    const handleDynamicChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        dynamicdata[target.name] = { \"value\": value, \"type\": target.type };\r\n    }\r\n\r\n    \r\n\r\n    const writeDynamicDataToObject = () => {\r\n        userdata.dynamicData = JSON.stringify(dynamicdata);\r\n    }\r\n\r\n\r\n    const getFieldList = () => {\r\n        fetch(\"getuserfields\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setDynamicFields(data);\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    if (filds != null) { //!!!!!dont set the dynamicFields in fetch repoonce. it is in another scope and not see the handlechange\r\n        dynamicFields =\r\n\r\n            filds.map(rec => <div className=\"row mt-3\"> <div className=\"col-12\">\r\n                <label htmlFor={rec.name} className=\"form-label m-0\">{rec.name} {rec.reqired==true?'*':\"\"}</label><br />\r\n                {rec.type != \"select\" ?\r\n                    <input type={rec.type} className={rec.type != \"checkbox\" ? \"form-control\" : \"form-check-input\"}\r\n                        id={rec.name} required={rec.reqired}  name={rec.name} defaultChecked={dynamicdata[rec.name] != null ? dynamicdata[rec.name].value : rec.initValue} defaultValue={dynamicdata[rec.name] != null ? dynamicdata[rec.name].value : rec.initValue} onChange={handleDynamicChange} />\r\n                    :\r\n                    <select className=\"form-select form-select-sm\" id={rec.name} required={rec.reqired} name={rec.name} placeholder=\"Soru Türü\" onChange={handleDynamicChange} defaultValue={dynamicdata[rec.name] != null ? dynamicdata[rec.name].value : rec.initValue}>\r\n                        {rec.initValue != null ? rec.initValue.split(\",\").map(rec =>\r\n                            <option value={rec} >{rec}</option>) : \"\"}\r\n                    </select>\r\n\r\n                }\r\n\r\n            </div></div>)\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n    return <div >\r\n        <div className=\"row\">\r\n\r\n            <div className=\"col-3\">\r\n                <h5>Diğer Bilgileri</h5>\r\n            </div>\r\n        </div>\r\n        <div className=\"row\">\r\n\r\n            {dynamicFields}\r\n        </div>\r\n\r\n\r\n        <button type=\"submit\" onMouseDown={ writeDynamicDataToObject} className=\"btn btn-primary btn-sm mt-4\">Güncelle</button>\r\n    </div>\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useGlobalState,ajaxFail } from '../GlobalState.js';\r\n\r\n\r\nexport default function UserEventsPanel(props) {\r\n\r\n    \r\n    const [events, setEvents] = useState(null);\r\n    const colors = [\"#fff8dd\", \"#e8fff3\", \"#fff5f8\", \"#f8f5ff\"]\r\n    const scolors = [\"text-primary\", \"text-success\", \"text-danger\", \"text-warning\", \"text-info\"]\r\n    const [myuserName, setuserName] = useGlobalState('userName');\r\n\r\n    const fetchEvents = (e) => {\r\n        fetch(\"getuserevents\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(props.userdata != null ? props.userdata.userName :myuserName)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n\r\n                    setEvents(data);\r\n                    rendertolist(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    useEffect(() => {\r\n        fetchEvents();\r\n    }, [])\r\n\r\n\r\n\r\n    const rendertolist = (events) => {\r\n        var groupedEvents = {};\r\n        for (var i = 0; i < events.length; i++) {\r\n            var d = events[i].eventDate.split(\" \")[0];\r\n            var t = events[i].eventDate.split(\" \")[1];\r\n            if (groupedEvents[d] == null) groupedEvents[d] = [];\r\n            groupedEvents[d].push(t);\r\n        }\r\n        var tab = \"\";\r\n        var c = 0;\r\n        for (var d in groupedEvents) {\r\n            tab += '<div class=\"row ms-2 me-2 p-2 mb-3  rounded-2 border border-rounded\" style=\"background-color:' + colors[c % 4] + ';\"}><div class=\"col-12\"><h5  class=\"text-secondary\"><span class=\"fa fa-calendar text-muted\"></span> <b>' + d + '</b></h5></div><div class=\"pt-2\">'\r\n            for (var i = 0; i < events.length; i++) {\r\n                var m = events[i].eventDate.split(\" \")[0];\r\n                var t = events[i].eventDate.split(\" \")[1];\r\n                if (d == m) {\r\n                    tab += \"<div class='row'>\"\r\n                    tab += \"<div class=' col-3  col-md-1 mb-1'  style='position: relative;'> <span class='ps-1 pe-3 text-muted fw-bold' style='position: absolute; top:-5px;'>\" + t + \"</span></div>\"\r\n                    tab += \"<div class=' col-9  col-md-9 border-start border-4 ps-0 mt-2' style='position: relative;'> <span style='margin-left:-8px; position: absolute; top:-10px;'  class='fa fa-circle-o me-2 fw-bold \" + scolors[i % 5] + \"'> </span> \"\r\n                    tab += \"<div class='ms-2 mb-3' style='margin-top:-18px;'>\" + events[i].comment+ \"&nbsp;&nbsp; <img class=\\\"rounded-circle\\\" style='width:30px; height:30px;'src='/getuserpic?user=\" + events[i].userName + \"'/><span class='ps-2 text-muted'>\" + events[i].userName + \"</span>\";\r\n                    tab += \"</div></div>\";\r\n\r\n                    tab += \"</div>\"\r\n                }\r\n\r\n            }\r\n            tab += \"</div></div>\"\r\n            c++;\r\n        }\r\n\r\n        const para = document.getElementById(\"appevents\");\r\n\r\n        para.innerHTML = tab;\r\n        return para;\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    var panel = \"\";\r\n\r\n\r\n    if (events == null)\r\n        panel = <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center\" ><div className=\"spinner-border\" ></div></div>\r\n    else if (events.length == 0)\r\n        panel = <div className=\"w-100 mt-4 mb-4 text-center align-items-center justify-content-center text-danger\" >Kayıt Yok</div>\r\n\r\n\r\n\r\n\r\n    return (\r\n        <div >\r\n            <div className=\"row\">\r\n                <div className=\"col-10\">\r\n                    <h5 className=\"text-primary pb-3\">Geçmiş Aktiviteler</h5 >\r\n                </div>\r\n                <div className=\"col-2 justify-content-end align-items-end text-end \">\r\n                    {events != null && events.length > 0 && <span className=\"small badge bg-primary rounded-pill me-2\">{events.length}</span>}\r\n                </div>\r\n\r\n            </div>\r\n            <div id=\"appevents\">\r\n                {panel}\r\n            </div>\r\n        </div>\r\n\r\n    );\r\n}\r\n\r\n\r\n\r\n","import { useLocation } from 'react-router-dom'\r\nimport React, { useState, useEffect } from 'react';\r\n\r\nimport UploadFile from \"./UploadFile.js\";\r\nimport { isEmpty, setVisible, showErrorMessage, showSuccessMessage, useGlobalState } from '../GlobalState.js';\r\nimport UserWorkLoad from './UserWorkLoad.js';\r\n\r\nimport UserFilePanel from \"./UserFilePanel.js\";\r\nimport UserPersonelData from './UserPersonelData.js';\r\nimport UserMeslekData from './UserMeslekData.js';\r\nimport UserComData from './UserComData.js';\r\nimport UserTipData from './UserTypeData.js';\r\nimport UserDynamicData from './UserDynamicData.js';\r\nimport { ajaxFail } from '../GlobalState.js';\r\n\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\n\r\nimport UserEventsPanel from './UserEventsPanel.js';\r\nimport axios from \"axios\";\r\n\r\n\r\nexport default function UserDetails(props) {\r\n    let location = useLocation();\r\n    const [userdata, setUserData] = useState(props.rec != null ? props.rec : location.state != null ? location.state.rec : null);\r\n\r\n\r\n\r\n    const [activePanel, setActivePanel] = useState(userdata != null ? <UserPersonelData userdata={userdata} /> : null);\r\n\r\n\r\n    // sidebartags.push(<a className=\"d-block  p-2 m-2  rounded-3  text-decoration-none\" href=\"javascript:void(0)\" onClick={() => setData()}>Tum Mesajlar</a>);\r\n    var sidebarPanel = [];\r\n    sidebarPanel.push({ target: \"/applicationform\", state: { rec: userdata }, name: \"İş Yuku\", icon: \"\tfa fa-bar-chart\" });\r\n\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    var dynamicFields = \"\";\r\n    const handleDynamicChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked.toString() : target.value;\r\n        //dynamicdata[target.name] = { \"value\": value, \"type\": target.type };\r\n    }\r\n\r\n    if (userdata != null && userdata.dynamicData) {\r\n\r\n        var ddata = JSON.parse(userdata.dynamicData);\r\n        var keys = Object.keys(ddata);\r\n        dynamicFields =\r\n            keys.map(k =>\r\n                <div className=\"col-6\">\r\n                    <label htmlFor={k} className=\"form-label\">{k}</label><br />\r\n                    {ddata[k].type != \"select-one\" ?\r\n                        <input type={ddata[k].type} className={ddata[k].type != \"checkbox\" ? \"form-control\" : \"form-check-input\"}\r\n                            id={k} placeholder={k} name={k} defaultValue={ddata[k].value} defaultChecked={ddata[k].value} onChange={handleDynamicChange} />\r\n                        :\r\n                        <select className=\"form-select form-select-sm\" id={k} name={k} onChange={handleDynamicChange} >\r\n                            {ddata[k].value != null ? ddata[k].value.split(\",\").map(rec =>\r\n                                <option value={rec}>{rec}</option>) : \"\"}\r\n                        </select>\r\n\r\n                    }\r\n                </div>\r\n\r\n            )\r\n    }\r\n\r\n    useEffect(() => {\r\n        if (userdata) {\r\n            if (userdata.pic) {\r\n                if (document.getElementById(\"selectedimage\") != null) document.getElementById(\"selectedimage\").src = \"data:image/png;base64,\" + userdata.pic;\r\n                if (document.getElementById(\"selectedimageright\") != null) document.getElementById(\"selectedimageright\").src = \"data:image/png;base64,\" + userdata.pic;\r\n            }\r\n\r\n        }\r\n        else\r\n            fetchUserData();\r\n\r\n    }, [])\r\n\r\n\r\n\r\n\r\n\r\n    const onSubmit = (e) => {\r\n        if(e)\r\n        e.preventDefault();\r\n\r\n        if (isEmpty(userdata.role)) {\r\n            showErrorMessage(\"Kullanıcı Rolu Boş Olamaz.\")\r\n            return;\r\n        }\r\n        if (isEmpty(userdata.userType)) {\r\n            showErrorMessage(\"Kullanıcı Tipi Boş Olamaz.\")\r\n            return;\r\n        }\r\n\r\n\r\n        fetch(\"updateuser\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(userdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response, true)\r\n            }\r\n            else {\r\n               // setUserData({ ... userdata })\r\n                showSuccessMessage(\"Kullanıcı Bilgileri Güncellenmiştir. \");\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchUserData = () => {\r\n        var param = \"\";\r\n        if (userdata != null)\r\n            param = \"?user=\" + userdata.userName;\r\n        fetch(\"getuser\" + param, {\r\n            method: 'GET'\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setUserData(data);\r\n                    setActivePanel(<UserPersonelData userdata={data} />)\r\n                    if (document.getElementById(\"selectedimage\") != null) document.getElementById(\"selectedimage\").src = \"data:image/png;base64,\" + data.pic;\r\n                    if (document.getElementById(\"selectedimageright\") != null) document.getElementById(\"selectedimageright\").src = \"data:image/png;base64,\" + data.pic;\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const hasNumber = (myString) => {\r\n        return /\\d/.test(myString);\r\n    }\r\n    const hasChar = (myString) => {\r\n        return /[a-zA-Z]/g.test(myString);\r\n    }\r\n\r\n\r\n    const updatePassword = (event) => {\r\n        var mevcut = document.getElementById(\"Password\").value;\r\n        var new1 = document.getElementById(\"newpass1\").value;\r\n        var new2 = document.getElementById(\"newpass2\").value;\r\n        var pass = JSON.stringify({ username: userdata.userName, mevcut: mevcut, new1: new1, new2: new2 });\r\n        if ((mevcut == null || mevcut.length == 0) && role.indexOf(UserPermConstants.Sifre_Degistirme) == -1) {\r\n            showErrorMessage(\"Mevcut Şifrenizi Giriniz\");\r\n            return;\r\n        }\r\n        if (new1 == null || new1.length < 8 || new2 == null || new2.length < 8) {\r\n            showErrorMessage(\"Şifre en az 8 karakter, 1 harf ve 1 rakam içermelidr\");\r\n            return;\r\n        }\r\n        if (hasNumber(new1) == false || hasChar(new1) == false) {\r\n            showErrorMessage(\"Şifre en az 8 karakter, 1 harf ve 1 rakam içermelidr\");\r\n            return;\r\n        }\r\n\r\n        if (new1 != new2) {\r\n            showErrorMessage(\"Yeni girilen şifreler aynı değildir !\");\r\n            return;\r\n        }\r\n\r\n        fetch(\"updatepassword\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: pass\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Şifre Guncellenmiştir.\")\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target.name;\r\n        const value = event.target.type === 'checkbox' ? event.target.checked : event.target.value;\r\n        userdata[target] = value;\r\n\r\n        if (event.target.type === 'checkbox' && event.target.id === \"karaliste\")\r\n            document.getElementById(\"karalistesure\").disabled = !event.target.checked;\r\n\r\n        if (event.target.type === 'checkbox' && event.target.id === \"denetimYetkisi\" && value == true) {\r\n            showErrorMessage(\"Yetki Turleri Denetim Yetkileri Panelinden Belirlenmelidir\")\r\n        }\r\n\r\n    }\r\n\r\n\r\n\r\n    var sifrepanel = \"\";\r\n\r\n    if (userdata != null) {\r\n        sifrepanel = <div >\r\n            {role.indexOf(UserPermConstants.Kullanici_Denetim_Yetkilerini_Editleme) > -1 && <div className=\"row\">\r\n                <div className=\"col-4 ps-3\">\r\n                    İki aşamalı kullanıcı doğrulama\r\n                </div>\r\n                <div className=\"col-2\">\r\n                    <div className='col-4' >\r\n                        <input className=\"form-check-input\" type=\"checkbox\" name=\"Kabul\" defaultChecked={userdata!=null && userdata.twoStep!=false} onChange={(e) => { userdata.twoStep = e.target.checked; onSubmit(); }} />\r\n                    </div>\r\n                </div>\r\n            </div>}\r\n            <div className=\"border mt-5 p-2 rounded-3\">\r\n                <div className=\"row\">\r\n                     < div className=\"col-3 fw-bold\">\r\n                        Şifre Değiştir\r\n                    </div>\r\n                    <div className=\"col-2\">\r\n                    </div>\r\n                </div>\r\n                <div className=\"row pt-1\">\r\n                    <div className=\"col-3\">\r\n                        <label htmlFor=\"Password\" className=\"form-label\">Mevcut Şifre</label>\r\n                    </div>\r\n                    <div className=\"col-8\">\r\n                        <input type=\"password\" className=\"form-control\" id=\"Password\" placeholder=\"Mevcut Şifre\" name=\"password\" onChange={handleInputChange} defaultValue=\"\" />\r\n                    </div>\r\n                </div>\r\n                <div className=\"row pt-2\">\r\n                    <div className=\"col-3\">\r\n                        <label htmlFor=\"newpass1\" className=\"form-label\">Yeni Şifre</label>\r\n                    </div>\r\n                    <div className=\"col-8\">\r\n                        <input type=\"password\" className=\"form-control\" id=\"newpass1\" placeholder=\"Şifre en az 8 karakter, 1 harf ve 1 rakam içermelidr\" name=\"newpass1\" onChange={handleInputChange} defaultValue=\"\" />\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"row pt-2\">\r\n                    <div className=\"col-3\">\r\n                        <label htmlFor=\"newpass2\" className=\"form-label\">Yeni Şifre (Tekrar)</label>\r\n                    </div>\r\n                    <div className=\"col-8\">\r\n                        <input type=\"password\" className=\"form-control\" id=\"newpass2\" placeholder=\"Yeni Şifre (Tekrar)\" name=\"newpass2\" onChange={handleInputChange} defaultValue=\"\" />\r\n                    </div>\r\n\r\n                </div><button type=\"button\" onClick={updatePassword} className=\"btn btn-primary btn-sm mt-2\">Değiştir</button>\r\n            </div>\r\n        </div >\r\n\r\n    }\r\n\r\n\r\n\r\n    var isyuku = \"\";\r\n    if (role.indexOf(UserPermConstants.Is_Yuku) >= 0 && userdata != null) {\r\n        isyuku = <button type=\"button\" className=\"btn btn-link btn-sm text-decoration-none p-0\" data-bs-toggle=\"modal\" data-bs-target=\"#myModal\">\r\n            İş Yuku\r\n        </button>\r\n\r\n    }\r\n\r\n    const deletefile = (e) => {\r\n        var formData = new FormData();\r\n        formData.append(\"caption\", userdata.userName);\r\n        formData.append(\"typeID\", 0);\r\n        formData.append(\"appid\", 0);\r\n        setVisible(\"myspiner\", true);\r\n        axios.post(\r\n            \"submituserpic\",\r\n            formData,\r\n            {\r\n                headers: {\r\n                    \"Content-type\": \"multipart/form-data\"\r\n                },\r\n            }\r\n        )\r\n            .then(async res => {\r\n                setVisible(\"myspiner\", false);\r\n                setActivePanel(<UserPersonelData userdata={userdata} />)\r\n\r\n            })\r\n            .catch(err => {\r\n                setVisible(\"myspiner\", false);\r\n                showErrorMessage(err)\r\n            })\r\n    }\r\n\r\n\r\n\r\n\r\n    if (userdata == null) {\r\n        return <div>lütfen bekleyin..</div>\r\n    }\r\n    const changeComponent = props.changeComponent;\r\n\r\n    return (\r\n\r\n        <div className=\"p-4 pt-3\" style={{ \"background-color\": \"#ebebeb\", \"min-height\": \"100vh\" }} key={userdata}>\r\n            <div className=\"row mb-1\">\r\n                <div className=\"col-12 text-end\">\r\n                    <button className=\"btn btn-sm btn-primary rounded me-2\" onClick={() => { fetchUserData() }}> <i className=\"fa fa-refresh pe-1\"></i> Yenile</button>\r\n\r\n                    <button className=\"btn btn-sm btn-primary rounded me-3\" onClick={() => {\r\n                        if (props.backButton)\r\n                            changeComponent(props.backButton)\r\n                        else {\r\n                            window.location.href = \"/\";\r\n                        }\r\n                    }}> <i className=\"fa fa-arrow-circle-left pe-1\"></i> Geri Don</button>\r\n                </div>\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\"col-md-3 col-12\">\r\n                    <div className=\"bg-white rounded-3 p-2\">\r\n                        <div className='row'>\r\n                            <div className=\"col-12 col-md-4\">\r\n                                <img className=\"rounded-circle\" style={{ width: \"48px\", height: \"48px\" }} src={\"/getuserpic?user=\" + userdata.userName + \"&_=\" + Date.now()} />\r\n                                <div className=\"d-flex\">\r\n\r\n                                    <UploadFile username={userdata.userName} filelabel={\"Fotoğrafı Değiştir\"} target={\"submituserpic\"}\r\n                                        setSumbitResult={(g) => setActivePanel(<UserPersonelData userdata={userdata} />)} />\r\n                                    <button className=\"btn btn-link m-0 p-0 ps-2\" onClick={deletefile}><i class=\"fa fa-trash-o\"></i></button>\r\n                                    <span className=\"spinner-border spinner-border-sm ms-3\" id=\"myspiner\" hidden>   </span>\r\n                                </div>\r\n                            </div>\r\n\r\n                            <div className=\"col-12 col-md-8\">\r\n                                <div className=\"fw-bold text-black\"> {userdata.userName}</div>\r\n                                <div className=\"fw-bold text-muted\"> {userdata.name}</div>\r\n                                <div className=\"fw-bold text-muted\"> {userdata.family}</div>\r\n                            </div>\r\n                        </div>\r\n                        <div className='row mt-4'>\r\n                            <div className=\"col-12 ps-4\">\r\n                                <button type=\"button\" className=\"btn fw-bold btn-link btn-sm text-muted text-decoration-none p-0\" onClick={() => { setActivePanel(<UserPersonelData userdata={userdata} />) }}>\r\n                                    Kişisel Bilgiler\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n                        <div className='row mt-4'>\r\n                            <div className=\"col-12 ps-4\">\r\n                                <button type=\"button\" className=\"btn fw-bold btn-link btn-sm text-muted text-decoration-none p-0\" onClick={() => { setActivePanel(<UserMeslekData userdata={userdata} />) }}>\r\n                                    Mesleki Bilgiler\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n                        <div className='row mt-4'>\r\n                            <div className=\"col-12 ps-4\">\r\n                                <button type=\"button\" className=\"btn fw-bold btn-link btn-sm text-muted text-decoration-none p-0\" onClick={() => { setActivePanel(sifrepanel) }}>\r\n                                    Güvenlik\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n                        <div className='row mt-4'>\r\n                            <div className=\"col-12 ps-4\">\r\n                                <button type=\"button\" className=\"btn fw-bold btn-link btn-sm text-muted text-decoration-none p-0\" onClick={() => { setActivePanel(< UserComData userdata={userdata} />) }}>\r\n                                    İletişim Bilgileri\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n                        <div className='row mt-4'>\r\n                            <div className=\"col-12 ps-4\">\r\n                                <button type=\"button\" className=\"btn fw-bold btn-link btn-sm text-muted text-decoration-none p-0\" onClick={() => { setActivePanel(<UserTipData userdata={userdata} />) }}>\r\n                                    Kullanıcı Tipi ve Yetkileri\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n                        <div className='row mt-4'>\r\n                            <div className=\"col-12 ps-4\">\r\n                                <button type=\"button\" className=\"btn fw-bold btn-link btn-sm text-muted text-decoration-none p-0\" onClick={() => { setActivePanel(<UserFilePanel userdata={userdata} />) }}>\r\n                                    Dosyalar\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n\r\n                        <div className='row mt-4'>\r\n                            <div className=\"col-12 ps-4\">\r\n                                <button type=\"button\" className=\"btn fw-bold btn-link btn-sm text-muted text-decoration-none p-0\" onClick={() => { setActivePanel(<UserEventsPanel userdata={userdata} />) }}>\r\n                                    Geçmiş Aktiviteler\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n                        <div className='row mt-4'>\r\n                            <div className=\"col-12 ps-4\">\r\n                                <button type=\"button\" className=\"btn fw-bold btn-link btn-sm text-muted text-decoration-none p-0\" onClick={() => { setActivePanel(<UserWorkLoad userdata={userdata} />) }}>\r\n                                    İş Yuku\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n                        <div className='row mt-4'>\r\n                            <div className=\"col-12 ps-4\">\r\n                                <button type=\"button\" className=\"btn fw-bold btn-link btn-sm text-muted text-decoration-none p-0\" onClick={() => { setActivePanel(<UserDynamicData userdata={userdata} changeComponent={props.changeComponent} />) }}>\r\n                                    Diğer\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <div className=\"col-md-9 col-12 rounded-3\">\r\n\r\n                    <div className=\"bg-white rounded-3 p-3 me-3\">\r\n                        <form className=\"mt-1\" method=\"POST\" onSubmit={onSubmit} key={userdata}>\r\n                            <fieldset disabled={role.indexOf(UserPermConstants.Kullanici_Bilgilerini_Editleme_Roller_Denetim_Yetkileri_Haric) == -1}>\r\n                                {activePanel}\r\n                            </fieldset>\r\n                        </form>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    )\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport 'bootstrap/dist/js/bootstrap.min.js'\r\nimport Register2 from \"./Register2.js\";\r\nimport { isEmpty, capitalizeWords, sendpost, showErrorMessage, showSuccessMessage, useGlobalState } from '../GlobalState.js';\r\nimport UserFilePanel from \"./UserFilePanel.js\";\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport axios from \"axios\";\r\n\r\nexport default function Register3(props) {\r\n    const [filds, setDynamicFields] = useState(null);\r\n    var dynamicdata = {};\r\n    var dynamicFields = null;\r\n    const [captcha, setCaptcha] = useState(\"\");\r\n    var [globalData, setGlobalData] = useGlobalState('globalData');\r\n\r\n    useEffect(() => {\r\n\r\n        getFieldList();\r\n        fetchgetcaptcha();\r\n        fetchGeneralData();\r\n    }, [])\r\n\r\n    const getFieldList = () => {\r\n        fetch(\"getuserfields\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setDynamicFields(data);\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const fetchGeneralData = () => {\r\n        fetch(\"getgeneraldata\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setGlobalData(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchgetcaptcha = () => {\r\n        fetch(\"getcaptcha\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.text().then(async data => {\r\n                    setCaptcha(data.replaceAll('\"', \"\"));\r\n                    const script = document.createElement(\"script\");\r\n                    script.src = \"https://www.google.com/recaptcha/api.js\";\r\n                    script.async = true;\r\n                    script.defer = true;\r\n                    document.getElementById(\"myscript\").appendChild(script);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n    const handleDynamicChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked.toString() : target.value;\r\n        dynamicdata[target.name] = { \"value\": value, \"type\": target.type };\r\n    }\r\n\r\n    if (filds != null) { //!!!!!dont set the dynamicFields in fetch repoonce. it is in another scope and not see the handlechange\r\n        dynamicFields = <div className=\"mb-3 mt-3 row\">\r\n            {filds.map(rec => <div className=\"col-12 col-md-6 text-start\">\r\n                <label htmlFor={rec.name} className=\"form-label m-0\">{rec.name}</label><br />\r\n                {rec.type != \"select\" ?\r\n                    <input type={rec.type} required={rec.reqired} className={rec.type != \"checkbox\" ? \"form-control\" : \"form-check-input\"} id={rec.name} name={rec.name} defaultValue={dynamicdata[rec.name] != null ? dynamicdata[rec.name] : rec.initValue} onChange={handleDynamicChange} />\r\n                    :\r\n                    <select className=\"form-select form-select-sm\" required={rec.reqired} id={rec.name} name={rec.name} placeholder=\"Soru Türü\" onChange={handleDynamicChange} >\r\n                        <option value=\"\"></option>\r\n                        {rec.initValue != null ? rec.initValue.split(\",\").map(rec =>\r\n                            <option value={rec}>{rec}</option>) : \"\"}\r\n                    </select>\r\n\r\n                }\r\n            </div>\r\n            )}\r\n\r\n        </div>\r\n    }\r\n\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked.toString() : target.value;\r\n        window.userdata[target.name] = value;\r\n    }\r\n\r\n\r\n    const onSubmit = (e) => {\r\n        e.preventDefault();\r\n        var check1 = document.getElementById(\"registerAgrement\");\r\n        var check2 = document.getElementById(\"registerKVKK\");\r\n        if (check1 != null && check1.checked == false) {\r\n            showErrorMessage(\"Zorunlu metinler kabul edilmelidir.\");\r\n            return;\r\n        }\r\n        if (check2 != null && check2.checked == false) {\r\n            showErrorMessage(\"Zorunlu metinler kabul edilmelidir.\");\r\n            return;\r\n        }\r\n\r\n        window.userdata.name = capitalizeWords(window.userdata.name);\r\n        window.userdata.family = capitalizeWords(window.userdata.family);\r\n\r\n\r\n        window.userdata.dynamicData = JSON.stringify(dynamicdata);\r\n\r\n        if (window.grecaptcha.getResponse() == \"\") {\r\n            showErrorMessage(\"Ben robot değilim testi başarısız !\");\r\n            return false;\r\n        }\r\n\r\n        sendpost(\"submituser\", window.userdata, \"filesspin\", (response) => {\r\n            showSuccessMessage(\"Kullanıcı Kaydı Başarıyla Tamamlanmıştır\", \"\", () => window.location.href = \"/\")\r\n        }, (response) => {\r\n            response.text().then(value => {\r\n                showErrorMessage(value)\r\n\r\n            })\r\n        });\r\n\r\n\r\n\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    return <div className=\"mt-3\">\r\n        <div id=\"myscript\"></div>\r\n        <div className=\"row\" >\r\n            <div className=\"ms-2 me-2 p-0 col-md-3 col-12  border-bottom border-3 \" > 1. Kişisel Bilgiler\r\n            </div>\r\n            <div className=\"ms-3 me-2 p-0 col-md-3 col-12   border-bottom border-3 \" >2. Mesleki Bilgiler\r\n            </div>\r\n            <div className=\"ms-3 me-2 p-0 col-md-3 col-12   border-bottom border-3 text-primary border-primary fw-bold\" > 3. Diğer\r\n            </div>\r\n        </div>\r\n        <div className=\"\" >\r\n            <div className=\"\" >\r\n                <div className=\"\" >\r\n                    <form action=\"submitapplication\" className=\"mt-3\" method=\"POST\" onSubmit={onSubmit}>\r\n\r\n                        <div>\r\n                            {dynamicFields}\r\n\r\n\r\n\r\n                            {globalData != null &&\r\n                                (isEmpty(globalData.registerKVKK) == false || isEmpty(globalData.registerKVKKFile) == false) &&\r\n                                <div className=\" row\"  >\r\n                                    <div className=\"col-12 text-start\">\r\n                                        <input class=\"form-check-input\" type=\"checkbox\" id=\"registerKVKK\" name=\"registerKVKK\" />\r\n                                        <label class=\"form-check-label\" dangerouslySetInnerHTML={{ __html: globalData.registerKVKK }}></label>\r\n                                        {globalData != null && isEmpty(globalData.registerKVKKFile) == false &&\r\n                                            <a className=\"text-decoration-none\" href='getgeneralfile?id=registerKVKKFile' download={globalData.registerKVKKFile}> {globalData.registerKVKKFile} </a>\r\n                                        }\r\n                                    </div>\r\n                                </div>}\r\n\r\n\r\n                            {globalData != null &&\r\n                                (isEmpty(globalData.registerAgrement) == false || isEmpty(globalData.registerAgrementFile) == false) &&\r\n                                < div className=\" row mt-3 mb-3\">\r\n                                    <div className=\"col-12  text-start\">\r\n                                        <input class=\"form-check-input me-1\" type=\"checkbox\" id=\"registerAgrement\" name=\"registerAgrement\" />\r\n                                        {isEmpty(globalData.registerAgrement) == false && <label className=\"form-check-label me-1\" dangerouslySetInnerHTML={{ __html: globalData.registerAgrement }}></label>}\r\n                                        {isEmpty(globalData.registerAgrementFile) == false &&\r\n\r\n                                            <a className=\"text-decoration-none\" href='getgeneralfile?id=registerAgrementFile' download={globalData.registerAgrementFile}> {globalData.registerAgrementFile} </a>\r\n\r\n                                        }\r\n\r\n                                    </div>\r\n                                </div>}\r\n\r\n                            <div className=\"mt-3 pt-2\" class=\"g-recaptcha\" data-sitekey={captcha}></div>\r\n\r\n                            <div className=\"row mt-3 border-top pt-2\" >\r\n                                <div className=\"col-6 col-md-6 text-start\">\r\n                                    <button type=\"button\" name=\"actionSave\" value=\"Save\" className=\"btn btn-sm btn-primary mb-2 \" onClick={() => { props.changeComponent(<Register2 changeComponent={props.changeComponent} />) }}>Geri Dön</button>\r\n                                </div>\r\n                                <div className=\"col-6 col-md-6 text-end\">\r\n                                    <span className=\"ms-1 spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\" id=\"filesspin\" hidden ></span>\r\n\r\n                                    <button type=\"submit\" name=\"actionSave\" value=\"Save\" className=\"btn btn-sm btn-primary mb-2 \">Tamamla</button>\r\n                                </div>\r\n\r\n                            </div>\r\n                        </div>\r\n                    </form>\r\n\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport 'bootstrap/dist/js/bootstrap.min.js'\r\nimport Multiselect from 'multiselect-react-dropdown';\r\nimport { ajaxFail, isEmpty, showErrorMessage } from '../GlobalState.js';\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\n\r\nimport Register3 from \"./Register3.js\";\r\n\r\nimport Register1 from \"./Register1.js\";\r\n\r\n\r\nexport default function Register2(props) {\r\n\r\n    useEffect(() => {\r\n        fetchUserTypeList();\r\n\r\n    }, [])\r\n    const [options, setOptions] = useState([]);\r\n    const multiselectRef = React.createRef();\r\n    \r\n    const [role, setRole] = useGlobalState('role');\r\n    const zorunlo = role.indexOf(UserPermConstants.Yeni_Kullanici_Kaydinda_Zorunlu_Alanlari_Bos_Birakabilme) == -1;\r\n\r\n\r\n\r\n\r\n    const fetchUserTypeList = () => {\r\n        fetch(\"getusertypelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    var i = 0;\r\n                    var opts = [];\r\n                    for (i = 0; i < value.length; i++) {\r\n                        opts.push(value[i].appType)\r\n\r\n                    }\r\n                    setOptions(opts)\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked.toString() : target.value;\r\n        window.userdata[target.name] = value;\r\n    }\r\n    const onSelect = (selectedList, selectedItem) => {\r\n        var clist = selectedList.join();\r\n        window.userdata[\"userType\"] = clist;\r\n\r\n    }\r\n\r\n    const onRemove = (selectedList, removedItem) => {\r\n        var clist = selectedList.join();\r\n        window.userdata[\"userType\"] = clist;\r\n\r\n    }\r\n\r\n    const nextPage = (e) => {\r\n       \r\n        if (isEmpty(window.userdata[\"userType\"])) {\r\n            showErrorMessage(\"Kullanıcı Tipi boş olamaz.\");\r\n            return;\r\n        }\r\n        props.changeComponent(<Register3  changeComponent={props.changeComponent} />)\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n    return <div className=\"mt-3\">\r\n        <div id=\"myscript\"></div>\r\n        <div className=\"row\" >\r\n            <div className=\"ms-2 me-2 p-0 col-md-3 col-12  border-bottom border-3 \" > 1. Kişisel Bilgiler\r\n            </div>\r\n            <div className=\"ms-3 me-2 p-0 col-md-3 col-12   border-bottom border-3 text-primary border-primary fw-bold\" >2. Mesleki Bilgiler\r\n            </div>\r\n            <div className=\"ms-3 me-2 p-0 col-md-3 col-12   border-bottom border-3 \" > 3. Diğer\r\n            </div>\r\n        </div>\r\n        <div className=\"row m-3\" >\r\n            <div className=\"col-12\" >\r\n                <div className=\"  align-items-center justify-content-center p-1\" >\r\n                 \r\n\r\n                        <div>\r\n                            <div className=\"row mt-3  pt-2\" >\r\n\r\n                            <div className=\"col-12 col-md-5\">\r\n                                <label className=\"form-label m-0\">Kullanici Tipi</label>\r\n                                <Multiselect className=\"p-0 form-control-sm bg-white\" id=\"kullanicitiplerim\"\r\n                                    options={options}\r\n                                    emptyRecordMsg=\"Başka Kullanıcı Tipi Yok\"\r\n                                    ref={multiselectRef}\r\n                                    isObject={false}\r\n                                    onSelect={onSelect}\r\n                                        onRemove={onRemove}\r\n                                    selectedValues={window.userdata.userType != null ? window.userdata.userType.split(',') : []}\r\n                                    placeholder=\"Kullanıcı Tipi\"\r\n                                />\r\n                            </div>\r\n\r\n\r\n                            </div>\r\n\r\n\r\n\r\n\r\n                            <div className=\"row pt-4\">\r\n                                <div className=\"col-5\">\r\n                                    <label htmlFor=\"UserName\" className=\"form-label m-0\">Meslek</label>\r\n                                <input type=\"text\" className=\"form-control col-9\" id=\"meslek\" placeholder=\"Meslek\" name=\"meslek\" onChange={handleInputChange} defaultValue={window.userdata.meslek} />\r\n                                </div>\r\n\r\n                            </div>\r\n\r\n\r\n                            <div className=\"row pt-4\">\r\n                                <div className=\"col-5\">\r\n                                    <label htmlFor=\"UserName\" className=\"form-label m-0\">Firma</label>\r\n                                <input type=\"text\" className=\"form-control col-9\" id=\"firma\" placeholder=\"Firma\" name=\"firma\" onChange={handleInputChange} defaultValue={window.userdata.firma} />\r\n                                </div>\r\n                                <div className=\"col-5\">\r\n                                    <label htmlFor=\"Name\" className=\"form-label m-0\">Pozisyonu</label>\r\n                                <input type=\"text\" className=\"form-control\" id=\"pozisyonu\" placeholder=\"Pozisyonu\" name=\"pozisyonu\" onChange={handleInputChange} defaultValue={window.userdata.pozisyonu} />\r\n\r\n                                </div>\r\n                            </div>\r\n\r\n\r\n                            <div className=\"row pt-4\">\r\n                                <div className=\"col-5\">\r\n                                    <label htmlFor=\"Family\" className=\"form-label m-0\">Firma Konumu</label>\r\n                                    <input type=\"text\" className=\"form-control\" id=\"firmaKonumu\" placeholder=\"Firma Konumu\" name=\"firmaKonumu\" onChange={handleInputChange} defaultValue={window.userdata.firmaKonumu} />\r\n                                </div>\r\n \r\n                                <div className=\"col-5\">\r\n                                    <label htmlFor=\"Family\" className=\"form-label m-0\">Firma Web Sitesi</label>\r\n                                <input type=\"text\" className=\"form-control\" id=\"firmaWebSitesi\" placeholder=\"Firma Web Sitesi\" name=\"firmaWebSitesi\" onChange={handleInputChange} defaultValue={window.userdata.firmaWebSitesi} />\r\n                                </div>\r\n                            </div>\r\n\r\n                            <div className=\"row mt-3 border-top pt-2\" >\r\n                                <div className=\"col-6 col-md-6 text-start\">\r\n                                <button type=\"button\" name=\"actionSave\" value=\"Save\" className=\"btn btn-sm btn-primary mb-2 \" onClick={() => { props.changeComponent(<Register1  changeComponent={props.changeComponent} />) }}>Geri Dön</button>\r\n                                </div>\r\n                            <div className=\"col-12 col-md-6 text-end\">\r\n                                <button type=\"button\" className=\"btn btn-sm btn-primary mb-2 \" onClick={nextPage}>Devam</button>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                   \r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport 'bootstrap/dist/js/bootstrap.min.js'\r\nimport { ajaxFail, isEmpty, showErrorMessage } from '../GlobalState.js';\r\nimport $ from 'jquery';\r\nimport Register2 from \"./Register2.js\";\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\nimport { useGlobalState, } from '../GlobalState.js';\r\n\r\nexport default function Register1(props) {\r\n    \r\n\r\n    useEffect(() => {\r\n     \r\n    }, [])\r\n\r\n    if (window.userdata.sendMessage == null)\r\n        window.userdata.sendMessage = true;\r\n    if (window.userdata.sendEmail == null)\r\n        window.userdata.sendEmail = true;\r\n    if (window.userdata.sendSMS==null)\r\n        window.userdata.sendSMS = true;\r\n\r\n   \r\n\r\n\r\n\r\n    $('#Name,#Family').on('keypress', function (event) {\r\n        var regex = new RegExp(\"^[a-zA-ZğüçşöıÖÇŞİĞÜ \\.]+$\");\r\n        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n        if (!regex.test(key)) {\r\n            event.preventDefault();\r\n            return false;\r\n        }\r\n    });\r\n\r\n\r\n    $('#UserName').on('keypress', function (event) {\r\n        var regex = new RegExp(\"^[a-zA-Z0-9_\\.]+$\");\r\n        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n        if (!regex.test(key)) {\r\n            event.preventDefault();\r\n            return false;\r\n        }\r\n    });\r\n\r\n    $('#TC').on('keypress', function (event) {\r\n        var regex = new RegExp(\"^[0-9]+$\");\r\n        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);\r\n        if (!regex.test(key)) {\r\n            event.preventDefault();\r\n            return false;\r\n        }\r\n    });\r\n\r\n    const hasNumber = (myString) => {\r\n        return /\\d/.test(myString);\r\n    }\r\n    const hasChar = (myString) => {\r\n        return /[a-zA-Z]/g.test(myString);\r\n    }\r\n\r\n\r\n\r\n    const [role, setRole] = useGlobalState('role');\r\n    const zorunlo = role.indexOf(UserPermConstants.Yeni_Kullanici_Kaydinda_Zorunlu_Alanlari_Bos_Birakabilme) == -1;\r\n\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        var value = target.type === 'checkbox' ? target.checked : target.value.trim();\r\n        window.userdata[target.name] = value;\r\n    }\r\n\r\n    const nextPage = (event) => {\r\n        if (window.userdata.password == null || window.userdata.password.length < 8) {\r\n            showErrorMessage(\"Şifre en az 8 karakter, 1 harf ve 1 rakam içermelidr\");\r\n            return;\r\n        }\r\n        if (hasNumber(window.userdata.password) == false || hasChar(window.userdata.password) == false) {\r\n            showErrorMessage(\"Şifre en az 8 karakter, 1 harf ve 1 rakam içermelidr\");\r\n            return;\r\n        }\r\n        if (document.getElementById(\"Password\").value != document.getElementById(\"Password2\").value) {\r\n            showErrorMessage(\"Girilen şifreler aynı değil\");\r\n            return;\r\n        }\r\n        if (isEmpty(window.userdata.birthdate) ) {\r\n            showErrorMessage(\"Doğum Tarihi Boş Olamaz\");\r\n            return;\r\n        }\r\n        if (isEmpty(window.userdata.name)) {\r\n            showErrorMessage(\"İsim Boş Olamaz\");\r\n            return;\r\n        }\r\n        if (isEmpty(window.userdata.family)) {\r\n            showErrorMessage(\"İsim Boş Olamaz\");\r\n            return;\r\n        }\r\n        if (isEmpty(window.userdata.tc) || window.userdata.tc==\"direct\") {\r\n            showErrorMessage(\"TC Boş Olamaz\");\r\n            return;\r\n        }\r\n        if (isEmpty(window.userdata.email)) {\r\n            showErrorMessage(\"Email Adresi Boş Olamaz\");\r\n            return;\r\n        }\r\n        if (isEmpty(window.userdata.tel)) {\r\n            showErrorMessage(\"Telefon Numarası Boş Olamaz\");\r\n            return;\r\n        }\r\n        if (isEmpty(window.userdata.userName)) {\r\n            showErrorMessage(\"Kullanıcı Adı Boş Olamaz\");\r\n            return;\r\n        }\r\n\r\n        props.changeComponent(<Register2  changeComponent={props.changeComponent} />)\r\n\r\n    }\r\n    \r\n\r\n    const onSubmitSave = (e) => {\r\n        window.userdata.bildirimTercihleri = \"EİmzaSira\";  //initlaly all users have this activated\r\n        fetch(\"updateuser\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(window.userdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                props.changeComponent(<Register2  changeComponent={props.changeComponent} />)\r\n\r\n            }\r\n        });\r\n    }\r\n\r\n    return <div className=\"mt-3\">\r\n        <div id=\"myscript\"></div>\r\n        <div className=\"row\" >\r\n            <div className=\"ms-2 me-2 p-0 col-md-3 col-12 text-primary border-primary fw-bold border-bottom border-3 \" > 1. Kişisel Bilgiler\r\n            </div>\r\n            <div className=\"ms-3 me-2 p-0 col-md-3 col-12   border-bottom border-3 \" >2. Mesleki Bilgiler\r\n            </div>\r\n            <div className=\"ms-3 me-2 p-0 col-md-3 col-12   border-bottom border-3 \" > 3. Diğer\r\n            </div>\r\n        </div>\r\n        <div className=\"row m-3\" >\r\n            <div className=\"col-12\" >\r\n                <div className=\" p-1\" >\r\n                  \r\n\r\n                        <div>\r\n                            <div className=\"mt-1 row mb-2\" >\r\n                                <div className=\"col-12 col-md-5\">\r\n                                    <label className=\"form-label\">TC (şirketlerde yetkilinin TC'si yazılmalıdır) </label>\r\n                                <input type=\"text\" className=\"form-control\" pattern=\"[0-9]{1,20}\" maxLength=\"15\" id=\"TC\" placeholder=\"TC\" name=\"tc\" onChange={handleInputChange} defaultValue={window.userdata.tc == \"direct\" ? \"\" : window.userdata.tc} disabled={window.edevletlogin == true && role.indexOf(UserPermConstants.Kullanici_Kayit_Formu) == -1} />\r\n                                </div>\r\n                                <div className=\"col-12 col-md-5\">\r\n                                    <label className=\"form-label\">Doğum Tarihi </label>\r\n                                <input type=\"date\" max=\"2999-12-31\" className=\"form-control\" id=\"birthdate\" placeholder=\"Doğum Tarihi\" name=\"birthdate\" required={zorunlo} onChange={handleInputChange} defaultValue={window.userdata.birthdate} />\r\n                                </div>\r\n\r\n                            </div>\r\n\r\n                            <div className=\"mt-1 row  mb-2\" >\r\n                                <div className=\"col-12 col-md-5\">\r\n                                    <label htmlFor=\"Name\" className=\"form-label m-0\">Adı</label>\r\n                                <input type=\"text\" className=\"form-control\" id=\"Name\" pattern=\"[a-zA-Z0-9ğüçşöıÖÇŞİĞÜ ]+$\" placeholder=\"Adı\" name=\"name\" required={zorunlo} onChange={handleInputChange} defaultValue={window.userdata.name} disabled={window.edevletlogin == true && role.indexOf(UserPermConstants.Kullanici_Kayit_Formu) == -1} />\r\n\r\n                                </div>\r\n                                <div className=\"col-12 col-md-5\">\r\n                                    <label htmlFor=\"Family\" className=\"form-label m-0\">Soyadı</label>\r\n                                <input type=\"text\" className=\"form-control\" id=\"Family\" pattern=\"[a-zA-Z0-9ğüçşöıÖÇŞİĞÜ ]+$\" placeholder=\"Soyadı\" name=\"family\" required={zorunlo} onChange={handleInputChange} defaultValue={window.userdata.family} disabled={window.edevletlogin == true && role.indexOf(UserPermConstants.Kullanici_Kayit_Formu) == -1} />\r\n                                </div>\r\n                            </div>\r\n\r\n                            <div className=\"mt-1 row  mb-2\" >\r\n                                <div className=\"col-12 col-md-5\">\r\n                                    <label htmlFor=\"Tel\" className=\"form-label m-0\">GSM No (Başında 0 olmadan)</label>\r\n                                <input type=\"text\" pattern=\"[5-5]{1}[0-9]{2}[0-9]{7}\" maxLength=\"10\" placeholder=\"5__ ___ ____\" className=\"form-control\" id=\"Tel\" name=\"tel\" required={zorunlo} onChange={handleInputChange} defaultValue={window.userdata.tel} />\r\n\r\n                                </div>\r\n                                <div className=\"col-12 col-md-5\">\r\n                                    <label htmlFor=\"Tel\" className=\"form-label m-0\">Email</label>\r\n                                <input type=\"email\" pattern=\"[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2, 4}$\" maxLength=\"50\" className=\"form-control\" id=\"email\" placeholder=\"email\" name=\"email\" required={zorunlo} onChange={handleInputChange} defaultValue={window.userdata.email} />\r\n                                </div>\r\n                            </div>\r\n\r\n\r\n                            <div className=\"mt-1 row  mb-2\" >\r\n                                <div className=\"col-12 col-md-5\">\r\n                                    <label htmlFor=\"UserName\" className=\"form-label m-0\">Kullanıcı Adı</label>\r\n                                <input type=\"text\" className=\"form-control\" id=\"UserName\" maxLength=\"50\" placeholder=\"\" name=\"userName\" onChange={handleInputChange} required defaultValue={window.userdata.userName} />\r\n                                </div>\r\n\r\n                                <div className=\"col-12 col-md-6 pt-4\">\r\n                                    <label className=\"form-label me-3\">İletişim Yöntemi</label>\r\n                                    <div className=\"form-check form-check-inline\">\r\n                                    <input className=\"form-check-input\" type=\"checkbox\" name=\"sendMessage\" id=\"sendMessage\" defaultChecked={window.userdata.sendMessage} onChange={handleInputChange} defaultValue={window.userdata.sendMessage} />\r\n                                        <label className=\"form-check-label m-0\" for=\"sendMessage\">\r\n                                            Mesajlarım\r\n                                        </label>\r\n                                    </div>\r\n                                    <div className=\"form-check form-check-inline\">\r\n                                    <input className=\"form-check-input\" type=\"checkbox\" name=\"sendEmail\" id=\"sendEmail\" defaultChecked={window.userdata.sendEmail} onChange={handleInputChange} defaultValue={window.userdata.sendEmail} />\r\n                                        <label className=\"form-check-label m-0\" for=\"sendEmail\">\r\n                                            Email\r\n                                        </label>\r\n                                    </div>\r\n                                    <div className=\"form-check form-check-inline\">\r\n                                    <input className=\"form-check-input\" type=\"checkbox\" name=\"sendSMS\" id=\"sendSMS\" defaultChecked={window.userdata.sendSMS} onChange={handleInputChange} defaultValue={window.userdata.sendSMS} />\r\n                                        <label className=\"form-check-label m-0\" for=\"sendSMS\">\r\n                                            SMS\r\n                                        </label>\r\n                                    </div>\r\n\r\n                                </div>\r\n\r\n\r\n\r\n\r\n\r\n                            </div>\r\n\r\n                            <div className=\" row  mb-2\" id=\"passwordrow\" >\r\n                                <div className=\"col-12 col-md-5\">\r\n                                    Şifre\r\n                                <input type=\"password\" maxLength=\"30\" className=\"form-control\" id=\"Password\" placeholder=\"Şifre en az 8 karakter, 1 harf ve 1 rakam içermelidr\" name=\"password\" required onChange={handleInputChange} defaultValue={window.userdata.password} />\r\n                                </div>\r\n                                <div className=\"col-12 col-md-5\">\r\n                                    Şifre - Tekrar\r\n                                <input type=\"password\" maxLength=\"30\" className=\"form-control\" id=\"Password2\" placeholder=\"Şifre en az 8 karakter, 1 harf ve 1 rakam içermelidr\" name=\"password\" required onChange={handleInputChange} defaultValue={window.userdata.password} />\r\n                                </div>\r\n\r\n                            </div>\r\n\r\n                           \r\n                            <div className=\"row mt-3 border-top pt-2\" >\r\n                            <div className=\"col-12 col-md-12 text-end\">\r\n                                <button type=\"button\" className=\"btn btn-sm btn-primary mb-2 \" id=\"devambutton\" onClick={nextPage }>Devam</button>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                  \r\n                </div>\r\n            </div>\r\n        </div >\r\n    </div >\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, sendget, sendpost, showConfirmMessage, showSuccessMessage } from '../GlobalState.js';\r\nimport AdaSetting from './AdaSetting.js';\r\n\r\n\r\nexport default function CBSADAMatching(props) {\r\n    const [listData, setListData] = useState(null);\r\n    const [matchresult, setMAtchResult] = useState(null);\r\n    const [cbsListData, setCBSListData] = useState(props.cbsdata);\r\n\r\n    const [listtype, setListType] = useState(\"MATCH\");\r\n\r\n    useEffect(() => {\r\n        match();\r\n\r\n\r\n    }, [])\r\n\r\n\r\n\r\n    const fetchAdaList = () => {\r\n\r\n        sendget(\"getadalist?mevki=NOTMATCH&mahalle=NOTMATCH\", \"universelistspin\", (response) => {\r\n\r\n            response.json().then(value => {\r\n                setListData(value)\r\n            })\r\n        });\r\n    }\r\n\r\n\r\n    const fetchCbsList = () => {\r\n\r\n        sendget(\"getcbsadalist?param=NOTMATCHED\", \"cbslistspin\", (response) => {\r\n\r\n            response.json().then(value => {\r\n                setCBSListData(value)\r\n\r\n\r\n            })\r\n\r\n        });\r\n    }\r\n\r\n    const match = () => {\r\n\r\n        sendget(\"matchada\", \"spinner1\", (response)=> {\r\n                response.text().then(value => {\r\n                    var nums = value.replaceAll('\"', '').split(' ');\r\n                    setMAtchResult(nums)\r\n                    fetchAdaList();\r\n                    fetchCbsList();\r\n                })\r\n        });\r\n    }\r\n\r\n    const removeAda = (id) => {\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removeada\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n\r\n                }\r\n                else {\r\n                    setListData([...listData.filter(x => x.id != id)]);\r\n                }\r\n            }));\r\n    }\r\n\r\n\r\n    const removenotmatched = (list) => {\r\n        fetch(\"removenotmatchedadas\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                fetchAdaList();\r\n            }\r\n        });\r\n    }\r\n\r\n    const addnotmatched = (rec) => {\r\n\r\n        sendpost(\"addnotmatchedcbsadas\", rec, \"spinner1\", (response)=> {\r\n                fetchCbsList();\r\n                fetchAdaList();\r\n            \r\n        });\r\n    }\r\n\r\n\r\n    const renderCBSTable = (tabledata) => {\r\n        var count = tabledata.length;\r\n        tabledata = tabledata.slice(0, Math.min(30000, tabledata.length));\r\n        var mytable = <div><div className=\"fw-bold mb-1 text-center\">TKGM'de olan Universe'de olmayan   {count} kayıt\r\n\r\n        </div>\r\n\r\n            <div className=\"table-responsive  mainpagescroll table-sm \" style={{ \"height\": \"85vh\" }}>\r\n                <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <tbody id=\"myTable\">\r\n                        {tabledata.map(rec =>\r\n                            <tr style={{ \"height\": \"15px\" }}>\r\n                                <td >{rec.tapumahalleref + \" \" + rec.adano + \"/\" + rec.parselno}</td>\r\n                                <td className=\"text-end\" ><button className=\"btn btn-sm btn-primary me-2 p-0 ps-1 pe-1 text-decoration-none\" onClick={() => addnotmatched(rec)}>Ekle</button></td>\r\n                            </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        </div>\r\n       \r\n        return (mytable);\r\n    }\r\n\r\n    const renderAdaTable = (tabledata) => {\r\n        var count = tabledata.length;\r\n        tabledata = tabledata.slice(0, Math.min(30000, tabledata.length));\r\n        var mytable = <div > <div className=\"fw-bold mb-1 text-center \">Universe'de olan TKGM'de olmayan {count} kayıt\r\n\r\n        </div>\r\n\r\n            <div className=\"table-responsive  mainpagescroll table-sm \" style={{ \"height\": \"85vh\" }}>\r\n                <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <tbody id=\"myTable\">\r\n                        {tabledata.map(rec =>\r\n                            <tr style={{ \"height\": \"15px\" }}>\r\n                                <td >{rec.userName + \" \" + rec.name}</td>\r\n                                <td className=\"text-end\" ><button className=\" btn btn-sm btn-secondary me-2 p-0 ps-1 pe-1 text-decoration-none\" onClick={() => removeAda(rec.id)}>Sil</button></td>\r\n\r\n                            </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        </div >\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    var listTable = \"\";\r\n\r\n    var taskpart = document.getElementById(\"taskpart\")\r\n    if (taskpart != null) {\r\n        if (listtype == \"MATCH\") {\r\n            taskpart.hidden = true;\r\n        }\r\n        else {\r\n            taskpart.hidden = false;\r\n        }\r\n    }\r\n\r\n    return (\r\n        <div className=\"p-3\">\r\n\r\n\r\n            <div className=\"row mb-1\">\r\n                <div className=\"col-10\">\r\n                    <h5 className=\"\">TKGM'deki Veri ile Eşleştir</h5>\r\n                </div>\r\n                <div className=\"col-2 text-end\" >\r\n                    <button onClick={() => props.changeComponent(<AdaSetting changeComponent={props.changeComponent} />)} className=\"btn btn-primary btn-sm text-decoration-none \">Geri Dön</button>\r\n                </div>\r\n            </div>\r\n            <div className=\"row mb-3\">\r\n                <div className=\"col-12 textvmuted \" style={{ \"text-align\": \"justify\" }} >\r\n                    <div className=\"bg-light p-3 rounded-3 textvmuted fw-bold align-middle\" >\r\n                        <span className=\"fa fa-info pe-3\" style={{ color: \"lightblue\", fontSize: \"26px\" }} ></span>\r\n                        Bu ekranda TKGM den gelen parsel verileri ile Universe'de kullanılan parsel verisi karşılaştırılmaktadır.\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n            <div  className=\"\" id=\"spinner1\" hidden>\r\n                <span >Eşleştirme yapılıyor. Lütfen işlem tamamlanmadan sayfayı kapatmayınız...</span>\r\n                <div className=\"spinner-border spinner-border-sm ms-1\" role=\"status\" ></div>\r\n            </div>\r\n\r\n            {matchresult != null && <div class=\"mt-3 text-primary\" id=\"reportdata\">\r\n                <div className=\"row mb-1\" >\r\n                    <div className=\"col-4 \">\r\n                        Universe Parsel Sayısı: {matchresult[0]}\r\n                    </div>\r\n                    <div className=\"col-4\">\r\n                        TKGM Parsel Sayısı: {matchresult[1]}\r\n                    </div>\r\n                    <div className=\"col-4 \">\r\n                        Eşleşen Kayıt Sayısı: {matchresult[2]}\r\n                    </div>\r\n                    <div className=\"col-4 \">\r\n                        Universe'de olan TKGM'de olmayan: {matchresult[3]}\r\n                    </div>\r\n                    <div className=\"col-4\">\r\n                        TKGM'de olan Universe'de olmayan: {matchresult[4]}\r\n                    </div>\r\n                </div>\r\n            </div>}\r\n\r\n\r\n\r\n\r\n            <div className=\"row mb-1\" hidden id=\"taskpart\">\r\n                <div className=\"col-12 text-end\">\r\n                    <button onClick={removenotmatched} className=\"btn btn-link btn-sm me-1 text-decoration-none\">Eşleşmeyen Tüm Lokal Kayıtları Sil</button>\r\n                    <button onClick={() => { addnotmatched(cbsListData.filter(x => x.ada == null)) }} className=\"btn btn-link btn-sm text-decoration-none\">Eşleşmeyen Tüm CBS Kayıtları Ekle</button>\r\n\r\n                </div>\r\n            </div>\r\n            <div className=\"row mt-4\" id=\"tablepart\">\r\n                <div className=\"col-6\"  >\r\n                    <button className=\"ms-1 btn btn-sm btn-danger me-2 mb-1 text-decoration-none\" onClick={() => removenotmatched()}>Universe'de olan TKGM'de olmayan tüm kayıtları sil ({listData != null ? listData.length + \" kayıt\" : \"0 kayıt\"})</button>\r\n\r\n                </div>\r\n                <div className=\"col-6\"  >\r\n                    <button className=\"ms-1 btn btn-sm btn-success  me-2 mb-1 text-decoration-none\" onClick={() => addnotmatched()}>TKGM'de olan Universe'de olmayan tüm kayıtları ekle  ({cbsListData != null ? cbsListData.length + \" kayıt\" : \"0 kayıt\"})</button>\r\n\r\n                </div>\r\n            </div>\r\n\r\n\r\n            <div className=\"row\" >\r\n                <div className=\"col-6 text-center\"  >\r\n                    <div hidden className=\"spinner-border spinner-border-sm\" role=\"status\" id=\"universelistspin\"></div>\r\n                </div>\r\n                <div className=\"col-6 text-center\"  >\r\n                    <div hidden claclassNamess=\"spinner-border spinner-border-sm\" role=\"status\" id=\"cbslistspin\"></div>\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row mt-4\" id=\"tablepart\">\r\n                <div className=\"col-6\"  >\r\n                    {listData != null ? renderAdaTable(listData, \"userName\", \"mahal\") : \"\"}\r\n                </div>\r\n                <div className=\"col-6\"  >\r\n                    {cbsListData != null ? renderCBSTable(cbsListData, \"tapumahalleref\", \"mahal\") : \"\"}\r\n                </div>\r\n            </div>\r\n\r\n\r\n            <div className=\"row\" key={listTable} id=\"progress-row\" hidden>\r\n                <div className=\"col-12\"  >\r\n\r\n                    <div className=\"mt-4\" >\r\n                        <div className=\"progress\" >\r\n                            <div className=\"progress-bar p-0\" style={{ \"width\": \"0%\" }} id=\"progressbar\">0%</div>\r\n                        </div>\r\n                    </div>\r\n\r\n                    <div className=\"\" id=\"recordstatus\">\r\n\r\n                    </div>\r\n\r\n\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n\r\n\r\n        </div >\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport CBSMahalleMatching from './CBSMahalleMatching.js';\r\nimport KadastralVeri from '../Application/KadastralVeri.js';\r\nimport { ajaxFail, showConfirmMessage, showErrorMessage, showSuccessMessage } from '../GlobalState.js';\r\n\r\nimport bootstrap from 'bootstrap/dist/js/bootstrap.min.js'\r\nexport default function MahalleSetting(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState(null);\r\n    const [MevkiList, setMevkiList] = useState([]);\r\n    var sortField = null;\r\n    const [sortDirection, setSortDirection] = useState({});\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n\r\n    useEffect(() => {\r\n        var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"popover\"]'))\r\n        var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n            return new bootstrap.Popover(popoverTriggerEl)\r\n        })\r\n    }, [])\r\n\r\n    const myCompare = (a, b) => {\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n        var ret = 1;\r\n        if (sortDirection[sortField] == \"ZA\")\r\n            ret = -1;\r\n\r\n        if (av == null && bv != null)\r\n            return -1 * ret;\r\n        if (av != null && bv == null)\r\n            return ret;\r\n\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * ret;\r\n        if (av < bv) {\r\n            return -1 * ret;\r\n        }\r\n        if (av > bv) {\r\n            return ret;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == \"ZA\") {\r\n            sortDirection[sortField] = \"AZ\";\r\n        }\r\n        else {\r\n            sortDirection[sortField] = \"ZA\";\r\n        }\r\n        var temp = [...listData]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setListData(temp);\r\n    }\r\n\r\n\r\n    const removeRecord = (id) => {\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removemahalle\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify([id])\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n                }\r\n                else {\r\n                    response.json().then(value => {\r\n                        setListData(value);\r\n                    })\r\n                }\r\n            }));\r\n    }\r\n\r\n    const fetchMevkiList = () => {\r\n\r\n        fetch(\"getmevkilist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    var i = 0;\r\n                    var c = document.getElementById(\"mevkiId\");\r\n                    c.innerHTML = \"\";\r\n                    for (i = 0; i < value.length; i++) {\r\n                        var opt = document.createElement('option');\r\n                        opt.value = value[i].id;\r\n                        opt.innerHTML = value[i].name;;\r\n                        c.appendChild(opt);\r\n                    }\r\n                    c.selectedIndex = -1;\r\n                    setMevkiList(value);\r\n                    fetchList();\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n   \r\n\r\n    const getMevkiName = (rec) => {\r\n        var id = rec.mevkiId\r\n        for (var i = 0; i < MevkiList.length; i++) {\r\n            if (MevkiList[i].id == id) {\r\n                rec.mevkiName = MevkiList[i].name;\r\n                return MevkiList[i].name;\r\n            }\r\n        }\r\n    }\r\n\r\n    const submitUpdateRecord = (rec) => {\r\n\r\n        fetch(\"updatemahalle\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Güncelleme Başarılı\")\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchList = () => {\r\n\r\n        fetch(\"getmahallelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const Add = () => {\r\n        if (document.getElementById(\"mevkiId\").selectedIndex == -1) {\r\n            showErrorMessage(\"Mevki Seçilmemiş\");\r\n            return;\r\n        }\r\n        postdata[\"mevkiId\"]=document.getElementById(\"mevkiId\").value;\r\n\r\n        fetch(\"addmahalle\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify([postdata])\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                document.getElementById(\"name\").value = \"\";\r\n                document.getElementById(\"koordinat\").value = \"\";\r\n                fetchList();\r\n\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n\r\n        var mytable = <div>\r\n            <div className=\"row  mb-2 pt-2 border-top\">\r\n                <div className=\"col-12 fw-bold\">\r\n                    Manuel Mahalle Ekle\r\n                </div>\r\n            </div>\r\n            <div className=\"row  mb-3 pb-3 border-bottom\">\r\n                <div className=\"col-12 col-md-3\">\r\n                    Mevki Seç (Zorunlu)\r\n                    <select className=\"form-select form-select-sm\" id=\"mevkiId\" name=\"mevkiId\"  required={true}   >\r\n                    </select>\r\n                </div>\r\n                <div className=\"col-12 col-md-3\">\r\n                    Mahalle Adını Gir (Zorunlu)\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" placeholder=\"\" name=\"name\" onChange={handleInputChange} defaultValue=\"\" />\r\n                </div>\r\n                <div className=\"col-12 col-md-5\">\r\n                    Koordinat Gir\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"koordinat\" placeholder=\"\" name=\"koordinat\" onChange={handleInputChange} defaultValue=\"\" />\r\n                </div>\r\n               \r\n                <div className=\"col-12 col-md-1\">\r\n                    <br />\r\n                    <button onClick={Add} className=\"btn btn-sm btn-primary text-decoration-none\">Ekle</button>\r\n                </div>\r\n            </div>\r\n            < div className=\"row rounded-3\">\r\n                <div className=\"col-3 m-1 text-center fw-bold\" >\r\n                    <button onClick={() => sortList(\"mevkiName\")} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Mevki</button>\r\n                  \r\n                </div>\r\n                <div className=\"col-3 m-1 text-center fw-bold\" >\r\n                    <button onClick={() => sortList(\"name\")} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Mahalle</button>\r\n                    \r\n                </div>\r\n                <div className=\"col-4 text-center fw-bold\" >\r\n                    <button onClick={() => sortList(\"koordinat\")} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Koordinat</button>\r\n                </div>\r\n                <div className=\"col-2 text-center fw-bold\" >\r\n                </div>\r\n            </div>\r\n\r\n            {tabledata.map(apprec =>\r\n                < div className=\"row rounded-3 mt-2\" key={apprec.id}>\r\n                    {/*<div className=\"col-1\" >*/}\r\n                    {/*   {apprec.id} */}\r\n                    {/*</div>*/}\r\n                    <div className=\"col-3\" >\r\n                        <select className=\"form-select form-select-sm\" name=\"mevkiId\" defaultValue={apprec.mevkiId} onChange={(e) => updateRecord(apprec, e)} >\r\n                            <option value={-1}></option>\r\n                            {MevkiList.map(x => <option value={x.id}>{x.name}</option>)}\r\n                        </select>\r\n\r\n                     </div>\r\n                    <div className=\"col-3\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm border-0\" name=\"name\" defaultValue={apprec.name} onChange={(e) => updateRecord(apprec, e)} />\r\n                    </div>\r\n\r\n                    <div className=\"col-4\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm border-0\" name=\"koordinat\" defaultValue={apprec.koordinat} onChange={(e) => updateRecord(apprec, e)} />\r\n                    </div>\r\n                    <div className=\"col-2 text-end\" >\r\n                        <button onClick={() => submitUpdateRecord(apprec)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Güncelle</button>&nbsp;\r\n                        <button onClick={() => removeRecord(apprec.id)} className=\"btn btn-link btn-sm text-danger text-decoration-none m-0 p-0\">Sil</button>\r\n                    </div>\r\n                </div>\r\n            )}\r\n        </div>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        \r\n        fetchMevkiList();\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div className=\"bg-light m-2 p-3 rounded-3\">\r\n            <div className=\"row mb-3 \">\r\n                <div className=\"col-6 \" >\r\n                    <h5>MAHALLE</h5>\r\n                </div>\r\n                <div className=\"col-6 text-end\" >\r\n                    <button onClick={() => props.changeComponent(<CBSMahalleMatching changeComponent={props.changeComponent} />)} className=\"btn btn-sm btn-success text-decoration-none me-1\">TKGM ile Eşleştir</button>\r\n                    <button className=\"btn btn-secondary me-3 btn-sm text-decoration-none fw-bold\" id=\"mypopover\" data-bs-trigger=\"focus\" data-bs-toggle=\"popover\" title=\"AÇIKLAMA\" data-bs-content=\"TKGM mahalle verisi ile UNIVERSE'de kullanılan BAŞVURUYA ESAS mahalle verisini karşılaştırır. Toplu olarak veri ekleyip silebileceğiniz gibi tek tek de işlem yapabilirsiniz.\">?</button>\r\n\r\n                    <button onClick={() => props.changeComponent(<KadastralVeri changeComponent={props.changeComponent} />)} className=\"btn btn-primary btn-sm text-decoration-none \">Geri Dön</button>\r\n                </div>\r\n            </div>\r\n            {listTable}\r\n        </div>\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport KadastralVeri from '../Application/KadastralVeri.js';\r\nimport { ajaxFail, showConfirmMessage, showErrorMessage, showSuccessMessage, removeTurkcLow } from '../GlobalState.js';\r\nimport CBSADAMatching from './CBSADAMatching.js';\r\nimport $ from 'jquery';\r\n\r\nimport bootstrap from 'bootstrap/dist/js/bootstrap.min.js'\r\n\r\nexport default function AdaSetting(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState(null);\r\n    const [MahalleList, setMahalleList] = useState([]);\r\n\r\n\r\n\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    useEffect(() => {\r\n        var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"popover\"]'))\r\n        var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n            return new bootstrap.Popover(popoverTriggerEl)\r\n        })\r\n    }, [])\r\n\r\n    var sortField = null;\r\n    const [sortDirection, setSortDirection] = useState({});\r\n\r\n    const myCompare = (a, b) => {\r\n        var av = a[sortField];\r\n        var bv = b[sortField];\r\n        var ret = 1;\r\n        if (sortDirection[sortField] == \"ZA\")\r\n            ret = -1;\r\n\r\n        if (av == null && bv != null)\r\n            return -1 * ret;\r\n        if (av != null && bv == null)\r\n            return ret;\r\n\r\n\r\n        if (typeof av === 'string' || av instanceof String)\r\n            if (typeof bv === 'string' || bv instanceof String)\r\n                return av.localeCompare(bv) * ret;\r\n        if (av < bv) {\r\n            return -1 * ret;\r\n        }\r\n        if (av > bv) {\r\n            return ret;\r\n        }\r\n        return 0;\r\n    }\r\n\r\n    const sortList = (fildname) => {\r\n        sortField = fildname;\r\n        if (sortDirection[sortField] == null || sortDirection[sortField] == \"ZA\") {\r\n            sortDirection[sortField] = \"AZ\";\r\n        }\r\n        else {\r\n            sortDirection[sortField] = \"ZA\";\r\n        }\r\n        var temp = [...listData]; //clone the array to update the component on setApplist\r\n        temp.sort(myCompare);\r\n        setListData(temp);\r\n    }\r\n\r\n    const removeRecord = (id) => {\r\n        showConfirmMessage(id + \" Numaralı Kaydı Silmek İstedinizden Emin Misiniz?\", \"\", \"Evet\", \"Hayır\", () =>\r\n            fetch(\"removeada\", {\r\n                method: 'POST',\r\n                headers: {\r\n                    'Accept': 'application/json',\r\n                    'Content-Type': 'application/json'\r\n                },\r\n                body: JSON.stringify(id)\r\n            }).then(async response => {\r\n                if (!response.ok) {\r\n                    ajaxFail(response);\r\n\r\n                }\r\n                else {\r\n                    fetchList();\r\n                }\r\n            }));\r\n    }\r\n\r\n\r\n    const validateNumberAndForwardSlash = (event) => {\r\n        var key = event.which;\r\n        if (key >= 48 && key <= 57 || key == 47) {\r\n            return true;\r\n        } else {\r\n\r\n            event.preventDefault()\r\n        }\r\n    }\r\n\r\n\r\n    const submitUpdateRecord = (rec) => {\r\n\r\n        fetch(\"updateada\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                showSuccessMessage(\"Güncelleme Başarılı\")\r\n            }\r\n        });\r\n    }\r\n\r\n    const fetchList = () => {\r\n        var mahalle = JSON.parse(document.getElementById(\"mahalleId\").value);\r\n        document.getElementById(\"mahallesecimmsg\").innerHTML = \"\";\r\n\r\n                postdata[\"mahalleId\"] = mahalle.id;\r\n\r\n        fetch(\"getadalistbyid?mevki=\" + mahalle.mevkiId + \"&mahalle=\" + mahalle.id, {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const Add = () => {\r\n        if (document.getElementById(\"mahalleId\").selectedIndex == -1) {\r\n            showErrorMessage(\"Mahalle Seçilmemiş\");\r\n            return;\r\n        }\r\n        var mahalle = JSON.parse(document.getElementById(\"mahalleId\").value);\r\n        postdata[\"mahalleId\"] = mahalle.id;\r\n\r\n        fetch(\"addada\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                document.getElementById(\"name\").value = \"\";\r\n                document.getElementById(\"koordinat\").value = \"\";\r\n                fetchList();\r\n\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n    const getMahalleName = (id) => {\r\n        for (var i = 0; i < MahalleList.length; i++) {\r\n            if (MahalleList[i].id == id)\r\n                return MahalleList[i].name;\r\n        }\r\n    }\r\n\r\n\r\n    const filterTable = (event) => {\r\n        var textbox = event.target;\r\n        if (textbox == null)\r\n            return;\r\n        var value = textbox.value;\r\n\r\n        $(\"#myTable .row \").filter(function () {\r\n            var rowtext = $(this).children().eq(1).children().eq(0).val()\r\n            var t1 = removeTurkcLow(rowtext);\r\n            var t2 = removeTurkcLow(value);\r\n            if (t1.indexOf(t2) == -1)\r\n                return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n        if (document.getElementById(\"totalrec\") != null && $(\"#myTable div:visible\") != null)\r\n            document.getElementById(\"totalrec\").innerHTML = $(\"#myTable div:visible\").length + \" kayıt\";\r\n\r\n    }\r\n\r\n\r\n\r\n\r\n    const renderTable = (tabledata) => {\r\n\r\n        var mytable = <div>\r\n            < div className=\"row rounded-3\">\r\n                <div className=\"col-3  fw-bold\" >\r\n                    <button onClick={() => sortList(\"mevkiName\")} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Mahalle</button>\r\n\r\n                </div>\r\n                <div className=\"col-2  fw-bold\" >\r\n                    <button onClick={() => sortList(\"name\")} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Ada/Parsel</button>\r\n\r\n                </div>\r\n                <div className=\"col-4  fw-bold\" >\r\n                    <button onClick={() => sortList(\"koordinat\")} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Koordinat</button>\r\n                </div>\r\n                {/*<div className=\"col-1 \" >*/}\r\n                {/*Kara Liste*/}\r\n                {/*</div>*/}\r\n                <div className=\"col-2  \" >\r\n                    Kara Liste\r\n                </div>\r\n                <div className=\"col-1  \" >\r\n                </div>\r\n            </div>\r\n\r\n            < div id=\"myTable\">\r\n                {tabledata.map(apprec =>\r\n                    < div className=\"row rounded-3\" key={apprec.id}>\r\n                        <div className=\"col-3 mt-1\" >\r\n                            <input type=\"text\" className=\"form-control form-control-sm border-0\" name=\"name\" value={getMahalleName(apprec.mahalleId)} />\r\n                        </div>\r\n                        <div className=\"col-2 mt-1\" >\r\n                            <input type=\"text\" className=\"form-control form-control-sm border-0\" name=\"name\" defaultValue={apprec.name} onChange={(e) => updateRecord(apprec, e)} />\r\n                        </div>\r\n                        <div className=\"col-4 mt-1\" >\r\n                            <input type=\"text\" className=\"form-control form-control-sm border-0\" name=\"koordinat\" defaultValue={apprec.koordinat} onChange={(e) => updateRecord(apprec, e)} />\r\n                        </div>\r\n                       {/* <div className=\"col-1 mt-1\" >*/}\r\n                       {/*     <input type=\"checkbox\" className=\"form-check-input\" name=\"karaListe\" defaultChecked={apprec.karaListe} onChange={(e) => updateRecord(apprec, e)} />*/}\r\n                       {/*</div>*/}\r\n                        <div className=\"col-2 mt-1\" >\r\n                            <input className=\"form-control form-control-sm\" type=\"date\" name=\"karaListeTarih\" id=\"karaListeTarih\" defaultValue={apprec.karaListeTarih} placeholder=\"2024/01/01\" onChange={(e) => updateRecord(apprec, e)}  />\r\n\r\n                        </div>\r\n                        <div className=\"col-1 text-end\" >\r\n                            <button onClick={() => submitUpdateRecord(apprec)} className=\"btn btn-link  text-decoration-none m-0 p-0\"><i class=\"fa fa-save\" title=\"Güncelle\"></i></button>&nbsp;\r\n                            <button onClick={() => removeRecord(apprec.id)} className=\"btn btn-link  text-danger text-decoration-none m-0 p-0\"><i class=\"fa fa-trash-o\" title=\"Sil\"></i></button>\r\n                        </div>\r\n                    </div>\r\n                )}\r\n            </div>\r\n        </div>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n    const fetchMahalleList = () => {\r\n\r\n        fetch(\"getmahallelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    var i = 0;\r\n                    var c = document.getElementById(\"mahalleId\");\r\n                    c.innerHTML = \"\";\r\n                    var opt = document.createElement('option');\r\n                    opt.value = JSON.stringify(\"\");\r\n                    opt.innerHTML = \"Mahalle Seçiniz\";\r\n                    opt.disabled = true;\r\n                    opt.selected = true;\r\n                    c.appendChild(opt);\r\n\r\n                    for (i = 0; i < value.length; i++) {\r\n                        var opt = document.createElement('option');\r\n                        opt.value = JSON.stringify(value[i]);\r\n                        opt.innerHTML = value[i].name;;\r\n                        c.appendChild(opt);\r\n                    }\r\n                    setMahalleList(value);\r\n\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchMahalleList();\r\n\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null && listData.length > 0) {\r\n        listTable = renderTable(listData);\r\n    }\r\n\r\n\r\n    return (\r\n        <div className=\"\">\r\n            <div className=\"bg-light m-2 p-3 rounded-3\">\r\n                <div className=\"row mb-3 pb-3 border-bottom\">\r\n                    <div className=\"col-6 \" >\r\n                        <h5>Ada/Parsel</h5>\r\n                    </div>\r\n                    <div className=\"col-6 text-end\" >\r\n                        <button onClick={() => props.changeComponent(<CBSADAMatching changeComponent={props.changeComponent} />)} className=\"btn btn-sm btn-success text-decoration-none me-1\">TKGM ile Eşleştir</button>\r\n                        <button className=\"btn btn-secondary me-3 btn-sm text-decoration-none fw-bold\" id=\"mypopover\" data-bs-trigger=\"focus\" data-bs-toggle=\"popover\" title=\"AÇIKLAMA\" data-bs-content=\"TKGM ada/parsel verisi ile UNIVERSE'de kullanılan BAŞVURUYA ESAS ada/parsel verisini karşılaştırır. Toplu olarak veri ekleyip silebileceğiniz gibi tek tek de işlem yapabilirsiniz. Dikkat: Bu işlem uzun sürebilmektedir. Lütfen işlem tamamlanmadan sayfayı kapatmayınız.\">?</button>\r\n\r\n                        <button onClick={() => props.changeComponent(<KadastralVeri changeComponent={props.changeComponent} />)} className=\"btn btn-primary btn-sm text-decoration-none \">Geri Dön</button>\r\n                    </div>\r\n                </div>\r\n                <div className=\"row\">\r\n                    <div className=\"col-12 fw-bold mb-4\">\r\n                        Manuel Ada/Parsel Ekle\r\n                    </div>\r\n\r\n                </div>\r\n\r\n                <div className=\"row  mb-2 pb-4 border-bottom\">\r\n                    <div className=\"col-3\">\r\n                        <select className=\"form-select form-select-sm\" id=\"mahalleId\" name=\"mahalleId\" required={true} onChange={fetchList} >\r\n                        </select>\r\n                    </div>\r\n                    <div className=\"col-3\">\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"name\" placeholder=\"Ada/Parsel\" name=\"name\" onChange={handleInputChange} defaultValue=\"\" onKeyPress={validateNumberAndForwardSlash} />\r\n                    </div>\r\n                    <div className=\"col-5\">\r\n                        <input type=\"text\" className=\"form-control form-control-sm\" id=\"koordinat\" placeholder=\"Koordinat\" name=\"koordinat\" onChange={handleInputChange} defaultValue=\"\" />\r\n                    </div>\r\n                    <div className=\"col-1 text-end\">  <button onClick={Add} className=\"btn btn-sm btn-primary text-decoration-none\">Ekle</button></div>\r\n                </div>\r\n\r\n\r\n                <div className=\"row  mt-2\">\r\n                    <div className=\"col-3\" id=\"totalrec\">\r\n                        {listData != null ? listData.length : 0} kayıt\r\n                    </div>\r\n                    <div className=\"col-3 text-center\">\r\n                        <input className=\"form-control form-control-sm \" id=\"mySearchInput\" type=\"text\" placeholder=\"Ara\" onKeyUp={filterTable} />\r\n                    </div>\r\n\r\n\r\n                </div>\r\n\r\n\r\n\r\n               \r\n\r\n                {listTable}\r\n            </div>\r\n            <div className=\"text-center mt-5 textvmuted\" id=\"mahallesecimmsg\"><h2>Lütfen öncelikle mahalle seçimi yapınız</h2>  </div>\r\n        </div>\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport KadastralVeri from '../Application/KadastralVeri.js';\r\nimport $ from 'jquery';\r\nimport { ajaxFail, cutString, isEmpty, showErrorMessage, toUpperCaseTurkce } from '../GlobalState.js';\r\nimport CBSADAMatching from './CBSADAMatching.js';\r\nimport CBSAdaSorgula from './CBSAdaSorgula.js';\r\nimport bootstrap from 'bootstrap/dist/js/bootstrap.min.js'\r\nimport { Tarife_Cetveli } from '../User/UserPermConstants.js';\r\n\r\nexport default function CBSAdaSetting(props) {\r\n    const [listData, setListData] = useState(props.cbsdata);\r\n    const [searchKeyword, setSearchKeyWord] = useState(null);\r\n    var recivedRecCount = 0;\r\n    useEffect(() => {\r\n        if (listData == null)\r\n            fetchList();\r\n        var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"popover\"]'))\r\n        var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\r\n            return new bootstrap.Popover(popoverTriggerEl)\r\n        })\r\n    }, [])\r\n\r\n\r\n    const getDurumName = (d) => {\r\n        if (d == 0) return \"Bilinmiyor\";\r\n        if (d == 1) return \"Taslak\";\r\n        if (d == 2) return \"Pasif\";\r\n        if (d == 3) return \"Aktif\";\r\n    }\r\n\r\n\r\n    const refreshList = () => {\r\n        var durum = \"\";\r\n        document.getElementById(\"errorbox\").innerHTML = \"\";\r\n        var raktif = document.getElementById(\"Aktif\").checked;\r\n        var rpasif = document.getElementById(\"Pasif\").checked;\r\n\r\n        if (raktif == true)\r\n            durum = \"durum=3\";\r\n        else if (rpasif == true)\r\n            durum = \"durum=2\";\r\n\r\n        var strtType = \"start\";\r\n        if (document.getElementById(\"start0\").checked)\r\n            strtType = \"continue\";\r\n        if (document.getElementById(\"fromdate\").checked) {\r\n            strtType = \"fromdate\";\r\n            var tarih = document.getElementById(\"tarih\").value;\r\n            if (isEmpty(tarih)) {\r\n                showErrorMessage(\"Tarih Boş Olamaz\");\r\n                return;\r\n            }\r\n            if (durum.length > 0)\r\n                durum = durum + \" and \";\r\n            durum = durum + \"sistemkayittarihi>%27\" + tarih + \"%27\"; //%27 is '\r\n\r\n        }\r\n\r\n        setListData([]);\r\n        recivedRecCount = 0;\r\n\r\n\r\n        var source = new EventSource('fetchcbsadalist?durum=' + durum + \"&startType=\" + strtType);\r\n\r\n        source.onmessage = function (event) {\r\n\r\n            var rec = null;\r\n            try {\r\n                rec=JSON.parse(event.data)\r\n            }\r\n            catch (ex) {\r\n\r\n            }\r\n            if (rec==null || rec.tapukimlikno == \"-1\") {\r\n                document.getElementById(\"errorbox\").innerHTML = event.data;\r\n                return;\r\n            }\r\n\r\n\r\n            recivedRecCount++;\r\n            var table = document.getElementById(\"myTable\")\r\n            if (table == null)\r\n                source.close();\r\n\r\n            var row = table.insertRow(0); //-1 to end\r\n            var trowcount = table.rows.length;\r\n            if (trowcount > 5000)\r\n                table.deleteRow(trowcount - 1);\r\n\r\n            row.style.height = \"15px\";\r\n            var cell0 = row.insertCell(0);\r\n            var cell1 = row.insertCell(1);\r\n            var cell2 = row.insertCell(2);\r\n            var cell3 = row.insertCell(3);\r\n            var cell4 = row.insertCell(4);\r\n            cell0.innerHTML = rec.tapukimlikno;\r\n            cell1.innerHTML = rec.tapumahalleref;\r\n            cell2.innerHTML = rec.adano + \"/\" + rec.parselno;\r\n            cell3.innerHTML = rec.durum + \"( \" + getDurumName(rec.durum) + \")\";\r\n            cell4.innerHTML = cutString(rec.coordinates, 70);\r\n            var reccount = document.getElementById(\"reccount\")\r\n            if (reccount == null) {\r\n                source.close();\r\n            }\r\n            else {\r\n                reccount.innerHTML = recivedRecCount + \" kayıt.\";\r\n                reccount.innerHTML += \" index=\" + rec.index;\r\n            }\r\n        };\r\n\r\n        source.onopen = function (event) {\r\n            console.log('connected');\r\n            var sp = document.getElementById(\"loadspinner\");\r\n            if (sp != null)\r\n                sp.hidden = false;\r\n        };\r\n\r\n        source.onerror = function (event) {\r\n            console.log(event);\r\n            var sp = document.getElementById(\"loadspinner\");\r\n            if (sp != null)\r\n                sp.hidden = true;\r\n            source.close();\r\n        }\r\n\r\n   }\r\n\r\n    \r\n\r\n    const searchSimilarAdas = (apprec) => {\r\n        var popup = window.open(\"/\");\r\n        popup.searchAda = apprec;\r\n    }\r\n\r\n\r\n    const fetchList = () => {\r\n        fetch(\"getcbsadalist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const renderTable = (tabledata) => {\r\n        var array10 = tabledata;\r\n        var reccount = document.getElementById(\"reccount\")\r\n        if (isEmpty(searchKeyword)) {\r\n            if (tabledata.length > 100) {\r\n                var len = tabledata.length;\r\n                array10 = []\r\n                for (var i = 0; i < 100; i++) {\r\n                    var rect = tabledata[Math.floor(Math.random() * len)]\r\n                    array10.push(rect);\r\n                }\r\n            }\r\n            if (reccount != null) {\r\n                reccount.innerHTML = tabledata.length + \" kayıt.\";\r\n            }\r\n        }\r\n        else {\r\n            var keys = searchKeyword.split(\" \");\r\n            array10 = tabledata.filter(x => toUpperCaseTurkce(x.tapumahalleref).includes(toUpperCaseTurkce(keys[0]))\r\n                || x.adano.includes(keys[0])\r\n                || x.parselno.includes(keys[0])\r\n                || (x.adano + \"/\" + x.parselno).includes(keys[0])\r\n            )\r\n            for (var i = 1; i < keys.length; i++) {\r\n                array10 = array10.filter(x => toUpperCaseTurkce(x.tapumahalleref).includes(toUpperCaseTurkce(keys[i]))\r\n                    || x.adano.includes(keys[i])\r\n                    || x.parselno.includes(keys[i])\r\n                    || (x.adano + \"/\" + x.parselno).includes(keys[i])\r\n                )\r\n            }\r\n\r\n\r\n\r\n            if (reccount != null) {\r\n                reccount.innerHTML = array10.length + \" kayıt.\";\r\n            }\r\n\r\n        }\r\n        var mytable =\r\n            <div className=\"table-responsive  mainpagescroll table-sm \" style={{ \"height\": \"80vh\" }}>\r\n                <table className='table table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                    <thead style={{ \"position\": \"sticky\", \"top\": 0, \"z-index\": \"1\" }} className=\"bg-light\">\r\n                        <tr>\r\n                            <th className=\"text-start\" style={{ \"width\": \"10%\", overflow: \"hidden\" }}>ID</th>\r\n                            <th className=\"text-start\" >Mahalle</th>\r\n                            <th className=\"text-start\" >Ada/Parsel No</th>\r\n                            <th className=\"text-start\" >Durum</th>\r\n                            <th className=\"text-start\" >Koordinat</th>\r\n                            <th ></th>\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody id=\"myTable\">\r\n                        {array10.map(apprec =>\r\n                            <tr style={{ \"height\": \"15px\" }}>\r\n                                <td >{apprec.tapukimlikno}</td>\r\n                                {/* <td title={apprec.tapucinsaciklama}  >{apprec.tapucinsaciklama}</td>*/}\r\n                                {/*<td >{apprec.tapuzeminref}</td>*/}\r\n                                <td >{apprec.tapumahalleref}</td>\r\n                                {/* <td >{apprec.tapualan}</td>*/}\r\n                                <td >{apprec.adano}/{apprec.parselno}</td>\r\n                                {/* <td >{apprec.durum + \"( \" + getDurumName(apprec.durum) + \")\"}</td>*/}\r\n                                <td >{getDurumName(apprec.durum)}</td>\r\n                                <td >{cutString(apprec.coordinates, 100)}</td>\r\n                                <td className=\"text-end\">\r\n                                    <button className=\"btn btn-sm btn-link\" onClick={() => searchSimilarAdas(apprec) }>\r\n                                    <i className=\"fa fa-search-plus\"></i>\r\n                                </button>\r\n                                </td>\r\n                            </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        return (mytable);\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    var listTable = <div class=\"d-flex justify-content-center\"><div class=\"spinner-border\" role=\"status\"></div></div>;\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n\r\n    return (\r\n        <div className=\"p-2\">\r\n            <div className=\"row mb-1\">\r\n                <div className=\"col-11\">\r\n                    <h5 className=\"ps-1\">KADASTRO VERİSİ - (ADA/PARSEL)</h5>\r\n                </div>\r\n                <div className=\"col-1 text-end\" >\r\n                    <button onClick={() => props.changeComponent(<KadastralVeri changeComponent={props.changeComponent} />)} className=\"btn btn-primary btn-sm text-decoration-none \">Geri Dön</button>\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row mb-3\">\r\n                <div className=\"col-12 textvmuted \" style={{ \"text-align\": \"justify\" }} >\r\n                    <div className=\"bg-light p-3 rounded-3 textvmuted fw-bold align-middle\" >\r\n                        <span className=\"fa fa-info pe-3\" style={{ color: \"lightblue\", fontSize: \"26px\" }} ></span>\r\n                        Bu ekranda, tapu kadastrodan gelen veriler indirilerek Universe içerisinde ayrı bir alana kaydedilmektedir. Burada kaydedeceğiniz veriler başvuru esnasında kullandığınız veriler DEĞİLDİR. Burada yaptıklarınız başvuru sırasında kullanılan parsel verilerinizi ETKİLEMEZ/DEĞİŞTİRMEZ. Başvuru esnasında kullandığınız veriler UNIVERSE'de kullanılan Kadastral Veriler başlığı altında yer almaktadır.\r\n\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row mb-1 border p-1 pt-3\">\r\n\r\n                <div className=\"col-12 col-md-3  \">\r\n                    <div class=\"form-check form-check\">\r\n                        <input class=\"form-check-input\" type=\"radio\" name=\"startType\" id=\"start0\" value=\"start0\" defaultChecked={true} onClick={() => document.getElementById(\"tarih\").disabled = true}/>\r\n                        <label class=\"form-check-label\" for=\"inlineRadio1\">Kaldığım Yerden Devam et</label>\r\n                    </div>\r\n                    <div class=\"form-check form-check\">\r\n                        <input class=\"form-check-input\" type=\"radio\" name=\"startType\" id=\"continue\" value=\"continue\" onClick={() => document.getElementById(\"tarih\").disabled = true}/>\r\n                        <label class=\"form-check-label\" for=\"inlineRadio2\">Yeniden Başlat</label>\r\n                    </div>\r\n\r\n                    <div class=\"form-check form-check\">\r\n                        <input class=\"form-check-input\" type=\"radio\" name=\"startType\" id=\"fromdate\" value=\"fromdate\" onClick={() => document.getElementById(\"tarih\").disabled=false} />\r\n\r\n                        <label class=\"form-check-label\" for=\"inlineRadio2\">Aşağıdaki Tarihten Sonra  Eklenenler\r\n                            <input type=\"text\" className=\"form-control form-control-sm\" id=\"tarih\" defaultValue=\"\" placeholder=\"Örnek : 2023-10-22\" name=\"tarih\" disabled />\r\n</label>\r\n                    </div>\r\n\r\n                </div>\r\n\r\n\r\n                <div className=\"col-12 col-md-3  \">\r\n                    <button onClick={refreshList} className=\"btn btn-primary btn-sm \">TKGM'deki VERİYİ İNDİR</button>\r\n                    <button className=\"btn btn-secondary ms-1 btn-sm text-decoration-none fw-bold\" id=\"mypopover2\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\" title=\"AÇIKLAMA\" data-bs-content=\"Aşağıdaki parsel verilerinin tamamı silinerek TKGM'deki mahalle verileri indirilir. İşlemi yarım bırakırsanız veriler eksik indirilebilir ve yeniden indirmeniz gerekir. Bu veriler UNIVERSE'de kullanılan BAŞVURUYA ESAS parsel verileriniz DEĞİLDİR. Bu işlem, başvuruda kullanılan parsel listesinizde herhangi bir değişiklik yapmaz. Bu işlem oldukça uzun sürmektedir. Lütfen işlem tamamlanmadan sayfayı kapatmayınız...\">?</button>\r\n\r\n                    <br />\r\n                    <div class=\"form-check form-check-inline\">\r\n                        <input class=\"form-check-input\" type=\"radio\" name=\"Durum\" id=\"Pasif\" value=\"2\" />\r\n                        <label class=\"form-check-label\" for=\"inlineRadio1\">Pasif</label>\r\n                    </div>\r\n                    <div class=\"form-check form-check-inline\">\r\n                        <input class=\"form-check-input\" type=\"radio\" name=\"Durum\" id=\"Aktif\" value=\"3\" defaultChecked={true}/>\r\n                        <label class=\"form-check-label\" for=\"inlineRadio2\">Aktif</label>\r\n                    </div>\r\n                    <div class=\"form-check form-check-inline\">\r\n                        <input class=\"form-check-input\" type=\"radio\" name=\"Durum\" id=\"Hepsi\" value=\"\"  />\r\n                        <label class=\"form-check-label\" for=\"inlineRadio3\">Hepsi</label>\r\n                    </div>\r\n                </div>\r\n                <div className=\"col-12 col-md-3 fw-bold\" >\r\n                    Son İndirilen Veri: {listData != null && listData[0] != null ? listData[0].updateTime : \"\"}\r\n                    <br />\r\n                    Parsel: {listData != null ? listData.length : \"\"}\r\n                </div>\r\n                <div className=\"col-12 col-md-2 \" id=\"reccount\">\r\n\r\n                </div>\r\n                <div className=\"col-12 col-md-1 text-end \" id=\"loadspinner\" hidden>\r\n                    <div class=\"spinner-border spinner-border-sm ps-1\"></div>\r\n                </div>\r\n            </div>\r\n            <div className=\"row \">\r\n                <div className=\"col-12 text-danger\" style={{ \"text-align\": \"justify\" }} id=\"errorbox\" >\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row mt-4 mb-1\" >\r\n                <div className=\"col-12 col-md-4\" >\r\n\r\n                        <button onClick={() => props.changeComponent(<CBSAdaSorgula cbsdata={listData} changeComponent={props.changeComponent} />)} className=\"btn btn-primary btn-sm \">TKGM'de ARAMA YAP</button>\r\n                        <button className=\"btn btn-secondary ms-1 btn-sm text-decoration-none fw-bold \" id=\"mypopover1\" data-bs-toggle=\"popover\" data-bs-trigger=\"focus\" title=\"AÇIKLAMA\" data-bs-content=\"Veriyi indirmeden TKGM içerisinde arama yapabilir, istediklerinizi UNIVERSE'de kullanılan BAŞVURUYA ESAS ada/parsel listenize ekleyebilirsiniz.\">?</button>\r\n                   \r\n                </div>\r\n                <div className=\"col-12 col-md-3\" >\r\n                    <input type=\"text\" className=\"form-control form-control-sm\" id=\"ara\" defaultValue=\"\" placeholder=\"Arama için en az 3 karakter giriniz\" name=\"ara\" />\r\n                </div>\r\n                <div className=\"col-12 col-md-5\" >\r\n                    <button type=\"button\" className=\"btn  btn-sm btn-primary me-1 ps-3 pe-3\" onClick={(e) => { var sk = document.getElementById(\"ara\").value; if (sk.length == 0 || sk.length > 2) setSearchKeyWord(sk); else showErrorMessage(\"En az 3 karakter giriniz\") }}>\r\n                        Ara\r\n                    </button>\r\n                    <button type=\"button\" className=\"btn  btn-sm btn-primary \" onClick={(e) => { document.getElementById(\"ara\").value = \"\"; setSearchKeyWord(\"\") }}>\r\n                        Temizle\r\n                    </button>\r\n                </div>\r\n            </div>\r\n            <div className=\"row mb-1\" >\r\n                <div className=\"col-12 textvmuted text-center\" >\r\n                    Aşağıda sadece rasgele 100 kayıt gösterilmektedir. Kayıtların tamamından ulaşmak istediğiniz veri için, yukarıdaki arama kutusunu kullanabilirsiniz\r\n                </div>\r\n            </div>\r\n            <div className=\"row\" key={listTable}>\r\n                <div className=\"col-12\" id=\"tablediv\" >\r\n                    {listTable}\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n        </div>\r\n\r\n    );\r\n\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport UserStatistics from './UserStatistics.js';\r\nimport $ from 'jquery';\r\nimport { ajaxFail, sendget } from '../GlobalState.js';\r\nimport Application from '../Application/Application.js';\r\nimport UserDetails from './UserDetails.js';\r\n\r\nexport default function UserWorkLoad(props) {\r\n    const [workload, setWorkLoad] = React.useState(null);\r\n    const [listtype, setListType] = React.useState(1);\r\n    const [username, setUserName] = useState(props.userdata==null?null:props.userdata.userName);\r\n\r\n    useEffect(() => {\r\n        getWorkLoadList(\"username=\" + username + \"&listtype=1\");\r\n    }, []);\r\n\r\n\r\n\r\n\r\n    const getApp = (id) => {\r\n        fetch(\"getapp\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body:id\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response);\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    window.changeComponent(<Application appData={value} changeComponent={window.changeComponent} backButton={<UserDetails changeComponent={props.changeComponent} userdata={props.userdata} />} />)\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    const getWorkLoadList = (params) => {\r\n        sendget(\"userapps?\" + params, \"spn1\", (response) => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setWorkLoad(data);\r\n                });\r\n            }\r\n        })\r\n    }\r\n\r\n    const filterTable = (event) => {\r\n        const target = event.target;\r\n        const value = target.value.toLowerCase();\r\n        $(\"#myTable tr\").filter(function () {\r\n            var keywords = value.split(\" \");\r\n            for (let index = 0; index < keywords.length; ++index)\r\n                if ($(this).text().toLowerCase().indexOf(keywords[index]) == -1)\r\n                    return $(this).toggle(false);\r\n            return $(this).toggle(true);\r\n        });\r\n        let rowCount = $('#myTable tr:visible').length;\r\n        document.getElementById(\"reccount\").innerHTML = rowCount + \" kayıt\"\r\n    }\r\n\r\n    \r\n    const changeTab = (t) => {\r\n        document.getElementById(\"basvuruyapan\").classList.remove(\"active\");\r\n        document.getElementById(\"muellif\").classList.remove(\"active\");\r\n        document.getElementById(\"kontrolor\").classList.remove(\"active\");\r\n        document.getElementById(\"myInput\").value = \"\";\r\n        if (t == 1) {\r\n            document.getElementById(\"basvuruyapan\").classList.add(\"active\");\r\n        }\r\n        if (t == 2) {\r\n            document.getElementById(\"muellif\").classList.add(\"active\");\r\n        }\r\n        if (t == 3) {\r\n            document.getElementById(\"kontrolor\").classList.add(\"active\");\r\n        }\r\n        setListType(t);\r\n        getWorkLoadList(\"username=\" + username + \"&listtype=\" + t);\r\n\r\n    }\r\n\r\n\r\n\r\n    const renderToList = () => {\r\n        var mytable =\r\n            <div className=\"\">\r\n                <table className='table mt-3 table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\" id=\"myTable\" key={workload}>\r\n                    <thead>\r\n                        <th className=\"text-start\"> Kullanıcı</th>\r\n                        <th className=\"text-start\"> Başvuru No</th>\r\n                        <th className=\"text-start\"> Durum</th>\r\n                        <th className=\"text-start\"> Başvuru Tipi</th>\r\n                        <th className=\"text-start\"> Başvuru Tarihi</th>\r\n                        <th className=\"text-start\"> Konum</th>\r\n                    </thead>\r\n                    <tbody id=\"myworkloadTable\">\r\n                        {workload.map(rec =>\r\n                            <tr key={rec.id} role=\"button\" className=\"v-hover\" onClick={() => { getApp(rec.id)}}>\r\n\r\n                                <td>{rec.enlem}</td>\r\n                                <td>{rec.id}</td>\r\n                                <td>{rec.temp}</td>\r\n                                <td>{rec.basvuruTipi}</td>\r\n                                <td>{rec.basvuruTarihi}</td>\r\n                                <td>{rec.mahalle + \" \" + rec.ada}</td>\r\n                            </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n      \r\n        document.getElementById(\"reccount\").innerHTML = workload.length+ \" kayıt\"\r\n\r\n        return (mytable);\r\n    }\r\n\r\n    \r\n\r\n    const renderToListKontrolor = () => {\r\n        var mytable =\r\n            <div className=\"\">\r\n                <table className='table mt-3 table-vdstriped table-sm' aria-labelledby=\"tabelLabel\" id=\"myTable\" key={workload}>\r\n                    <thead>\r\n                        <th className=\"text-start\"> Kullanıcı</th>\r\n                        <th className=\"text-start\"> Id</th>\r\n                        <th className=\"text-start\"> Durum</th>\r\n                        <th className=\"text-start\"> BaşvuruTipi</th>\r\n                        <th className=\"text-start\"> Konum</th>\r\n                        <th className=\"text-start\"> Görev</th>\r\n                        <th className=\"text-start\"> Atama</th>\r\n                        <th className=\"text-start\"> Başlama</th>\r\n                        <th className=\"text-start\"> Tamamlama</th>\r\n                       \r\n                    </thead>\r\n                    <tbody id=\"myworkloadTable\">\r\n                        {workload.map(rec =>\r\n                            <tr key={rec.id} role=\"button\" className=\"v-hover\" onClick={() => { getApp(rec.id) }}>\r\n                                <td>{rec.enlem}</td>\r\n                                <td>{rec.id}</td>\r\n                                <td>{rec.temp}</td>\r\n                                <td>{rec.basvuruTipi}</td>\r\n                               \r\n                                <td>{rec.mahalle + \" \" + rec.ada}</td>\r\n                                <td>{rec.vekilTel}</td>\r\n                                <td>{rec.vekaletDosyaname}</td>\r\n                                <td>{rec.vekilName}</td>\r\n                                <td>{rec.vekilTC}</td>\r\n                            </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        document.getElementById(\"reccount\").innerHTML = workload.length + \" kayıt\"\r\n        return (mytable);\r\n\r\n\r\n    }\r\n    const renderToListMuellif = () => {\r\n        var mytable =\r\n            <div className=\"\">\r\n                <table className='table mt-3 table-vdstriped  table-sm' aria-labelledby=\"tabelLabel\" id=\"myTable\" key={workload}>\r\n                    <thead>\r\n                        <th className=\"text-start\"> Kullanıcı</th>\r\n                        <th className=\"text-start\"> BaşvuruNo</th>\r\n                        <th className=\"text-start\"> Durum</th>\r\n                        <th className=\"text-start\"> BaşvuruTipi</th>\r\n                        <th className=\"text-start\"> Başvuru Tarihi</th>\r\n                        <th className=\"text-start\"> Konum</th>\r\n                        <th className=\"text-start\"> Görev</th>\r\n                    </thead>\r\n                    <tbody id=\"myworkloadTable\">\r\n                        {workload.map(rec =>\r\n                            <tr key={rec.id} role=\"button\" className=\"v-hover\" onClick={() => { getApp(rec.id) }}>\r\n                                <td>{rec.enlem}</td>\r\n                                <td>{rec.id}</td>\r\n                                <td>{rec.temp}</td>\r\n                                <td>{rec.basvuruTipi}</td>\r\n                                <td>{rec.basvuruTarihi}</td>\r\n                                <td>{rec.mahalle + \" \" + rec.ada}</td>\r\n                                <td>{rec.boylam}</td>\r\n                            </tr>\r\n                        )}\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        document.getElementById(\"reccount\").innerHTML = workload.length + \" kayıt\"\r\n        return (mytable);\r\n    }\r\n\r\n    var tabledata = \"\";\r\n\r\n    if (workload != null) {\r\n        if (listtype == 1)\r\n            tabledata = renderToList();\r\n        else if (listtype == 2) {\r\n            tabledata = renderToListMuellif();\r\n        }\r\n        else if (listtype == 3) {\r\n            tabledata = renderToListKontrolor();\r\n        }\r\n\r\n    }\r\n\r\n\r\n    return <div >\r\n        <div className=\"row\">\r\n            <div className=\"col-md-3 col-12\">\r\n\r\n            </div>\r\n            <div className=\"col-md-6 col-12\">\r\n <input className=\"form-control form-control-sm\" id=\"myInput\" type=\"text\" placeholder=\"Arama...\" onKeyUp={filterTable} />\r\n            </div>\r\n            <div className=\"col-md-3 col-12 text-end\" id=\"reccount\">\r\n               \r\n            </div>\r\n        </div>\r\n\r\n\r\n        <ul className=\"nav nav-tabs mt-2\">\r\n            <li className=\"nav-item\">\r\n                <a className=\"nav-link active\" href=\"#\" id=\"basvuruyapan\" onClick={()=>changeTab(1)}>Başvuru Yapan</a>\r\n            </li>\r\n            <li className=\"nav-item\">\r\n                <a className=\"nav-link\" href=\"#\" id=\"muellif\" onClick={() => changeTab(2)}>Muellif</a>\r\n            </li>\r\n            <li className=\"nav-item\">\r\n                <a className=\"nav-link\" href=\"#\" id=\"kontrolor\" onClick={() => changeTab(3)}>Kontrolör</a>\r\n            </li>\r\n        </ul>\r\n        <div className=\"w-100 text-center\">\r\n            <div className=\"spinner-border spinner-border-sm\" id=\"spn1\"></div>\r\n        </div>\r\n        <div >\r\n            {tabledata}\r\n\r\n        </div>\r\n        <div  >\r\n\r\n            {username == null ? <UserStatistics /> : \"\"}\r\n\r\n        </div>\r\n    </div>\r\n\r\n}","import React, { useState, useEffect } from 'react';\r\nimport Select from \"react-select\";\r\nimport axios from \"axios\";\r\nimport { isImage, isEmpty, ajaxFail, showErrorMessage } from '../GlobalState.js';\r\n\r\nexport default function UserUploadFilePanel(props) {\r\n\r\n   \r\n    const [options, setOptions] = useState([]);\r\n    var userType = props.userdata.userType;\r\n    const [fileType, setFileType] = useState(\"\");\r\n\r\n    useEffect(() => {\r\n        userfilenamelist();\r\n    }, [])\r\n\r\n    const handleTypeChange = (event) => {\r\n\r\n        document.getElementById(\"formFile\").accept = \"\";\r\n        document.getElementById(\"formFile\").value = \"\";\r\n        for (var i = 0; i < options.length; i++) {\r\n            if (options[i].id == Number(event.target.value) && isEmpty(options[i].fileType) == false) {\r\n                setFileType(options[i].fileType)\r\n                break;\r\n            }\r\n        }\r\n      \r\n\r\n    }\r\n\r\n\r\n    const userfilenamelist = () => {\r\n\r\n        fetch(\"userfilenamelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setOptions(value);\r\n                    if (value.length > 0 && !isEmpty(value[0].fileType)) {\r\n                        setFileType(value[0].fileType)\r\n                    }\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const getOptions = () => {\r\n        var o = [];\r\n        if (options == null)\r\n            return o;\r\n\r\n        for (var i = 0; i < options.length; i++) {\r\n            if (options[i].userType != null) {\r\n                if (userType == null)\r\n                    continue;\r\n                if (options[i].userType.split(',').some(t => userType.includes(t.trim())) == false)\r\n                    continue;\r\n            }\r\n            o.push(<option value={options[i].id} tag={i}>{options[i].name + (options[i].zorunlu == true ? \" *\" : \"\")}</option>)\r\n        }\r\n        return o;\r\n    }\r\n\r\n        const SendFiles = (selectedFiles) => {\r\n            var uploadspinner = document.getElementById(\"uploadspinner\"); //this element is in parent component\r\n            if (uploadspinner != null)\r\n                uploadspinner.hidden = false;\r\n\r\n            for (let i = 0; i < selectedFiles.length; i++) {\r\n                var formData = new FormData();\r\n                formData.append(\"file\", selectedFiles[i].file);\r\n                // formData.append(\"caption\", selectedFiles[i].file.name);\r\n                var extns = \"\";\r\n                var idxx = selectedFiles[i].file.name.lastIndexOf(\".\");\r\n                if (idxx >= 0)\r\n                    extns = selectedFiles[i].file.name.substr(idxx);\r\n\r\n\r\n\r\n                formData.append(\"caption\", options.find(x => x.id == selectedFiles[i].TypeID).name + extns);\r\n                formData.append(\"typeID\", selectedFiles[i].TypeID);\r\n                formData.append(\"userName\", props.userdata.userName);\r\n                axios.post(\r\n                    \"submituserfile\",\r\n                    formData,\r\n                    {\r\n                        headers: {\r\n                            //\"Authorization\": \"YOUR_API_AUTHORIZATION_KEY_SHOULD_GOES_HERE_IF_HAVE\",\r\n                            \"Content-type\": \"multipart/form-data\",\r\n                        },\r\n                    }\r\n                ).then(res => {\r\n                    if (uploadspinner != null)\r\n                        uploadspinner.hidden = true;\r\n                    document.getElementById(\"myfiletypeselect\").selectedIndex = -1;\r\n                    if (props.refreshFiles)\r\n                         props.refreshFiles();\r\n\r\n                })\r\n                    .catch(err => { showErrorMessage(err); })\r\n            }\r\n        }\r\n\r\n        const handleSelectedFile = (event) => {\r\n            if (event.target.files[0] != null) {\r\n                if (event.target.files[0].size > 20971520) {\r\n                    showErrorMessage(\"dosya boyu en fazla 20 MB olabilir\");\r\n                    event.target.value = \"\";\r\n                    return;\r\n                }\r\n                if (document.getElementById(\"myfiletypeselect\").selectedIndex == -1) {\r\n                    showErrorMessage(\"Dosya Tipini Seçiniz\")\r\n                    return;\r\n                }\r\n               var filetyp=options.find(x => x.id == document.getElementById(\"myfiletypeselect\").value)\r\n\r\n\r\n                if (isEmpty(filetyp.fileType) == false) {\r\n                    var filename = event.target.files[0].name.toLowerCase();\r\n                    var acceptedTypes = filetyp.fileType.toLowerCase().split(\",\");\r\n\r\n                    if (acceptedTypes.some(x => filename.endsWith(x.trim()) || (x.trim().toLowerCase() == \"image/*\" && isImage(filename))) == false) {\r\n                        showErrorMessage(\"dosya uzantısı \" + filetyp.fileType + \"  olabilir\");\r\n                        return;\r\n                    }\r\n                }\r\n\r\n\r\n\r\n\r\n\r\n                SendFiles([{ file: event.target.files[0], TypeID: document.getElementById(\"myfiletypeselect\").value }]);\r\n            }\r\n        }\r\n      \r\n\r\n        return (\r\n            <div >\r\n                <div className=\" p-1 mb-2\" >\r\n                    <div className=\"row pt-2 pb-2 \">\r\n                        <div className=\"col-11\">\r\n\r\n                            <label for=\"formFile\" class=\"form-label\">Dosya Yukle</label>\r\n                            <br />\r\n                            <select id=\"myfiletypeselect\" className=\"mb-1 form-select form-select-sm\" placeholder=\"Dosya Türü\" name=\"filenames\"\r\n                                onChange={(e) => handleTypeChange(e)}\r\n                            >\r\n                                {getOptions()}\r\n                            </select>\r\n                            <input className=\"form-control form-control-sm\" type=\"file\" id=\"formFile\" accept={fileType} onChange={(e) => handleSelectedFile(e)} />\r\n                        </div>\r\n                        <div className=\"col-1 text-center\" id=\"uploadspinner\" hidden>\r\n                            <div className=\"spinner-border  spinner-border-sm\" ></div>\r\n                        </div>\r\n                    </div>\r\n                </div >\r\n            </div >\r\n        );\r\n\r\n\r\n    }\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useGlobalState, ajaxFail } from '../GlobalState.js';\r\n\r\nimport UserUploadFilePanel from \"./UserUploadFilePanel.js\";\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\n\r\n\r\nexport default function UserFilePanel(props) {\r\n\r\n    const [userdata, setData] = useState(props.userdata);\r\n    const [fileNameList, setfileNameList] = useState(null);\r\n    const [files, setFiles] = useState([]);\r\n    const [userName, setUserNAme] = useGlobalState('userName');\r\n    var eksikdosyauyari = \"\";\r\n\r\n\r\n\r\n    const handleFile = (files) => {\r\n        // selectedFiles = files;\r\n    }\r\n\r\n    const userfilenamelist = () => {\r\n        fetch(\"userfilenamelist\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setfileNameList(value);\r\n                    fetchFiles();\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    useEffect(() => {\r\n        userfilenamelist();\r\n    }, [props.userdata])  //this is to force chid refresh when parent chnge appdata\r\n\r\n\r\n\r\n  \r\n\r\n\r\n\r\n\r\n    const getFileType = (id) => {\r\n        if (fileNameList == null) return id;\r\n        for (var i = 0; i < fileNameList.length; i++)\r\n            if (fileNameList[i].id == id)\r\n                return fileNameList[i].name;\r\n        return id;\r\n    }\r\n\r\n\r\n    const fetchFiles = () => {\r\n        fetch(\"getuserfiles\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(props.userdata.userName)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(async data => {\r\n                    setFiles(data);\r\n                    if (props.refreshFiles)\r\n                        props.refreshFiles(data);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    const removefile = (rec) => {\r\n        fetch('removeuserfile?id=' + rec.id, {\r\n            method: 'GET'\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                setFiles(files.filter(x => x.id != rec.id));\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n    return (\r\n        <div>\r\n            <div className=\"row\">\r\n                <div className=\"col-3\">\r\n                    <h5 className=\"text-primary\">Dosyalar</h5 >\r\n\r\n                </div>\r\n                <div className=\"col-9 text-danger justify-content-end align-items-end text-end  pe-4\" id=\"eksikdosyauyari\">\r\n\r\n                </div>\r\n\r\n                <div className=\"col-12\" id=\"filetable\">\r\n                    (*) ile işaretlenen dosyaların yuklenmesi zorunludur.\r\n                    <UserUploadFilePanel setFiles={handleFile} userdata={props.userdata} refreshFiles={fetchFiles} showAll={props.showAll} />\r\n\r\n                    <table className='table table-striped  table-sm' aria-labelledby=\"tabelLabel\">\r\n                        <tbody id=\"userfiles\">\r\n                            {files.map(rec => <tr><td ></td><td> {rec.userName} </td><td >\r\n                                {rec.tarih} </td><td> \r\n                                    {getFileType(rec.typeId)} </td><td className=\"text-end\"><a href={'/getuserfile?id=' + rec.id} download={\r\n                                    rec.caption}> <i className=\"fa fa-cloud-download\" style={{ \"font-size\": \"20px\" }}></i></a>&nbsp;\r\n                                    {rec.userName == userName && <a onClick={() => removefile(rec)} href=\"#\"><i className=\"fa fa-trash-o\" style={{ \"font-size\": \"20px\" }}></i></a>}\r\n\r\n                                </td></tr>)}\r\n\r\n                        </tbody>\r\n                    </table>\r\n                </div>\r\n\r\n                \r\n            </div>\r\n        </div >\r\n    );\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport Application from \"./Application.js\"\r\nimport SharedUsersPanel from './SharedUsersPanel.js';\r\nimport ApplicationListCardView from './ApplicationListCardView.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\n\r\nexport default function AppCard(props) {\r\n    var apprec = props.apprec;\r\n    const [role, setRole] = useGlobalState('role');\r\n    const [userName, setUserName] = useGlobalState('userName');\r\n    useEffect(() => {\r\n\r\n    }, [])\r\n    var colors = [\"#fff8dd\", \"#e8fff3\", \"#fff5f8\", \"#f8f5ff\"]\r\n    var bordercolors = [\"#50cc88\", \"#009cf7\", \"#ffc800\", \"#f1416d\"]\r\n\r\n    const getBasvuruTuruName = (name) => {\r\n        return name.replaceAll('\"name\":', \"\").replaceAll(']', \"\").replaceAll('[', \"\").replaceAll('{', \"\").replaceAll('}', \"\").replaceAll('\"', \"\")\r\n\r\n    }\r\n\r\n    const getAppTypeName = (i) => {\r\n        if (props.appTypes == null) return i + \"\";\r\n        var r = props.appTypes.find(element => element.id == i);\r\n        if (r == null) return i;\r\n        return r.name;\r\n    }\r\n\r\n    const drag = (event) => {\r\n        //event.dataTransfer.effectAllowed = \"move\";\r\n        event.dataTransfer.setDragImage(document.getElementById(\"card\" + apprec.id + \" \" + apprec.id1), 0, 0)\r\n        event.dataTransfer.setData(\"text\", apprec.id + \" \" + (props.kontrolUserName != null ? props.kontrolUserName + \" \" + props.apprec.id1:\"\"));\r\n    }\r\n    const allowDrop = (event) => {\r\n        event.preventDefault();\r\n    }\r\n\r\n    const drop = (event) => {\r\n        event.preventDefault();\r\n        document.getElementById(\"card\" + apprec.id + \" \" + apprec.id1).classList.remove(\"pt-3\", \"opacity-75\")\r\n        if (props.kontrolUserName != null)\r\n            props.drop(event,props.kontrolUserName)\r\n        \r\n    }\r\n    \r\n    var dragCount = 0;\r\n    const dragleave = (event) => {\r\n        dragCount--;\r\n        event.preventDefault();\r\n        if (dragCount <= 0)\r\n            document.getElementById(\"card\" + apprec.id + \" \" + apprec.id1).classList.remove(\"pt-3\", \"opacity-75\")\r\n    }\r\n    const enter = (event) => {\r\n        dragCount++;\r\n        event.preventDefault();\r\n        if (dragCount == 1)\r\n            document.getElementById(\"card\" + apprec.id + \" \" + apprec.id1).classList.add( \"pt-3\",  \"opacity-75\")\r\n    }\r\n\r\n    return <div className=\"p-0\" id={\"card\" + apprec.id + \" \" + apprec.id1} draggable=\"true\" onDragStart={drag} onDragOver={allowDrop} onDrop={drop}  onDragEnter={enter} onDragLeave={dragleave}>\r\n\r\n        <div className=\" p-3  border border-rounded rounded-3 bg-white\" >\r\n\r\n            <div className=\"d-inline p-1 fw-bold d-block rounded-3\"   style={{ \"background-color\": colors[apprec.id % 4] }}><img className=\"rounded-circle\" style={{ width: \"32px\", height: \"32px\" }} src={\"/getuserpic?user=\" + apprec.basvuruYapan.substring(0,1)} /> {apprec.ada}-{apprec.arsaSahibi == null ? \"\" : apprec.arsaSahibi.substring(0, Math.min(apprec.arsaSahibi.length, 20)) + (apprec.arsaSahibi.length > 20 ? \"...\" : \"\")}</div>\r\n\r\n            \r\n            <div className=\"mt-3 mb-4\" >\r\n                <a href=\"#\" className=\"text-decoration-none text-secondary \" onClick={() => { props.changeComponent(<Application appData={apprec} changeComponent={props.changeComponent} backButton={<ApplicationListCardView changeComponent={props.changeComponent} role={role} userName={userName}/>} />) }}>\r\n                    {props.colnames.map(c => {\r\n                        if (c == \"basvuruTipi\" && apprec[c] != null) {\r\n                            return <div><span className=\"text-dark\">Başvuru Tipi</span>: <span className=\"text-muted fw-bold\">{getBasvuruTuruName(apprec[c]).substring(0, 24)}</span></div>\r\n                        }\r\n                        if (c == \"basvuruDurumu\" && apprec[c] != null) {\r\n                            return <div><span className=\"text-dark\">Başvuru Durumu</span>: <span className=\"text-muted fw-bold\">{getAppTypeName(apprec[c]).substring(0, 24)}</span></div>\r\n                        }\r\n                        if (apprec[c] != null) {\r\n                            return <div><span className=\"text-dark\">{c.charAt(0).toUpperCase() + c.slice(1)}</span>: &nbsp; <span className=\"text-muted fw-bold\">{String(apprec[c]).substring(0, Math.min(String(apprec[c]).length, 20)) + (String(apprec[c]).length > 20 ? \"...\" : \"\")}</span></div>\r\n\r\n                        }\r\n\r\n                        if (apprec.appData != null && apprec.appData.length > 2) {\r\n                            var appdata = JSON.parse(apprec.appData)\r\n                            if (appdata[c] != null) {\r\n                                if (appdata[c].type == \"checkbox\")\r\n                                    return <div><span className=\"text-dark\">{c.charAt(0).toUpperCase() + c.slice(1)}</span>: &nbsp; <input className=\"form-check-input\" type=\"checkbox\" checked={appdata[c].value} /> </div>\r\n                                return <div><span className=\"text-dark\">{c.charAt(0).toUpperCase() + c.slice(1)}</span>: &nbsp; <span className=\"text-muted fw-bold\">{String(appdata[c].value).substring(0, Math.min(String(appdata[c].value).length, 20)) + (String(appdata[c].value).length > 20 ? \"...\" : \"\")}</span></div>\r\n                            }\r\n                        }\r\n                        return <div><span className=\"text-dark\">{c.charAt(0).toUpperCase() + c.slice(1)}</span>: </div>\r\n                    })}\r\n                </a>\r\n\r\n            </div>\r\n\r\n           {/* <SharedUsersPanel appData={apprec} showCompact={true} />*/}\r\n        </div>\r\n    </div>\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport { useState, useEffect } from 'react';\r\nimport { showErrorMessage, useGlobalState } from '../GlobalState.js';\r\n\r\n\r\n\r\nexport default function RegisterUser(props) {\r\n    const [overedvelet, setOveredevlet] = useState(\"\");\r\n\r\n    useEffect(() => {\r\n        registeroveredevlet();\r\n\r\n    }, [])\r\n\r\n    const registeroveredevlet = () => {\r\n        fetch(\"registeroveredevlet\", {\r\n            method: 'GET',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            }\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n            }\r\n            else {\r\n                response.text().then(async data => {\r\n\r\n                    setOveredevlet(data.replaceAll('\"', ''));\r\n\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    if (overedvelet == \"1\") {\r\n        return <div className=\"text-center mt-4 pt-4\">\r\n            <h5 className=\"mt-4 pt-4\">Kayıt olmak için önce E-Devlet kapısı uzerinden giriş yapmanız gerekmektedir.</h5>\r\n            <div class=\"row\">\r\n                <div class=\"col-md-12 col-lg-3\"> </div>\r\n                <div className=\"col-12 col-lg-6 text-center \">\r\n                    <a className=\"btn btn-sm btn-danger text-decoration-none w-100 rounded-3  mt-3\" href=\"register\">\r\n                        <img src={require('../Dashboard/edevletlogo.png').default} style={{ width: \"28px\", height: \"28px\" }} />\r\n                        <b> E-Devlet şifresi ile Kayıt Ol</b>\r\n                    </a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    }\r\n    else if (overedvelet == \"0\"){\r\n        return <div className=\"text-center mt-4 pt-4\">\r\n            <h5 className=\"mt-4 pt-4\">Sisteme daha önce kaydedilmemiş T.C, Email ve Telefon numarası girmelisniz.</h5>\r\n            <div class=\"row\">\r\n                <div class=\"col-md-12 col-lg-3\"> </div>\r\n                <div className=\"col-12 col-lg-6 text-center \">\r\n                    <a className=\"btn btn-sm btn-primary text-decoration-none w-100 rounded-3  mt-3\" href=\"register\"> Devam Et</a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n    }\r\n    return \"\";\r\n}\r\n\r\n\r\n\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Navigate } from 'react-router-dom'\r\nimport { isEmpty, sendpost, showErrorMessage, useGlobalState, sendget } from '../GlobalState.js';\r\nimport Register1 from \"./Register1.js\";\r\nimport ForgotPassword from \"./ForgotPassword.js\";\r\nimport aes from 'crypto-js/aes';\r\nimport crypto from 'crypto-js';\r\nimport { ajaxFail } from '../GlobalState.js';\r\nimport { useSearchParams } from 'react-router-dom'\r\nimport VersionData from \"../version.json\";\r\nimport TwoStep from './TwoStep..js';\r\n\r\n\r\nexport default function Login(props) {\r\n    const [searchParams, setSearchParams] = useSearchParams();\r\n    var user_d = searchParams.get(\"tc\");\r\n    var verify = searchParams.get(\"code\");\r\n    const [activepannel, setActivepannel] = useState(null);\r\n    const [klavuzlink, setklavuzlink] = useState(null);\r\n    \r\n    const [token, setToken] = useGlobalState('token');\r\n\r\n    if (isEmpty(user_d) == false && activepannel == null) {\r\n        const Buffer = require(\"buffer\").Buffer;\r\n        var value = Buffer.from(user_d, 'base64').toString('utf-8').split(\"$\");\r\n        if (user_d != \"direct\") {\r\n            window.userdata = { tc: value[0], name: value[1], family: value[2], gecicisure: verify }\r\n            window.edevletlogin = true\r\n            setActivepannel(<Register1  changeComponent={setActivepannel} />)\r\n        }\r\n        else {\r\n            window.userdata = {tc:user_d}\r\n            setActivepannel(<Register1 changeComponent={setActivepannel} />)\r\n        }\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        sendget(\"getversion\", \"\", (response) => {\r\n            response.text().then(value => {\r\n                value=value.replaceAll('\"', '');\r\n                value = value.split(\"#\");\r\n                var b = document.getElementById(\"backendversion\");\r\n                if (b)\r\n                    b.innerHTML = \"/\" + value[0];\r\n                b = document.getElementById(\"helplink\");\r\n                if (b)\r\n                    b.href = value[1];\r\n\r\n                if (!isEmpty(value[2]))\r\n                    setklavuzlink(value[2])\r\n                \r\n            })\r\n        }, () => {\r\n            var b = document.getElementById(\"backendversion\");\r\n            if (b)\r\n                b.innerHTML = \"/Error\";\r\n        })\r\n\r\n    }, []);\r\n\r\n\r\n\r\n    const onSubmit = (e) => {\r\n        e.preventDefault();\r\n\r\n        // sendpost(\"comparedwg\", null, \"mu\");\r\n        // return;\r\n\r\n\r\n\r\n        document.getElementById(\"buttonlabel\").innerHTML = \"Giriş Yapılıyor... \"\r\n        document.getElementById(\"buttonSpinner\").hidden = false;\r\n        var logindata = {\r\n            UserName: document.getElementById(\"UserName\").value,\r\n            Password: document.getElementById(\"Password\").value\r\n        };\r\n\r\n        //fetch(\"yapiruhsatkaydet\", {\r\n        //    method: 'POST',\r\n        //    headers: {\r\n        //        'Accept': 'application/json',\r\n        //        'Content-Type': 'application/json'\r\n        //    }\r\n        //}).then(async response => {\r\n\r\n        //});\r\n        //return;\r\n\r\n        fetch(\"submitlogin\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(logindata)\r\n        }).then(async response => {\r\n            document.getElementById(\"buttonlabel\").innerHTML = \"Devam Et\"\r\n            document.getElementById(\"buttonSpinner\").hidden = true;\r\n\r\n            if (!response.ok) {\r\n                response.text().then(value => {\r\n                    if (isEmpty(value))\r\n                        window.location.href = \"/\";\r\n                    else\r\n                        showErrorMessage(value)\r\n                })\r\n\r\n            }\r\n            else {\r\n                response.text().then(value => {\r\n                    value = value.replaceAll('\"', '');\r\n                    if (value.startsWith(\"2step\")) {\r\n                        setActivepannel(<TwoStep channel={value.split(\"_\")[1]} setToken={setToken} logindata={logindata} />)\r\n                        return;\r\n                    }\r\n\r\n                    const Buffer = require(\"buffer\").Buffer;\r\n                    value = Buffer.from(value, 'base64').toString('utf-8')\r\n                    var k = value.substring(0, 16)\r\n                    value = value.substring(16);\r\n                    var c = crypto.AES.encrypt(JSON.stringify({ value }), k).toString();\r\n                    setToken(k + c);\r\n                })\r\n            }\r\n            document.getElementById(\"Password\").value = \"\";\r\n            document.getElementById(\"UserName\").value = \"\";\r\n        });\r\n\r\n    }\r\n\r\n\r\n    if (token != null && token.length > 0) {\r\n        return <Navigate to=\"/\" />\r\n    }\r\n\r\n\r\n    var login = <>\r\n        <form className=\"row\" method=\"POST\" onSubmit={onSubmit}>\r\n            <div className=\"row\">\r\n                <div className=\"col-12 col-lg-3\"> </div>\r\n                <div className=\"col-12 col-lg-6 text-center\">\r\n\r\n                    <div className=\"mb-4 mt-3\">\r\n                        <label htmlFor=\"UserName\" className=\"form-label text-muted \"><b>Kullanıcı Adı</b> veya<b> Mail Adresi</b></label>\r\n                        <input type=\"text\" className=\"form-control  bg-light\" id=\"UserName\" placeholder=\"\" name=\"UserName\" />\r\n                    </div>\r\n                    <div className=\"\">\r\n                        <label htmlFor=\"Password\" className=\"form-label text-muted\"><b>Şifre</b></label>\r\n                    </div>\r\n\r\n                    <div className=\"mb-3\">\r\n                        <input type=\"password\" className=\"form-control   bg-light\" id=\"Password\" placeholder=\"\" name=\"Password\" />\r\n                    </div>\r\n\r\n                </div>\r\n\r\n            </div>\r\n            <div className=\"row\">\r\n                <div className=\"col-md-12 col-lg-3\"> </div>\r\n                <div className=\"col-12 col-lg-6 text-center\">\r\n                    <button type=\"submit\" className=\"btn btn-primary w-100 rounded-3  mt-3\">\r\n                        <span id=\"buttonlabel\"> Giriş </span>\r\n                        <span className=\"ms-1 spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\" id=\"buttonSpinner\" hidden></span>\r\n                    </button>\r\n\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row\">\r\n                <div className=\"col-md-12 col-lg-3\"> </div>\r\n                <div className=\"col-12 col-lg-6 text-center \">\r\n                    <a className=\"btn btn-sm btn-danger text-decoration-none w-100 rounded-3  mt-3\" href=\"edevletlogin\">  <img src={require('../Dashboard/edevletlogo.png').default} style={{ width: \"28px\", height: \"28px\" }} /> <b> e-Devlet Kapısı ile Giriş Yap</b></a>\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row\">\r\n                <div className=\"col-md-12 col-lg-6\"> </div>\r\n                <div className=\"col-12 col-lg-3 text-center\">\r\n                    <div className=\" text-end mt-1\">\r\n                        <button className=\"btn btn-sm btn-link text-decoration-none \" onClick={() => { setActivepannel(<ForgotPassword />) }}><b>Şifremi Unuttum </b></button>\r\n                    </div>\r\n                </div>\r\n\r\n            </div>\r\n\r\n\r\n\r\n\r\n        </form ></>\r\n\r\n    return <div className=\"row \">\r\n        <div id=\"aesscript\"></div>\r\n        <div className=\"col-sm-12 col-md-4 m-0 ps-0\"  >\r\n            {/* <img src={require('../Dashboard/loginleft.jpg').default} style={{ width: \"98%\" }} />*/}\r\n            <img src='./getfile?sec=loginleft.jpg' style={{ width: \"98%\" }} />\r\n\r\n        </div>\r\n\r\n        <div className=\"col-sm-12 col-md-8 pt-3 mt-4 text-center\" >\r\n            <div className=\"text-center\">\r\n                {window.location.href.includes(\"cankaya\")&& < font style={{ fontSize: \"calc(1.5rem + .6vw)\", fontFamily: \"Roboto\", color: \"#108b4e\" }}><b>Dijital</b> Çankaya</font>}\r\n                <h4 className=\"font-weight-bold\"><b>Universe'e Hoşgeldin</b></h4>\r\n                {activepannel != null && <><b><span className=\"text-secondary\">Kullanıcı hesabın varmı ?</span></b>\r\n                    <a className=\"btn btn-sm btn-link text-decoration-none\" href=\"/\"><b>Giriş Yap</b> </a>\r\n                </>}\r\n            </div>\r\n            {activepannel == null ? login : activepannel}\r\n\r\n            {activepannel == null && isEmpty(user_d) && <div className=\"mt-4\"><b><span className=\"text-secondary\">Henüz üye olmadıysanız,</span></b>\r\n                <a className=\"btn btn-sm btn-link text-decoration-none text-danger\" href=\"register\">\r\n                    <b> E-Devlet Kapısı ile ÜYE OLMAK için tıklayın</b>\r\n                </a></div>}\r\n\r\n            {activepannel == null && isEmpty(user_d) && <div className=\"row\">\r\n                <div className=\"mt-5 text-center text-muted align-bottom \">\r\n                    <a href=\"https://universe.web.tr/iletisim/\" id=\"helplink\" className=\"text-decoration-none\" >Universe Hakkında Destek</a>\r\n                </div>\r\n                {!isEmpty(klavuzlink)&&\r\n                    <div className=\"mt-1 text-center text-muted align-bottom \">\r\n                        <a href={klavuzlink} id=\"klavuzlink\" className=\"text-decoration-none\" >Yardım Klavuzu</a>\r\n                </div>\r\n                }\r\n            </div>}\r\n\r\n\r\n            {activepannel == null && <> <div className=\"mt-5 pt-2\"  >\r\n                <img src={require('../Header/100yıl.png').default} style={{ maxWidth: \"120px\" }} className=\"ms-auto me-auto mt-auto mb-0 \" />\r\n            </div>\r\n                <p className=\"\" >{VersionData.version}<span id=\"backendversion\"></span> </p></>}\r\n        </div>\r\n\r\n    </div>\r\n\r\n}\r\n\r\n\r\n","export default __webpack_public_path__ + \"static/media/loading.803f2436.gif\";","import React, { useState, useEffect } from 'react';\r\nimport { ajaxFail, isEmpty, showErrorMessage } from '../GlobalState.js';\r\nimport { useGlobalState } from '../GlobalState.js';\r\nimport ApplicationAuthorPanel from './ApplicationAuthorPanel.js';\r\nimport UserLabel from \"../User/UserLabel.js\";\r\nimport axios from \"axios\";\r\nimport * as UserPermConstants from '../User/UserPermConstants';\r\n\r\nexport default function Vekalet(props) {\r\n    var postdata = {};\r\n    const [listData, setListData] = useState(null);\r\n    const [filename, setFileName] = useState(null);\r\n    const [role, setRole] = useGlobalState('role');\r\n\r\n    const mapping = props.mapping;\r\n    const updateRecord = (rec, event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        const name = target.name;\r\n        rec[name] = value;\r\n    }\r\n\r\n    const removeRecord = (id) => {\r\n        fetch(\"removevekalet\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const save = (rec) => {\r\n       \r\n        if (isEmpty(rec.muvekkilFamily) || isEmpty(rec.muvekkilName) || isEmpty(rec.muvekkilTC)) {\r\n            showErrorMessage(\"Müvekkil Bilgileri Boş Olamaz\");\r\n            return;\r\n        }\r\n        fetch(\"savevekalet\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(rec)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    //const submitUpdateRecord = (rec) => {\r\n\r\n    //    fetch(\"updatemevki\", {\r\n    //        method: 'POST',\r\n    //        headers: {\r\n    //            'Accept': 'application/json',\r\n    //            'Content-Type': 'application/json'\r\n    //        },\r\n    //        body: JSON.stringify(rec)\r\n    //    }).then(async response => {\r\n    //        if (!response.ok) {\r\n    //            ajaxFail(response)\r\n    //        }\r\n    //        else {\r\n    //            alert(\"Güncelleme Başarıyla Tamamlanmştır\")\r\n    //        }\r\n    //    });\r\n    //}\r\n\r\n    const fetchList = () => {\r\n\r\n        fetch(\"getvekaletlistformapping\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(mapping.id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n    const getFileName = () => {\r\n\r\n        fetch(\"getvekaletfilename\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(mapping.id)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.text().then(value => {\r\n                    setFileName(value.replaceAll(\"\\\"\",\"\"));\r\n                })\r\n            }\r\n        });\r\n    }\r\n\r\n\r\n\r\n    const Add = () => {\r\n        postdata.authorMappingID = mapping.id;\r\n\r\n        postdata.vekilUserName = mapping.userName;\r\n\r\n        if (isEmpty(document.getElementById(\"muvekkilFamily\").value)||\r\n           isEmpty(document.getElementById(\"muvekkilTC\").value)||\r\n            isEmpty(document.getElementById(\"muvekkilName\").value)) {\r\n            showErrorMessage(\"Tüm Bilgiler Doldurulmalıdır\");\r\n            return;\r\n        }\r\n        if (document.getElementById('muvekkilTC').checkValidity() == false) {\r\n            showErrorMessage(\"TC numarası yanlış girlimş.\");\r\n            return;\r\n        }\r\n\r\n\r\n\r\n        fetch(\"addvekalet\", {\r\n            method: 'POST',\r\n            headers: {\r\n                'Accept': 'application/json',\r\n                'Content-Type': 'application/json'\r\n            },\r\n            body: JSON.stringify(postdata)\r\n        }).then(async response => {\r\n            if (!response.ok) {\r\n                ajaxFail(response)\r\n            }\r\n            else {\r\n                response.json().then(value => {\r\n                    document.getElementById(\"muvekkilFamily\").value = \"\";\r\n                    document.getElementById(\"muvekkilTC\").value = \"\";\r\n                    document.getElementById(\"muvekkilName\").value = \"\";\r\n                    setListData(value);\r\n                })\r\n            }\r\n        });\r\n\r\n    }\r\n\r\n    const handleInputChange = (event) => {\r\n        const target = event.target;\r\n        const value = target.type === 'checkbox' ? target.checked : target.value;\r\n        postdata[target.name] = value;\r\n    }\r\n\r\n    const handleFile = (resp) => {\r\n        fetchList();\r\n        if (resp.data != null && resp.data.length > 0) {\r\n            showErrorMessage(\"Eklenmeyen (Hatalı) Satırlar: \\n\" + resp.data)\r\n        }\r\n\r\n\r\n    }\r\n\r\n    const renderTable = (tabledata) => {\r\n\r\n        var mytable = <div>\r\n\r\n            <h6 className=\"text-primary\" >Müvekkil Listesi (Yerine imza atılan)</h6>\r\n\r\n            {tabledata.map(apprec =>\r\n                < div className={\"row rounded-3 border-top\" } key={apprec.id}>\r\n                    {/*<div className=\"col-1\" >*/}\r\n                    {/*    {apprec.id}*/}\r\n                    {/*</div>*/}\r\n                    {/*<div className=\"col-1\" >*/}\r\n                    {/*    {apprec.vekilUserName + \" - \" + apprec.authorMappingID}*/}\r\n                    {/*</div>*/}\r\n\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm border-0\" name=\"name\" defaultValue={apprec.muvekkilTC} onChange={(e) => updateRecord(apprec, e)} />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm border-0\" name=\"name\" defaultValue={apprec.muvekkilName} onChange={(e) => updateRecord(apprec, e)} />\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        <input type=\"text\" className=\"form-control form-control-sm border-0\" name=\"name\" defaultValue={apprec.muvekkilFamily} onChange={(e) => updateRecord(apprec, e)} />\r\n                    </div>\r\n                    <div className={\"col-2 \" + (apprec.approved == true ? \"text-success\" : \"\")} >\r\n                        {apprec.approved==true?\"Onaylandı\":\"Onay Bekliyor\"}\r\n                    </div>\r\n                    <div className=\"col-2\" >\r\n                        {apprec.ekleyen}\r\n                    </div>\r\n                    <div className=\"col-2 tex-end\" >\r\n                        {role.indexOf(UserPermConstants.Vekalet_Onay) >= 0&&\r\n                            <button onClick={() => { apprec.approved = !apprec.approved; save(apprec) }} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">{apprec.approved!=true?\"Onayla\":\"Onayı Kaldır\"}</button>}&nbsp;&nbsp;\r\n                        <button onClick={() => removeRecord(apprec.id)} className=\"btn btn-link btn-sm text-decoration-none m-0 p-0\">Sil</button>\r\n                    </div>\r\n                </div>\r\n            )}\r\n            <div className=\"row mt-5 pt-3 border-top\" >\r\n                <div className=\"col-12\" >\r\n                    <h6 className=\"text-primary\" >Yeni Müvekkil Ekle</h6>\r\n                </div>\r\n            </div>\r\n            <div className=\"row mb-2  pb-3\" >\r\n                <div className=\"col-3\" >\r\n                    <input type=\"text\" className=\"form-control form-control-sm \" name=\"muvekkilTC\" id=\"muvekkilTC\" pattern=\"[0-9]{1,20}\" maxLength=\"11\" placeholder=\"Müvekkilin TC Numarası\" defaultValue=\"\" onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"col-3\" >\r\n                    <input type=\"text\" className=\"form-control form-control-sm \" name=\"muvekkilName\" id=\"muvekkilName\" placeholder=\"Müvekkilin İsmi\" defaultValue=\"\" onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"col-3\" >\r\n                    <input type=\"text\" className=\"form-control form-control-sm \" name=\"muvekkilFamily\" id=\"muvekkilFamily\" placeholder=\"Müvekkilin Soyismi\" defaultValue=\"\" onChange={handleInputChange} />\r\n                </div>\r\n                <div className=\"col-3 text-end\">  <button onClick={Add} className=\"btn btn-sm btn-primary \">Ekle</button></div>\r\n\r\n\r\n            </div>\r\n\r\n\r\n        </div>\r\n\r\n        return (mytable);\r\n    }\r\n\r\n\r\n    const SendFiles = (selectedFiles) => {\r\n        var formData = new FormData();\r\n        document.getElementById(\"fileregionspinner\").hidden = false;  \r\n        document.getElementById(\"fileregion\").hidden = true;  \r\n        formData.append(\"file\", selectedFiles);\r\n        formData.append(\"caption\", mapping.id + \"\");//send mappingid in caption\r\n        formData.append(\"appid\", props.appData.id);\r\n        axios.post(\r\n            \"submitvekaletfile\",\r\n            formData,\r\n            {\r\n                headers: {\r\n                    //\"Authorization\": \"YOUR_API_AUTHORIZATION_KEY_SHOULD_GOES_HERE_IF_HAVE\",\r\n                    \"Content-type\": \"multipart/form-data\",\r\n                },\r\n            }\r\n        ).then(res => {\r\n            document.getElementById(\"fileregionspinner\").hidden = true;\r\n            document.getElementById(\"fileregion\").hidden = false; \r\n            getFileName();\r\n\r\n        })\r\n            .catch(err => {\r\n                showErrorMessage(err);\r\n                document.getElementById(\"fileregionspinner\").hidden = true;\r\n                document.getElementById(\"fileregion\").hidden = false; \r\n            })\r\n\r\n    }\r\n\r\n    const handleSelectedFile = (event) => {\r\n        if (event.target.files[0] != null) {\r\n            if (event.target.files[0].size > 20971520) {\r\n                showErrorMessage(\"dosya boyu en fazla 20 MB olabilir\");\r\n                event.target.value = \"\";\r\n                return;\r\n            }\r\n            SendFiles(event.target.files[0]);\r\n        }\r\n    }\r\n\r\n\r\n\r\n\r\n    useEffect(() => {\r\n        fetchList();\r\n        getFileName();\r\n    }, [])\r\n\r\n\r\n    var listTable = \"\";\r\n    if (listData != null) {\r\n        listTable = renderTable(listData);\r\n    }\r\n    else\r\n        listTable = renderTable([]);\r\n\r\n    return (\r\n        <div >\r\n            <h5 className=\"text-primary\">Vekalet Bilgileri</h5>\r\n\r\n            <div className=\"row\">\r\n                <div className=\"text-start col-3\">\r\n                    Kayıt No: {mapping.id}\r\n                </div>\r\n\r\n                <div className=\"text-end col-9\">\r\n                    <button type=\"button\" className=\"btn btn-primary  btn-sm  text-decoration-none me-2\" onClick={(e) => { props.setActivePanel(<ApplicationAuthorPanel appData={props.appData} setActivePanel={props.setActivePanel} />) }}>\r\n                        Müellif Listesine Dön\r\n                    </button>\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row mt-3 pt-1\">\r\n                <div className=\"text-start col-12\">\r\n                    <h6 className=\"text-primary\" >Vekil (Yerine imzayı atan)</h6>\r\n                </div>\r\n            </div>\r\n\r\n            <div className=\"row pb-3 mb-5 border-bottom\">\r\n                <div className=\"text-start col-4\">\r\n                    <UserLabel user={{ userName: mapping.userName }} /> ({mapping.muellifType})\r\n                </div>\r\n                <div className=\"text-start col-4\" id=\"fileregion\">\r\n                {(filename == null || filename == \"\") ? <span className=\"text-danger\">\r\n                    Vekalet Dosyası Yuklenmemiş\r\n                    </span> :\r\n                        <span className=\"text-success\">\r\n                        <a className=\"text-decoration-none align-middle\" href={'getvekaletdosya?mappingid=' + mapping.id}> {filename } </a>\r\n                        </span>\r\n                    }\r\n                </div>\r\n                <div className=\"text-start col-4\" id=\"fileregionspinner\" hidden={true}>\r\n                    <div class=\"spinner-border spinner-border-sm\" role=\"status\">\r\n                    </div>\r\n                </div>\r\n\r\n                <div className=\"text-end col-4\">\r\n                    <input type=\"file\" id={\"VekaletFile\"} accept=\".pdf\" style={{ \"display\": \"none\" }} onChange={handleSelectedFile} />\r\n\r\n                    <button type=\"button\" className=\"btn btn-primary  btn-sm  text-decoration-none me-2\" disabled={props.appData.archived==true} onClick={() => { document.getElementById(\"VekaletFile\").click(); }}>\r\n                        Vekalet Dosyası Ekle\r\n                    </button>\r\n                </div>\r\n            </div>\r\n\r\n\r\n\r\n\r\n            {props.appData.archived!=true?listTable:\"\"}\r\n\r\n\r\n\r\n        </div>\r\n    );\r\n\r\n\r\n}"],"sourceRoot":""}