touchstudy-core 0.1.82 → 0.1.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Chats/configs/types.d.ts +1 -0
- package/dist/components/ErrorHandler.d.ts +6 -0
- package/dist/components/LabelRequired.d.ts +8 -0
- package/dist/containers/Classes/apiClients/classService.d.ts +16 -0
- package/dist/containers/Classes/apiClients/teacherService.d.ts +2 -0
- package/dist/containers/Classes/components/ClassForm.d.ts +4 -0
- package/dist/containers/Classes/components/CorrectAnswerSelector.d.ts +7 -0
- package/dist/containers/Classes/components/LessonFormBody.d.ts +4 -0
- package/dist/containers/Classes/components/LessonFormDialog.d.ts +14 -0
- package/dist/containers/Classes/components/LessonList.d.ts +27 -0
- package/dist/containers/Classes/components/SelectDialog.d.ts +30 -0
- package/dist/containers/Classes/components/StudentList.d.ts +21 -0
- package/dist/containers/Classes/components/TeacherList.d.ts +21 -0
- package/dist/containers/Classes/components/TeacherSelector.d.ts +11 -0
- package/dist/containers/Classes/configs/constants.d.ts +70 -0
- package/dist/containers/Classes/configs/interfaces.d.ts +23 -0
- package/dist/containers/Classes/configs/types.d.ts +215 -0
- package/dist/containers/Classes/hooks/useClassDetail.d.ts +105 -0
- package/dist/containers/Classes/hooks/useClassList.d.ts +20 -0
- package/dist/containers/Classes/hooks/useLessonClassList.d.ts +20 -0
- package/dist/containers/Classes/hooks/useStudentClassList.d.ts +22 -0
- package/dist/containers/Classes/hooks/useTab.d.ts +5 -0
- package/dist/containers/Classes/hooks/useTeacherClassList.d.ts +22 -0
- package/dist/containers/Classes/hooks/useTeacherList.d.ts +6 -0
- package/dist/containers/Classes/views/ClassDetail.d.ts +10 -0
- package/dist/containers/Classes/views/ClassList.d.ts +10 -0
- package/dist/containers/Login/apiClient/index.d.ts +15 -0
- package/dist/containers/Login/configs/helpers.d.ts +1 -0
- package/dist/containers/Login/hooks/useLogin.d.ts +21 -4
- package/dist/containers/Login/hooks/useLoginWithEmail.d.ts +10 -0
- package/dist/containers/Login/views/Login.d.ts +1 -1
- package/dist/containers/Login/views/LoginWithEmail.d.ts +11 -0
- package/dist/containers/Login/views/block/BlockLogin.d.ts +15 -1
- package/dist/containers/Select/Category/hook/useCategorySelect.d.ts +0 -1
- package/dist/containers/Textbooks/apiClient/articleService.d.ts +5 -6
- package/dist/containers/Textbooks/apiClient/chapterService.d.ts +5 -6
- package/dist/containers/Textbooks/apiClient/textbookService.d.ts +5 -6
- package/dist/containers/Textbooks/hooks/useTextbookDetail.d.ts +2 -0
- package/dist/containers/Users/apiClient/userService.d.ts +9 -0
- package/dist/containers/Users/components/Dialogs/DeleteUserCsvDialog.d.ts +10 -0
- package/dist/containers/Users/components/Dialogs/RecentUserActionDialog.d.ts +9 -0
- package/dist/containers/Users/components/Dialogs/UserDialog.d.ts +12 -0
- package/dist/containers/Users/configs/constants.d.ts +37 -0
- package/dist/containers/Users/configs/types.d.ts +11 -0
- package/dist/containers/Users/hooks/useExportUsersCsv.d.ts +5 -0
- package/dist/containers/Users/hooks/useRecentUserAction.d.ts +10 -0
- package/dist/containers/Users/hooks/useUserList.d.ts +40 -0
- package/dist/containers/Users/views/UserList.d.ts +7 -0
- package/dist/index.css +6 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +625 -229
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +624 -229
- package/dist/index.modern.js.map +1 -1
- package/dist/services/recentUserActionService.d.ts +4 -4
- package/dist/utils/enums/UserSortColumn.d.ts +11 -0
- package/dist/utils/toLocalTime.d.ts +1 -0
- package/dist/utils/types/login.d.ts +1 -0
- package/dist/utils/types/recentUserAction.d.ts +1 -2
- package/dist/utils/types/user.d.ts +3 -0
- package/dist/utils/types/users.d.ts +17 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -5,14 +5,17 @@ var moment = _interopDefault(require('moment'));
|
|
5
5
|
var React = require('react');
|
6
6
|
var React__default = _interopDefault(React);
|
7
7
|
var formik = require('formik');
|
8
|
-
var
|
8
|
+
var Yup = require('yup');
|
9
9
|
var GoogleLogin = require('@leecheuk/react-google-login');
|
10
10
|
var GoogleLogin__default = _interopDefault(GoogleLogin);
|
11
11
|
var reactRedux = require('react-redux');
|
12
12
|
var axios = _interopDefault(require('axios'));
|
13
13
|
var reactI18next = require('react-i18next');
|
14
14
|
var material = require('@mui/material');
|
15
|
+
var colors = require('@mui/material/colors');
|
16
|
+
var reactGoogleRecaptchaV3 = require('react-google-recaptcha-v3');
|
15
17
|
var gapiScript = require('gapi-script');
|
18
|
+
var reactToastify = require('react-toastify');
|
16
19
|
require('moment/locale/ko.js');
|
17
20
|
require('moment/locale/en-au.js');
|
18
21
|
var Pusher = _interopDefault(require('pusher-js'));
|
@@ -24,7 +27,6 @@ var Popover = _interopDefault(require('@mui/material/Popover'));
|
|
24
27
|
var MenuItem = _interopDefault(require('@mui/material/MenuItem'));
|
25
28
|
var IconButton = _interopDefault(require('@mui/material/IconButton'));
|
26
29
|
var go = require('react-icons/go');
|
27
|
-
var reactToastify = require('react-toastify');
|
28
30
|
var Select = require('react-select');
|
29
31
|
var Select__default = _interopDefault(Select);
|
30
32
|
var fa = require('react-icons/fa');
|
@@ -472,14 +474,16 @@ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl)
|
|
472
474
|
return Promise.resolve(apiLogin()).then(function (loginResponse) {
|
473
475
|
var isFirstLogin = loginResponse.isFirstLogin,
|
474
476
|
token = loginResponse.token,
|
475
|
-
user = loginResponse.user
|
477
|
+
user = loginResponse.user,
|
478
|
+
isSuperAdmin = loginResponse.isSuperAdmin;
|
476
479
|
var isAcademy = !!(user !== null && user !== void 0 && user.academyDomain);
|
477
480
|
var needToRegister = isStudent && isFirstLogin && isAcademy;
|
478
481
|
var redirectUrl = getRedirectUrl();
|
479
482
|
if (isStudent && !registerUrl) throw new Error("an_unexpected_error_has_occurred");
|
480
483
|
if (!redirectUrl) redirectUrl = needToRegister ? registerUrl : isAcademy ? homeAcademyUrl : homeUrl;
|
481
484
|
redirectLoginUser(_extends({}, user, {
|
482
|
-
isNotEnoughStatements: isFirstLogin
|
485
|
+
isNotEnoughStatements: isFirstLogin,
|
486
|
+
isSuperAdmin: isSuperAdmin
|
483
487
|
}), token, redirectUrl);
|
484
488
|
});
|
485
489
|
}, function (error) {
|
@@ -712,20 +716,33 @@ var SloganFullLogoEn = function SloganFullLogoEn(_ref) {
|
|
712
716
|
}))));
|
713
717
|
};
|
714
718
|
|
715
|
-
var schema =
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
})
|
720
|
-
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
719
|
+
var schema = function schema(t, isOTP) {
|
720
|
+
return Yup.object({
|
721
|
+
email: Yup.string().when([], function (_ref, schema) {
|
722
|
+
return !isOTP ? schema.email(t("invalid_email_address")).required(t("email_is_required")) : schema;
|
723
|
+
}),
|
724
|
+
otp: Yup.number().typeError(t("must_be_number")).when([], function (_ref2, schema) {
|
725
|
+
return isOTP ? schema.required(t("otp_is_required")).positive().integer() : schema;
|
726
|
+
})
|
727
|
+
});
|
728
|
+
};
|
729
|
+
var BlockLogin = function BlockLogin(_ref3) {
|
730
|
+
var isOTP = _ref3.isOTP,
|
731
|
+
isEmail = _ref3.isEmail,
|
732
|
+
defaultInfo = _ref3.defaultInfo,
|
733
|
+
onVerify = _ref3.onVerify,
|
734
|
+
tokenReCaptcha = _ref3.tokenReCaptcha,
|
735
|
+
refreshReCaptcha = _ref3.refreshReCaptcha,
|
736
|
+
handleSwitchOTP = _ref3.handleSwitchOTP,
|
737
|
+
handleSwitchEmail = _ref3.handleSwitchEmail,
|
738
|
+
history = _ref3.history,
|
739
|
+
_ref3$role = _ref3.role,
|
740
|
+
role = _ref3$role === void 0 ? exports.Role.Student : _ref3$role,
|
741
|
+
homeAcademyUrl = _ref3.homeAcademyUrl,
|
742
|
+
homeUrl = _ref3.homeUrl,
|
743
|
+
registerUrl = _ref3.registerUrl,
|
744
|
+
clientId = _ref3.clientId,
|
745
|
+
onSubmit = _ref3.onSubmit;
|
729
746
|
var language = reactRedux.useSelector(function (state) {
|
730
747
|
var _state$common;
|
731
748
|
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.language;
|
@@ -770,19 +787,32 @@ var BlockLogin = function BlockLogin(_ref) {
|
|
770
787
|
sx: {
|
771
788
|
gap: 4,
|
772
789
|
p: 6,
|
773
|
-
display:
|
774
|
-
flexDirection:
|
775
|
-
alignItems:
|
790
|
+
display: "flex",
|
791
|
+
flexDirection: "column",
|
792
|
+
alignItems: "center"
|
776
793
|
}
|
777
794
|
}, React__default.createElement(formik.Formik, {
|
778
795
|
initialValues: defaultInfo,
|
779
|
-
validationSchema:
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
796
|
+
validationSchema: function validationSchema() {
|
797
|
+
return schema(t, isOTP);
|
798
|
+
},
|
799
|
+
onSubmit: onSubmit
|
800
|
+
}, function (_ref4) {
|
801
|
+
var errors = _ref4.errors,
|
802
|
+
values = _ref4.values,
|
803
|
+
setFieldValue = _ref4.setFieldValue;
|
804
|
+
console.log({
|
805
|
+
errors: errors,
|
806
|
+
values: values
|
807
|
+
});
|
808
|
+
React.useEffect(function () {
|
809
|
+
if (isOTP) {
|
810
|
+
setFieldValue("email", "");
|
811
|
+
} else {
|
812
|
+
setFieldValue("otp", "");
|
813
|
+
}
|
814
|
+
}, [isOTP, isEmail]);
|
815
|
+
return React__default.createElement(formik.Form, null, React__default.createElement("div", {
|
786
816
|
className: "" + styles["block-form"]
|
787
817
|
}, React__default.createElement(material.Stack, {
|
788
818
|
py: 2,
|
@@ -792,7 +822,7 @@ var BlockLogin = function BlockLogin(_ref) {
|
|
792
822
|
width: "300px"
|
793
823
|
}) : React__default.createElement(SloganFullLogoEn, {
|
794
824
|
width: "300px"
|
795
|
-
})), React__default.createElement("div", {
|
825
|
+
})), !isOTP && !isEmail && React__default.createElement("div", {
|
796
826
|
className: "p-0 mt-1 mb-4"
|
797
827
|
}, React__default.createElement(GoogleLogin__default, {
|
798
828
|
clientId: clientId,
|
@@ -802,18 +832,152 @@ var BlockLogin = function BlockLogin(_ref) {
|
|
802
832
|
cookiePolicy: "single_host_origin",
|
803
833
|
className: "" + styles["btn-login-google"],
|
804
834
|
isSignedIn: true
|
805
|
-
})
|
835
|
+
}), React__default.createElement(material.Box, {
|
836
|
+
onClick: function onClick() {
|
837
|
+
return handleSwitchEmail(true);
|
838
|
+
},
|
839
|
+
sx: {
|
840
|
+
cursor: "pointer",
|
841
|
+
my: 4
|
842
|
+
}
|
843
|
+
}, React__default.createElement(material.Typography, {
|
844
|
+
fontSize: "14px",
|
845
|
+
fontWeight: 700,
|
846
|
+
color: colors.blue[700]
|
847
|
+
}, t("sign_in_with_email"))))), (isEmail || isOTP) && React__default.createElement(material.Stack, null, !isOTP ? React__default.createElement(material.Stack, {
|
848
|
+
flexDirection: "column",
|
849
|
+
gap: 1
|
850
|
+
}, React__default.createElement(material.Typography, {
|
851
|
+
fontWeight: 700,
|
852
|
+
fontSize: "14px"
|
853
|
+
}, t("email")), React__default.createElement(formik.Field, {
|
854
|
+
name: "email",
|
855
|
+
render: function render(_ref5) {
|
856
|
+
var field = _ref5.field;
|
857
|
+
return React__default.createElement(material.TextField, Object.assign({}, field));
|
858
|
+
}
|
859
|
+
}), !!(errors !== null && errors !== void 0 && errors.email) && React__default.createElement(material.Typography, {
|
860
|
+
fontWeight: 500,
|
861
|
+
fontSize: "10px",
|
862
|
+
lineHeight: "11.93px",
|
863
|
+
color: !(errors !== null && errors !== void 0 && errors.email) ? "#97A1AF" : "#F34B4B"
|
864
|
+
}, errors === null || errors === void 0 ? void 0 : errors.email)) : React__default.createElement(material.Stack, {
|
865
|
+
flexDirection: "column",
|
866
|
+
gap: 1
|
867
|
+
}, React__default.createElement(material.Typography, {
|
868
|
+
fontWeight: 700,
|
869
|
+
fontSize: "14px"
|
870
|
+
}, t("OTP")), React__default.createElement(formik.Field, {
|
871
|
+
name: "otp",
|
872
|
+
render: function render(_ref6) {
|
873
|
+
var field = _ref6.field;
|
874
|
+
return React__default.createElement(material.TextField, Object.assign({}, field));
|
875
|
+
}
|
876
|
+
}), !!(errors !== null && errors !== void 0 && errors.otp) && React__default.createElement(material.Typography, {
|
877
|
+
fontWeight: 500,
|
878
|
+
fontSize: "10px",
|
879
|
+
lineHeight: "11.93px",
|
880
|
+
color: !(errors !== null && errors !== void 0 && errors.otp) ? "#97A1AF" : "#F34B4B"
|
881
|
+
}, errors === null || errors === void 0 ? void 0 : errors.otp)), React__default.createElement(material.Stack, {
|
882
|
+
flexDirection: "row",
|
883
|
+
alignItems: "center",
|
884
|
+
gap: 2,
|
885
|
+
my: 2
|
886
|
+
}, React__default.createElement(reactGoogleRecaptchaV3.GoogleReCaptcha, {
|
887
|
+
onVerify: onVerify,
|
888
|
+
refreshReCaptcha: refreshReCaptcha
|
889
|
+
})), React__default.createElement(material.Box, {
|
890
|
+
onClick: function onClick() {
|
891
|
+
handleSwitchEmail(false);
|
892
|
+
handleSwitchOTP(false);
|
893
|
+
},
|
894
|
+
sx: {
|
895
|
+
cursor: "pointer",
|
896
|
+
my: 2
|
897
|
+
}
|
898
|
+
}, React__default.createElement(material.Typography, {
|
899
|
+
fontSize: "14px",
|
900
|
+
fontWeight: 700,
|
901
|
+
color: colors.blue[700]
|
902
|
+
}, t("sign_in_with_google_account"))), React__default.createElement(material.Stack, {
|
903
|
+
flexDirection: "row",
|
904
|
+
justifyContent: "end",
|
905
|
+
gap: 1,
|
906
|
+
mt: 2
|
907
|
+
}, React__default.createElement(material.Button, {
|
908
|
+
variant: "contained",
|
909
|
+
color: "primary",
|
910
|
+
type: "submit",
|
911
|
+
disabled: !tokenReCaptcha
|
912
|
+
}, t("submit")))));
|
806
913
|
})));
|
807
914
|
};
|
808
915
|
|
916
|
+
var SIGN_IN_SUPER_ADMIN_URL = SUPER_ADMIN_BASE_URL + "/api/auth/login";
|
917
|
+
var SIGN_IN_URL = BASE_URL + "/api/auth/login";
|
918
|
+
var signInApi = function signInApi(_ref) {
|
919
|
+
var email = _ref.email,
|
920
|
+
password = _ref.password,
|
921
|
+
role = _ref.role;
|
922
|
+
return api.post(SIGN_IN_URL + "/demo", {
|
923
|
+
email: email,
|
924
|
+
password: password,
|
925
|
+
role: role
|
926
|
+
});
|
927
|
+
};
|
928
|
+
var signInWithEmailApi = function signInWithEmailApi(_ref2) {
|
929
|
+
var academyDomain = _ref2.academyDomain,
|
930
|
+
email = _ref2.email,
|
931
|
+
reCaptcha = _ref2.reCaptcha;
|
932
|
+
return api.post((academyDomain ? SIGN_IN_URL : SIGN_IN_SUPER_ADMIN_URL) + "/email", {
|
933
|
+
email: email,
|
934
|
+
reCaptcha: reCaptcha
|
935
|
+
}, {
|
936
|
+
headers: {
|
937
|
+
Domain: window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '')
|
938
|
+
}
|
939
|
+
});
|
940
|
+
};
|
941
|
+
var signInWithOTPApi = function signInWithOTPApi(_ref3) {
|
942
|
+
var academyDomain = _ref3.academyDomain,
|
943
|
+
otp = _ref3.otp,
|
944
|
+
role = _ref3.role;
|
945
|
+
return api.post((academyDomain ? SIGN_IN_URL : SIGN_IN_SUPER_ADMIN_URL) + "/otp", {
|
946
|
+
otp: otp,
|
947
|
+
role: role
|
948
|
+
});
|
949
|
+
};
|
950
|
+
var signInWithKeyApi = function signInWithKeyApi(_ref4) {
|
951
|
+
var academyDomain = _ref4.academyDomain,
|
952
|
+
key = _ref4.key,
|
953
|
+
role = _ref4.role;
|
954
|
+
return api.post((academyDomain ? SIGN_IN_URL : SIGN_IN_SUPER_ADMIN_URL) + "/email/key", {
|
955
|
+
key: key,
|
956
|
+
role: role
|
957
|
+
});
|
958
|
+
};
|
959
|
+
var signInSuperAdminApi = function signInSuperAdminApi(_ref5) {
|
960
|
+
var email = _ref5.email,
|
961
|
+
password = _ref5.password,
|
962
|
+
role = _ref5.role;
|
963
|
+
return api.post(SIGN_IN_SUPER_ADMIN_URL + "/demo", {
|
964
|
+
email: email,
|
965
|
+
password: password,
|
966
|
+
role: role
|
967
|
+
});
|
968
|
+
};
|
969
|
+
|
809
970
|
var defaultInfo = {
|
810
971
|
email: "",
|
811
|
-
|
812
|
-
captcha: "",
|
813
|
-
rememberMe: false
|
972
|
+
otp: ""
|
814
973
|
};
|
815
974
|
var PAGE_TITLE = "sign_in";
|
816
|
-
var useLogin$1 = function useLogin(
|
975
|
+
var useLogin$1 = function useLogin(_ref) {
|
976
|
+
var history = _ref.history,
|
977
|
+
homeAcademyUrl = _ref.homeAcademyUrl,
|
978
|
+
homeUrl = _ref.homeUrl,
|
979
|
+
registerUrl = _ref.registerUrl,
|
980
|
+
role = _ref.role;
|
817
981
|
var _useState = React.useState(false),
|
818
982
|
openLogin = _useState[0],
|
819
983
|
setOpenLogin = _useState[1];
|
@@ -823,6 +987,7 @@ var useLogin$1 = function useLogin(homeAcademyUrl, homeUrl) {
|
|
823
987
|
var _useState3 = React.useState(),
|
824
988
|
clientId = _useState3[0],
|
825
989
|
setClientId = _useState3[1];
|
990
|
+
var dispatch = reactRedux.useDispatch();
|
826
991
|
var _useTranslation = reactI18next.useTranslation(),
|
827
992
|
t = _useTranslation.t;
|
828
993
|
var toggle = React.useCallback(function () {
|
@@ -831,6 +996,96 @@ var useLogin$1 = function useLogin(homeAcademyUrl, homeUrl) {
|
|
831
996
|
var _useState4 = React.useState(false),
|
832
997
|
isShowPassword = _useState4[0],
|
833
998
|
setIsShowPassword = _useState4[1];
|
999
|
+
var _useState5 = React.useState(false),
|
1000
|
+
isOTP = _useState5[0],
|
1001
|
+
setIsOTP = _useState5[1];
|
1002
|
+
var _useState6 = React.useState(false),
|
1003
|
+
isEmail = _useState6[0],
|
1004
|
+
setIsEmail = _useState6[1];
|
1005
|
+
var searchParams = new URLSearchParams(window.location.search);
|
1006
|
+
var paramDomain = searchParams.get("domain");
|
1007
|
+
var academyDomainStorage = getAcademyDomain();
|
1008
|
+
var academyDomain = paramDomain || academyDomainStorage || "";
|
1009
|
+
var _useState7 = React.useState(""),
|
1010
|
+
tokenReCaptcha = _useState7[0],
|
1011
|
+
setTokenReCaptcha = _useState7[1];
|
1012
|
+
var _useState8 = React.useState(false),
|
1013
|
+
refreshReCaptcha = _useState8[0],
|
1014
|
+
setRefreshReCaptcha = _useState8[1];
|
1015
|
+
var handleSwitchOTP = function handleSwitchOTP(bool) {
|
1016
|
+
setIsOTP(bool);
|
1017
|
+
};
|
1018
|
+
var handleSwitchEmail = function handleSwitchEmail(bool) {
|
1019
|
+
setIsEmail(bool);
|
1020
|
+
};
|
1021
|
+
var onVerify = React.useCallback(function (token) {
|
1022
|
+
setTokenReCaptcha(token);
|
1023
|
+
}, []);
|
1024
|
+
var redirectLoginUser = function redirectLoginUser(data, token, redirectUrl) {
|
1025
|
+
localStorage.setItem(ACCESS_TOKEN, token);
|
1026
|
+
!data.academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
|
1027
|
+
!!data.academyDomain && localStorage.setItem(ACADEMY_DOMAIN, data.academyDomain);
|
1028
|
+
dispatch(setUser(_extends({}, data)));
|
1029
|
+
if (redirectUrl) pushTo(history, redirectUrl);
|
1030
|
+
};
|
1031
|
+
var handleSubmit = function handleSubmit(values) {
|
1032
|
+
try {
|
1033
|
+
var _temp5 = function _temp5() {
|
1034
|
+
dispatch(setLoading(false));
|
1035
|
+
};
|
1036
|
+
if (!tokenReCaptcha) return Promise.resolve();
|
1037
|
+
dispatch(setLoading(true));
|
1038
|
+
var email = values.email,
|
1039
|
+
otp = values.otp;
|
1040
|
+
var _temp4 = _catch(function () {
|
1041
|
+
function _temp3() {
|
1042
|
+
var _temp = function () {
|
1043
|
+
if (otp) {
|
1044
|
+
return Promise.resolve(signInWithOTPApi({
|
1045
|
+
academyDomain: academyDomain,
|
1046
|
+
otp: otp,
|
1047
|
+
role: role
|
1048
|
+
})).then(function (res) {
|
1049
|
+
var loginResponse = res === null || res === void 0 ? void 0 : res.data;
|
1050
|
+
var isFirstLogin = loginResponse.isFirstLogin,
|
1051
|
+
token = loginResponse.token,
|
1052
|
+
user = loginResponse.user;
|
1053
|
+
var isAcademy = !!(user !== null && user !== void 0 && user.academyDomain);
|
1054
|
+
var needToRegister = isFirstLogin && isAcademy;
|
1055
|
+
var redirectUrl = needToRegister ? registerUrl : isAcademy ? homeAcademyUrl : homeUrl;
|
1056
|
+
handleSwitchOTP(false);
|
1057
|
+
redirectLoginUser(user, token, redirectUrl);
|
1058
|
+
});
|
1059
|
+
}
|
1060
|
+
}();
|
1061
|
+
if (_temp && _temp.then) return _temp.then(function () {});
|
1062
|
+
}
|
1063
|
+
var _temp2 = function () {
|
1064
|
+
if (email) {
|
1065
|
+
return Promise.resolve(signInWithEmailApi({
|
1066
|
+
academyDomain: academyDomain,
|
1067
|
+
email: email,
|
1068
|
+
reCaptcha: tokenReCaptcha
|
1069
|
+
})).then(function () {
|
1070
|
+
reactToastify.toast.success(t("please_check_your_mailbox"));
|
1071
|
+
handleSwitchOTP(true);
|
1072
|
+
handleSwitchEmail(false);
|
1073
|
+
setRefreshReCaptcha(function (b) {
|
1074
|
+
return !b;
|
1075
|
+
});
|
1076
|
+
});
|
1077
|
+
}
|
1078
|
+
}();
|
1079
|
+
return _temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2);
|
1080
|
+
}, function (error) {
|
1081
|
+
console.log(error);
|
1082
|
+
reactToastify.toast.error(getErrorMessage(t, error, t("request_login_fail")));
|
1083
|
+
});
|
1084
|
+
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
|
1085
|
+
} catch (e) {
|
1086
|
+
return Promise.reject(e);
|
1087
|
+
}
|
1088
|
+
};
|
834
1089
|
React.useEffect(function () {
|
835
1090
|
setClientId(GOOGLE_CLIENT_ID);
|
836
1091
|
}, []);
|
@@ -853,6 +1108,13 @@ var useLogin$1 = function useLogin(homeAcademyUrl, homeUrl) {
|
|
853
1108
|
document.title = t("study_peak") + " | " + t(PAGE_TITLE);
|
854
1109
|
}, [t]);
|
855
1110
|
return {
|
1111
|
+
isOTP: isOTP,
|
1112
|
+
isEmail: isEmail,
|
1113
|
+
onVerify: onVerify,
|
1114
|
+
tokenReCaptcha: tokenReCaptcha,
|
1115
|
+
refreshReCaptcha: refreshReCaptcha,
|
1116
|
+
handleSwitchOTP: handleSwitchOTP,
|
1117
|
+
handleSwitchEmail: handleSwitchEmail,
|
856
1118
|
clientId: clientId,
|
857
1119
|
defaultInfo: defaultInfo,
|
858
1120
|
openLogin: openLogin,
|
@@ -860,6 +1122,7 @@ var useLogin$1 = function useLogin(homeAcademyUrl, homeUrl) {
|
|
860
1122
|
isShowPassword: isShowPassword,
|
861
1123
|
setIsShowPassword: setIsShowPassword,
|
862
1124
|
infoUser: infoUser,
|
1125
|
+
handleSubmit: handleSubmit,
|
863
1126
|
setInfoUser: setInfoUser
|
864
1127
|
};
|
865
1128
|
};
|
@@ -962,9 +1225,23 @@ var _excluded = ["history"];
|
|
962
1225
|
var Login = function Login(_ref) {
|
963
1226
|
var history = _ref.history,
|
964
1227
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
965
|
-
var _useLogin = useLogin$1(
|
1228
|
+
var _useLogin = useLogin$1({
|
1229
|
+
homeAcademyUrl: rest.homeAcademyUrl,
|
1230
|
+
homeUrl: rest.homeUrl,
|
1231
|
+
role: rest.role,
|
1232
|
+
registerUrl: rest.registerUrl,
|
1233
|
+
history: history
|
1234
|
+
}),
|
1235
|
+
isOTP = _useLogin.isOTP,
|
1236
|
+
isEmail = _useLogin.isEmail,
|
1237
|
+
onVerify = _useLogin.onVerify,
|
966
1238
|
defaultInfo = _useLogin.defaultInfo,
|
967
|
-
clientId = _useLogin.clientId
|
1239
|
+
clientId = _useLogin.clientId,
|
1240
|
+
tokenReCaptcha = _useLogin.tokenReCaptcha,
|
1241
|
+
handleSubmit = _useLogin.handleSubmit,
|
1242
|
+
handleSwitchOTP = _useLogin.handleSwitchOTP,
|
1243
|
+
refreshReCaptcha = _useLogin.refreshReCaptcha,
|
1244
|
+
handleSwitchEmail = _useLogin.handleSwitchEmail;
|
968
1245
|
useLanguage(history);
|
969
1246
|
return React__default.createElement("div", {
|
970
1247
|
className: styles["login"] + " font-family-lato"
|
@@ -976,11 +1253,21 @@ var Login = function Login(_ref) {
|
|
976
1253
|
item: true,
|
977
1254
|
xs: 12,
|
978
1255
|
className: "d-flex justify-content-center h-100 align-items-center"
|
979
|
-
}, clientId && React__default.createElement(
|
1256
|
+
}, clientId && React__default.createElement(reactGoogleRecaptchaV3.GoogleReCaptchaProvider, {
|
1257
|
+
reCaptchaKey: GOOGLE_RECAPTCHA_KEY
|
1258
|
+
}, React__default.createElement(BlockLogin, Object.assign({
|
1259
|
+
isOTP: isOTP,
|
1260
|
+
onVerify: onVerify,
|
1261
|
+
isEmail: isEmail,
|
1262
|
+
tokenReCaptcha: tokenReCaptcha,
|
1263
|
+
refreshReCaptcha: refreshReCaptcha,
|
1264
|
+
handleSwitchOTP: handleSwitchOTP,
|
1265
|
+
handleSwitchEmail: handleSwitchEmail,
|
980
1266
|
defaultInfo: defaultInfo,
|
981
1267
|
history: history,
|
982
|
-
clientId: clientId
|
983
|
-
|
1268
|
+
clientId: clientId,
|
1269
|
+
onSubmit: handleSubmit
|
1270
|
+
}, rest))))));
|
984
1271
|
};
|
985
1272
|
|
986
1273
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
@@ -1379,7 +1666,9 @@ var useLayoutContext = function useLayoutContext(role, pusherRegisterUrls, showL
|
|
1379
1666
|
};
|
1380
1667
|
var checkRoleUser = React.useCallback(function () {
|
1381
1668
|
if (!(user !== null && user !== void 0 && user.email)) return;
|
1382
|
-
|
1669
|
+
var isAdmin = roles.includes(exports.Role.Admin);
|
1670
|
+
if (isAdmin && role === exports.Role.Teacher) return;
|
1671
|
+
if (!roles.includes(role) && !!academyDomain && (role !== exports.Role.Teacher || !roles.includes(exports.Role.Admin))) {
|
1383
1672
|
alert(t("user_not_allow_to_register_role", {
|
1384
1673
|
user: user.email,
|
1385
1674
|
role: role
|
@@ -1779,11 +2068,17 @@ var useSubjectSelect = function useSubjectSelect(_ref) {
|
|
1779
2068
|
}, []);
|
1780
2069
|
var handleChangeSubject = function handleChangeSubject(value) {
|
1781
2070
|
var id = value.value;
|
2071
|
+
var examQuestions = exam.questions;
|
1782
2072
|
var selectedSubject = subjectList === null || subjectList === void 0 ? void 0 : subjectList.find(function (subject) {
|
1783
2073
|
return subject.id === id;
|
1784
2074
|
});
|
1785
2075
|
onChangeExam(_extends({}, exam, {
|
1786
|
-
subjectId: (selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.id) || 0
|
2076
|
+
subjectId: (selectedSubject === null || selectedSubject === void 0 ? void 0 : selectedSubject.id) || 0,
|
2077
|
+
questions: [].concat(examQuestions.map(function (q) {
|
2078
|
+
return _extends({}, q, {
|
2079
|
+
categoryId: undefined
|
2080
|
+
});
|
2081
|
+
}))
|
1787
2082
|
}));
|
1788
2083
|
};
|
1789
2084
|
return {
|
@@ -1838,6 +2133,7 @@ var there_are_no_recent_exams = "최근 시험이 없습니다";
|
|
1838
2133
|
var you_have_started_an_exam_with_code_code_do_you_want_to_continue = "{{code}} 코드로 시험을 시작했습니다. 계속하시겠습니까?";
|
1839
2134
|
var here = "여기";
|
1840
2135
|
var do_you_want_to_complete_the_exam = "시험을 완료처리 하시겠습니까?";
|
2136
|
+
var do_you_want_to_cancel_the_exam = "시험을 취소하시겠습니까? (학생의 결과는 모두 삭제됩니다)";
|
1841
2137
|
var are_you_sure_you_want_to_delete_the_exam = "시험을 삭제하시겠습니까?";
|
1842
2138
|
var are_you_sure_you_want_to_delete_the_textbook = "교과서를 삭제하시겠습니까?";
|
1843
2139
|
var are_you_sure_you_want_to_delete_the_user = "사용자 {{user}}을(를) 삭제하시겠습니까?";
|
@@ -2081,6 +2377,7 @@ var parent_name = "부모님 성함";
|
|
2081
2377
|
var users = "사용자";
|
2082
2378
|
var new_user = "새로운 사용자";
|
2083
2379
|
var academy_admin = "아카데미 관리자";
|
2380
|
+
var super_admin = "최고 관리자";
|
2084
2381
|
var switch_academy_admin = "스위치 아카데미 관리자";
|
2085
2382
|
var switch_academy = "스위치 아카데미";
|
2086
2383
|
var there_are_no_lessons_this_week = "이번주는 수업이 없습니다";
|
@@ -2140,7 +2437,7 @@ var teachers = "교사";
|
|
2140
2437
|
var lessons = "수업";
|
2141
2438
|
var new_test = "새로운 시험";
|
2142
2439
|
var manage_saved_exams = "저장된 시험 관리";
|
2143
|
-
var
|
2440
|
+
var manage_textbooks = "교과서 관리";
|
2144
2441
|
var my_question = "내 질문";
|
2145
2442
|
var update_class = "수업 업데이트";
|
2146
2443
|
var create_class = "수업 만들기";
|
@@ -2371,6 +2668,7 @@ var textbook_subject_is_required = "교과서 과목은 필수입니다";
|
|
2371
2668
|
var update_the_textbook_successfully = "교과서를 성공적으로 업데이트했습니다.";
|
2372
2669
|
var create_the_textbook_successfully = "교과서를 성공적으로 만들었습니다.";
|
2373
2670
|
var finish_exam_successful = "시험을 성공적으로 마쳤습니다";
|
2671
|
+
var cancel_exam_successful = "시험을 성공적으로 취소했습니다";
|
2374
2672
|
var you_has_been_kicked_out = "당신은 쫓겨났습니다";
|
2375
2673
|
var the_teacher_has_closed_or_deleted_the_exam = "선생님이 시험을 종료했거나 삭제했습니다. 나중에 다시 시도해 주세요.";
|
2376
2674
|
var check_in_lesson_successfully = "수업 체크인 성공";
|
@@ -2465,6 +2763,7 @@ var added_date = "추가된 날짜";
|
|
2465
2763
|
var sync_exam_results = "시험 결과 동기화";
|
2466
2764
|
var update_data_fail = "데이터 업데이트 실패";
|
2467
2765
|
var add_students_to_class = "수업에 학생 추가";
|
2766
|
+
var add_teachers_to_class = "수업에 교사 추가";
|
2468
2767
|
var click_to_choose_file = "파일을 선택하려면 클릭하세요.";
|
2469
2768
|
var exam_data = "시험 데이터";
|
2470
2769
|
var questions_correct_rate = "질문 정답률";
|
@@ -2581,6 +2880,16 @@ var allowed_to_send_pop_ups_and_use_redirects = "팝업 보내기 및 리디렉
|
|
2581
2880
|
var disable_ask_where_to_save_each_file_before_downloading = "다운로드하기 전에 각 파일을 저장할 위치 묻기 비활성화";
|
2582
2881
|
var total_number_of_selected_results = "선택된 결과의 총 개수";
|
2583
2882
|
var choose_to_print = "인쇄를 선택하세요";
|
2883
|
+
var exam_has_been_cancelled = "시험이 취소되었습니다";
|
2884
|
+
var or = "또는";
|
2885
|
+
var sign_in_with_email = "이메일로 로그인";
|
2886
|
+
var please_check_your_mailbox = "우편함을 확인해 주세요";
|
2887
|
+
var otp_is_required = "OTP가 필요합니다";
|
2888
|
+
var min_is_1 = "최소값은 1입니다.";
|
2889
|
+
var max_is_6 = "최대는 6입니다";
|
2890
|
+
var must_be_number = "숫자여야 합니다.";
|
2891
|
+
var sign_in_with_google_account = "구글 계정으로 로그인";
|
2892
|
+
var academy_role = "아카데미 역할";
|
2584
2893
|
var lang_ko = {
|
2585
2894
|
problem_solving: problem_solving,
|
2586
2895
|
my_story: my_story,
|
@@ -2621,6 +2930,7 @@ var lang_ko = {
|
|
2621
2930
|
you_have_started_an_exam_with_code_code_do_you_want_to_continue: you_have_started_an_exam_with_code_code_do_you_want_to_continue,
|
2622
2931
|
here: here,
|
2623
2932
|
do_you_want_to_complete_the_exam: do_you_want_to_complete_the_exam,
|
2933
|
+
do_you_want_to_cancel_the_exam: do_you_want_to_cancel_the_exam,
|
2624
2934
|
are_you_sure_you_want_to_delete_the_exam: are_you_sure_you_want_to_delete_the_exam,
|
2625
2935
|
are_you_sure_you_want_to_delete_the_textbook: are_you_sure_you_want_to_delete_the_textbook,
|
2626
2936
|
are_you_sure_you_want_to_delete_the_user: are_you_sure_you_want_to_delete_the_user,
|
@@ -2861,6 +3171,7 @@ var lang_ko = {
|
|
2861
3171
|
users: users,
|
2862
3172
|
new_user: new_user,
|
2863
3173
|
academy_admin: academy_admin,
|
3174
|
+
super_admin: super_admin,
|
2864
3175
|
switch_academy_admin: switch_academy_admin,
|
2865
3176
|
switch_academy: switch_academy,
|
2866
3177
|
there_are_no_lessons_this_week: there_are_no_lessons_this_week,
|
@@ -2910,7 +3221,7 @@ var lang_ko = {
|
|
2910
3221
|
lessons: lessons,
|
2911
3222
|
new_test: new_test,
|
2912
3223
|
manage_saved_exams: manage_saved_exams,
|
2913
|
-
|
3224
|
+
manage_textbooks: manage_textbooks,
|
2914
3225
|
my_question: my_question,
|
2915
3226
|
update_class: update_class,
|
2916
3227
|
create_class: create_class,
|
@@ -3146,6 +3457,7 @@ var lang_ko = {
|
|
3146
3457
|
update_the_textbook_successfully: update_the_textbook_successfully,
|
3147
3458
|
create_the_textbook_successfully: create_the_textbook_successfully,
|
3148
3459
|
finish_exam_successful: finish_exam_successful,
|
3460
|
+
cancel_exam_successful: cancel_exam_successful,
|
3149
3461
|
you_has_been_kicked_out: you_has_been_kicked_out,
|
3150
3462
|
the_teacher_has_closed_or_deleted_the_exam: the_teacher_has_closed_or_deleted_the_exam,
|
3151
3463
|
check_in_lesson_successfully: check_in_lesson_successfully,
|
@@ -3241,6 +3553,7 @@ var lang_ko = {
|
|
3241
3553
|
sync_exam_results: sync_exam_results,
|
3242
3554
|
update_data_fail: update_data_fail,
|
3243
3555
|
add_students_to_class: add_students_to_class,
|
3556
|
+
add_teachers_to_class: add_teachers_to_class,
|
3244
3557
|
click_to_choose_file: click_to_choose_file,
|
3245
3558
|
exam_data: exam_data,
|
3246
3559
|
questions_correct_rate: questions_correct_rate,
|
@@ -3354,7 +3667,17 @@ var lang_ko = {
|
|
3354
3667
|
allowed_to_send_pop_ups_and_use_redirects: allowed_to_send_pop_ups_and_use_redirects,
|
3355
3668
|
disable_ask_where_to_save_each_file_before_downloading: disable_ask_where_to_save_each_file_before_downloading,
|
3356
3669
|
total_number_of_selected_results: total_number_of_selected_results,
|
3357
|
-
choose_to_print: choose_to_print
|
3670
|
+
choose_to_print: choose_to_print,
|
3671
|
+
exam_has_been_cancelled: exam_has_been_cancelled,
|
3672
|
+
or: or,
|
3673
|
+
sign_in_with_email: sign_in_with_email,
|
3674
|
+
please_check_your_mailbox: please_check_your_mailbox,
|
3675
|
+
otp_is_required: otp_is_required,
|
3676
|
+
min_is_1: min_is_1,
|
3677
|
+
max_is_6: max_is_6,
|
3678
|
+
must_be_number: must_be_number,
|
3679
|
+
sign_in_with_google_account: sign_in_with_google_account,
|
3680
|
+
academy_role: academy_role
|
3358
3681
|
};
|
3359
3682
|
|
3360
3683
|
var problem_solving$1 = "Problem Solving";
|
@@ -3394,6 +3717,7 @@ var there_are_no_recent_exams$1 = "There are no recent exams";
|
|
3394
3717
|
var you_have_started_an_exam_with_code_code_do_you_want_to_continue$1 = "You have started an exam with code {{code}}, do you want to continue?";
|
3395
3718
|
var here$1 = "here";
|
3396
3719
|
var do_you_want_to_complete_the_exam$1 = "Do you want to complete the exam?";
|
3720
|
+
var do_you_want_to_cancel_the_exam$1 = "Do you want to cancel the exam? (All student results will be deleted)";
|
3397
3721
|
var are_you_sure_you_want_to_delete_the_exam$1 = "Are you sure you want to delete the exam?";
|
3398
3722
|
var are_you_sure_you_want_to_delete_the_textbook$1 = "Are you sure you want to delete the textbook?";
|
3399
3723
|
var are_you_sure_you_want_to_delete_the_user$1 = "Are you sure you want to delete the user: {{user}}?";
|
@@ -3662,6 +3986,7 @@ var parent_name$1 = "Parent name";
|
|
3662
3986
|
var users$1 = "Users";
|
3663
3987
|
var new_user$1 = "New user";
|
3664
3988
|
var academy_admin$1 = "Academy Admin";
|
3989
|
+
var super_admin$1 = "Super Admin";
|
3665
3990
|
var switch_academy_admin$1 = "Switch Academy Admin";
|
3666
3991
|
var switch_academy$1 = "Switch Academy";
|
3667
3992
|
var there_are_no_lessons_this_week$1 = "There are no lessons this week";
|
@@ -3723,7 +4048,7 @@ var update_class$1 = "Update class";
|
|
3723
4048
|
var create_class$1 = "Create class";
|
3724
4049
|
var new_test$1 = "New Test";
|
3725
4050
|
var manage_saved_exams$1 = "Manage saved exams";
|
3726
|
-
var
|
4051
|
+
var manage_textbooks$1 = "Manage textbooks";
|
3727
4052
|
var my_question$1 = "My Q&As";
|
3728
4053
|
var problem_number$1 = "Problem number";
|
3729
4054
|
var solve_time$1 = "Solve time";
|
@@ -3941,7 +4266,8 @@ var textbook_name_is_required$1 = "Textbook name is required";
|
|
3941
4266
|
var textbook_subject_is_required$1 = "Textbook subject is required";
|
3942
4267
|
var update_the_textbook_successfully$1 = "Update the textbook successfully";
|
3943
4268
|
var create_the_textbook_successfully$1 = "Create the textbook successfully";
|
3944
|
-
var finish_exam_successful$1 = "Finish exam
|
4269
|
+
var finish_exam_successful$1 = "Finish exam successfully";
|
4270
|
+
var cancel_exam_successful$1 = "Cancel exam successfully";
|
3945
4271
|
var you_has_been_kicked_out$1 = "You has been kicked out";
|
3946
4272
|
var the_teacher_has_closed_or_deleted_the_exam$1 = "The teacher has closed or deleted the exam, please try again later";
|
3947
4273
|
var check_in_lesson_successfully$1 = "Check in lesson successfully";
|
@@ -4022,6 +4348,7 @@ var added_date$1 = "Added date";
|
|
4022
4348
|
var sync_exam_results$1 = "Sync exam results";
|
4023
4349
|
var update_data_fail$1 = "Update data fail";
|
4024
4350
|
var add_students_to_class$1 = "Add students to class";
|
4351
|
+
var add_teachers_to_class$1 = "Add teachers to class";
|
4025
4352
|
var click_to_choose_file$1 = "Click to choose file";
|
4026
4353
|
var exam_data$1 = "Exam Data";
|
4027
4354
|
var questions_correct_rate$1 = "Questions Correct Rate";
|
@@ -4035,8 +4362,8 @@ var messages$1 = {
|
|
4035
4362
|
var submit$1 = "Submit";
|
4036
4363
|
var must_select_a_teacher_first$1 = "Must select a teacher first";
|
4037
4364
|
var student_grade_is_invalid$1 = "Student grade must be from 1 to 12";
|
4038
|
-
var recent_users$1 = "Recent
|
4039
|
-
var recent_students$1 = "Recent
|
4365
|
+
var recent_users$1 = "Recent users";
|
4366
|
+
var recent_students$1 = "Recent students";
|
4040
4367
|
var viewed_user$1 = "Viewed User";
|
4041
4368
|
var viewed_QNA$1 = "Viewed Question&Answer";
|
4042
4369
|
var viewed_exam_result$1 = "Viewed Exam Results";
|
@@ -4138,6 +4465,16 @@ var allowed_to_send_pop_ups_and_use_redirects$1 = "Allowed to send pop-ups and u
|
|
4138
4465
|
var disable_ask_where_to_save_each_file_before_downloading$1 = "Disable ask where to save each file before downloading";
|
4139
4466
|
var total_number_of_selected_results$1 = "Total number of selected results";
|
4140
4467
|
var choose_to_print$1 = "Choose to print";
|
4468
|
+
var exam_has_been_cancelled$1 = "The exam has been cancelled";
|
4469
|
+
var or$1 = "Or";
|
4470
|
+
var sign_in_with_email$1 = "Sign in with email";
|
4471
|
+
var please_check_your_mailbox$1 = "Please check your mailbox";
|
4472
|
+
var otp_is_required$1 = "OTP is required";
|
4473
|
+
var min_is_1$1 = "Min is 1";
|
4474
|
+
var max_is_6$1 = "Max is 6";
|
4475
|
+
var must_be_number$1 = "Must be number";
|
4476
|
+
var sign_in_with_google_account$1 = "Sign in with google account";
|
4477
|
+
var academy_role$1 = "Academy role";
|
4141
4478
|
var lang_en = {
|
4142
4479
|
problem_solving: problem_solving$1,
|
4143
4480
|
my_story: my_story$1,
|
@@ -4178,6 +4515,7 @@ var lang_en = {
|
|
4178
4515
|
you_have_started_an_exam_with_code_code_do_you_want_to_continue: you_have_started_an_exam_with_code_code_do_you_want_to_continue$1,
|
4179
4516
|
here: here$1,
|
4180
4517
|
do_you_want_to_complete_the_exam: do_you_want_to_complete_the_exam$1,
|
4518
|
+
do_you_want_to_cancel_the_exam: do_you_want_to_cancel_the_exam$1,
|
4181
4519
|
are_you_sure_you_want_to_delete_the_exam: are_you_sure_you_want_to_delete_the_exam$1,
|
4182
4520
|
are_you_sure_you_want_to_delete_the_textbook: are_you_sure_you_want_to_delete_the_textbook$1,
|
4183
4521
|
are_you_sure_you_want_to_delete_the_user: are_you_sure_you_want_to_delete_the_user$1,
|
@@ -4443,6 +4781,7 @@ var lang_en = {
|
|
4443
4781
|
users: users$1,
|
4444
4782
|
new_user: new_user$1,
|
4445
4783
|
academy_admin: academy_admin$1,
|
4784
|
+
super_admin: super_admin$1,
|
4446
4785
|
switch_academy_admin: switch_academy_admin$1,
|
4447
4786
|
switch_academy: switch_academy$1,
|
4448
4787
|
there_are_no_lessons_this_week: there_are_no_lessons_this_week$1,
|
@@ -4494,7 +4833,7 @@ var lang_en = {
|
|
4494
4833
|
create_class: create_class$1,
|
4495
4834
|
new_test: new_test$1,
|
4496
4835
|
manage_saved_exams: manage_saved_exams$1,
|
4497
|
-
|
4836
|
+
manage_textbooks: manage_textbooks$1,
|
4498
4837
|
my_question: my_question$1,
|
4499
4838
|
problem_number: problem_number$1,
|
4500
4839
|
solve_time: solve_time$1,
|
@@ -4718,6 +5057,7 @@ var lang_en = {
|
|
4718
5057
|
update_the_textbook_successfully: update_the_textbook_successfully$1,
|
4719
5058
|
create_the_textbook_successfully: create_the_textbook_successfully$1,
|
4720
5059
|
finish_exam_successful: finish_exam_successful$1,
|
5060
|
+
cancel_exam_successful: cancel_exam_successful$1,
|
4721
5061
|
you_has_been_kicked_out: you_has_been_kicked_out$1,
|
4722
5062
|
the_teacher_has_closed_or_deleted_the_exam: the_teacher_has_closed_or_deleted_the_exam$1,
|
4723
5063
|
check_in_lesson_successfully: check_in_lesson_successfully$1,
|
@@ -4799,6 +5139,7 @@ var lang_en = {
|
|
4799
5139
|
sync_exam_results: sync_exam_results$1,
|
4800
5140
|
update_data_fail: update_data_fail$1,
|
4801
5141
|
add_students_to_class: add_students_to_class$1,
|
5142
|
+
add_teachers_to_class: add_teachers_to_class$1,
|
4802
5143
|
click_to_choose_file: click_to_choose_file$1,
|
4803
5144
|
exam_data: exam_data$1,
|
4804
5145
|
questions_correct_rate: questions_correct_rate$1,
|
@@ -4912,7 +5253,17 @@ var lang_en = {
|
|
4912
5253
|
allowed_to_send_pop_ups_and_use_redirects: allowed_to_send_pop_ups_and_use_redirects$1,
|
4913
5254
|
disable_ask_where_to_save_each_file_before_downloading: disable_ask_where_to_save_each_file_before_downloading$1,
|
4914
5255
|
total_number_of_selected_results: total_number_of_selected_results$1,
|
4915
|
-
choose_to_print: choose_to_print$1
|
5256
|
+
choose_to_print: choose_to_print$1,
|
5257
|
+
exam_has_been_cancelled: exam_has_been_cancelled$1,
|
5258
|
+
or: or$1,
|
5259
|
+
sign_in_with_email: sign_in_with_email$1,
|
5260
|
+
please_check_your_mailbox: please_check_your_mailbox$1,
|
5261
|
+
otp_is_required: otp_is_required$1,
|
5262
|
+
min_is_1: min_is_1$1,
|
5263
|
+
max_is_6: max_is_6$1,
|
5264
|
+
must_be_number: must_be_number$1,
|
5265
|
+
sign_in_with_google_account: sign_in_with_google_account$1,
|
5266
|
+
academy_role: academy_role$1
|
4916
5267
|
};
|
4917
5268
|
|
4918
5269
|
i18n__default.use(reactI18next.initReactI18next).init({
|
@@ -5186,7 +5537,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
|
|
5186
5537
|
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
5187
5538
|
});
|
5188
5539
|
var isAdmin = role === exports.Role.Admin;
|
5189
|
-
var isSuperAdmin = user && !user.academyDomain && ((_user$roles = user.roles) === null || _user$roles === void 0 ? void 0 : _user$roles.includes(exports.Role.Admin));
|
5540
|
+
var isSuperAdmin = user && (!user.academyDomain && ((_user$roles = user.roles) === null || _user$roles === void 0 ? void 0 : _user$roles.includes(exports.Role.Admin)) || user.isSuperAdmin);
|
5190
5541
|
var _useTranslation = reactI18next.useTranslation(),
|
5191
5542
|
t = _useTranslation.t;
|
5192
5543
|
var _useState = React.useState(null),
|
@@ -6931,7 +7282,7 @@ var useMessageList = function useMessageList(_ref) {
|
|
6931
7282
|
userId: (student === null || student === void 0 ? void 0 : student.id) || 0,
|
6932
7283
|
action: RecentUserAction$1.ViewedQNA,
|
6933
7284
|
data: "" + conversationId,
|
6934
|
-
|
7285
|
+
isAdmin: !isTeacher
|
6935
7286
|
})).then(function () {
|
6936
7287
|
isFirst = false;
|
6937
7288
|
});
|
@@ -7099,6 +7450,7 @@ var useChatContainer = function useChatContainer(props) {
|
|
7099
7450
|
var _useState4 = React.useState(true),
|
7100
7451
|
isScrollToEnd = _useState4[0],
|
7101
7452
|
setScrollToEnd = _useState4[1];
|
7453
|
+
var isAdmin = roles === null || roles === void 0 ? void 0 : roles.includes(exports.Role.Admin);
|
7102
7454
|
var _useMessageList = useMessageList({
|
7103
7455
|
student: student
|
7104
7456
|
}),
|
@@ -7224,9 +7576,6 @@ var useChatContainer = function useChatContainer(props) {
|
|
7224
7576
|
if (!data) return;
|
7225
7577
|
var parsedData = JSON.parse(data);
|
7226
7578
|
if (parsedData.id) setSelectedConversation(JSON.parse(data));
|
7227
|
-
console.log({
|
7228
|
-
data: JSON.parse(data)
|
7229
|
-
});
|
7230
7579
|
};
|
7231
7580
|
var handleLoadMoreMessages = function handleLoadMoreMessages() {
|
7232
7581
|
try {
|
@@ -7293,11 +7642,11 @@ var useChatContainer = function useChatContainer(props) {
|
|
7293
7642
|
var results = messages.map(function (i) {
|
7294
7643
|
var _i$sender;
|
7295
7644
|
return _extends({}, i, {
|
7296
|
-
isMe: (infoUser === null || infoUser === void 0 ? void 0 : infoUser.id) === ((_i$sender = i.sender) === null || _i$sender === void 0 ? void 0 : _i$sender.id)
|
7645
|
+
isMe: isAdmin && !i.isStudent || (infoUser === null || infoUser === void 0 ? void 0 : infoUser.id) === ((_i$sender = i.sender) === null || _i$sender === void 0 ? void 0 : _i$sender.id)
|
7297
7646
|
});
|
7298
7647
|
});
|
7299
7648
|
return results;
|
7300
|
-
}, [JSON.stringify(messages), infoUser === null || infoUser === void 0 ? void 0 : infoUser.id]);
|
7649
|
+
}, [JSON.stringify(messages), infoUser === null || infoUser === void 0 ? void 0 : infoUser.id, isAdmin]);
|
7301
7650
|
React.useEffect(function () {
|
7302
7651
|
getMessageConversation();
|
7303
7652
|
}, [JSON.stringify(selectedConversation)]);
|
@@ -8062,40 +8411,22 @@ var ChapterBox = function ChapterBox(_ref) {
|
|
8062
8411
|
};
|
8063
8412
|
|
8064
8413
|
var TEXTBOOK_URL = BASE_URL + "/api/textbooks";
|
8065
|
-
var getTextbookListApi = function getTextbookListApi(query
|
8414
|
+
var getTextbookListApi = function getTextbookListApi(query) {
|
8066
8415
|
return api.get("" + TEXTBOOK_URL, {
|
8067
|
-
params:
|
8068
|
-
roles: role
|
8069
|
-
})
|
8416
|
+
params: query
|
8070
8417
|
});
|
8071
8418
|
};
|
8072
|
-
var getTextbookByIdApi = function getTextbookByIdApi(textbookId
|
8073
|
-
return api.get(TEXTBOOK_URL + "/" + textbookId
|
8074
|
-
params: {
|
8075
|
-
roles: role
|
8076
|
-
}
|
8077
|
-
});
|
8419
|
+
var getTextbookByIdApi = function getTextbookByIdApi(textbookId) {
|
8420
|
+
return api.get(TEXTBOOK_URL + "/" + textbookId);
|
8078
8421
|
};
|
8079
|
-
var createTextbookApi = function createTextbookApi(data
|
8080
|
-
return api.post("" + TEXTBOOK_URL, data
|
8081
|
-
params: {
|
8082
|
-
roles: role
|
8083
|
-
}
|
8084
|
-
});
|
8422
|
+
var createTextbookApi = function createTextbookApi(data) {
|
8423
|
+
return api.post("" + TEXTBOOK_URL, data);
|
8085
8424
|
};
|
8086
|
-
var updateTextbookApi = function updateTextbookApi(textbookId, data
|
8087
|
-
return api.put(TEXTBOOK_URL + "/" + textbookId, data
|
8088
|
-
params: {
|
8089
|
-
roles: role
|
8090
|
-
}
|
8091
|
-
});
|
8425
|
+
var updateTextbookApi = function updateTextbookApi(textbookId, data) {
|
8426
|
+
return api.put(TEXTBOOK_URL + "/" + textbookId, data);
|
8092
8427
|
};
|
8093
|
-
var deleteTextbookApi = function deleteTextbookApi(textbookId
|
8094
|
-
return api["delete"](TEXTBOOK_URL + "/" + textbookId
|
8095
|
-
params: {
|
8096
|
-
roles: role
|
8097
|
-
}
|
8098
|
-
});
|
8428
|
+
var deleteTextbookApi = function deleteTextbookApi(textbookId) {
|
8429
|
+
return api["delete"](TEXTBOOK_URL + "/" + textbookId);
|
8099
8430
|
};
|
8100
8431
|
|
8101
8432
|
var ExamStatus$1;
|
@@ -8199,49 +8530,25 @@ var DEFAULT_ARTICLE_CREATE_REQUEST = {
|
|
8199
8530
|
};
|
8200
8531
|
|
8201
8532
|
var CHAPTER_URL = BASE_URL + "/api/chapters";
|
8202
|
-
var createChapterApi = function createChapterApi(chapter
|
8203
|
-
return api.post("" + CHAPTER_URL, chapter
|
8204
|
-
params: {
|
8205
|
-
roles: role
|
8206
|
-
}
|
8207
|
-
});
|
8533
|
+
var createChapterApi = function createChapterApi(chapter) {
|
8534
|
+
return api.post("" + CHAPTER_URL, chapter);
|
8208
8535
|
};
|
8209
|
-
var updateChapterApi = function updateChapterApi(chapterId, chapter
|
8210
|
-
return api.put(CHAPTER_URL + "/" + chapterId, chapter
|
8211
|
-
params: {
|
8212
|
-
roles: role
|
8213
|
-
}
|
8214
|
-
});
|
8536
|
+
var updateChapterApi = function updateChapterApi(chapterId, chapter) {
|
8537
|
+
return api.put(CHAPTER_URL + "/" + chapterId, chapter);
|
8215
8538
|
};
|
8216
|
-
var deleteChapterApi = function deleteChapterApi(chapterId
|
8217
|
-
return api["delete"](CHAPTER_URL + "/" + chapterId
|
8218
|
-
params: {
|
8219
|
-
roles: role
|
8220
|
-
}
|
8221
|
-
});
|
8539
|
+
var deleteChapterApi = function deleteChapterApi(chapterId) {
|
8540
|
+
return api["delete"](CHAPTER_URL + "/" + chapterId);
|
8222
8541
|
};
|
8223
8542
|
|
8224
8543
|
var ARTICLE_URL = BASE_URL + "/api/articles";
|
8225
|
-
var createArticleApi = function createArticleApi(article
|
8226
|
-
return api.post("" + ARTICLE_URL, article
|
8227
|
-
params: {
|
8228
|
-
roles: role
|
8229
|
-
}
|
8230
|
-
});
|
8544
|
+
var createArticleApi = function createArticleApi(article) {
|
8545
|
+
return api.post("" + ARTICLE_URL, article);
|
8231
8546
|
};
|
8232
|
-
var updateArticleApi = function updateArticleApi(articleId, article
|
8233
|
-
return api.put(ARTICLE_URL + "/" + articleId, article
|
8234
|
-
params: {
|
8235
|
-
roles: role
|
8236
|
-
}
|
8237
|
-
});
|
8547
|
+
var updateArticleApi = function updateArticleApi(articleId, article) {
|
8548
|
+
return api.put(ARTICLE_URL + "/" + articleId, article);
|
8238
8549
|
};
|
8239
|
-
var deleteArticleApi = function deleteArticleApi(articleId
|
8240
|
-
return api["delete"](ARTICLE_URL + "/" + articleId
|
8241
|
-
params: {
|
8242
|
-
roles: role
|
8243
|
-
}
|
8244
|
-
});
|
8550
|
+
var deleteArticleApi = function deleteArticleApi(articleId) {
|
8551
|
+
return api["delete"](ARTICLE_URL + "/" + articleId);
|
8245
8552
|
};
|
8246
8553
|
|
8247
8554
|
var EXAM_URL = BASE_URL + "/api/exam";
|
@@ -8371,9 +8678,31 @@ var useExam = function useExam(props) {
|
|
8371
8678
|
};
|
8372
8679
|
};
|
8373
8680
|
|
8681
|
+
var ADMIN_CATEGORY_URL = SUPER_ADMIN_BASE_URL + "/api/category";
|
8682
|
+
var CATEGORY_URL = BASE_URL + "/api/examcategory";
|
8683
|
+
var getCategoryListAdminApi = function getCategoryListAdminApi(data) {
|
8684
|
+
try {
|
8685
|
+
return Promise.resolve(api.get("" + ADMIN_CATEGORY_URL, {
|
8686
|
+
params: data
|
8687
|
+
}));
|
8688
|
+
} catch (e) {
|
8689
|
+
return Promise.reject(e);
|
8690
|
+
}
|
8691
|
+
};
|
8692
|
+
var getCategoryListApi = function getCategoryListApi(data) {
|
8693
|
+
try {
|
8694
|
+
return Promise.resolve(api.get("" + CATEGORY_URL, {
|
8695
|
+
params: data
|
8696
|
+
}));
|
8697
|
+
} catch (e) {
|
8698
|
+
return Promise.reject(e);
|
8699
|
+
}
|
8700
|
+
};
|
8701
|
+
|
8374
8702
|
var PAGE_TITLE_DETAIL = "textbook_detail";
|
8375
8703
|
var PAGE_TITLE_CREATE = "create_textbook";
|
8376
8704
|
var useTextbookDetail = function useTextbookDetail(props) {
|
8705
|
+
var _textbook$subject3;
|
8377
8706
|
var role = props.role,
|
8378
8707
|
isReadonlyParam = props.isReadonlyParam,
|
8379
8708
|
navigate = props.navigate,
|
@@ -8410,6 +8739,9 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
8410
8739
|
var _useState9 = React.useState(false),
|
8411
8740
|
isEditedTitle = _useState9[0],
|
8412
8741
|
setEditedTitle = _useState9[1];
|
8742
|
+
var _useState10 = React.useState([]),
|
8743
|
+
categoryList = _useState10[0],
|
8744
|
+
setCategoryList = _useState10[1];
|
8413
8745
|
var textbookUrl = role === exports.Role.Teacher ? TEXTBOOK_URL$1 : ADMIN_TEXTBOOK_URL;
|
8414
8746
|
var _useExam = useExam({
|
8415
8747
|
navigate: navigate
|
@@ -8421,6 +8753,40 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
8421
8753
|
handleSaveExam = _useExam.handleSaveExam,
|
8422
8754
|
handleCloseDialog = _useExam.handleCloseDialog,
|
8423
8755
|
handleCreateExam = _useExam.handleCreateExam;
|
8756
|
+
var getCategoryList = function getCategoryList(isLoading) {
|
8757
|
+
if (isLoading === void 0) {
|
8758
|
+
isLoading = true;
|
8759
|
+
}
|
8760
|
+
try {
|
8761
|
+
var _textbook$subject;
|
8762
|
+
var _temp2 = function _temp2() {
|
8763
|
+
isLoading && dispatch(setLoading(false));
|
8764
|
+
};
|
8765
|
+
if (!(textbook !== null && textbook !== void 0 && (_textbook$subject = textbook.subject) !== null && _textbook$subject !== void 0 && _textbook$subject.id)) {
|
8766
|
+
setCategoryList([]);
|
8767
|
+
return Promise.resolve();
|
8768
|
+
}
|
8769
|
+
isLoading && dispatch(setLoading(true));
|
8770
|
+
var _temp = _catch(function () {
|
8771
|
+
var _textbook$subject2;
|
8772
|
+
return Promise.resolve(getCategoryListApi({
|
8773
|
+
subjectId: textbook === null || textbook === void 0 ? void 0 : (_textbook$subject2 = textbook.subject) === null || _textbook$subject2 === void 0 ? void 0 : _textbook$subject2.id
|
8774
|
+
})).then(function (res) {
|
8775
|
+
var data = res.data.items;
|
8776
|
+
setCategoryList(data || []);
|
8777
|
+
});
|
8778
|
+
}, function (error) {
|
8779
|
+
setCategoryList([]);
|
8780
|
+
console.log(error);
|
8781
|
+
});
|
8782
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
8783
|
+
} catch (e) {
|
8784
|
+
return Promise.reject(e);
|
8785
|
+
}
|
8786
|
+
};
|
8787
|
+
React.useEffect(function () {
|
8788
|
+
getCategoryList();
|
8789
|
+
}, [textbook === null || textbook === void 0 ? void 0 : (_textbook$subject3 = textbook.subject) === null || _textbook$subject3 === void 0 ? void 0 : _textbook$subject3.id]);
|
8424
8790
|
var handleOpenAddArticleDialog = function handleOpenAddArticleDialog(chapter) {
|
8425
8791
|
setSelectedChapter(chapter);
|
8426
8792
|
};
|
@@ -8429,35 +8795,35 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
8429
8795
|
};
|
8430
8796
|
var handleUpdateChapter = function handleUpdateChapter(chapterId, chapter, callback) {
|
8431
8797
|
try {
|
8432
|
-
var
|
8798
|
+
var _temp4 = function _temp4() {
|
8433
8799
|
dispatch(setLoading(false));
|
8434
8800
|
};
|
8435
8801
|
if (!textbook) return Promise.resolve();
|
8436
|
-
var
|
8802
|
+
var _temp3 = _catch(function () {
|
8437
8803
|
var body = {
|
8438
8804
|
name: chapter.name,
|
8439
8805
|
pageFrom: chapter.pageFrom,
|
8440
8806
|
pageTo: chapter.pageTo
|
8441
8807
|
};
|
8442
|
-
return Promise.resolve(updateChapterApi(chapterId, body
|
8808
|
+
return Promise.resolve(updateChapterApi(chapterId, body)).then(function (res) {
|
8443
8809
|
callback === null || callback === void 0 ? void 0 : callback(res.data);
|
8444
8810
|
});
|
8445
8811
|
}, function (error) {
|
8446
8812
|
reactToastify.toast.error(getErrorMessage(t, error));
|
8447
8813
|
});
|
8448
|
-
return Promise.resolve(
|
8814
|
+
return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
|
8449
8815
|
} catch (e) {
|
8450
8816
|
return Promise.reject(e);
|
8451
8817
|
}
|
8452
8818
|
};
|
8453
8819
|
var handleCreateArticle = function handleCreateArticle(article, callback) {
|
8454
8820
|
try {
|
8455
|
-
var
|
8821
|
+
var _temp6 = function _temp6() {
|
8456
8822
|
dispatch(setLoading(false));
|
8457
8823
|
};
|
8458
8824
|
if (!textbook) return Promise.resolve();
|
8459
8825
|
dispatch(setLoading(true));
|
8460
|
-
var
|
8826
|
+
var _temp5 = _catch(function () {
|
8461
8827
|
var _article$category;
|
8462
8828
|
var body = {
|
8463
8829
|
articleNumber: article.articleNumber,
|
@@ -8473,45 +8839,45 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
8473
8839
|
};
|
8474
8840
|
})
|
8475
8841
|
};
|
8476
|
-
return Promise.resolve(createArticleApi(body
|
8842
|
+
return Promise.resolve(createArticleApi(body)).then(function (res) {
|
8477
8843
|
callback === null || callback === void 0 ? void 0 : callback(res.data);
|
8478
8844
|
});
|
8479
8845
|
}, function (error) {
|
8480
8846
|
reactToastify.toast.error(getErrorMessage(t, error));
|
8481
8847
|
});
|
8482
|
-
return Promise.resolve(
|
8848
|
+
return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
|
8483
8849
|
} catch (e) {
|
8484
8850
|
return Promise.reject(e);
|
8485
8851
|
}
|
8486
8852
|
};
|
8487
8853
|
var handleDeleteArticle = function handleDeleteArticle(articleId, callback) {
|
8488
8854
|
try {
|
8489
|
-
var
|
8855
|
+
var _temp8 = function _temp8() {
|
8490
8856
|
dispatch(setLoading(false));
|
8491
8857
|
};
|
8492
8858
|
if (!textbook) return Promise.resolve();
|
8493
8859
|
dispatch(setLoading(true));
|
8494
|
-
var
|
8495
|
-
return Promise.resolve(deleteArticleApi(articleId
|
8860
|
+
var _temp7 = _catch(function () {
|
8861
|
+
return Promise.resolve(deleteArticleApi(articleId)).then(function () {
|
8496
8862
|
callback === null || callback === void 0 ? void 0 : callback();
|
8497
8863
|
});
|
8498
8864
|
}, function (error) {
|
8499
8865
|
reactToastify.toast.error(getErrorMessage(t, error));
|
8500
8866
|
});
|
8501
|
-
return Promise.resolve(
|
8867
|
+
return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7));
|
8502
8868
|
} catch (e) {
|
8503
8869
|
return Promise.reject(e);
|
8504
8870
|
}
|
8505
8871
|
};
|
8506
8872
|
var handleDeleteChapter = function handleDeleteChapter(chapterId, parentChapterId, callback) {
|
8507
8873
|
try {
|
8508
|
-
var
|
8874
|
+
var _temp10 = function _temp10() {
|
8509
8875
|
dispatch(setLoading(false));
|
8510
8876
|
};
|
8511
8877
|
if (!textbook) return Promise.resolve();
|
8512
8878
|
dispatch(setLoading(true));
|
8513
|
-
var
|
8514
|
-
return Promise.resolve(deleteChapterApi(chapterId
|
8879
|
+
var _temp9 = _catch(function () {
|
8880
|
+
return Promise.resolve(deleteChapterApi(chapterId)).then(function () {
|
8515
8881
|
if (parentChapterId) {
|
8516
8882
|
var parentIndex = textbook.chapters.findIndex(function (i) {
|
8517
8883
|
return i.id === parentChapterId;
|
@@ -8536,7 +8902,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
8536
8902
|
}, function (error) {
|
8537
8903
|
reactToastify.toast.error(getErrorMessage(t, error));
|
8538
8904
|
});
|
8539
|
-
return Promise.resolve(
|
8905
|
+
return Promise.resolve(_temp9 && _temp9.then ? _temp9.then(_temp10) : _temp10(_temp9));
|
8540
8906
|
} catch (e) {
|
8541
8907
|
return Promise.reject(e);
|
8542
8908
|
}
|
@@ -8544,7 +8910,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
8544
8910
|
var handleUpdateArticle = function handleUpdateArticle(article, callback) {
|
8545
8911
|
try {
|
8546
8912
|
if (!textbook || !article.id) return Promise.resolve();
|
8547
|
-
var
|
8913
|
+
var _temp11 = _catch(function () {
|
8548
8914
|
var _article$category2;
|
8549
8915
|
var body = {
|
8550
8916
|
articleNumber: article.articleNumber,
|
@@ -8560,13 +8926,13 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
8560
8926
|
};
|
8561
8927
|
})
|
8562
8928
|
};
|
8563
|
-
return Promise.resolve(updateArticleApi(article.id, body
|
8929
|
+
return Promise.resolve(updateArticleApi(article.id, body)).then(function (res) {
|
8564
8930
|
callback === null || callback === void 0 ? void 0 : callback(res.data);
|
8565
8931
|
});
|
8566
8932
|
}, function (error) {
|
8567
8933
|
reactToastify.toast.error(getErrorMessage(t, error));
|
8568
8934
|
});
|
8569
|
-
return Promise.resolve(
|
8935
|
+
return Promise.resolve(_temp11 && _temp11.then ? _temp11.then(function () {}) : void 0);
|
8570
8936
|
} catch (e) {
|
8571
8937
|
return Promise.reject(e);
|
8572
8938
|
}
|
@@ -8841,18 +9207,18 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
8841
9207
|
};
|
8842
9208
|
var handleCreateChapter = function handleCreateChapter(chapterName) {
|
8843
9209
|
try {
|
8844
|
-
var
|
9210
|
+
var _temp13 = function _temp13() {
|
8845
9211
|
dispatch(setLoading(false));
|
8846
9212
|
};
|
8847
9213
|
if (!textbookId && !parentChapter && !textbook) return Promise.resolve();
|
8848
9214
|
dispatch(setLoading(true));
|
8849
|
-
var
|
9215
|
+
var _temp12 = _catch(function () {
|
8850
9216
|
var body = {
|
8851
9217
|
name: chapterName,
|
8852
9218
|
parentChapterId: parentChapter === null || parentChapter === void 0 ? void 0 : parentChapter.id,
|
8853
9219
|
textbookId: textbookId
|
8854
9220
|
};
|
8855
|
-
return Promise.resolve(createChapterApi(body
|
9221
|
+
return Promise.resolve(createChapterApi(body)).then(function (res) {
|
8856
9222
|
var chapter = _extends({}, res.data, {
|
8857
9223
|
articles: [],
|
8858
9224
|
subChapters: []
|
@@ -8878,7 +9244,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
8878
9244
|
}, function (error) {
|
8879
9245
|
reactToastify.toast.error(getErrorMessage(t, error));
|
8880
9246
|
});
|
8881
|
-
return Promise.resolve(
|
9247
|
+
return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(_temp13) : _temp13(_temp12));
|
8882
9248
|
} catch (e) {
|
8883
9249
|
return Promise.reject(e);
|
8884
9250
|
}
|
@@ -8888,12 +9254,12 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
8888
9254
|
setParentChapter(undefined);
|
8889
9255
|
};
|
8890
9256
|
var validateTextbook = function validateTextbook() {
|
8891
|
-
var _textbook$
|
9257
|
+
var _textbook$subject4;
|
8892
9258
|
if (!textbook.name.trim().length) {
|
8893
9259
|
reactToastify.toast.error(t('textbook_name_is_required'));
|
8894
9260
|
return false;
|
8895
9261
|
}
|
8896
|
-
if (!((_textbook$
|
9262
|
+
if (!((_textbook$subject4 = textbook.subject) !== null && _textbook$subject4 !== void 0 && _textbook$subject4.id)) {
|
8897
9263
|
reactToastify.toast.error(t('textbook_subject_is_required'));
|
8898
9264
|
return false;
|
8899
9265
|
}
|
@@ -8901,7 +9267,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
8901
9267
|
};
|
8902
9268
|
var handleCreateOrUpdateTextbook = function handleCreateOrUpdateTextbook() {
|
8903
9269
|
try {
|
8904
|
-
var
|
9270
|
+
var _temp17 = function _temp17() {
|
8905
9271
|
dispatch(setLoading(false));
|
8906
9272
|
};
|
8907
9273
|
if (!textbook) return Promise.resolve();
|
@@ -8912,22 +9278,22 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
8912
9278
|
return Promise.resolve();
|
8913
9279
|
}
|
8914
9280
|
dispatch(setLoading(true));
|
8915
|
-
var
|
8916
|
-
function
|
9281
|
+
var _temp16 = _catch(function () {
|
9282
|
+
function _temp15() {
|
8917
9283
|
reactToastify.toast.success(t(textbook.id ? "update_the_textbook_successfully" : "create_the_textbook_successfully"));
|
8918
9284
|
}
|
8919
|
-
var
|
9285
|
+
var _temp14 = function () {
|
8920
9286
|
if (textbook.id) {
|
8921
9287
|
var body = {
|
8922
9288
|
name: textbook.name
|
8923
9289
|
};
|
8924
|
-
return Promise.resolve(updateTextbookApi(textbook.id, body
|
9290
|
+
return Promise.resolve(updateTextbookApi(textbook.id, body)).then(function () {});
|
8925
9291
|
} else {
|
8926
9292
|
var _body = {
|
8927
9293
|
name: textbook.name,
|
8928
9294
|
subjectId: textbook.subject.id
|
8929
9295
|
};
|
8930
|
-
return Promise.resolve(createTextbookApi(_body
|
9296
|
+
return Promise.resolve(createTextbookApi(_body)).then(function (res) {
|
8931
9297
|
var textbookId = res.data.id;
|
8932
9298
|
navigate(textbookUrl + "/" + textbookId, {
|
8933
9299
|
replace: true
|
@@ -8935,11 +9301,11 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
8935
9301
|
});
|
8936
9302
|
}
|
8937
9303
|
}();
|
8938
|
-
return
|
9304
|
+
return _temp14 && _temp14.then ? _temp14.then(_temp15) : _temp15(_temp14);
|
8939
9305
|
}, function (error) {
|
8940
9306
|
reactToastify.toast.error(getErrorMessage(t, error));
|
8941
9307
|
});
|
8942
|
-
return Promise.resolve(
|
9308
|
+
return Promise.resolve(_temp16 && _temp16.then ? _temp16.then(_temp17) : _temp17(_temp16));
|
8943
9309
|
} catch (e) {
|
8944
9310
|
return Promise.reject(e);
|
8945
9311
|
}
|
@@ -9005,12 +9371,12 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
9005
9371
|
React.useEffect(function () {
|
9006
9372
|
var getTextbookDetail = function getTextbookDetail() {
|
9007
9373
|
try {
|
9008
|
-
var
|
9374
|
+
var _temp19 = function _temp19() {
|
9009
9375
|
dispatch(setLoading(false));
|
9010
9376
|
};
|
9011
9377
|
dispatch(setLoading(true));
|
9012
|
-
var
|
9013
|
-
return Promise.resolve(getTextbookByIdApi(+id
|
9378
|
+
var _temp18 = _catch(function () {
|
9379
|
+
return Promise.resolve(getTextbookByIdApi(+id)).then(function (res) {
|
9014
9380
|
setEditedTitle(false);
|
9015
9381
|
setTextbook(res.data);
|
9016
9382
|
setNotFound(false);
|
@@ -9019,7 +9385,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
9019
9385
|
var _error$response;
|
9020
9386
|
if ((error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 404) setNotFound(true);else reactToastify.toast.error(getErrorMessage(t, error));
|
9021
9387
|
});
|
9022
|
-
return Promise.resolve(
|
9388
|
+
return Promise.resolve(_temp18 && _temp18.then ? _temp18.then(_temp19) : _temp19(_temp18));
|
9023
9389
|
} catch (e) {
|
9024
9390
|
return Promise.reject(e);
|
9025
9391
|
}
|
@@ -9095,6 +9461,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
|
|
9095
9461
|
articlesSelected: articlesSelected,
|
9096
9462
|
isOpenDialog: isOpenDialog,
|
9097
9463
|
examRequest: examRequest,
|
9464
|
+
categoryList: categoryList,
|
9098
9465
|
handleChangeExamRequest: handleChangeExamRequest,
|
9099
9466
|
handleCheckArticle: handleCheckArticle,
|
9100
9467
|
handleOpenCreateExamDialog: handleChangeExamRequestBeforeOpenDialog,
|
@@ -9529,27 +9896,6 @@ var DURATION_OPTIONS = Array.from({
|
|
9529
9896
|
});
|
9530
9897
|
var DEFAULT_ANSWER_COUNT$1 = 5;
|
9531
9898
|
|
9532
|
-
var ADMIN_CATEGORY_URL = SUPER_ADMIN_BASE_URL + "/api/category";
|
9533
|
-
var CATEGORY_URL = BASE_URL + "/api/examcategory";
|
9534
|
-
var getCategoryListAdminApi = function getCategoryListAdminApi(data) {
|
9535
|
-
try {
|
9536
|
-
return Promise.resolve(api.get("" + ADMIN_CATEGORY_URL, {
|
9537
|
-
params: data
|
9538
|
-
}));
|
9539
|
-
} catch (e) {
|
9540
|
-
return Promise.reject(e);
|
9541
|
-
}
|
9542
|
-
};
|
9543
|
-
var getCategoryListApi = function getCategoryListApi(data) {
|
9544
|
-
try {
|
9545
|
-
return Promise.resolve(api.get("" + CATEGORY_URL, {
|
9546
|
-
params: data
|
9547
|
-
}));
|
9548
|
-
} catch (e) {
|
9549
|
-
return Promise.reject(e);
|
9550
|
-
}
|
9551
|
-
};
|
9552
|
-
|
9553
9899
|
var useExamDetailView = function useExamDetailView(props) {
|
9554
9900
|
var exam = props.exam,
|
9555
9901
|
onChangeExam = props.onChangeExam;
|
@@ -9775,9 +10121,8 @@ var useExamDetailView = function useExamDetailView(props) {
|
|
9775
10121
|
}
|
9776
10122
|
};
|
9777
10123
|
React.useEffect(function () {
|
9778
|
-
if (categoryList !== null && categoryList !== void 0 && categoryList.length) return;
|
9779
10124
|
getCategoryList();
|
9780
|
-
}, [exam.subjectId
|
10125
|
+
}, [exam.subjectId]);
|
9781
10126
|
var examGroupByArticle = React.useMemo(function () {
|
9782
10127
|
if (!exam) return [];
|
9783
10128
|
var articles = [];
|
@@ -10010,6 +10355,7 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
|
|
10010
10355
|
isEditedTitle = _useTextbookDetail.isEditedTitle,
|
10011
10356
|
isOpenDialog = _useTextbookDetail.isOpenDialog,
|
10012
10357
|
examRequest = _useTextbookDetail.examRequest,
|
10358
|
+
categoryList = _useTextbookDetail.categoryList,
|
10013
10359
|
handleChangeExamRequest = _useTextbookDetail.handleChangeExamRequest,
|
10014
10360
|
handleSaveExam = _useTextbookDetail.handleSaveExam,
|
10015
10361
|
handleCloseDialog = _useTextbookDetail.handleCloseDialog,
|
@@ -10039,7 +10385,7 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
|
|
10039
10385
|
handleRemoveSelectedItem = _useTextbookDetail.handleRemoveSelectedItem,
|
10040
10386
|
handleOpenRemoveChapterConfirmDialog = _useTextbookDetail.handleOpenRemoveChapterConfirmDialog;
|
10041
10387
|
var _useCategorySelect = useCategorySelect({
|
10042
|
-
|
10388
|
+
categoryList: categoryList
|
10043
10389
|
}),
|
10044
10390
|
categoryOptions = _useCategorySelect.categoryOptions;
|
10045
10391
|
if (isNotFound) return React__default.createElement(NotFound, {
|
@@ -10402,7 +10748,7 @@ var useTextbookList = function useTextbookList(props) {
|
|
10402
10748
|
var role = props.role,
|
10403
10749
|
navigate = props.navigate;
|
10404
10750
|
var _useList = useList(function (search) {
|
10405
|
-
return getTextbookListApi(search
|
10751
|
+
return getTextbookListApi(search);
|
10406
10752
|
}, TextbookDefaultQuery),
|
10407
10753
|
filter = _useList.filter,
|
10408
10754
|
textSearchRef = _useList.textSearchRef,
|
@@ -10448,7 +10794,7 @@ var useTextbookList = function useTextbookList(props) {
|
|
10448
10794
|
if (!(selectedTextbook !== null && selectedTextbook !== void 0 && selectedTextbook.id)) return Promise.resolve();
|
10449
10795
|
dispatch(setLoading(true));
|
10450
10796
|
var _temp = _catch(function () {
|
10451
|
-
return Promise.resolve(deleteTextbookApi(selectedTextbook.id
|
10797
|
+
return Promise.resolve(deleteTextbookApi(selectedTextbook.id)).then(function () {
|
10452
10798
|
return Promise.resolve(getData(false)).then(function () {
|
10453
10799
|
toggleConfirmDialog();
|
10454
10800
|
});
|
@@ -11625,23 +11971,11 @@ var getRecentUserActionListApi = function getRecentUserActionListApi(query) {
|
|
11625
11971
|
params: _extends({}, query)
|
11626
11972
|
});
|
11627
11973
|
};
|
11628
|
-
var createRecentUserActionListApi = function createRecentUserActionListApi(
|
11629
|
-
|
11630
|
-
action = _ref.action,
|
11631
|
-
data = _ref.data,
|
11632
|
-
roles = _ref.roles;
|
11633
|
-
return api.post("" + RECENT_USER_URL, {
|
11634
|
-
userId: userId,
|
11635
|
-
action: action,
|
11636
|
-
data: data
|
11637
|
-
}, {
|
11638
|
-
params: {
|
11639
|
-
roles: roles
|
11640
|
-
}
|
11641
|
-
});
|
11974
|
+
var createRecentUserActionListApi = function createRecentUserActionListApi(recentData) {
|
11975
|
+
return api.post("" + RECENT_USER_URL, recentData);
|
11642
11976
|
};
|
11643
11977
|
|
11644
|
-
var styles$4 = {"lighter":"#F0FFF6","light":"#89F0B2","less_dark":"#3DC674","dark":"#349056","darker":"#18442A","gray_50":"#FBFBF9","gray_100":"#EAEAE5","gray_300":"#D0D0C8","gray_500":"#9A9A98","gray_700":"#5D5D5B","gray_900":"#363634","red_900":"#DB4D4D","green_support_900":"#3ACB46","yellow_900":"#FEAF06","purple_900":"#C3099A","titleBox":"_1dveO","title":"_mxRxf","point":"_2fD-F","buttonGroup":"_2DGl3","btnFeedback":"_xGW1x","btnTerminate":"_3mLu2","myanswer":"_eDBpS","titleMyAnswer1":"_2fMq3","titleMyAnswer2":"_3gEYh","contentMyAnswer":"_2K_sx","myAnswerItem":"_2qiLh","time":"_6TCOK","timeCol":"_hmseC","answer-response":"_3GfJt","answer-response-0":"_3ut64","answer-response-1":"_2VtpD","answer-response-2":"_58lQU","answer-response-3":"_1ucMY","answer-response-4":"_1qkxy","answerCorrect":"_2jIeT","answerIncorrect":"_to2v0","answerNograss":"_1JSte","answerEasy":"_2_uTU","answerDiscrimination":"_1DBoA","answerTrap":"_1q3tD","answerNoTime":"_3iItu","questionOrder":"_1fNkS","myTimeLabel":"_1Z_F3","myPoolTime":"_4KwG0","topTimeLabel":"_245H-","topTime":"_3tZqw","meanTimeLabel":"_PlPLY","meanTime":"_12a7R","compareChart":"_3MW16","prevChart":"_1fNkb","chart":"_3K4oY","nextChart":"_3YKBp","titleChart":"_13BVP","titleCompareGrass":"_o1txm","tableCompareGrass":"_bT5nf","thcolumn1":"_3Umg0","tdcolumn1":"_3dRMF","tdcolumn3":"_2tcBP","classification":"_1AFeb","wrapperProblem":"_oTqG7","titleProblem":"_35eIx","titleProblemClose":"_3t4HO","titleTrickyProblem":"_1-oxK","wrongQuestions":"_2dpMR","question":"_1lSOX","assignedQuestions":"_1ONUt","wrapperContent":"_nPoR0","content":"_2zmZn","contentColumn1":"_334SY","span1":"_3Lf-U","span2":"_ZpMot","contentColumn2":"_16P3l","duration":"_1kT28","topDuration":"_1fVRi","overallCorrectRate":"_3jLGe","answer":"_VsZ0K","contentVulnerable":"_QxKMy","wrappContentProblem":"_nnqpW","contentProblem":"_3Z1nV","labelProblem":"_36Xpx","name":"_3ZJQW","percent":"_2J3MK","slider":"_1MPdO","track":"_3CV_y","noData":"__g-ff","loading":"_3j485","table-responsive":"_2O6RX","form-label":"_1RYOQ","form-control":"_3VRVT","form-label-dialog":"_3oCSh","btn-cancel":"_3USKq","btn-register":"_3y_iD","pdfBtnBox":"_3xZHo","pdfBtn":"_1DtWq","form-select":"_1a_vw","loader":"_2uC7T","dot":"_Xz-Mr","bounce":"_3THgz"};
|
11978
|
+
var styles$4 = {"lighter":"#F0FFF6","light":"#89F0B2","less_dark":"#3DC674","dark":"#349056","darker":"#18442A","gray_50":"#FBFBF9","gray_100":"#EAEAE5","gray_300":"#D0D0C8","gray_500":"#9A9A98","gray_700":"#5D5D5B","gray_900":"#363634","red_900":"#DB4D4D","green_support_900":"#3ACB46","yellow_900":"#FEAF06","purple_900":"#C3099A","titleBox":"_1dveO","title":"_mxRxf","point":"_2fD-F","buttonGroup":"_2DGl3","btnFeedback":"_xGW1x","btnTerminate":"_3mLu2","myanswer":"_eDBpS","titleMyAnswer1":"_2fMq3","titleMyAnswer2":"_3gEYh","contentMyAnswer":"_2K_sx","myAnswerItem":"_2qiLh","time":"_6TCOK","timeCol":"_hmseC","answer-response":"_3GfJt","answer-response-0":"_3ut64","answer-response-1":"_2VtpD","answer-response-2":"_58lQU","answer-response-3":"_1ucMY","answer-response-4":"_1qkxy","overall-response-1":"_1AeGu","overall-response-2":"_1xTB0","overall-response-3":"_3Yu_5","answerCorrect":"_2jIeT","answerIncorrect":"_to2v0","answerNograss":"_1JSte","answerEasy":"_2_uTU","answerDiscrimination":"_1DBoA","answerTrap":"_1q3tD","answerNoTime":"_3iItu","questionOrder":"_1fNkS","myTimeLabel":"_1Z_F3","myPoolTime":"_4KwG0","topTimeLabel":"_245H-","topTime":"_3tZqw","meanTimeLabel":"_PlPLY","meanTime":"_12a7R","compareChart":"_3MW16","prevChart":"_1fNkb","chart":"_3K4oY","nextChart":"_3YKBp","titleChart":"_13BVP","titleCompareGrass":"_o1txm","tableCompareGrass":"_bT5nf","thcolumn1":"_3Umg0","tdcolumn1":"_3dRMF","tdcolumn3":"_2tcBP","classification":"_1AFeb","wrapperProblem":"_oTqG7","titleProblem":"_35eIx","titleProblemClose":"_3t4HO","titleTrickyProblem":"_1-oxK","wrongQuestions":"_2dpMR","question":"_1lSOX","assignedQuestions":"_1ONUt","wrapperContent":"_nPoR0","content":"_2zmZn","contentColumn1":"_334SY","span1":"_3Lf-U","span2":"_ZpMot","contentColumn2":"_16P3l","duration":"_1kT28","topDuration":"_1fVRi","overallCorrectRate":"_3jLGe","answer":"_VsZ0K","contentVulnerable":"_QxKMy","wrappContentProblem":"_nnqpW","contentProblem":"_3Z1nV","labelProblem":"_36Xpx","name":"_3ZJQW","percent":"_2J3MK","slider":"_1MPdO","track":"_3CV_y","noData":"__g-ff","loading":"_3j485","table-responsive":"_2O6RX","form-label":"_1RYOQ","form-control":"_3VRVT","form-label-dialog":"_3oCSh","btn-cancel":"_3USKq","btn-register":"_3y_iD","pdfBtnBox":"_3xZHo","pdfBtn":"_1DtWq","form-select":"_1a_vw","loader":"_2uC7T","dot":"_Xz-Mr","bounce":"_3THgz"};
|
11645
11979
|
|
11646
11980
|
var useExamResult = function useExamResult(props) {
|
11647
11981
|
var _allSeries$dataChartI;
|
@@ -11661,6 +11995,7 @@ var useExamResult = function useExamResult(props) {
|
|
11661
11995
|
});
|
11662
11996
|
var roles = (user === null || user === void 0 ? void 0 : user.roles) || [];
|
11663
11997
|
var isStudent = roles === null || roles === void 0 ? void 0 : roles.includes(exports.Role.Student);
|
11998
|
+
var isAdmin = roles === null || roles === void 0 ? void 0 : roles.includes(exports.Role.Admin);
|
11664
11999
|
var examCode = query.get("examCode") || code;
|
11665
12000
|
var language = reactRedux.useSelector(function (state) {
|
11666
12001
|
var _state$common2;
|
@@ -11747,12 +12082,12 @@ var useExamResult = function useExamResult(props) {
|
|
11747
12082
|
userId: studentId,
|
11748
12083
|
action: isPrint ? RecentUserAction$1.PrintedExamResult : RecentUserAction$1.ViewedExamResult,
|
11749
12084
|
data: "" + examSessionId,
|
11750
|
-
|
12085
|
+
isAdmin: isAdmin
|
11751
12086
|
})) : Promise.resolve(!isStudent && createRecentUserActionListApi({
|
11752
12087
|
userId: studentId,
|
11753
12088
|
action: isPrint ? RecentUserAction$1.PrintedExamResult : RecentUserAction$1.ViewedExamResult,
|
11754
12089
|
data: "" + examSessionId,
|
11755
|
-
|
12090
|
+
isAdmin: isAdmin
|
11756
12091
|
})).then(_temp3);
|
11757
12092
|
});
|
11758
12093
|
}, function (error) {
|
@@ -13334,8 +13669,8 @@ var iconWarning = function iconWarning(_ref) {
|
|
13334
13669
|
}));
|
13335
13670
|
};
|
13336
13671
|
|
13337
|
-
var schema$1 =
|
13338
|
-
content:
|
13672
|
+
var schema$1 = Yup.object().shape({
|
13673
|
+
content: Yup.string().required()
|
13339
13674
|
});
|
13340
13675
|
function CreateNewQuestionDialog(_ref) {
|
13341
13676
|
var handleCreateQuestion = _ref.handleCreateQuestion,
|
@@ -13510,6 +13845,9 @@ function MyAnswer(_ref) {
|
|
13510
13845
|
if (diff > 0) prefix = "+";
|
13511
13846
|
return "" + prefix + formatTimeSecond(Math.abs(diff), t);
|
13512
13847
|
};
|
13848
|
+
var getOverallColorClassName = function getOverallColorClassName(correctRate) {
|
13849
|
+
return styles$4["overall-response-" + (correctRate < 40 ? 1 : correctRate <= 70 ? 2 : 3)];
|
13850
|
+
};
|
13513
13851
|
var renderQuestions = function renderQuestions(questions) {
|
13514
13852
|
return questions.map(function (question, index) {
|
13515
13853
|
var _questions;
|
@@ -13592,7 +13930,7 @@ function MyAnswer(_ref) {
|
|
13592
13930
|
style: {
|
13593
13931
|
margin: 0
|
13594
13932
|
},
|
13595
|
-
className: styles$4["answer-response"] + " " +
|
13933
|
+
className: styles$4["answer-response"] + " " + getOverallColorClassName(question.overallCorrectRate)
|
13596
13934
|
}, question.overallCorrectRate.toFixed(2) + "%") : React__default.createElement("p", {
|
13597
13935
|
style: {
|
13598
13936
|
margin: 0
|
@@ -14529,8 +14867,8 @@ var useCreateQuestionDialog$1 = function useCreateQuestionDialog() {
|
|
14529
14867
|
};
|
14530
14868
|
};
|
14531
14869
|
|
14532
|
-
var schema$2 =
|
14533
|
-
content:
|
14870
|
+
var schema$2 = Yup.object().shape({
|
14871
|
+
content: Yup.string().required()
|
14534
14872
|
});
|
14535
14873
|
function CreateNewQuestionDialog$1(_ref) {
|
14536
14874
|
var handleCreateQuestion = _ref.handleCreateQuestion,
|
@@ -15407,29 +15745,6 @@ var times = {
|
|
15407
15745
|
getRemainTime: getRemainTime
|
15408
15746
|
};
|
15409
15747
|
|
15410
|
-
var SIGN_IN_SUPER_ADMIN_URL = SUPER_ADMIN_BASE_URL + "/api/auth/login";
|
15411
|
-
var SIGN_IN_URL = BASE_URL + "/api/auth/login";
|
15412
|
-
var signInApi = function signInApi(_ref) {
|
15413
|
-
var email = _ref.email,
|
15414
|
-
password = _ref.password,
|
15415
|
-
role = _ref.role;
|
15416
|
-
return api.post(SIGN_IN_URL + "/demo", {
|
15417
|
-
email: email,
|
15418
|
-
password: password,
|
15419
|
-
role: role
|
15420
|
-
});
|
15421
|
-
};
|
15422
|
-
var signInSuperAdminApi = function signInSuperAdminApi(_ref2) {
|
15423
|
-
var email = _ref2.email,
|
15424
|
-
password = _ref2.password,
|
15425
|
-
role = _ref2.role;
|
15426
|
-
return api.post(SIGN_IN_SUPER_ADMIN_URL + "/demo", {
|
15427
|
-
email: email,
|
15428
|
-
password: password,
|
15429
|
-
role: role
|
15430
|
-
});
|
15431
|
-
};
|
15432
|
-
|
15433
15748
|
var PAGE_TITLE$2 = "sign_in";
|
15434
15749
|
var useLogin$2 = function useLogin(_ref) {
|
15435
15750
|
var history = _ref.history,
|
@@ -17087,6 +17402,86 @@ var PrintExamView2 = function PrintExamView2(_ref) {
|
|
17087
17402
|
}, t("print_pdf"))));
|
17088
17403
|
};
|
17089
17404
|
|
17405
|
+
var urlSafeFormat = function urlSafeFormat(text) {
|
17406
|
+
return text.replaceAll(' ', "+");
|
17407
|
+
};
|
17408
|
+
|
17409
|
+
var useLoginWithEmail = function useLoginWithEmail(_ref) {
|
17410
|
+
var history = _ref.history,
|
17411
|
+
homeAcademyUrl = _ref.homeAcademyUrl,
|
17412
|
+
homeUrl = _ref.homeUrl,
|
17413
|
+
registerUrl = _ref.registerUrl,
|
17414
|
+
role = _ref.role;
|
17415
|
+
var _useLocation = reactRouterDom.useLocation(),
|
17416
|
+
searchLocation = _useLocation.search;
|
17417
|
+
var _useTranslation = reactI18next.useTranslation(),
|
17418
|
+
t = _useTranslation.t;
|
17419
|
+
var searchParams = new URLSearchParams(searchLocation);
|
17420
|
+
var key = urlSafeFormat(searchParams.get("key") || "");
|
17421
|
+
var dispatch = reactRedux.useDispatch();
|
17422
|
+
var paramDomain = searchParams.get("domain");
|
17423
|
+
var academyDomainStorage = getAcademyDomain();
|
17424
|
+
var academyDomain = paramDomain || academyDomainStorage || "";
|
17425
|
+
var handleSignIn = function handleSignIn() {
|
17426
|
+
try {
|
17427
|
+
var _temp2 = function _temp2() {
|
17428
|
+
dispatch(setLoading(false));
|
17429
|
+
};
|
17430
|
+
dispatch(setLoading(true));
|
17431
|
+
var _temp = _catch(function () {
|
17432
|
+
return Promise.resolve(signInWithKeyApi({
|
17433
|
+
academyDomain: academyDomain,
|
17434
|
+
key: key,
|
17435
|
+
role: role
|
17436
|
+
})).then(function (res) {
|
17437
|
+
var loginResponse = res === null || res === void 0 ? void 0 : res.data;
|
17438
|
+
var isFirstLogin = loginResponse.isFirstLogin,
|
17439
|
+
token = loginResponse.token,
|
17440
|
+
user = loginResponse.user;
|
17441
|
+
var isAcademy = !!(user !== null && user !== void 0 && user.academyDomain);
|
17442
|
+
var needToRegister = isFirstLogin && isAcademy;
|
17443
|
+
var redirectUrl = needToRegister ? registerUrl : isAcademy ? homeAcademyUrl : homeUrl;
|
17444
|
+
redirectLoginUser(user, token, redirectUrl);
|
17445
|
+
});
|
17446
|
+
}, function (error) {
|
17447
|
+
console.log(error);
|
17448
|
+
reactToastify.toast.error(getErrorMessage(t, error, t("request_login_fail")));
|
17449
|
+
});
|
17450
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
17451
|
+
} catch (e) {
|
17452
|
+
return Promise.reject(e);
|
17453
|
+
}
|
17454
|
+
};
|
17455
|
+
var redirectLoginUser = function redirectLoginUser(data, token, redirectUrl) {
|
17456
|
+
localStorage.setItem(ACCESS_TOKEN, token);
|
17457
|
+
!data.academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
|
17458
|
+
!!data.academyDomain && localStorage.setItem(ACADEMY_DOMAIN, data.academyDomain);
|
17459
|
+
dispatch(setUser(_extends({}, data)));
|
17460
|
+
if (redirectUrl) pushTo(history, redirectUrl);
|
17461
|
+
};
|
17462
|
+
React.useEffect(function () {
|
17463
|
+
if (!key) return;
|
17464
|
+
handleSignIn();
|
17465
|
+
});
|
17466
|
+
return {};
|
17467
|
+
};
|
17468
|
+
|
17469
|
+
var LoginWithEmail = function LoginWithEmail(_ref) {
|
17470
|
+
var history = _ref.history,
|
17471
|
+
homeAcademyUrl = _ref.homeAcademyUrl,
|
17472
|
+
homeUrl = _ref.homeUrl,
|
17473
|
+
registerUrl = _ref.registerUrl,
|
17474
|
+
role = _ref.role;
|
17475
|
+
useLoginWithEmail({
|
17476
|
+
history: history,
|
17477
|
+
homeAcademyUrl: homeAcademyUrl,
|
17478
|
+
homeUrl: homeUrl,
|
17479
|
+
registerUrl: registerUrl,
|
17480
|
+
role: role
|
17481
|
+
});
|
17482
|
+
return React__default.createElement(Loading, null);
|
17483
|
+
};
|
17484
|
+
|
17090
17485
|
exports.moment = moment;
|
17091
17486
|
Object.defineProperty(exports, 'I18nextProvider', {
|
17092
17487
|
enumerable: true,
|
@@ -17146,6 +17541,7 @@ exports.LayoutContext = LayoutContext;
|
|
17146
17541
|
exports.Loading = Loading;
|
17147
17542
|
exports.LoadingComponent = LoadingComponent;
|
17148
17543
|
exports.Login = Login;
|
17544
|
+
exports.LoginWithEmail = LoginWithEmail;
|
17149
17545
|
exports.LoginWithPassword = SignIn;
|
17150
17546
|
exports.NotFound = NotFound;
|
17151
17547
|
exports.PUSHER_CONFIG = PUSHER_CONFIG;
|