diff --git a/public/0.js b/public/0.js index 39c516a5..d903661c 100644 --- a/public/0.js +++ b/public/0.js @@ -210,7 +210,7 @@ __webpack_require__.r(__webpack_exports__); exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); // Module -exports.push([module.i, "\n.WM-Border[data-v-308d838e] {\n border: 1px solid;\n}\n.WM-Border-Black[data-v-308d838e] {\n border-color: #2f353b !important;\n}\n.WM-Border-Gray[data-v-308d838e] {\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-308d838e] {\n background-color : #F5F5F5;\n}\n.WM-Relative[data-v-308d838e] {\n position: relative;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-308d838e] {\n top: -25px !important;\n}\n", ""]); +exports.push([module.i, "\n.WM-Border[data-v-308d838e] {\r\n border: 1px solid;\n}\n.WM-Border-Black[data-v-308d838e] {\r\n border-color: #2f353b !important;\n}\n.WM-Border-Gray[data-v-308d838e] {\r\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-308d838e] {\r\n background-color : #F5F5F5;\n}\n.WM-Relative[data-v-308d838e] {\r\n position: relative;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-308d838e] {\r\n top: -25px !important;\n}\r\n", ""]); diff --git a/public/1.js b/public/1.js index f9429ac3..ce9ff146 100644 --- a/public/1.js +++ b/public/1.js @@ -137,7 +137,7 @@ __webpack_require__.r(__webpack_exports__); exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); // Module -exports.push([module.i, "\n.WM-ActionButton[data-v-1305c16e] {\n padding : 8px 22px;\n}\n\n", ""]); +exports.push([module.i, "\n.WM-ActionButton[data-v-1305c16e] {\r\n padding : 8px 22px;\n}\r\n\r\n", ""]); diff --git a/public/12.js b/public/12.js index 4ecdaf5c..969d27c0 100644 --- a/public/12.js +++ b/public/12.js @@ -72,52 +72,18 @@ __webpack_require__.r(__webpack_exports__); // // // -// -// -// -// -// -// -// -// -// -// -// -// -// /* harmony default export */ __webpack_exports__["default"] = ({ name: "", data: function data() { var defaultForm = Object.freeze({ cellnumber: '', password: '', - name: '', - select: '' + name: '' }); return { form: Object.assign({}, defaultForm), valid: false, show1: false, - select: { - state: 'Florida', - abbr: 'FL' - }, - items: [{ - state: 'Florida', - abbr: 'FL' - }, { - state: 'Georgia', - abbr: 'GA' - }, { - state: 'Nebraska', - abbr: 'NE' - }, { - state: 'California', - abbr: 'CA' - }, { - state: 'New York', - abbr: 'NY' - }], defaultForm: defaultForm }; } @@ -175,6 +141,30 @@ var render = function() { "v-layout", { attrs: { column: "" } }, [ + _c( + "v-flex", + { attrs: { xs12: "", md2: "", sm2: "" } }, + [ + _c("v-text-field", { + staticClass: "pa-2", + attrs: { + name: "name", + label: "Name", + id: "id3", + color: "black" + }, + model: { + value: _vm.form.name, + callback: function($$v) { + _vm.$set(_vm.form, "name", $$v) + }, + expression: "form.name" + } + }) + ], + 1 + ), + _vm._v(" "), _c( "v-flex", { attrs: { xs12: "", md2: "", sm2: "" } }, @@ -230,57 +220,6 @@ var render = function() { }) ], 1 - ), - _vm._v(" "), - _c( - "v-flex", - { attrs: { xs12: "", md2: "", sm2: "" } }, - [ - _c("v-text-field", { - staticClass: "pa-2", - attrs: { - name: "name", - label: "Name", - id: "id3", - color: "black" - }, - model: { - value: _vm.form.name, - callback: function($$v) { - _vm.$set(_vm.form, "name", $$v) - }, - expression: "form.name" - } - }) - ], - 1 - ), - _vm._v(" "), - _c( - "v-flex", - { attrs: { xs12: "", md2: "", sm2: "" } }, - [ - _c("v-select", { - staticClass: "pa-2", - attrs: { - items: _vm.items, - "item-text": "state", - "item-value": "abbr", - label: "Type", - "return-object": "", - "single-line": "", - color: "black" - }, - model: { - value: _vm.form.select, - callback: function($$v) { - _vm.$set(_vm.form, "select", $$v) - }, - expression: "form.select" - } - }) - ], - 1 ) ], 1 diff --git a/public/19.js b/public/19.js new file mode 100644 index 00000000..22a29c88 --- /dev/null +++ b/public/19.js @@ -0,0 +1,322 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[19],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/vue/views/ForgotPassword.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/vue/views/ForgotPassword.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + data: function data() { + return { + cell_number: "" + }; + }, + methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapActions"])('auth', ['forgotPassword']), { + handleSubmit: function handleSubmit() { + // Perform a simple validation that cell_number and password have been typed in + if (this.cell_number != '') { + this.forgotPassword({ + cell_number: this.cell_number + }); + } + } + }) +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/vue/views/ForgotPassword.vue?vue&type=template&id=62f22c26&": +/*!****************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/vue/views/ForgotPassword.vue?vue&type=template&id=62f22c26& ***! + \****************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "v-form", + [ + _c( + "v-container", + { attrs: { "grid-list-xs": "" } }, + [ + _c( + "v-layout", + { staticClass: "justify-center", attrs: { row: "", wrap: "" } }, + [ + _c( + "v-flex", + { + staticClass: "WM-WidthScreen-SM WM-WidthScreen-XS", + attrs: { xs12: "", md3: "", sm3: "" } + }, + [ + _c( + "material-card", + { attrs: { color: "black", title: "Login Page" } }, + [ + _c( + "v-layout", + { staticClass: "px-3", attrs: { row: "", wrap: "" } }, + [ + _c( + "v-flex", + { attrs: { xs12: "", md12: "", sm12: "" } }, + [ + _c("v-text-field", { + attrs: { + name: "cellnumber", + label: "Cell Number", + id: "id1", + color: "black" + }, + model: { + value: _vm.cell_number, + callback: function($$v) { + _vm.cell_number = $$v + }, + expression: "cell_number" + } + }) + ], + 1 + ) + ], + 1 + ), + _vm._v(" "), + _c( + "v-layout", + { staticClass: "px-3", attrs: { row: "", wrap: "" } }, + [ + _c( + "v-flex", + { + staticClass: + "text-md-left text-sm-center text-xs-center", + attrs: { xs12: "", md6: "", sm6: "" } + }, + [ + _c( + "v-btn", + { + staticClass: "WM-CyanBlueGradient-BG", + staticStyle: { padding: "10px 60px" }, + on: { click: _vm.handleSubmit } + }, + [ + _c( + "v-icon", + { staticClass: "white--text mr-2 caption" }, + [_vm._v("fas fa-sign-in-alt")] + ), + _vm._v(" "), + _c("span", { staticClass: "white--text" }, [ + _vm._v("Send") + ]) + ], + 1 + ) + ], + 1 + ), + _vm._v(" "), + _c( + "v-flex", + { + staticClass: + "text-md-right text-sm-center text-xs-center", + attrs: { xs12: "", md6: "", sm6: "" } + }, + [ + _c( + "router-link", + { + staticClass: "black--text", + attrs: { to: "login" } + }, + [ + _c( + "v-btn", + { + staticClass: + "WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black" + }, + [ + _c( + "v-icon", + { + staticClass: + "black--text mr-2 caption" + }, + [_vm._v("fas fa-sign-in-alt")] + ), + _vm._v(" "), + _c( + "span", + { staticClass: "black--text" }, + [_vm._v("Login")] + ) + ], + 1 + ) + ], + 1 + ) + ], + 1 + ) + ], + 1 + ) + ], + 1 + ) + ], + 1 + ) + ], + 1 + ) + ], + 1 + ) + ], + 1 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./resources/js/vue/views/ForgotPassword.vue": +/*!***************************************************!*\ + !*** ./resources/js/vue/views/ForgotPassword.vue ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ForgotPassword_vue_vue_type_template_id_62f22c26___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ForgotPassword.vue?vue&type=template&id=62f22c26& */ "./resources/js/vue/views/ForgotPassword.vue?vue&type=template&id=62f22c26&"); +/* harmony import */ var _ForgotPassword_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ForgotPassword.vue?vue&type=script&lang=js& */ "./resources/js/vue/views/ForgotPassword.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ForgotPassword_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _ForgotPassword_vue_vue_type_template_id_62f22c26___WEBPACK_IMPORTED_MODULE_0__["render"], + _ForgotPassword_vue_vue_type_template_id_62f22c26___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "resources/js/vue/views/ForgotPassword.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./resources/js/vue/views/ForgotPassword.vue?vue&type=script&lang=js&": +/*!****************************************************************************!*\ + !*** ./resources/js/vue/views/ForgotPassword.vue?vue&type=script&lang=js& ***! + \****************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ForgotPassword_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./ForgotPassword.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/vue/views/ForgotPassword.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ForgotPassword_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./resources/js/vue/views/ForgotPassword.vue?vue&type=template&id=62f22c26&": +/*!**********************************************************************************!*\ + !*** ./resources/js/vue/views/ForgotPassword.vue?vue&type=template&id=62f22c26& ***! + \**********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_ForgotPassword_vue_vue_type_template_id_62f22c26___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./ForgotPassword.vue?vue&type=template&id=62f22c26& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/vue/views/ForgotPassword.vue?vue&type=template&id=62f22c26&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_ForgotPassword_vue_vue_type_template_id_62f22c26___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_ForgotPassword_vue_vue_type_template_id_62f22c26___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/2.js b/public/2.js index 632dcde4..6accb5ec 100644 --- a/public/2.js +++ b/public/2.js @@ -423,7 +423,7 @@ __webpack_require__.r(__webpack_exports__); exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); // Module -exports.push([module.i, "\n.WM-Border-Gray[data-v-d05735bc] {\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-d05735bc] {\n background-color : #F5F5F5;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-d05735bc] {\n top: -25px !important;\n}\n.v-btn--bottom.v-btn--absolute.v-btn--small[data-v-d05735bc] {\n bottom: -24px !important;\n}\n", ""]); +exports.push([module.i, "\n.WM-Border-Gray[data-v-d05735bc] {\r\n border-color: #aaa !important;\n}\n.WM-Color-LightGrey[data-v-d05735bc] {\r\n background-color : #F5F5F5;\n}\n.v-btn--top.v-btn--absolute.v-btn--small[data-v-d05735bc] {\r\n top: -25px !important;\n}\n.v-btn--bottom.v-btn--absolute.v-btn--small[data-v-d05735bc] {\r\n bottom: -24px !important;\n}\r\n", ""]); diff --git a/public/8.js b/public/8.js index 75d2bb03..41ce9472 100644 --- a/public/8.js +++ b/public/8.js @@ -71,6 +71,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope // // // +// +// /* harmony default export */ __webpack_exports__["default"] = ({ data: function data() { @@ -238,29 +240,29 @@ var render = function() { }, [ _c( - "v-btn", + "router-link", { - staticClass: - "WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black" + staticClass: "black--text", + attrs: { to: "register" } }, [ _c( - "v-icon", - { staticClass: "black--text mr-2 caption" }, - [_vm._v("fas fa-plus")] - ), - _vm._v(" "), - _c( - "span", + "v-btn", + { + staticClass: + "WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black" + }, [ _c( - "router-link", + "v-icon", { - staticClass: "black--text", - attrs: { to: "register" } + staticClass: + "black--text mr-2 caption" }, - [_vm._v("Register")] - ) + [_vm._v("fas fa-plus")] + ), + _vm._v(" "), + _c("span", [_vm._v("Register")]) ], 1 ) @@ -291,7 +293,7 @@ var render = function() { [ _c( "router-link", - { attrs: { to: "/submittestresualt" } }, + { attrs: { to: "/forgot-password" } }, [ _c( "span", diff --git a/public/vue/js/app.js b/public/vue/js/app.js index c81ae9aa..a5135705 100644 --- a/public/vue/js/app.js +++ b/public/vue/js/app.js @@ -2564,7 +2564,7 @@ __webpack_require__.r(__webpack_exports__); data: function data() { return { links: [{ - name: 'Powered By', + name: 'Powered By WillaMall', Link: 'https://www.willamall.com' }] }; @@ -7974,7 +7974,7 @@ exports.push([module.i, "/*!\n* Vuetify v1.5.11\n* Forged by John Leider\n* Rele exports = module.exports = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); // Module -exports.push([module.i, "\n#core-footer {\n z-index: 0;\n}\n", ""]); +exports.push([module.i, "\n#core-footer {\r\n z-index: 0;\n}\r\n", ""]); @@ -59031,7 +59031,7 @@ __webpack_require__.r(__webpack_exports__); Object(vuex_router_sync__WEBPACK_IMPORTED_MODULE_6__["sync"])(_store__WEBPACK_IMPORTED_MODULE_10__["default"], _router__WEBPACK_IMPORTED_MODULE_9__["default"]); vue__WEBPACK_IMPORTED_MODULE_1___default.a.config.productionTip = false; // Set the base URL of the API -_services__WEBPACK_IMPORTED_MODULE_11__["ApiService"].init("https://www.cssd-doc.com/api"); // If token exists set header +_services__WEBPACK_IMPORTED_MODULE_11__["ApiService"].init("https://www.cssd-doc.com/api/"); // If token exists set header if (_services__WEBPACK_IMPORTED_MODULE_11__["TokenService"].getToken()) { _services__WEBPACK_IMPORTED_MODULE_11__["ApiService"].setHeader(); @@ -59303,8 +59303,8 @@ __webpack_require__.r(__webpack_exports__); view: 'MyInfo' }, { path: '/all-resualttest', - name: 'All Resualt Test', - view: 'AllResualtTest' + name: 'All Result Test', + view: 'AllResultTest' }, { path: '/manage-users', name: 'Manage Users', @@ -59343,6 +59343,15 @@ __webpack_require__.r(__webpack_exports__); path: '/submit-test-result', name: 'Submit Test Result', view: 'SubmitTestResult' +}, { + path: '/forgot-password', + name: 'ForgotPassword', + view: 'ForgotPassword', + meta: { + public: true, + // Allow access to even if not logged in + onlyWhenLoggedOut: true + } }, { path: '/test-creator', name: 'Test Creator', @@ -59438,7 +59447,7 @@ var ApiService = { break; } - if (!error.config.url.includes('/o/token/')) { + if (!error.config.url.includes('/auth/login/')) { _context.next = 6; break; } @@ -59626,8 +59635,8 @@ var UserService = { grant_type: 'password' }, auth: { - username: Object({"MIX_PUSHER_APP_KEY":"","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_APP_ROOT_API":"https://www.cssd-doc.com/api","NODE_ENV":"development"}).VUE_APP_CLIENT_ID, - password: Object({"MIX_PUSHER_APP_KEY":"","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_APP_ROOT_API":"https://www.cssd-doc.com/api","NODE_ENV":"development"}).VUE_APP_CLIENT_SECRET + username: Object({"MIX_APP_ROOT_API":"https://www.cssd-doc.com/api/","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_PUSHER_APP_KEY":"","NODE_ENV":"development"}).VUE_APP_CLIENT_ID, + password: Object({"MIX_APP_ROOT_API":"https://www.cssd-doc.com/api/","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_PUSHER_APP_KEY":"","NODE_ENV":"development"}).VUE_APP_CLIENT_SECRET } }; _context.prev = 1; @@ -59664,17 +59673,72 @@ var UserService = { return login; }(), + /** + * Login the user and store the access token to TokenService. + * + * @returns access_token + * @throws AuthenticationError + **/ + forgotPassword: function () { + var _forgotPassword = _asyncToGenerator( + /*#__PURE__*/ + _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2(cell_number) { + var requestData, response; + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + requestData = { + method: 'post', + url: "/forgotPassword", + data: { + cell_number: cell_number + }, + auth: { + username: Object({"MIX_APP_ROOT_API":"https://www.cssd-doc.com/api/","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_PUSHER_APP_KEY":"","NODE_ENV":"development"}).VUE_APP_CLIENT_ID, + password: Object({"MIX_APP_ROOT_API":"https://www.cssd-doc.com/api/","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_PUSHER_APP_KEY":"","NODE_ENV":"development"}).VUE_APP_CLIENT_SECRET + } + }; + _context2.prev = 1; + _context2.next = 4; + return _api_service__WEBPACK_IMPORTED_MODULE_1__["default"].customRequest(requestData); + + case 4: + response = _context2.sent; + _api_service__WEBPACK_IMPORTED_MODULE_1__["default"].setHeader(); + return _context2.abrupt("return", response.data); + + case 9: + _context2.prev = 9; + _context2.t0 = _context2["catch"](1); + throw new AuthenticationError(_context2.t0.response.status, _context2.t0.response.data.detail); + + case 12: + case "end": + return _context2.stop(); + } + } + }, _callee2, null, [[1, 9]]); + })); + + function forgotPassword(_x3) { + return _forgotPassword.apply(this, arguments); + } + + return forgotPassword; + }(), + /** * Refresh the access token. **/ refreshToken: function () { var _refreshToken = _asyncToGenerator( /*#__PURE__*/ - _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2() { + _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee3() { var refreshToken, requestData, response; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) { + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee3$(_context3) { while (1) { - switch (_context2.prev = _context2.next) { + switch (_context3.prev = _context3.next) { case 0: refreshToken = _storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].getRefreshToken(); requestData = { @@ -59685,33 +59749,33 @@ var UserService = { refresh_token: refreshToken }, auth: { - username: Object({"MIX_PUSHER_APP_KEY":"","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_APP_ROOT_API":"https://www.cssd-doc.com/api","NODE_ENV":"development"}).VUE_APP_CLIENT_ID, - password: Object({"MIX_PUSHER_APP_KEY":"","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_APP_ROOT_API":"https://www.cssd-doc.com/api","NODE_ENV":"development"}).VUE_APP_CLIENT_SECRET + username: Object({"MIX_APP_ROOT_API":"https://www.cssd-doc.com/api/","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_PUSHER_APP_KEY":"","NODE_ENV":"development"}).VUE_APP_CLIENT_ID, + password: Object({"MIX_APP_ROOT_API":"https://www.cssd-doc.com/api/","MIX_PUSHER_APP_CLUSTER":"mt1","MIX_PUSHER_APP_KEY":"","NODE_ENV":"development"}).VUE_APP_CLIENT_SECRET } }; - _context2.prev = 2; - _context2.next = 5; + _context3.prev = 2; + _context3.next = 5; return _api_service__WEBPACK_IMPORTED_MODULE_1__["default"].customRequest(requestData); case 5: - response = _context2.sent; + response = _context3.sent; _storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].saveToken(response.data.token); _storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].saveRefreshToken(response.data.token); // Update the header in ApiService _api_service__WEBPACK_IMPORTED_MODULE_1__["default"].setHeader(); - return _context2.abrupt("return", response.data.access_token); + return _context3.abrupt("return", response.data.access_token); case 12: - _context2.prev = 12; - _context2.t0 = _context2["catch"](2); - throw new AuthenticationError(_context2.t0.response.status, _context2.t0.response.data.detail); + _context3.prev = 12; + _context3.t0 = _context3["catch"](2); + throw new AuthenticationError(_context3.t0.response.status, _context3.t0.response.data.detail); case 15: case "end": - return _context2.stop(); + return _context3.stop(); } } - }, _callee2, null, [[2, 12]]); + }, _callee3, null, [[2, 12]]); })); function refreshToken() { @@ -59991,15 +60055,46 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar return login; }(), - logout: function logout(_ref3) { - var commit = _ref3.commit; + forgotPassword: function () { + var _forgotPassword = _asyncToGenerator( + /*#__PURE__*/ + _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2(_ref3, _ref4) { + var commit, cell_number, result; + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + commit = _ref3.commit; + cell_number = _ref4.cell_number; + _context2.next = 4; + return _services_auth_user_service__WEBPACK_IMPORTED_MODULE_1__["UserService"].forgotPassword(cell_number); + + case 4: + result = _context2.sent; + + case 5: + case "end": + return _context2.stop(); + } + } + }, _callee2); + })); + + function forgotPassword(_x3, _x4) { + return _forgotPassword.apply(this, arguments); + } + + return forgotPassword; + }(), + logout: function logout(_ref5) { + var commit = _ref5.commit; _services_auth_user_service__WEBPACK_IMPORTED_MODULE_1__["UserService"].logout(); commit('logoutSuccess'); _router__WEBPACK_IMPORTED_MODULE_2__["default"].push('/login'); }, - refreshToken: function refreshToken(_ref4) { - var commit = _ref4.commit, - state = _ref4.state; + refreshToken: function refreshToken(_ref6) { + var commit = _ref6.commit, + state = _ref6.state; // If this is the first time the refreshToken has been called, make a request // otherwise return the same promise to the caller @@ -60223,6 +60318,10 @@ var map = { "./resources/js/vue/views/Dashboard.vue", 6 ], + "./ForgotPassword.vue": [ + "./resources/js/vue/views/ForgotPassword.vue", + 19 + ], "./Icons.vue": [ "./resources/js/vue/views/Icons.vue", 7 @@ -60317,7 +60416,7 @@ module.exports = webpackAsyncContext; /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! /home/saeid/Projects/Git/CSSD/resources/js/vue/main.js */"./resources/js/vue/main.js"); +module.exports = __webpack_require__(/*! D:\Atom\Git\Laravel_CSSD\resources\js\vue\main.js */"./resources/js/vue/main.js"); /***/ }) diff --git a/resources/js/vue/components/core/Footer.vue b/resources/js/vue/components/core/Footer.vue index bdc62f18..e9451cad 100644 --- a/resources/js/vue/components/core/Footer.vue +++ b/resources/js/vue/components/core/Footer.vue @@ -33,7 +33,7 @@ export default { data: () => ({ links: [ - { name: 'Powered By', Link: 'https://www.willamall.com' }, + { name: 'Powered By WillaMall', Link: 'https://www.willamall.com' }, // { name: 'Home', Link: '/dashboard' }, // { name: 'Creative Tim', Link: 'https://www.creative-tim.com' }, // { name: 'About Us', Link: 'https://creative-tim.com/presentation' }, diff --git a/resources/js/vue/router/paths.js b/resources/js/vue/router/paths.js index 9a082b82..890c7c95 100644 --- a/resources/js/vue/router/paths.js +++ b/resources/js/vue/router/paths.js @@ -16,8 +16,8 @@ export default [ }, { path: '/all-resualttest', - name: 'All Resualt Test', - view: 'AllResualtTest' + name: 'All Result Test', + view: 'AllResultTest' }, { path: '/manage-users', @@ -62,6 +62,15 @@ export default [ name: 'Submit Test Result', view: 'SubmitTestResult' }, + { + path: '/forgot-password', + name: 'ForgotPassword', + view: 'ForgotPassword', + meta: { + public: true, // Allow access to even if not logged in + onlyWhenLoggedOut: true + } + }, { path: '/test-creator', name: 'Test Creator', diff --git a/resources/js/vue/services/auth/api.service.js b/resources/js/vue/services/auth/api.service.js index 317a89f9..070deb03 100644 --- a/resources/js/vue/services/auth/api.service.js +++ b/resources/js/vue/services/auth/api.service.js @@ -56,7 +56,7 @@ const ApiService = { }, async (error) => { if (error.request.status == 401) { - if (error.config.url.includes('/o/token/')) { + if (error.config.url.includes('/auth/login/')) { // Refresh token has failed. Logout the user store.dispatch('auth/logout') throw error diff --git a/resources/js/vue/services/auth/user.service.js b/resources/js/vue/services/auth/user.service.js index 50e1d269..24a3b28c 100644 --- a/resources/js/vue/services/auth/user.service.js +++ b/resources/js/vue/services/auth/user.service.js @@ -48,6 +48,34 @@ const UserService = { throw new AuthenticationError(error.response.status, error.response.data.detail); } }, + /** + * Login the user and store the access token to TokenService. + * + * @returns access_token + * @throws AuthenticationError + **/ + forgotPassword: async function(cell_number) { + const requestData = { + method: 'post', + url: "/forgotPassword", + data: { + cell_number, + }, + auth: { + username: process.env.VUE_APP_CLIENT_ID, + password: process.env.VUE_APP_CLIENT_SECRET + } + } + + try { + const response = await ApiService.customRequest(requestData); + ApiService.setHeader(); + + return response.data; + } catch (error) { + throw new AuthenticationError(error.response.status, error.response.data.detail); + } + }, /** * Refresh the access token. diff --git a/resources/js/vue/store/modules/auth/actions.js b/resources/js/vue/store/modules/auth/actions.js index e3f9f8f4..d899d6a5 100644 --- a/resources/js/vue/store/modules/auth/actions.js +++ b/resources/js/vue/store/modules/auth/actions.js @@ -22,6 +22,11 @@ export default { } }, + async forgotPassword({ commit }, {cell_number}) { + const result = await UserService.forgotPassword(cell_number); + // TODO: Open Modal For Get Section + }, + logout({ commit }) { UserService.logout() commit('logoutSuccess') diff --git a/resources/js/vue/views/ForgotPassword.vue b/resources/js/vue/views/ForgotPassword.vue new file mode 100644 index 00000000..0a33ca57 --- /dev/null +++ b/resources/js/vue/views/ForgotPassword.vue @@ -0,0 +1,62 @@ + + diff --git a/resources/js/vue/views/Login.vue b/resources/js/vue/views/Login.vue index 2f9d6ab6..73a12632 100644 --- a/resources/js/vue/views/Login.vue +++ b/resources/js/vue/views/Login.vue @@ -36,15 +36,17 @@ - - fas fa-plus - Register - + + + fas fa-plus + Register + + - + Forgot Password ? diff --git a/resources/js/vue/views/Register.vue b/resources/js/vue/views/Register.vue index 15b23fcc..cac74c2a 100644 --- a/resources/js/vue/views/Register.vue +++ b/resources/js/vue/views/Register.vue @@ -5,6 +5,16 @@ + + + - - - - - - @@ -82,20 +69,11 @@ export default { cellnumber: '', password: '', name: '', - select: '', }) return { form: Object.assign({}, defaultForm), valid : false, show1 : false, - select: { state: 'Florida', abbr: 'FL' }, - items: [ - { state: 'Florida', abbr: 'FL' }, - { state: 'Georgia', abbr: 'GA' }, - { state: 'Nebraska', abbr: 'NE' }, - { state: 'California', abbr: 'CA' }, - { state: 'New York', abbr: 'NY' } - ], defaultForm } }