From a2bddfddf3beeba3c5a2dc1858e5e393bd5a5a4e Mon Sep 17 00:00:00 2001 From: AnEmortalKid Date: Thu, 13 Jun 2024 21:41:33 -0500 Subject: [PATCH] use latest version --- starcitizen/mining_tracker/index.html | 21 +++++++++++++-------- starcitizen/mining_tracker/main.js | 6 +++--- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/starcitizen/mining_tracker/index.html b/starcitizen/mining_tracker/index.html index 09ab672..3d1c560 100644 --- a/starcitizen/mining_tracker/index.html +++ b/starcitizen/mining_tracker/index.html @@ -211,14 +211,18 @@

@@ -279,6 +283,7 @@

+
diff --git a/starcitizen/mining_tracker/main.js b/starcitizen/mining_tracker/main.js index 0d9075e..093fe06 100644 --- a/starcitizen/mining_tracker/main.js +++ b/starcitizen/mining_tracker/main.js @@ -217,7 +217,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \********************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"controls\": () => /* binding */ controls,\n/* harmony export */ \"jobEntry\": () => /* binding */ jobEntry,\n/* harmony export */ \"startApp\": () => /* binding */ startApp\n/* harmony export */ });\n/* harmony import */ var _assets_w3_css_w3_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./assets/w3/css/w3.css */ \"./src/assets/w3/css/w3.css\");\n/* harmony import */ var _assets_refinery_tracker_css_rf_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assets/refinery-tracker/css/rf.css */ \"./src/assets/refinery-tracker/css/rf.css\");\n/* harmony import */ var font_awesome_css_font_awesome_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! font-awesome/css/font-awesome.css */ \"./node_modules/font-awesome/css/font-awesome.css\");\n/* harmony import */ var _users_userModel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./users/userModel */ \"./src/users/userModel.js\");\n/* harmony import */ var _users_userController__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./users/userController */ \"./src/users/userController.js\");\n/* harmony import */ var _users_userView__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./users/userView */ \"./src/users/userView.js\");\n/* harmony import */ var _settings_settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./settings/settings */ \"./src/settings/settings.js\");\n/* harmony import */ var _settings_settingsController__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./settings/settingsController */ \"./src/settings/settingsController.js\");\n/* harmony import */ var _settings_settingsView__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./settings/settingsView */ \"./src/settings/settingsView.js\");\n/* harmony import */ var _controls_controls__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./controls/controls */ \"./src/controls/controls.js\");\n/* harmony import */ var _jobs_jobModel__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./jobs/jobModel */ \"./src/jobs/jobModel.js\");\n/* harmony import */ var _jobs_jobEntryController__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./jobs/jobEntryController */ \"./src/jobs/jobEntryController.js\");\n/* harmony import */ var _jobs_jobEntryView__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./jobs/jobEntryView */ \"./src/jobs/jobEntryView.js\");\n/* harmony import */ var _jobs_sorting_sortController__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./jobs/sorting/sortController */ \"./src/jobs/sorting/sortController.js\");\n/* harmony import */ var _jobs_jobController__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./jobs/jobController */ \"./src/jobs/jobController.js\");\n/* harmony import */ var _jobs_jobView__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./jobs/jobView */ \"./src/jobs/jobView.js\");\n/* harmony import */ var _settings_settingsModel__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./settings/settingsModel */ \"./src/settings/settingsModel.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst controls = new _controls_controls__WEBPACK_IMPORTED_MODULE_9__.default();\r\n\r\nconst userModel = new _users_userModel__WEBPACK_IMPORTED_MODULE_3__.default();\r\nconst userView = new _users_userView__WEBPACK_IMPORTED_MODULE_5__.default(controls);\r\nconst userController = new _users_userController__WEBPACK_IMPORTED_MODULE_4__.default(userModel, userView);\r\n\r\nconst jobModel = new _jobs_jobModel__WEBPACK_IMPORTED_MODULE_10__.default();\r\nconst jobEntryView = new _jobs_jobEntryView__WEBPACK_IMPORTED_MODULE_12__.default(controls);\r\nconst jobEntry = new _jobs_jobEntryController__WEBPACK_IMPORTED_MODULE_11__.default(jobModel, jobEntryView);\r\n\r\nconst sortController = new _jobs_sorting_sortController__WEBPACK_IMPORTED_MODULE_13__.default();\r\nconst jobView = new _jobs_jobView__WEBPACK_IMPORTED_MODULE_15__.default(controls);\r\nconst jobController = new _jobs_jobController__WEBPACK_IMPORTED_MODULE_14__.default(\r\n jobModel,\r\n jobView,\r\n jobEntry,\r\n sortController\r\n);\r\n\r\nconst settingsModel = new _settings_settingsModel__WEBPACK_IMPORTED_MODULE_16__.default();\r\nconst settingsView = new _settings_settingsView__WEBPACK_IMPORTED_MODULE_8__.default(controls);\r\nconst settingsController = new _settings_settingsController__WEBPACK_IMPORTED_MODULE_7__.default(settingsModel, settingsView);\r\n\r\nvar currentRefreshFn;\r\n\r\nfunction synchronizeSettings(userSettings) {\r\n if (currentRefreshFn) {\r\n window.clearInterval(currentRefreshFn);\r\n }\r\n if (userSettings.refreshRateSeconds > 0) {\r\n currentRefreshFn = window.setInterval(function () {\r\n jobController.refreshJobStatus();\r\n }, userSettings.refreshRateSeconds * 1000);\r\n }\r\n}\r\n\r\nfunction startApp() {\r\n controls.setEscapeClosesModals();\r\n\r\n var current = userModel.getCurrent();\r\n if (current) {\r\n synchronizeSettings(settingsModel.get(current));\r\n }\r\n\r\n jobModel.load(userModel.getCurrent());\r\n settingsController.load(userModel.getCurrent());\r\n userModel.registerOnUserChangeListener(\r\n jobController.onUserChangeHandler.bind(jobController)\r\n );\r\n userModel.registerOnUserDeletedListener(\r\n jobController.onUserDeletedHandler.bind(jobController)\r\n );\r\n userModel.registerOnUserChangeListener(\r\n settingsController.onUserChangeHandler.bind(settingsController)\r\n );\r\n settingsModel.registerOnSettingsChangeListener(synchronizeSettings);\r\n}\r\n\n\n//# sourceURL=webpack://app/./src/app.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"controls\": () => /* binding */ controls,\n/* harmony export */ \"jobEntry\": () => /* binding */ jobEntry,\n/* harmony export */ \"startApp\": () => /* binding */ startApp\n/* harmony export */ });\n/* harmony import */ var _assets_w3_css_w3_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./assets/w3/css/w3.css */ \"./src/assets/w3/css/w3.css\");\n/* harmony import */ var _assets_refinery_tracker_css_rf_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assets/refinery-tracker/css/rf.css */ \"./src/assets/refinery-tracker/css/rf.css\");\n/* harmony import */ var font_awesome_css_font_awesome_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! font-awesome/css/font-awesome.css */ \"./node_modules/font-awesome/css/font-awesome.css\");\n/* harmony import */ var _users_userModel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./users/userModel */ \"./src/users/userModel.js\");\n/* harmony import */ var _users_userController__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./users/userController */ \"./src/users/userController.js\");\n/* harmony import */ var _users_userView__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./users/userView */ \"./src/users/userView.js\");\n/* harmony import */ var _settings_settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./settings/settings */ \"./src/settings/settings.js\");\n/* harmony import */ var _settings_settingsController__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./settings/settingsController */ \"./src/settings/settingsController.js\");\n/* harmony import */ var _settings_settingsView__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./settings/settingsView */ \"./src/settings/settingsView.js\");\n/* harmony import */ var _controls_controls__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./controls/controls */ \"./src/controls/controls.js\");\n/* harmony import */ var _jobs_jobModel__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./jobs/jobModel */ \"./src/jobs/jobModel.js\");\n/* harmony import */ var _jobs_jobEntryController__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./jobs/jobEntryController */ \"./src/jobs/jobEntryController.js\");\n/* harmony import */ var _jobs_jobEntryView__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./jobs/jobEntryView */ \"./src/jobs/jobEntryView.js\");\n/* harmony import */ var _jobs_sorting_sortController__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./jobs/sorting/sortController */ \"./src/jobs/sorting/sortController.js\");\n/* harmony import */ var _jobs_jobController__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./jobs/jobController */ \"./src/jobs/jobController.js\");\n/* harmony import */ var _jobs_jobView__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./jobs/jobView */ \"./src/jobs/jobView.js\");\n/* harmony import */ var _settings_settingsModel__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./settings/settingsModel */ \"./src/settings/settingsModel.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst controls = new _controls_controls__WEBPACK_IMPORTED_MODULE_9__.default();\r\n\r\nconst userModel = new _users_userModel__WEBPACK_IMPORTED_MODULE_3__.default();\r\nconst userView = new _users_userView__WEBPACK_IMPORTED_MODULE_5__.default(controls);\r\nconst userController = new _users_userController__WEBPACK_IMPORTED_MODULE_4__.default(userModel, userView);\r\n\r\nconst jobModel = new _jobs_jobModel__WEBPACK_IMPORTED_MODULE_10__.default();\r\nconst jobEntryView = new _jobs_jobEntryView__WEBPACK_IMPORTED_MODULE_12__.default(controls);\r\nconst jobEntry = new _jobs_jobEntryController__WEBPACK_IMPORTED_MODULE_11__.default(jobModel, jobEntryView);\r\n\r\nconst sortController = new _jobs_sorting_sortController__WEBPACK_IMPORTED_MODULE_13__.default();\r\nconst jobView = new _jobs_jobView__WEBPACK_IMPORTED_MODULE_15__.default(controls);\r\nconst jobController = new _jobs_jobController__WEBPACK_IMPORTED_MODULE_14__.default(\r\n jobModel,\r\n jobView,\r\n jobEntry,\r\n sortController\r\n);\r\n\r\nconst settingsModel = new _settings_settingsModel__WEBPACK_IMPORTED_MODULE_16__.default();\r\nconst settingsView = new _settings_settingsView__WEBPACK_IMPORTED_MODULE_8__.default(controls);\r\nconst settingsController = new _settings_settingsController__WEBPACK_IMPORTED_MODULE_7__.default(settingsModel, settingsView);\r\n\r\nvar currentRefreshFn;\r\n\r\nfunction synchronizeSettings(userSettings) {\r\n if (currentRefreshFn) {\r\n window.clearInterval(currentRefreshFn);\r\n }\r\n if (userSettings.refreshRateSeconds > 0) {\r\n currentRefreshFn = window.setInterval(function () {\r\n jobController.refreshJobStatus();\r\n }, userSettings.refreshRateSeconds * 1000);\r\n }\r\n}\r\n\r\nconsole.log('[sc-refinery-tracker] app loaded');\r\nfunction startApp() {\r\n console.log('[sc-refinery-tracker] starting app');\r\n controls.setEscapeClosesModals();\r\n\r\n var current = userModel.getCurrent();\r\n if (current) {\r\n synchronizeSettings(settingsModel.get(current));\r\n }\r\n\r\n jobModel.load(userModel.getCurrent());\r\n settingsController.load(userModel.getCurrent());\r\n userModel.registerOnUserChangeListener(\r\n jobController.onUserChangeHandler.bind(jobController)\r\n );\r\n userModel.registerOnUserDeletedListener(\r\n jobController.onUserDeletedHandler.bind(jobController)\r\n );\r\n userModel.registerOnUserChangeListener(\r\n settingsController.onUserChangeHandler.bind(settingsController)\r\n );\r\n settingsModel.registerOnSettingsChangeListener(synchronizeSettings);\r\n}\r\n\n\n//# sourceURL=webpack://app/./src/app.js?"); /***/ }), @@ -327,7 +327,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getMaterialsList\": () => /* binding */ getMaterialsList\n/* harmony export */ });\nfunction getMaterialsList() {\n return [\n \"Quantainium\",\n \"Bexalite\",\n \"Taranite\",\n \"Borase\",\n \"Laranite\",\n \"Agricium\",\n \"Hephaestanite\",\n \"Titanium\",\n \"Diamond\",\n \"Gold\",\n \"Copper\",\n \"Beryl\",\n \"Tungsten\",\n \"Corundum\",\n \"Quartz\",\n \"Aluminium\",\n ];\n}\n\n\n//# sourceURL=webpack://app/./src/model/materials.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getMaterialsList\": () => /* binding */ getMaterialsList\n/* harmony export */ });\nfunction getMaterialsList() {\r\n return [\r\n \"Quantainium\",\r\n \"Bexalite\",\r\n \"Taranite\",\r\n \"Borase\",\r\n \"Laranite\",\r\n \"Agricium\",\r\n \"Hephaestanite\",\r\n \"Titanium\",\r\n \"Diamond\",\r\n \"Gold\",\r\n \"Copper\",\r\n \"Beryl\",\r\n \"Tungsten\",\r\n \"Corundum\",\r\n \"Iron\",\r\n \"Quartz\",\r\n \"Aluminium\",\r\n ];\r\n}\r\n\n\n//# sourceURL=webpack://app/./src/model/materials.js?"); /***/ }), @@ -407,7 +407,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \*******************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => /* binding */ UserView\n/* harmony export */ });\n/* harmony import */ var _elementUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elementUtils */ \"./src/elementUtils.js\");\nconst selectorId = \"user-selection\";\r\n\r\n\r\n\r\nfunction createPlaceholder() {\r\n // \r\n var option = document.createElement(\"option\");\r\n option.value = \"\";\r\n option.disabled = true;\r\n option.selected = true;\r\n option.text = \"Select or Create a User.\";\r\n return option;\r\n}\r\n\r\nclass UserView {\r\n constructor(controls) {\r\n this.controls = controls;\r\n\r\n this.addUserForm = document.getElementById(\"user-form\");\r\n this.addUserInput = document.getElementById(\"user-form-username\");\r\n this.userSelect = document.getElementById(\"user-selection\");\r\n }\r\n\r\n /**\r\n * Binds the event of clicking the Add User button\r\n * @param {function} handler a handler to invoke when the add user button is pressed\r\n */\r\n bindAddUser(handler) {\r\n var action = (event) => {\r\n handler();\r\n };\r\n\r\n var btn = document.getElementById(\"add-user-btn\");\r\n btn.addEventListener(\"click\", action);\r\n }\r\n\r\n /**\r\n * Binds the event of confirming the Add User modal\r\n * @param {function} handler a handler to invoke when the confirmation button to add a user is pressed\r\n */\r\n bindConfirmAddUser(handler) {\r\n var submissionAction = (event) => {\r\n event.preventDefault();\r\n handler(this.addUserInput.value);\r\n };\r\n\r\n this.addUserForm.addEventListener(\"submit\", submissionAction);\r\n var btn = document.getElementById(\"add-user-form-confirm-btn\");\r\n btn.addEventListener(\"click\", submissionAction);\r\n }\r\n\r\n /**\r\n * Binds the event of canceling the Add User modal\r\n * @param {function} handler a handler to invoke when the cancel button on the add user form\r\n */\r\n bindCancelAddUserForm(handler) {\r\n var cancelAction = (event) => {\r\n event.preventDefault();\r\n handler();\r\n };\r\n\r\n var cancelBtn = document.getElementById(\"add-user-form-cancel-btn\");\r\n cancelBtn.addEventListener(\"click\", cancelAction);\r\n var xBtn = document.getElementById(\"add-user-modal-close-button\");\r\n xBtn.addEventListener(\"click\", cancelAction);\r\n }\r\n\r\n /**\r\n * Binds the event of clicking the Remove User button\r\n * @param {function} handler a handler to invoke when the add user button is pressed\r\n */\r\n bindRemoveUser(handler) {\r\n var action = (event) => {\r\n handler();\r\n };\r\n\r\n var btn = document.getElementById(\"remove-user-btn\");\r\n btn.addEventListener(\"click\", action);\r\n }\r\n\r\n /**\r\n * Binds the event of confirming the Remove User modal\r\n * @param {function} handler a handler to invoke when the remove user modal is confirmed\r\n */\r\n bindConfirmRemoveUser(handler) {\r\n var action = (event) => {\r\n event.preventDefault();\r\n handler(this.userSelect.value);\r\n };\r\n\r\n var btn = document.getElementById(\"remove-user-form-confirm-btn\");\r\n btn.addEventListener(\"click\", action);\r\n }\r\n\r\n /**\r\n * Binds the event of canceling the Remove User modal\r\n * @param {function} handler a handler to invoke when the Remove User modal is canceled\r\n */\r\n bindCancelRemoveUser(handler) {\r\n var cancelAction = (event) => {\r\n event.preventDefault();\r\n handler();\r\n };\r\n\r\n var cancelBtn = document.getElementById(\"remove-user-form-cancel-btn\");\r\n cancelBtn.addEventListener(\"click\", cancelAction);\r\n var xBtn = document.getElementById(\"remove-user-modal-close-button\");\r\n xBtn.addEventListener(\"click\", cancelAction);\r\n }\r\n\r\n /**\r\n * Binds the event of selecting a user\r\n * @param {function} handler a function to invoke with the new user\r\n */\r\n bindOnUserChange(handler) {\r\n var action = (event) => {\r\n handler(event.target.value);\r\n };\r\n\r\n var select = document.getElementById(\"user-selection\");\r\n select.addEventListener(\"change\", action);\r\n }\r\n\r\n /**\r\n * Open the Add User Modal\r\n */\r\n openAddUserModal() {\r\n this.controls.openModal(\"add-user-form-modal\");\r\n }\r\n\r\n /**\r\n * Closes the Add User Modal\r\n */\r\n closeAddUserModal() {\r\n this.controls.closeModal(\"add-user-form-modal\");\r\n }\r\n\r\n /**\r\n * Open the Remove User Modal\r\n */\r\n openRemoveUserModal(userName) {\r\n document.getElementById(\r\n \"remove-user-header-placeholder\"\r\n ).textContent = userName;\r\n this.controls.openModal(\"remove-user-form-modal\");\r\n }\r\n\r\n /**\r\n * Closes the Remove User Modal\r\n */\r\n closeRemoveUserModal() {\r\n this.controls.closeModal(\"remove-user-form-modal\");\r\n }\r\n\r\n /**\r\n * Updates the state of the buttons depending on if there is a selected user or not\r\n * @param {String} selected the name of the selected user\r\n */\r\n updateButtons(selected) {\r\n var removeUserBtn = document.getElementById(\"remove-user-btn\");\r\n if (!selected) {\r\n removeUserBtn.classList.add(\"w3-disabled\");\r\n removeUserBtn.disabled = true;\r\n } else {\r\n removeUserBtn.classList.remove(\"w3-disabled\");\r\n removeUserBtn.disabled = false;\r\n }\r\n }\r\n\r\n /**\r\n * Displays the available users\r\n * @param {String[]} users the set of users\r\n * @param {String} selected the name of the selected user\r\n */\r\n showUsers(users, selected) {\r\n var selector = document.getElementById(\"user-selection\");\r\n (0,_elementUtils__WEBPACK_IMPORTED_MODULE_0__.removeChildren)(selector);\r\n\r\n this.updateButtons(selected);\r\n if (!selected) {\r\n selector.appendChild(createPlaceholder());\r\n }\r\n\r\n users.forEach((user) => {\r\n var option = document.createElement(\"option\");\r\n option.value = user;\r\n option.text = user;\r\n if (selected == user) {\r\n option.selected = true;\r\n }\r\n selector.appendChild(option);\r\n });\r\n }\r\n\r\n alertUserAdded() {\r\n this.controls.displayAlert(\"User Added.\");\r\n }\r\n alertUserRemoved() {\r\n this.controls.displayAlert(\"User Removed.\");\r\n }\r\n}\r\n\n\n//# sourceURL=webpack://app/./src/users/userView.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => /* binding */ UserView\n/* harmony export */ });\n/* harmony import */ var _elementUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elementUtils */ \"./src/elementUtils.js\");\nconst selectorId = \"user-selection\";\n\n\n\nfunction createPlaceholder() {\n // \n var option = document.createElement(\"option\");\n option.value = \"\";\n option.disabled = true;\n option.selected = true;\n option.text = \"Select or Create a User.\";\n return option;\n}\n\nclass UserView {\n constructor(controls) {\n this.controls = controls;\n\n this.addUserForm = document.getElementById(\"user-form\");\n this.addUserInput = document.getElementById(\"user-form-username\");\n this.userSelect = document.getElementById(\"user-selection\");\n }\n\n /**\n * Binds the event of clicking the Add User button\n * @param {function} handler a handler to invoke when the add user button is pressed\n */\n bindAddUser(handler) {\n var action = (event) => {\n handler();\n };\n\n var btn = document.getElementById(\"add-user-btn\");\n btn.addEventListener(\"click\", action);\n }\n\n /**\n * Binds the event of confirming the Add User modal\n * @param {function} handler a handler to invoke when the confirmation button to add a user is pressed\n */\n bindConfirmAddUser(handler) {\n var submissionAction = (event) => {\n event.preventDefault();\n handler(this.addUserInput.value);\n };\n\n this.addUserForm.addEventListener(\"submit\", submissionAction);\n var btn = document.getElementById(\"add-user-form-confirm-btn\");\n btn.addEventListener(\"click\", submissionAction);\n }\n\n /**\n * Binds the event of canceling the Add User modal\n * @param {function} handler a handler to invoke when the cancel button on the add user form\n */\n bindCancelAddUserForm(handler) {\n var cancelAction = (event) => {\n event.preventDefault();\n handler();\n };\n\n var cancelBtn = document.getElementById(\"add-user-form-cancel-btn\");\n cancelBtn.addEventListener(\"click\", cancelAction);\n var xBtn = document.getElementById(\"add-user-modal-close-button\");\n xBtn.addEventListener(\"click\", cancelAction);\n }\n\n /**\n * Binds the event of clicking the Remove User button\n * @param {function} handler a handler to invoke when the add user button is pressed\n */\n bindRemoveUser(handler) {\n var action = (event) => {\n handler();\n };\n\n var btn = document.getElementById(\"remove-user-btn\");\n btn.addEventListener(\"click\", action);\n }\n\n /**\n * Binds the event of confirming the Remove User modal\n * @param {function} handler a handler to invoke when the remove user modal is confirmed\n */\n bindConfirmRemoveUser(handler) {\n var action = (event) => {\n event.preventDefault();\n handler(this.userSelect.value);\n };\n\n var btn = document.getElementById(\"remove-user-form-confirm-btn\");\n btn.addEventListener(\"click\", action);\n }\n\n /**\n * Binds the event of canceling the Remove User modal\n * @param {function} handler a handler to invoke when the Remove User modal is canceled\n */\n bindCancelRemoveUser(handler) {\n var cancelAction = (event) => {\n event.preventDefault();\n handler();\n };\n\n var cancelBtn = document.getElementById(\"remove-user-form-cancel-btn\");\n cancelBtn.addEventListener(\"click\", cancelAction);\n var xBtn = document.getElementById(\"remove-user-modal-close-button\");\n xBtn.addEventListener(\"click\", cancelAction);\n }\n\n /**\n * Binds the event of selecting a user\n * @param {function} handler a function to invoke with the new user\n */\n bindOnUserChange(handler) {\n var action = (event) => {\n handler(event.target.value);\n };\n\n var select = document.getElementById(\"user-selection\");\n select.addEventListener(\"change\", action);\n }\n\n /**\n * Open the Add User Modal\n */\n openAddUserModal() {\n this.controls.openModal(\"add-user-form-modal\");\n }\n\n /**\n * Closes the Add User Modal\n */\n closeAddUserModal() {\n this.controls.closeModal(\"add-user-form-modal\");\n }\n\n /**\n * Open the Remove User Modal\n */\n openRemoveUserModal(userName) {\n document.getElementById(\n \"remove-user-header-placeholder\"\n ).textContent = userName;\n this.controls.openModal(\"remove-user-form-modal\");\n }\n\n /**\n * Closes the Remove User Modal\n */\n closeRemoveUserModal() {\n this.controls.closeModal(\"remove-user-form-modal\");\n }\n\n /**\n * Updates the state of the buttons depending on if there is a selected user or not\n * @param {String} selected the name of the selected user\n */\n updateButtons(selected) {\n var removeUserBtn = document.getElementById(\"remove-user-btn\");\n if (!selected) {\n removeUserBtn.classList.add(\"w3-disabled\");\n removeUserBtn.disabled = true;\n } else {\n removeUserBtn.classList.remove(\"w3-disabled\");\n removeUserBtn.disabled = false;\n }\n }\n\n /**\n * Displays the available users\n * @param {String[]} users the set of users\n * @param {String} selected the name of the selected user\n */\n showUsers(users, selected) {\n var selector = document.getElementById(\"user-selection\");\n (0,_elementUtils__WEBPACK_IMPORTED_MODULE_0__.removeChildren)(selector);\n\n this.updateButtons(selected);\n if (!selected) {\n selector.appendChild(createPlaceholder());\n }\n\n users.forEach((user) => {\n var option = document.createElement(\"option\");\n option.value = user;\n option.text = user;\n if (selected == user) {\n option.selected = true;\n }\n selector.appendChild(option);\n });\n }\n\n alertUserAdded() {\n this.controls.displayAlert(\"User Added.\");\n }\n alertUserRemoved() {\n this.controls.displayAlert(\"User Removed.\");\n }\n}\n\n\n//# sourceURL=webpack://app/./src/users/userView.js?"); /***/ })