{"version":3,"sources":["reportWebVitals.js","reducer/app.js","reducer/test.js","store.js","util/setupAxios.js","components/CustomHeader.js","util/Constants.js","pages/Home/HomeView.js","pages/Home/index.js","pages/Home/Home.js","pages/Login/LoginView.js","pages/Login/index.js","pages/Login/Login.js","pages/Test/TestView.js","pages/Test/index.js","pages/Test/Test.js","pages/NotFount404.js","util/HelperFuncs.js","pages/Admin/components/StudentList.js","pages/Admin/components/TestReports.js","pages/Admin/components/TestConfig.js","pages/Admin/components/SchoolSettings.js","pages/Admin/AdminConfig.js","pages/Admin/AdminHome.js","pages/Admin/AdminLogin.js","components/LoadingPage.js","components/DefaultHoc.js","util/Routes.js","pages/index.js","index.js"],"names":["reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","initialState","user","JSON","parse","localStorage","getItem","logout","createAsyncThunk","a","axios","get","response","data","appSlice","createSlice","name","reducers","login","state","action","payload","setItem","stringify","extraReducers","fulfilled","success","clear","actions","testSlice","list","setTestList","configureStore","reducer","app","appReducer","test","testReducer","showMessageForResponse","msg","msgType","message","info","setupAxios","store","interceptors","use","errors","Object","keys","map","val","error","dispatch","status","Promise","reject","hasInterceptor","CustomHeader","title","canGoHome","useSelector","useDispatch","history","useHistory","Header","id","to","style","fontSize","height","wrapperStyle","display","preview","src","Text","fontWeight","marginBottom","surName","email","onClick","userType","push","color","cursor","Content","Layout","HomeView","isLoading","autoplay","dotPosition","className","size","pathname","slugify","testName","lower","locale","toString","Home","props","useState","setIsLoading","useEffect","length","finally","Footer","LoginView","form","onFinish","isRegistered","schools","classLevel","schoolSelectable","isVisibleModal","setIsVisibleModal","modalTitle","setModalTitle","modalContent","setModalContent","handleCancelModal","backgroundSize","backgroundImage","process","backgroundRepeat","backgroundPosition","bordered","span","margin","justifyContent","width","Title","level","gutter","xs","md","Item","rules","required","min","max","pattern","addonBefore","placeholder","type","prefix","MailOutlined","UserOutlined","options","showSearch","filterOption","input","option","label","toLocaleLowerCase","indexOf","cities","Option","value","valuePropName","e","preventDefault","fetch","text","underline","htmlType","loading","disabled","marginLeft","resetFields","background","visible","onCancel","footer","overflow","dangerouslySetInnerHTML","__html","Login","setIsRegistered","setSchools","setClassLevel","setSchoolSelectable","Form","useForm","schoolList","schoolName","description","values","url","post","TestView","questions","onSubmitAnswers","showHasNoQuestionModal","solveAgainClick","showResultClick","isUserSolveBefore","isSavingResult","showResultModal","showResultModalClick","answers","setAnswers","selectionType","questionNo","repeat","maxWidth","question","headStyle","whiteSpace","Group","onChange","target","onClickQuestion","find","direction","result","index","answer","split","i","checked","join","console","log","onClickMultipleQuestion","flexDirection","padding","textAlign","closable","replace","Test","location","useLocation","setQuestions","setShowHasNoQuestionModal","setIsUserSolveBefore","testConfig","setTestConfig","setIsSavingResult","setShowResultModal","testId","params","canShowResult","canShowResultInfo","window","open","NotFount404","subTitle","extra","getFilterValues","arr","field","item","reduce","acc","current","includes","sort","b","localeCompare","generateStringFilterFunc","record","handleDownload","filename","method","headers","body","ok","Error","blob","link","document","createElement","href","URL","createObjectURL","download","appendChild","click","removeChild","columns","dataIndex","filters","onFilter","gender","filterSearch","sorter","Date","createDate","header","displayName","StudentList","userList","setUserList","datas","separator","scroll","x","rowKey","dataSource","TestReports","setOptions","selectedUser","setSelectedUser","userTest","setUserTest","stuList","setStuList","bulkResultColumns","setBulkResultColumns","selectedRowIds","setSelectedRowIds","infoText","setInfoText","testList","selectedTest","setSelectedTest","onDownloadReportZip","userIds","render","bulkColumns","stuResults","optionFilterProp","bulkResult","rowSelection","selections","Table","SELECTION_ALL","SELECTION_INVERT","SELECTION_NONE","selectedRowKeys","selectedRows","justify","icon","DownloadOutlined","defaultActiveKey","items","key","children","Select","classLevelPermissionColumns","onChangeClosed","closed","TestConfig","setCanShowResult","setCanShowResultInfo","classLevels","setClassLevels","selectedClassLevel","setSelectedClassLevel","config","marginTop","pagination","styles","changePassword","deleteSchool","onClickChangeEdit","onClickChangeDelete","SchoolSettings","selectedSchool","setSelectedSchool","setFieldsValue","Modal","confirm","ExclamationCircleOutlined","okText","cancelText","onOk","filter","submit","maskClosable","layout","ADMIN_CONFIG","component","TeamOutlined","PieChartOutlined","SettingOutlined","BankOutlined","SCHOOL_CONFIG","Sider","AdminHome","componentKey","setComponentKey","menuConfig","setMenuConfig","setComponent","collapsed","setCollapsed","adminComponent","minHeight","theme","collapsible","onCollapse","defaultSelectedKeys","mode","parseInt","AdminLogin","autoComplete","Password","LoadingPage","position","top","left","marginRight","transform","DefaultHoc","Component","React","forwardRef","ref","publicRoutes","routes","path","matchPath","exact","App","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.b88c7882.chunk.js","sourcesContent":["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 { createSlice, createAsyncThunk } from \"@reduxjs/toolkit\";\nimport axios from \"axios\";\n\nconst initialState = {\n user: JSON.parse(localStorage.getItem(\"user\")) || null,\n};\n\nexport const logout = createAsyncThunk(\"app/logout\", async () => {\n const response = await axios.get(\"/api/logout\");\n return response.data;\n});\n\nexport const appSlice = createSlice({\n name: \"app\",\n initialState,\n reducers: {\n login: (state, action) => {\n state.user = action.payload.user;\n localStorage.setItem(\"user\", JSON.stringify(action.payload.user));\n },\n },\n extraReducers: {\n [logout.fulfilled]: (state, action) => {\n if (action.payload.success) {\n state.user = null;\n localStorage.clear();\n }\n },\n },\n});\n\nexport const { login } = appSlice.actions;\n\nexport default appSlice.reducer;\n","import { createSlice } from \"@reduxjs/toolkit\";\n\nconst initialState = {\n list: [],\n};\n\nexport const testSlice = createSlice({\n name: \"test\",\n initialState,\n reducers: {\n setTestList: (state, action) => {\n state.list = action.payload;\n },\n },\n});\n\nexport const { setTestList } = testSlice.actions;\n\nexport default testSlice.reducer;\n","import { configureStore } from \"@reduxjs/toolkit\";\nimport appReducer from \"./reducer/app\";\nimport testReducer from \"./reducer/test\";\n\nexport default configureStore({\n reducer: {\n app: appReducer,\n test: testReducer,\n },\n});\n","import axios from \"axios\";\nimport { logout } from \"../reducer/app\";\nimport message from \"antd/lib/message\";\n\nconst showMessageForResponse = (response) => {\n if (response.msg) {\n if (response.msgType) {\n message[response.msgType](response.msg);\n } else {\n message.info(response.msg);\n }\n return response;\n }\n};\n\nconst setupAxios = (store) => {\n axios.interceptors.response.use(\n (response) => {\n if (response.data?.errors) {\n Object.keys(response.data.errors).map((val) => {\n message.info(response.data.errors[val], 2.5);\n });\n }\n if (\n response.data.error === \"Login required\" ||\n response.data.error === \"Session timeout\"\n ) {\n store.dispatch(logout());\n }\n showMessageForResponse(response.data);\n return response;\n },\n (error) => {\n if (error.response.status === 403) {\n store.dispatch(logout());\n }\n Promise.reject(error);\n showMessageForResponse(error.response);\n return error.response;\n }\n );\n axios.hasInterceptor = true;\n};\n\nexport default setupAxios;\n","import React from \"react\";\nimport { Layout, Typography, Tooltip, Image } from \"antd\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, useHistory } from \"react-router-dom\";\nimport { LogoutOutlined, HomeOutlined } from \"@ant-design/icons/lib/icons\";\nimport { logout } from \"../reducer/app\";\nimport { USER_TYPE_STUDENT } from \"../util/Constants\";\n\nconst CustomHeader = ({ title, canGoHome }) => {\n const app = useSelector((state) => state.app);\n const dispatch = useDispatch();\n const history = useHistory();\n const onClickLogout = () => {\n const user = JSON.parse(localStorage.getItem(\"user\"));\n dispatch(logout());\n if (user.userType === USER_TYPE_STUDENT) {\n history.push(\"/\");\n } else {\n history.push(\"/admin\");\n }\n };\n\n return (\n \n
\n {canGoHome ? (\n \n
\n \n Ana Sayfa\n
\n \n ) : (\n \n )}\n
\n
\n {title && {title}}\n
\n
\n
\n \n {app.user?.name} {app.user?.surName}\n \n {app.user?.email}\n
\n \n \n \n
\n
\n );\n};\n\nexport default CustomHeader;\n","const USER_TYPE_STUDENT = 1;\nconst USER_TYPE_ADMIN = 2;\nconst USER_TYPE_SCHOOL = 3;\n\nexport { USER_TYPE_ADMIN, USER_TYPE_STUDENT, USER_TYPE_SCHOOL };\n","import React from \"react\";\nimport { Carousel, Layout, Spin } from \"antd\";\nimport CustomHeader from \"../../components/CustomHeader\";\nimport { Link } from \"react-router-dom\";\nimport slugify from \"slugify\";\n\nconst { Content } = Layout;\n\nconst HomeView = ({ isLoading, test }) => {\n return (\n \n \n Test\n \n \n \n
\n \n
\n
\n \n
\n
\n \n
\n
\n {isLoading && }\n
\n
\n
\n {test.list.map((val) => (\n \n {val.testName}\n \n ))}\n
\n
\n
\n );\n};\n\nexport default HomeView;\n","import Home from \"./Home\";\r\n\r\nexport default Home;\r\n","import React, { useEffect, useState } from \"react\";\nimport HomeView from \"./HomeView\";\nimport \"./style.css\";\nimport axios from \"axios\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setTestList } from \"../../reducer/test\";\n\nconst Home = (props) => {\n const dispatch = useDispatch();\n const [isLoading, setIsLoading] = useState(false);\n const test = useSelector((state) => state.test);\n const app = useSelector((state) => state.app);\n\n useEffect(() => {\n if (test.list.length === 0 && app.user) {\n setIsLoading(true);\n axios\n .get(\"/api/test/list\")\n .then((response) => {\n if (response.data.success) {\n dispatch(setTestList(response.data.data));\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n }\n }, []);\n\n return ;\n};\n\nexport default Home;\n","import React, { useEffect, useState } from \"react\";\nimport {\n Col,\n Input,\n Layout,\n Row,\n Button,\n Select,\n Image,\n Card,\n Form,\n Typography,\n Checkbox,\n Modal,\n} from \"antd\";\nimport { UserOutlined, MailOutlined } from \"@ant-design/icons\";\nimport cities from \"./../../util/cities.json\";\nimport \"./style.css\";\n\nconst { Content, Footer } = Layout;\n\nconst LoginView = ({\n form,\n onFinish,\n isRegistered,\n isLoading,\n schools,\n classLevel,\n schoolSelectable,\n}) => {\n const [isVisibleModal, setIsVisibleModal] = useState(false);\n const [modalTitle, setModalTitle] = useState(\"\");\n const [modalContent, setModalContent] = useState(\"\");\n\n const handleCancelModal = () => {\n setIsVisibleModal(false);\n setModalTitle(\"\");\n };\n\n const kvkkTextClick = (e) => {\n e.preventDefault();\n fetch(`${process.env.PUBLIC_URL}/assets/templates/kvkk.html`)\n .then((data) => data.text())\n .then((response) => setModalContent(response))\n .finally(() => {\n setIsVisibleModal(true);\n setModalTitle(\"KVKK Metni\");\n });\n };\n\n const commercialCommunicationClick = (e) => {\n e.preventDefault();\n fetch(\n `${process.env.PUBLIC_URL}/assets/templates/commercialCommunication.html`\n )\n .then((data) => data.text())\n .then((response) => setModalContent(response))\n .finally(() => {\n setIsVisibleModal(true);\n setModalTitle(\"Ticari İletişim İzni\");\n });\n };\n\n return (\n \n \n \n \n \n \n \n PDR TEST SİSTEMİ\n \n
\n \n \n \n \n \n \n \n \n }\n />\n \n \n {!isRegistered && (\n <>\n \n \n }\n />\n \n \n \n \n }\n />\n \n \n \n \n {schoolSelectable ? (\n \n option.label\n .toLocaleLowerCase(\"tr-TR\")\n .indexOf(input.toLocaleLowerCase(\"tr-TR\")) >= 0\n }\n />\n ) : (\n \n )}\n \n \n \n \n \n option.label\n .toLocaleLowerCase(\"tr-TR\")\n .indexOf(input.toLocaleLowerCase(\"tr-TR\")) >= 0\n }\n />\n \n \n \n \n \n Erkek\n Kız\n \n \n \n \n \n \n \n \n \n )}\n\n \n \n \n \n KVKK Metni\n \n 'ni onaylıyorum.\n \n \n \n \n \n \n \n Ticari İletişim İzni\n \n 'ni onaylıyorum.\n \n \n \n\n \n \n \n {isRegistered ? \"Giriş Yap\" : \"Kayıt Ol\"}\n \n {!isRegistered && (\n form.resetFields()}\n >\n Sıfırla\n \n )}\n \n \n \n
\n
\n
\n PDR ©2021 Created by Akbim\n
\n
\n\n \n Kapat\n ,\n ]}\n >\n \n \n \n );\n};\n\nexport default LoginView;\n","import Login from \"./Login\";\r\n\r\nexport default Login;\r\n","import React, { useEffect, useState } from \"react\";\nimport LoginView from \"./LoginView\";\nimport { Form } from \"antd\";\nimport axios from \"axios\";\nimport { useDispatch } from \"react-redux\";\nimport { login } from \"../../reducer/app\";\nimport { useHistory } from \"react-router-dom\";\n\nconst Login = (props) => {\n const [isRegistered, setIsRegistered] = useState(true);\n const [isLoading, setIsLoading] = useState(false);\n const [schools, setSchools] = useState([]);\n const [classLevel, setClassLevel] = useState([]);\n const [schoolSelectable, setSchoolSelectable] = useState(false);\n const history = useHistory();\n const [form] = Form.useForm();\n const dispatch = useDispatch();\n\n useEffect(() => {\n setIsLoading(true);\n axios\n .get(\"/api/common/loadIndex\")\n .then((response) => {\n setSchoolSelectable(response.data.data.schoolSelectable === 1);\n const schoolList = response.data.data.schools.map((val) => ({\n value: val.id,\n label: val.schoolName,\n }));\n setSchools([{ value: 0, label: \"Diğer\" }, ...schoolList]);\n const classLevel = response.data.data.classLevel.map((val) => ({\n value: val.id,\n label: val.description,\n }));\n setClassLevel(classLevel);\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, []);\n\n const onFinish = (values) => {\n const url = isRegistered ? \"/api/auth/login\" : \"/api/auth/register\";\n\n setIsLoading(true);\n axios\n .post(url, values)\n .then((response) => {\n if (!response.data?.data?.user) {\n setIsRegistered(false);\n }\n\n if (response.data?.data?.user) {\n dispatch(login({ user: response.data.data.user }));\n history.push(\"/ana-sayfa\");\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n };\n\n return (\n \n );\n};\n\nexport default Login;\n","import React, { useEffect, useState } from \"react\";\nimport {\n Card,\n Radio,\n Layout,\n Space,\n Button,\n Spin,\n Modal,\n Checkbox,\n Typography, Divider\n} from \"antd\";\nimport CustomHeader from \"../../components/CustomHeader\";\nimport { useHistory } from \"react-router-dom\";\nimport Text from \"antd/es/typography/Text\";\n\nconst { Content } = Layout;\n\nconst TestView = ({\n title,\n questions,\n onSubmitAnswers,\n isLoading,\n showHasNoQuestionModal,\n solveAgainClick,\n showResultClick,\n isUserSolveBefore,\n isSavingResult,\n showResultModal,\n showResultModalClick,\n}) => {\n const [answers, setAnswers] = useState([]);\n const history = useHistory();\n\n const onClickQuestion = (questionNo, e) => {\n setAnswers(\n answers.map((val) => {\n if (val.questionNo === questionNo) {\n return { ...val, value: e.target.value };\n }\n return val;\n })\n );\n };\n\n const onClickMultipleQuestion = (questionNo, e, index) => {\n setAnswers(\n answers.map((val) => {\n if (val.questionNo === questionNo) {\n const answer = val.value\n .split(\"\")\n .map((option, i) => {\n if (i === index) {\n return e.target.checked ? e.target.value : \" \";\n }\n return option;\n })\n .join(\"\");\n console.log(answer);\n return { ...val, value: answer };\n }\n return val;\n })\n );\n };\n\n const QuestionValue = (questionNo) => {\n return answers.find((val) => val.questionNo === questionNo)\n ? answers.find((val) => val.questionNo === questionNo).value\n : null;\n };\n\n const onClickSendAnswer = () => {\n onSubmitAnswers(answers);\n };\n\n useEffect(() => {\n setAnswers(\n questions.map((val) => {\n if (val.selectionType === 1) {\n return {\n questionNo: val.questionNo,\n value: \" \".repeat(val.options.length),\n };\n }\n return { questionNo: val.questionNo, value: null };\n })\n );\n }, [questions]);\n\n return (\n <>\n \n \n \n {isLoading && }\n {!isUserSolveBefore && (\n
\n {questions.map((question) => (\n \n \n {`${question.questionNo} - ${question.question}`}\n \n \n {question.selectionType === 0 && (\n onClickQuestion(question.questionNo, e)}\n value={QuestionValue(question.questionNo)}\n >\n \n {question.options.map((option) => (\n \n {option.option}\n \n ))}\n \n \n )}\n\n {question.selectionType === 1 && (\n \n {question.options.map((option, index) => (\n \n onClickMultipleQuestion(\n question.questionNo,\n e,\n index\n )\n }\n key={index.toString()}\n disabled={isSavingResult}\n >\n {option.option}\n \n ))}\n \n )}\n \n ))}\n {questions.length > 0 && (\n \n Gönder\n \n )}\n
\n )}\n\n {isUserSolveBefore && (\n \n

\n {title} anketini daha önceden çözmüşsünüz.\n

\n \n \n \n \n \n )}\n
\n
\n {\n history.replace(\"/ana-sayfa\");\n }}\n >\n Ana Sayfa\n ,\n ]}\n >\n

Bu ankete soru girilmemiş.

\n \n {\n history.replace(\"/ana-sayfa\");\n }}\n >\n Ana sayfaya git\n ,\n ,\n ]}\n >\n

Anket sonucunu görüntülemek istiyor musunuz.

\n \n \n );\n};\n\nexport default TestView;\n","import Test from \"./Test\";\n\nexport default Test;\n","import React, { useEffect, useState } from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport TestView from \"./TestView\";\nimport axios from \"axios\";\nimport message from \"antd/lib/message\";\n\nconst Test = (props) => {\n let location = useLocation();\n const [questions, setQuestions] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n const [showHasNoQuestionModal, setShowHasNoQuestionModal] = useState(false);\n const [isUserSolveBefore, setIsUserSolveBefore] = useState(false);\n const [testConfig, setTestConfig] = useState(false);\n const [isSavingResult, setIsSavingResult] = useState(false);\n const [showResultModal, setShowResultModal] = useState(false);\n\n const testId = location.state && location.state.id;\n const history = useHistory();\n\n const onSubmitAnswers = (data) => {\n if (data.find((val) => val.value === null)) {\n message.info(\"Tüm soruları cevaplayınız.\");\n } else {\n const answers = data.map((val) => val.value).join(\"\");\n setIsSavingResult(true);\n axios\n .post(\"/api/test/saveAnswers\", { answers, testId })\n .then((response) => {\n if (response.data.success) {\n setShowResultModal(true);\n }\n })\n .finally(() => {\n setIsLoading(false);\n setIsSavingResult(false);\n });\n }\n };\n\n const solveAgainClick = () => {\n setIsUserSolveBefore(false);\n };\n\n const showResultClick = () => {\n if (testConfig?.canShowResult === 0) {\n message.info(\n testConfig.canShowResultInfo === \"\"\n ? \"Test sonucu yönetici tarafından kapatılmış.\"\n : testConfig.canShowResultInfo\n );\n } else {\n axios.get(`/api/test/getReportLink?testId=${testId}`).then((response) => {\n if (response.data.success) {\n window.open(response.data.result, \"_blank\");\n }\n });\n }\n };\n\n const showResultModalClick = () => {\n if (testConfig?.canShowResult === 0) {\n message.info(\n testConfig.canShowResultInfo === \"\"\n ? \"Test sonucu yönetici tarafından kapatılmış.\"\n : testConfig.canShowResultInfo\n );\n } else {\n axios.get(`/api/test/getReportLink?testId=${testId}`).then((response) => {\n if (response.data.success) {\n history.replace(\"/ana-sayfa\");\n window.open(response.data.result, \"_blank\");\n }\n });\n }\n };\n\n useEffect(() => {\n setIsLoading(true);\n setQuestions([]);\n axios\n .get(\"/api/test/questions\", { params: { testId } })\n .then((response) => {\n if (response.data.success) {\n if (response.data.data.questions.length === 0) {\n setShowHasNoQuestionModal(true);\n }\n setQuestions(response.data.data.questions);\n setTestConfig(response.data.data.testConfig);\n setIsUserSolveBefore(response.data.data.isUserSolveBefore);\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, [testId]);\n\n return (\n \n );\n};\n\nexport default Test;\n","import React from \"react\";\nimport { Button, Result } from \"antd\";\nimport { useHistory } from \"react-router-dom\";\n\nconst NotFount404 = (props) => {\n const history = useHistory();\n\n return (\n history.replace(\"/\")}>\n Ana Sayfa\n \n }\n />\n );\n};\n\nexport default NotFount404;\n","export function getFilterValues(arr, field) {\n const unique = arr\n .map((item) => item[field])\n .reduce((acc, current) => {\n if (!acc.includes(current)) {\n acc.push(current);\n }\n return acc;\n }, [])\n .sort((a, b) => a.localeCompare(b)); // Sort using localeCompare\n\n return unique.map((value) => ({ text: value, value: value }));\n}\n\nexport function generateStringFilterFunc(field) {\n return (value, record) => record[field].indexOf(value) === 0;\n}\n\nexport async function handleDownload(url, data, filename, onFinish) {\n try {\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n // Add any additional headers if required\n },\n body: JSON.stringify(data),\n });\n\n if (!response.ok) {\n onFinish();\n throw new Error(\"Network response was not ok\");\n }\n\n const blob = await response.blob();\n\n // Create a link element for the download\n const link = document.createElement(\"a\");\n link.href = URL.createObjectURL(blob);\n link.download = filename;\n\n // Append to the body, click, and then remove it\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n onFinish();\n } catch (error) {\n onFinish();\n console.error(\"Download failed:\", error);\n }\n}\n","import React, { useEffect, useState } from \"react\";\nimport { Button, Card, Table } from \"antd\";\nimport axios from \"axios\";\nimport CsvDownloader from \"react-csv-downloader\";\nimport { generateStringFilterFunc, getFilterValues } from \"../../../util/HelperFuncs\";\n\nconst columns = [\n {\n title: \"Ad\",\n dataIndex: \"name\",\n },\n {\n title: \"Soyad\",\n dataIndex: \"surName\",\n },\n {\n title: \"Sınıf Seviyesi\",\n dataIndex: \"classLevel\",\n },\n {\n title: \"Cinsiyet\",\n dataIndex: \"gender\",\n filters: [\n { text: \"Erkek\", value: \"E\" },\n { text: \"Kadın\", value: \"K\" },\n ],\n onFilter: (value, record) => record.gender.indexOf(value) === 0,\n },\n {\n title: \"Telefon\",\n dataIndex: \"phone\",\n },\n {\n dataIndex: \"schoolName\",\n title: \"Okul\",\n onFilter: generateStringFilterFunc(\"schoolName\"),\n filterSearch: true,\n },\n {\n title: \"Email\",\n dataIndex: \"email\",\n },\n {\n title: \"Kayıt Tarihi\",\n dataIndex: \"createDate\",\n sorter: (a, b) => new Date(a.createDate) - new Date(b.createDate),\n },\n];\n\nconst header = [\n {\n id: \"name\",\n displayName: \"Ad\",\n },\n {\n id: \"surName\",\n displayName: \"Soyad\",\n },\n {\n id: \"classLevel\",\n displayName: \"Sınıf Seviyesi\",\n },\n {\n id: \"gender\",\n displayName: \"Cinsiyet\",\n },\n {\n id: \"phone\",\n displayName: \"Telefon\",\n },\n {\n id: \"school\",\n displayName: \"Okul\",\n },\n {\n id: \"email\",\n displayName: \"Email\",\n },\n {\n id: \"createDate\",\n displayName: \"Kayıt Tarihi\",\n },\n];\n\nconst StudentList = (props) => {\n const [userList, setUserList] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n setIsLoading(true);\n axios\n .get(\"/api/admin/userList\")\n .then((response) => {\n if (response.data.success) {\n setUserList(response.data.data);\n columns[5].filters = getFilterValues(\n response.data.data,\n \"schoolName\"\n );\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, []);\n\n return (\n \n {userList.length > 0 && (\n \n \n \n )}\n user.id}\n dataSource={userList}\n loading={isLoading}\n />\n \n );\n};\n\nexport default StudentList;\n","import React, { useEffect, useState } from \"react\";\nimport { Button, Card, Divider, Flex, Select, Space, Table, Tabs } from \"antd\";\nimport axios from \"axios\";\nimport Text from \"antd/es/typography/Text\";\nimport {\n generateStringFilterFunc,\n getFilterValues,\n handleDownload,\n} from \"../../../util/HelperFuncs\";\nimport {\n SELECTION_INVERT,\n SELECTION_NONE,\n} from \"antd/es/table/hooks/useSelection\";\nimport { DownloadOutlined } from \"@ant-design/icons\";\n\nconst TestReports = (props) => {\n const [isLoading, setIsLoading] = useState(false);\n const [options, setOptions] = useState([]);\n const [selectedUser, setSelectedUser] = useState(null);\n const [userTest, setUserTest] = useState([]);\n const [stuList, setStuList] = useState([]);\n const [bulkResultColumns, setBulkResultColumns] = useState([]);\n const [selectedRowIds, setSelectedRowIds] = useState([]);\n const [infoText, setInfoText] = useState(\"\");\n const [testList, setTestList] = useState([]);\n const [selectedTest, setSelectedTest] = useState(null);\n\n const onClickReport = (data) => {\n axios\n .get(`/api/admin/getReportLink?testId=${data.id}&userId=${selectedUser}`)\n .then((response) => {\n if (response.data.success) {\n window.open(response.data.data, \"_blank\");\n }\n });\n };\n\n const onTestChanged = (value) => {\n setSelectedTest(value);\n\n setIsLoading(true);\n axios\n .get(\"/api/admin/getTestUserList?testId=\" + value)\n .then((response) => {\n if (response.data.success) {\n console.log(response.data.data);\n bulkColumns[5].filters = getFilterValues(\n response.data.data,\n \"schoolName\"\n );\n setBulkResultColumns(bulkColumns);\n setStuList(response.data.data);\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n };\n\n const onDownloadReportZip = () => {\n setIsLoading(true);\n handleDownload(\n \"/api/admin/getBulkReportZip\",\n { testId: selectedTest, userIds: selectedRowIds },\n \"PDR Rapor.zip\",\n () => {\n setIsLoading(false);\n }\n );\n };\n\n const columns = [\n {\n title: \"Test\",\n dataIndex: \"testName\",\n },\n {\n title: \"Raporla\",\n dataIndex: \"id\",\n render: (text, record) => (\n \n ),\n },\n ];\n\n const bulkColumns = [\n {\n title: \"Ad\",\n dataIndex: \"name\",\n sorter: (a, b) => a.name.localeCompare(b.name),\n },\n {\n title: \"Soyad\",\n dataIndex: \"surName\",\n sorter: (a, b) => a.surName.localeCompare(b.surName),\n },\n {\n title: \"Sınıf Seviyesi\",\n dataIndex: \"classLevel\",\n },\n {\n title: \"Cinsiyet\",\n dataIndex: \"gender\",\n filters: [\n { text: \"Erkek\", value: \"E\" },\n { text: \"Kadın\", value: \"K\" },\n ],\n onFilter: (value, record) => record.gender.indexOf(value) === 0,\n },\n {\n title: \"Telefon\",\n dataIndex: \"phone\",\n },\n {\n dataIndex: \"schoolName\",\n title: \"Okul\",\n onFilter: generateStringFilterFunc(\"schoolName\"),\n filterSearch: true,\n sorter: (a, b) => a.schoolName.localeCompare(b.schoolName),\n },\n {\n title: \"Email\",\n dataIndex: \"email\",\n },\n ];\n\n useEffect(() => {\n setIsLoading(true);\n axios\n .get(\"/api/admin/userList\")\n .then((response) => {\n if (response.data.success) {\n setOptions(\n response.data.data.map((val) => ({\n value: val.id,\n label: `${val.name} ${val.surName}`,\n }))\n );\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n\n axios\n .get(\"/api/admin/getTestList\")\n .then((response) => {\n if (response.data.success) {\n setTestList(response.data.data);\n setTestList(\n response.data.data.map((val) => ({\n value: val.id,\n label: `${val.testName}`,\n }))\n );\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, []);\n\n useEffect(() => {\n if (selectedUser) {\n setIsLoading(true);\n axios\n .get(`/api/admin/studentTestList?userId=${selectedUser}`)\n .then((response) => {\n if (response.data.success) {\n setUserTest(response.data.data);\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n }\n }, [selectedUser]);\n\n const stuResults = (\n \n \n option.label.toLocaleLowerCase().indexOf(input.toLocaleLowerCase()) >=\n 0\n }\n />\n \n {userTest.length === 0 ? (\n Kullanıcının cevaplamış olduğu test bulunmamaktadır.\n ) : (\n \n )}\n \n );\n\n const onDownloadClick = () => {\n handleDownload(\n \"/api/admin/getBulkReportLink\",\n { testId: 1, userIds: selectedUser },\n \"raporlar.zip\"\n );\n };\n\n const footerRender = () => {\n return (\n \n 20 ? \"danger\" : \"success\"}>\n Seçilen Öğrenci Sayısı: {selectedRowIds.length}\n \n {infoText}\n 20}\n onClick={onDownloadReportZip}\n icon={}\n >\n Raporları Oluştur\n \n \n );\n };\n\n const bulkResult = (\n \n \n Test Adı: \n \n option.label\n .toLocaleLowerCase()\n .indexOf(input.toLocaleLowerCase()) >= 0\n }\n />\n \n \n {\n setSelectedRowIds(selectedRowKeys);\n if (selectedRowKeys.length > 20) {\n setInfoText(\"En fazla 20 öğrenci seçilebilir.\");\n } else {\n setInfoText(\"\");\n }\n },\n }}\n bordered\n scroll={{ x: 400 }}\n columns={bulkResultColumns}\n rowKey={(user) => user.id}\n dataSource={stuList}\n loading={isLoading}\n footer={footerRender}\n />\n \n );\n\n return (\n \n );\n};\n\nexport default TestReports;\n","import React, { useEffect, useState } from \"react\";\nimport {\n Button,\n Card,\n Col,\n Input,\n Row,\n Select,\n Space,\n Switch,\n Table,\n Typography,\n} from \"antd\";\nimport axios from \"axios\";\n\nconst { Option } = Select;\n\nconst classLevelPermissionColumns = (onChangeClosed) => [\n {\n title: \"Test Adı\",\n dataIndex: \"testName\",\n key: \"testName\",\n },\n {\n title: \"Sınav durumu\",\n dataIndex: \"closed\",\n key: \"closed\",\n render: (closed, data) => (\n \n onChangeClosed(data.id, value)}\n />\n {closed === 1 ? \"KAPALI\" : \"AÇIK\"}\n \n ),\n },\n];\n\nconst TestConfig = () => {\n const [isLoading, setIsLoading] = useState(false);\n const [canShowResult, setCanShowResult] = useState(false);\n const [canShowResultInfo, setCanShowResultInfo] = useState(\"\");\n const [testList, setTestList] = useState([]);\n const [classLevels, setClassLevels] = useState([]);\n const [selectedClassLevel, setSelectedClassLevel] = useState(-1);\n const [schoolSelectable, setSchoolSelectable] = useState(false);\n\n const onClickSave = () => {\n setIsLoading(true);\n axios\n .post(\"/api/admin/setTestConfig\", {\n canShowResult,\n canShowResultInfo,\n schoolSelectable,\n })\n .finally(() => {\n setIsLoading(false);\n });\n };\n\n const onClickSaveTestPermission = () => {\n setIsLoading(true);\n axios\n .post(\"/api/admin/setTestClosed\", {\n classLevel: selectedClassLevel,\n testList,\n })\n .finally(() => {\n setIsLoading(false);\n });\n };\n\n const onChangeClosed = (testId, value) => {\n setTestList(\n testList.map((test) => {\n if (test.id === testId) {\n return { ...test, closed: value ? 0 : 1 };\n }\n return test;\n })\n );\n };\n\n useEffect(() => {\n if (selectedClassLevel !== -1) {\n setIsLoading(true);\n axios\n .post(\"/api/admin/closedTestList\", { classLevel: selectedClassLevel })\n .then((response) => {\n if (response.data.success) {\n setTestList(response.data.data);\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n }\n }, [selectedClassLevel]);\n\n useEffect(() => {\n setIsLoading(true);\n axios\n .get(\"/api/admin/testConfig\")\n .then((response) => {\n if (response.data.success) {\n setCanShowResult(response.data.data.config.canShowResult === 1);\n setCanShowResultInfo(response.data.data.config.canShowResultInfo);\n setSchoolSelectable(response.data.data.config.schoolSelectable === 1);\n setTestList(response.data.data.testList);\n setClassLevels(response.data.data.classLevels);\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, []);\n\n return (\n \n \n \n
\n \n Sonuç metnini giriniz\n \n setCanShowResultInfo(e.target.value)}\n />\n
\n
\n \n Öğrenci sonuçları görebilir mi ?\n \n \n
\n
\n \n \n Kayıt ekranından okul seçimi olsun mu ?\n \n \n \n
\n \n Kaydet\n \n
\n \n \n \n \n \n {classLevels.map((classLevel) => (\n \n ))}\n \n\n \n\n \n Kaydet\n \n \n \n \n );\n};\n\nexport default TestConfig;\n","import React, { useEffect, useState } from \"react\";\nimport { Button, Card, Form, Input, Modal, Table, Tag } from \"antd\";\nimport axios from \"axios\";\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\n\nconst styles = {\n changePassword: {\n padding: 8,\n fontSize: 14,\n cursor: \"pointer\",\n },\n deleteSchool: {\n padding: 8,\n fontSize: 14,\n cursor: \"pointer\",\n },\n};\n\nconst columns = (onClickChangeEdit, onClickChangeDelete) => [\n {\n title: \"Okul İsmi\",\n dataIndex: \"schoolName\",\n },\n {\n title: \"Kullanıcı Adı\",\n dataIndex: \"username\",\n },\n {\n title: \"Şifre\",\n dataIndex: \"password\",\n },\n {\n title: \"Seçenekler\",\n dataIndex: \"options\",\n render: (text, record) => (\n <>\n onClickChangeEdit(record)}\n >\n Düzenle\n \n onClickChangeDelete(record)}\n >\n Sil\n \n \n ),\n },\n];\n\nconst SchoolSettings = (props) => {\n const [isVisibleModal, setIsVisibleModal] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [schools, setSchools] = useState([]);\n const [selectedSchool, setSelectedSchool] = useState(false);\n const [form] = Form.useForm();\n\n useEffect(() => {\n setIsLoading(true);\n axios\n .get(\"/api/admin/schoolList\")\n .then((response) => {\n if (response.data.success) {\n setSchools(response.data.result);\n setIsVisibleModal(false);\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n }, []);\n\n const onCancel = () => {\n form.resetFields();\n setIsVisibleModal(false);\n };\n\n const onOk = () => {\n setIsVisibleModal(true);\n form.submit();\n };\n\n const onFinish = (values) => {\n setIsLoading(true);\n if (selectedSchool) {\n values.id = selectedSchool.id;\n }\n axios\n .post(\"/api/admin/createEditSchool\", values)\n .then((response) => {\n if (response.data.success) {\n form.resetFields();\n if (values.id) {\n setSchools(\n schools.map((val) => {\n if (val.id === response.data.data.id) {\n return response.data.data;\n }\n return val;\n })\n );\n } else {\n setSchools([response.data.data, ...schools]);\n }\n setIsVisibleModal(false);\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n };\n\n const onClickChangeEdit = (record) => {\n setSelectedSchool(record);\n form.setFieldsValue(record);\n setIsVisibleModal(true);\n };\n const onClickChangeDelete = (record) => {\n Modal.confirm({\n title: \"Okul silinsin mi ?\",\n icon: ,\n okText: \"Evet\",\n cancelText: \"İptal\",\n onOk: () => {\n setIsLoading(true);\n axios\n .post(\"/api/admin/deleteSchool\", { id: record.id })\n .then((response) => {\n if (response.data.success) {\n setSchools(schools.filter((val) => val.id !== record.id));\n setIsVisibleModal(false);\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n },\n });\n };\n\n return (\n <>\n \n {\n setIsVisibleModal(true);\n }}\n >\n Okul Ekle\n \n record.id.toString()}\n />\n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n \n );\n};\n\nexport default SchoolSettings;\n","import StudentList from \"./components/StudentList\";\nimport TestReports from \"./components/TestReports\";\nimport TestConfig from \"./components/TestConfig\";\nimport SchoolSettings from \"./components/SchoolSettings\";\nimport {\n BankOutlined,\n PieChartOutlined,\n SettingOutlined,\n TeamOutlined,\n} from \"@ant-design/icons\";\nimport React from \"react\";\n\nconst ADMIN_CONFIG = [\n {\n key: 1,\n component: ,\n label: \"Öğrenci Listesi\",\n icon: ,\n },\n {\n key: 2,\n component: ,\n label: \"Test Raporları\",\n icon: ,\n },\n {\n key: 3,\n component: ,\n label: \"Test Ayarları\",\n icon: ,\n },\n {\n key: 4,\n component: ,\n label: \"Okul İşlemleri\",\n icon: ,\n },\n];\n\nconst SCHOOL_CONFIG = [\n {\n key: 1,\n component: ,\n label: \"Öğrenci Listesi\",\n icon: ,\n },\n {\n key: 2,\n component: ,\n label: \"Test Raporları\",\n icon: ,\n },\n];\n\nexport { ADMIN_CONFIG, SCHOOL_CONFIG };\n","import React, { useEffect, useState } from \"react\";\nimport { ADMIN_CONFIG, SCHOOL_CONFIG } from \"./AdminConfig\";\nimport CustomHeader from \"../../components/CustomHeader\";\nimport { Layout, Menu } from \"antd\";\nimport { USER_TYPE_ADMIN } from \"../../util/Constants\";\n\nconst { Content, Sider } = Layout;\n\nconst AdminHome = () => {\n const [componentKey, setComponentKey] = useState(false);\n const [menuConfig, setMenuConfig] = useState([]);\n const [component, setComponent] = useState(false);\n const [collapsed, setCollapsed] = useState(false);\n const user = localStorage.getItem(\"user\");\n\n const onCollapse = () => {\n setCollapsed(!collapsed);\n };\n\n const onClickMenu = (e) => {\n if (componentKey) {\n setComponentKey(parseInt(e.key, 10));\n }\n };\n\n useEffect(() => {\n if (componentKey) {\n const adminComponent = menuConfig.find((val) => val.key === componentKey);\n if (adminComponent) {\n setComponent(adminComponent.component);\n }\n }\n }, [componentKey]);\n\n useEffect(() => {\n if (user) {\n const userType = JSON.parse(user).userType;\n if (userType === USER_TYPE_ADMIN) {\n setMenuConfig(ADMIN_CONFIG);\n setComponentKey(ADMIN_CONFIG[0].key);\n } else {\n setMenuConfig(SCHOOL_CONFIG);\n setComponentKey(SCHOOL_CONFIG[0].key);\n }\n }\n }, [user]);\n\n return (\n \n \n \n \n \n {menuConfig.map((val) => (\n \n {val.label}\n \n ))}\n \n \n {component}\n \n \n );\n};\n\nexport default AdminHome;\n","import React, { useState } from \"react\";\nimport {\n Form,\n Input,\n Button,\n Layout,\n Card,\n Col,\n Image,\n Typography,\n} from \"antd\";\nimport axios from \"axios\";\nimport { login } from \"../../reducer/app\";\nimport { useDispatch } from \"react-redux\";\nimport { useHistory } from \"react-router-dom\";\n\nconst { Content, Footer } = Layout;\n\nconst AdminLogin = () => {\n const [isLoading, setIsLoading] = useState(false);\n const dispatch = useDispatch();\n const history = useHistory();\n\n const onFinish = (values) => {\n setIsLoading(true);\n axios\n .post(\"/api/auth/login\", values)\n .then((response) => {\n if (response?.data?.data?.user) {\n dispatch(login({ user: response.data.data.user }));\n history.push(\"/admin/ana-sayfa\");\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n };\n\n const onFinishFailed = (errorInfo) => {\n console.log(\"Failed:\", errorInfo);\n };\n\n return (\n \n \n \n \n \n \n \n \n PDR TEST SİSTEMİ ADMİN\n \n \n \n \n \n \n\n \n \n \n\n \n \n Giriş Yap\n \n \n \n \n
\n PDR ©2021 Created by Akbim\n
\n
\n
\n );\n};\n\nexport default AdminLogin;\n","import React from \"react\";\nimport { Layout, Spin } from \"antd\";\n\nconst LoadingPage = (props) => (\n \n \n \n);\n\nexport default LoadingPage;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { login, logout } from \"../reducer/app\";\nimport { useDispatch } from \"react-redux\";\nimport LoadingPage from \"./LoadingPage\";\nimport { useHistory, useLocation, matchPath } from \"react-router-dom\";\nimport routes from \"../util/Routes\";\n\nconst DefaultHoc = (Component) => {\n return React.forwardRef(({ children, ...props }, ref) => {\n const [isLoading, setIsLoading] = useState(false);\n const user = localStorage.getItem(\"user\");\n const dispatch = useDispatch();\n const history = useHistory();\n const location = useLocation();\n\n useEffect(() => {\n const publicRoutes = routes\n .filter((val) => !val.userType)\n .find((val) => val.path === location.pathname);\n if (!user && !publicRoutes) {\n setIsLoading(true);\n axios\n .get(\"/api/auth/checkSession\")\n .then((response) => {\n if (response.data.success) {\n const user = response.data.data.user;\n const isUserRoute = routes.filter(\n (val) =>\n val.userType === user.userType &&\n matchPath(location.pathname, {\n path: val.path,\n })\n );\n if (isUserRoute) {\n dispatch(login({ user }));\n }\n } else {\n history.push(\"/\");\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n }\n }, [user]);\n\n if (isLoading) {\n return ;\n }\n\n return (\n \n {children}\n \n );\n });\n};\n\nexport default DefaultHoc;\n","import {\n Home,\n Test,\n NotFount404,\n AdminHome,\n Login,\n AdminLogin,\n} from \"../pages\";\nimport DefaultHoc from \"../components/DefaultHoc\";\nimport { USER_TYPE_ADMIN, USER_TYPE_STUDENT } from \"./Constants\";\n\nconst routes = [\n {\n exact: true,\n path: \"/admin\",\n component: DefaultHoc(AdminLogin),\n },\n {\n path: \"/test/:name\",\n component: DefaultHoc(Test),\n userType: USER_TYPE_STUDENT,\n },\n {\n exact: true,\n path: \"/ana-sayfa\",\n component: DefaultHoc(Home),\n userType: USER_TYPE_STUDENT,\n },\n {\n exact: true,\n path: \"/admin/ana-sayfa\",\n component: DefaultHoc(AdminHome),\n userType: USER_TYPE_ADMIN,\n },\n {\n exact: true,\n path: \"/\",\n component: DefaultHoc(Login),\n },\n {\n path: \"*\",\n component: DefaultHoc(NotFount404),\n },\n];\n\nexport default routes;\n","import React from \"react\";\nimport { BrowserRouter, Route, Switch } from \"react-router-dom\";\nimport Home from \"./Home\";\nimport Login from \"./Login\";\nimport Test from \"./Test\";\nimport NotFount404 from \"./NotFount404\";\nimport { AdminLogin, AdminHome } from \"./Admin\";\nimport routes from \"../util/Routes\";\n\nconst App = () => {\n return (\n \n \n {routes.map((val) => (\n \n ))}\n \n \n );\n};\n\nexport { Home, Login, Test, App, NotFount404, AdminHome, AdminLogin };\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport \"antd/dist/reset.css\";\nimport \"./assets/style/antdextra.css\";\nimport \"./assets/style/App.css\";\nimport { Provider } from \"react-redux\";\nimport store from \"./store\";\nimport setupAxios from \"./util/setupAxios\";\nimport { App } from \"./pages\";\n\nsetupAxios(store);\n\nReactDOM.render(\n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}