diff --git a/public/js/5.js b/public/js/5.js index 3a900c53d..2a018e5ce 100644 --- a/public/js/5.js +++ b/public/js/5.js @@ -1511,7 +1511,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 37);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! prop-types */ 87);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! mobx-react */ 1122);\n/* harmony import */ var components_Input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! components/Input */ 602);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! mobx */ 1123);\n/* harmony import */ var components_ColorSelector__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! components/ColorSelector */ 151);\n/* harmony import */ var components_Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! components/Button */ 39);\n/* harmony import */ var components_Settings_EnableSwitch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! components/Settings/EnableSwitch */ 72);\n/* harmony import */ var api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! api */ 52);\n/* harmony import */ var lib_helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lib/helpers */ 10);\n/* harmony import */ var lib_helpers__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lib_helpers__WEBPACK_IMPORTED_MODULE_6__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;\n\nfunction _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n\nfunction _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }\n\n/*\n * . .o8 oooo\n * .o8 \"888 `888\n * .o888oo oooo d8b oooo oooo .oooo888 .ooooo. .oooo.o 888 oooo\n * 888 `888\"\"8P `888 `888 d88' `888 d88' `88b d88( \"8 888 .8P'\n * 888 888 888 888 888 888 888ooo888 `\"Y88b. 888888.\n * 888 . 888 888 888 888 888 888 .o o. )88b 888 `88b.\n * \"888\" d888b `V88V\"V8P' `Y8bod88P\" `Y8bod8P' 8\"\"888P' o888o o888o\n * ========================================================================\n * Author: Chris Brame\n * Updated: 6/20/23 6:00 PM\n * Copyright (c) 2014-2023. All rights reserved.\n */\n\n\n\n\n\n\n\n\n\n\n\nvar TicketStatusBody = (0,mobx_react__WEBPACK_IMPORTED_MODULE_7__.observer)(_class = (_class2 = /*#__PURE__*/function (_React$Component) {\n _inherits(TicketStatusBody, _React$Component);\n\n var _super = _createSuper(TicketStatusBody);\n\n function TicketStatusBody(props) {\n var _this;\n\n _classCallCheck(this, TicketStatusBody);\n\n _this = _super.call(this, props);\n\n _initializerDefineProperty(_this, \"statusName\", _descriptor, _assertThisInitialized(_this));\n\n _initializerDefineProperty(_this, \"htmlColor\", _descriptor2, _assertThisInitialized(_this));\n\n _initializerDefineProperty(_this, \"slatimer\", _descriptor3, _assertThisInitialized(_this));\n\n _initializerDefineProperty(_this, \"isResolved\", _descriptor4, _assertThisInitialized(_this));\n\n (0,mobx__WEBPACK_IMPORTED_MODULE_8__.makeObservable)(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(TicketStatusBody, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.statusName = this.props.status.get('name') || '';\n this.htmlColor = this.props.status.get('htmlColor') || '';\n this.isResolved = this.props.status.get('isResolved') || false;\n this.slatimer = this.props.status.get('slatimer') || false;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.statusName === '') this.statusName = this.props.status.get('name') || '';\n if (this.htmlColor === '') this.htmlColor = this.props.status.get('htmlColor') || '';\n if (this.isResolved === '') this.isResolved = this.props.status.get('isResolved') || false;\n if (this.slatimer === '') this.slatimer = this.props.status.get('slatimer') || false;\n }\n }, {\n key: \"onSaveClicked\",\n value: function onSaveClicked(e) {\n var id = this.props.status.get('_id');\n var name = this.statusName;\n var htmlColor = this.htmlColor;\n var isResolved = this.isResolved;\n var slatimer = this.slatimer;\n api__WEBPACK_IMPORTED_MODULE_5__[\"default\"].tickets.updateStatus({\n id: id,\n name: name,\n htmlColor: htmlColor,\n isResolved: isResolved,\n slatimer: slatimer\n }).then(function (res) {\n console.log(res);\n lib_helpers__WEBPACK_IMPORTED_MODULE_6___default().UI.showSnackbar('Status updated');\n })[\"catch\"](function (e) {\n console.log(e);\n lib_helpers__WEBPACK_IMPORTED_MODULE_6___default().UI.showSnackbar(e, true);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"form\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: 'ticket-status-general-wrapper'\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"h2\", {\n className: \"text-light\"\n }, \"General\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"hr\", {\n style: {\n margin: '5px 0 25px 0'\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n style: {\n marginBottom: 15\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"label\", {\n style: {\n display: 'inline-block',\n cursor: 'pointer'\n }\n }, \"Status Name\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_Input__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n defaultValue: this.statusName,\n onChange: function onChange(v) {\n return _this2.statusName = v;\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n style: {\n marginBottom: 15\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"label\", {\n style: {\n display: 'inline-block',\n cursor: 'pointer'\n }\n }, \"Status Color\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_ColorSelector__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n showLabel: false,\n hideRevert: true,\n defaultColor: this.htmlColor,\n onChange: function onChange(e) {\n return _this2.htmlColor = e.target.value;\n }\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"h2\", {\n className: \"text-light mt-25\"\n }, \"Properties\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"hr\", {\n style: {\n margin: '5px 0 25px 0'\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n style: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"h4\", {\n className: 'uk-width-1-2',\n style: {\n flexGrow: 1\n }\n }, \"SLA Timer\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_Settings_EnableSwitch__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n stateName: \"slatimer_\".concat(this.props.status.get('_id')),\n label: 'Yes',\n checked: this.slatimer,\n onChange: function onChange(e) {\n return _this2.slatimer = e.target.checked;\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n style: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"h4\", {\n className: 'uk-width-1-2',\n style: {\n flexGrow: 1\n }\n }, \"Is Resolved\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_Settings_EnableSwitch__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n stateName: \"isResolved_\".concat(this.props.status.get('_id')),\n label: 'Yes',\n checked: this.isResolved,\n onChange: function onChange(e) {\n return _this2.isResolved = e.target.checked;\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: 'uk-margin-large-top',\n style: {\n display: 'flex',\n justifyContent: 'flex-end'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_Button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: 'Save Status',\n style: 'success',\n onClick: function onClick(e) {\n return _this2.onSaveClicked(e);\n }\n }))), !this.props.status.get('isLocked') && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: 'uk-margin-large-top',\n style: {\n display: 'block',\n height: 15\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: 'uk-margin-large-top'\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"h2\", {\n className: \"text-light\"\n }, \"Danger Zone\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: \"danger-zone\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: \"dz-box uk-clearfix\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: \"uk-float-left\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"h5\", null, \"Delete this status\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"p\", null, \"Once you delete a ticket status, there is no going back. Please be certain.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: \"uk-float-right\",\n style: {\n paddingTop: '10px'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_Button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: 'Delete',\n small: true,\n style: 'danger',\n onClick: function onClick(e) {\n return _this2.showDeleteTicketStatusModal(e, type);\n }\n })))))));\n }\n }]);\n\n return TicketStatusBody;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, \"statusName\", [mobx__WEBPACK_IMPORTED_MODULE_8__.observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return '';\n }\n}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, \"htmlColor\", [mobx__WEBPACK_IMPORTED_MODULE_8__.observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return '';\n }\n}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, \"slatimer\", [mobx__WEBPACK_IMPORTED_MODULE_8__.observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return '';\n }\n}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, \"isResolved\", [mobx__WEBPACK_IMPORTED_MODULE_8__.observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return '';\n }\n})), _class2)) || _class;\n\nTicketStatusBody.propTypes = {\n status: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().object.isRequired)\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TicketStatusBody);\n\n//# sourceURL=webpack://trudesk/./src/client/containers/Settings/Tickets/ticketStatusBody.jsx?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 37);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ 87);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ 38);\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! mobx-react */ 1122);\n/* harmony import */ var components_Input__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! components/Input */ 602);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! mobx */ 1123);\n/* harmony import */ var actions_settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! actions/settings */ 47);\n/* harmony import */ var components_ColorSelector__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! components/ColorSelector */ 151);\n/* harmony import */ var components_Button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! components/Button */ 39);\n/* harmony import */ var components_Settings_EnableSwitch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! components/Settings/EnableSwitch */ 72);\n/* harmony import */ var api__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! api */ 52);\n/* harmony import */ var lib_helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lib/helpers */ 10);\n/* harmony import */ var lib_helpers__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lib_helpers__WEBPACK_IMPORTED_MODULE_8__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;\n\nfunction _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n\nfunction _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }\n\n/*\n * . .o8 oooo\n * .o8 \"888 `888\n * .o888oo oooo d8b oooo oooo .oooo888 .ooooo. .oooo.o 888 oooo\n * 888 `888\"\"8P `888 `888 d88' `888 d88' `88b d88( \"8 888 .8P'\n * 888 888 888 888 888 888 888ooo888 `\"Y88b. 888888.\n * 888 . 888 888 888 888 888 888 .o o. )88b 888 `88b.\n * \"888\" d888b `V88V\"V8P' `Y8bod88P\" `Y8bod8P' 8\"\"888P' o888o o888o\n * ========================================================================\n * Author: Chris Brame\n * Updated: 6/20/23 6:00 PM\n * Copyright (c) 2014-2023. All rights reserved.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar TicketStatusBody = (0,mobx_react__WEBPACK_IMPORTED_MODULE_9__.observer)(_class = (_class2 = /*#__PURE__*/function (_React$Component) {\n _inherits(TicketStatusBody, _React$Component);\n\n var _super = _createSuper(TicketStatusBody);\n\n function TicketStatusBody(props) {\n var _this;\n\n _classCallCheck(this, TicketStatusBody);\n\n _this = _super.call(this, props);\n\n _initializerDefineProperty(_this, \"statusName\", _descriptor, _assertThisInitialized(_this));\n\n _initializerDefineProperty(_this, \"htmlColor\", _descriptor2, _assertThisInitialized(_this));\n\n _initializerDefineProperty(_this, \"slatimer\", _descriptor3, _assertThisInitialized(_this));\n\n _initializerDefineProperty(_this, \"isResolved\", _descriptor4, _assertThisInitialized(_this));\n\n (0,mobx__WEBPACK_IMPORTED_MODULE_10__.makeObservable)(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(TicketStatusBody, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.statusName = this.props.status.get('name') || '';\n this.htmlColor = this.props.status.get('htmlColor') || '';\n this.isResolved = this.props.status.get('isResolved') || false;\n this.slatimer = this.props.status.get('slatimer') || false;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.statusName === '') this.statusName = this.props.status.get('name') || '';\n if (this.htmlColor === '') this.htmlColor = this.props.status.get('htmlColor') || '';\n if (this.isResolved === '') this.isResolved = this.props.status.get('isResolved') || false;\n if (this.slatimer === '') this.slatimer = this.props.status.get('slatimer') || false;\n }\n }, {\n key: \"onSaveClicked\",\n value: function onSaveClicked(e) {\n var _this2 = this;\n\n var id = this.props.status.get('_id');\n var name = this.statusName;\n var htmlColor = this.htmlColor;\n var isResolved = this.isResolved;\n var slatimer = this.slatimer;\n api__WEBPACK_IMPORTED_MODULE_7__[\"default\"].tickets.updateStatus({\n id: id,\n name: name,\n htmlColor: htmlColor,\n isResolved: isResolved,\n slatimer: slatimer\n }).then(function (res) {\n lib_helpers__WEBPACK_IMPORTED_MODULE_8___default().UI.showSnackbar('Status updated');\n\n _this2.props.fetchSettings();\n })[\"catch\"](function (e) {\n console.log(e);\n lib_helpers__WEBPACK_IMPORTED_MODULE_8___default().UI.showSnackbar(e, true);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"form\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: 'ticket-status-general-wrapper'\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"h2\", {\n className: \"text-light\"\n }, \"General\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"hr\", {\n style: {\n margin: '5px 0 25px 0'\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n style: {\n marginBottom: 15\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"label\", {\n style: {\n display: 'inline-block',\n cursor: 'pointer'\n }\n }, \"Status Name\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_Input__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n defaultValue: this.statusName,\n onChange: function onChange(v) {\n return _this3.statusName = v;\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n style: {\n marginBottom: 15\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"label\", {\n style: {\n display: 'inline-block',\n cursor: 'pointer'\n }\n }, \"Status Color\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_ColorSelector__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n showLabel: false,\n hideRevert: true,\n defaultColor: this.htmlColor,\n onChange: function onChange(e) {\n return _this3.htmlColor = e.target.value;\n }\n }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"h2\", {\n className: \"text-light mt-25\"\n }, \"Properties\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"hr\", {\n style: {\n margin: '5px 0 25px 0'\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n style: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"h4\", {\n className: 'uk-width-1-2',\n style: {\n flexGrow: 1\n }\n }, \"SLA Timer\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_Settings_EnableSwitch__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n stateName: \"slatimer_\".concat(this.props.status.get('_id')),\n label: 'Yes',\n checked: this.slatimer,\n onChange: function onChange(e) {\n return _this3.slatimer = e.target.checked;\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n style: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"h4\", {\n className: 'uk-width-1-2',\n style: {\n flexGrow: 1\n }\n }, \"Is Resolved\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_Settings_EnableSwitch__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n stateName: \"isResolved_\".concat(this.props.status.get('_id')),\n label: 'Yes',\n checked: this.isResolved,\n onChange: function onChange(e) {\n return _this3.isResolved = e.target.checked;\n }\n })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: 'uk-margin-large-top',\n style: {\n display: 'flex',\n justifyContent: 'flex-end'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_Button__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n text: 'Save Status',\n style: 'success',\n onClick: function onClick(e) {\n return _this3.onSaveClicked(e);\n }\n }))), !this.props.status.get('isLocked') && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: 'uk-margin-large-top',\n style: {\n display: 'block',\n height: 15\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: 'uk-margin-large-top'\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"h2\", {\n className: \"text-light\"\n }, \"Danger Zone\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: \"danger-zone\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: \"dz-box uk-clearfix\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: \"uk-float-left\"\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"h5\", null, \"Delete this status\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"p\", null, \"Once you delete a ticket status, there is no going back. Please be certain.\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n className: \"uk-float-right\",\n style: {\n paddingTop: '10px'\n }\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_Button__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n text: 'Delete',\n small: true,\n style: 'danger',\n onClick: function onClick(e) {\n return _this3.showDeleteTicketStatusModal(e, type);\n }\n })))))));\n }\n }]);\n\n return TicketStatusBody;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, \"statusName\", [mobx__WEBPACK_IMPORTED_MODULE_10__.observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return '';\n }\n}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, \"htmlColor\", [mobx__WEBPACK_IMPORTED_MODULE_10__.observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return '';\n }\n}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, \"slatimer\", [mobx__WEBPACK_IMPORTED_MODULE_10__.observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return '';\n }\n}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, \"isResolved\", [mobx__WEBPACK_IMPORTED_MODULE_10__.observable], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function initializer() {\n return '';\n }\n})), _class2)) || _class;\n\nTicketStatusBody.propTypes = {\n status: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().object.isRequired),\n fetchSettings: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().func.isRequired)\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_redux__WEBPACK_IMPORTED_MODULE_1__.connect)(null, {\n fetchSettings: actions_settings__WEBPACK_IMPORTED_MODULE_3__.fetchSettings\n})(TicketStatusBody));\n\n//# sourceURL=webpack://trudesk/./src/client/containers/Settings/Tickets/ticketStatusBody.jsx?"); /***/ }), @@ -1522,7 +1522,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 37);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! prop-types */ 87);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ 38);\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! mobx-react */ 1122);\n/* harmony import */ var components_Settings_SplitSettingsPanel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! components/Settings/SplitSettingsPanel */ 335);\n/* harmony import */ var components_Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! components/Button */ 39);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! jquery */ 0);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! axios */ 46);\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lib_helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lib/helpers */ 10);\n/* harmony import */ var lib_helpers__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lib_helpers__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var containers_Settings_Tickets_ticketStatusBody__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! containers/Settings/Tickets/ticketStatusBody */ 1299);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _class;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/*\r\n * . .o8 oooo\r\n * .o8 \"888 `888\r\n * .o888oo oooo d8b oooo oooo .oooo888 .ooooo. .oooo.o 888 oooo\r\n * 888 `888\"\"8P `888 `888 d88' `888 d88' `88b d88( \"8 888 .8P'\r\n * 888 888 888 888 888 888 888ooo888 `\"Y88b. 888888.\r\n * 888 . 888 888 888 888 888 888 .o o. )88b 888 `88b.\r\n * \"888\" d888b `V88V\"V8P' `Y8bod88P\" `Y8bod8P' 8\"\"888P' o888o o888o\r\n * ========================================================================\r\n * Author: Chris Brame\r\n * Updated: 6/20/23 3:39 PM\r\n * Copyright (c) 2014-2023. All rights reserved.\r\n */\n\n\n\n\n\n\n\n\n\n\n\nvar TicketStatusContainer = (0,mobx_react__WEBPACK_IMPORTED_MODULE_8__.observer)(_class = /*#__PURE__*/function (_React$Component) {\n _inherits(TicketStatusContainer, _React$Component);\n\n var _super = _createSuper(TicketStatusContainer);\n\n function TicketStatusContainer() {\n _classCallCheck(this, TicketStatusContainer);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(TicketStatusContainer, [{\n key: \"onCreateStatusClicked\",\n value: function onCreateStatusClicked(e) {\n console.log(e);\n }\n }, {\n key: \"onStatusOrderChanged\",\n value: function onStatusOrderChanged(e) {\n var children = jquery__WEBPACK_IMPORTED_MODULE_4___default()(e.target).children('li');\n var arr = [];\n\n for (var i = 0; i < children.length; i++) {\n arr.push(jquery__WEBPACK_IMPORTED_MODULE_4___default()(children[i]).attr('data-key'));\n }\n\n axios__WEBPACK_IMPORTED_MODULE_5___default().put('/api/v2/tickets/status/order', {\n order: arr\n }).then(function (res) {\n console.log(res);\n })[\"catch\"](function (err) {\n var _err$response;\n\n console.log(err);\n lib_helpers__WEBPACK_IMPORTED_MODULE_6___default().UI.showSnackbar(err.message || ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : _err$response.statusText), true);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_Settings_SplitSettingsPanel__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n title: 'Ticket Status',\n subtitle: 'Ticket status sets the state of a ticket. (Active, Pending, Resolved, etc.)',\n rightComponent: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_Button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: 'Create',\n style: 'success',\n flat: true,\n waves: true,\n onClick: function onClick(e) {\n return _this.onCreateStatusClicked(e);\n }\n }),\n menuItems: this.props.statuses ? this.props.statuses.map(function (status) {\n return {\n key: status.get('_id'),\n title: status.get('name'),\n content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"h3\", {\n style: {\n display: 'inline-block'\n }\n }, status.get('name')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", {\n style: {\n display: 'inline-block',\n marginLeft: 5,\n width: 10,\n height: 10,\n background: status.get('htmlColor'),\n borderRadius: 3\n }\n })),\n bodyComponent: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(containers_Settings_Tickets_ticketStatusBody__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n status: status\n })\n };\n }) : [],\n menuDraggable: true,\n menuOnDrag: function menuOnDrag(e) {\n return _this.onStatusOrderChanged(e);\n }\n }));\n }\n }]);\n\n return TicketStatusContainer;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component)) || _class;\n\nTicketStatusContainer.propTypes = {\n statuses: prop_types__WEBPACK_IMPORTED_MODULE_9___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_9___default().object))\n};\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {};\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_redux__WEBPACK_IMPORTED_MODULE_1__.connect)(mapStateToProps, {})(TicketStatusContainer));\n\n//# sourceURL=webpack://trudesk/./src/client/containers/Settings/Tickets/ticketStatusContainer.jsx?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 37);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! prop-types */ 87);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ 38);\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! mobx-react */ 1122);\n/* harmony import */ var components_Settings_SplitSettingsPanel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! components/Settings/SplitSettingsPanel */ 335);\n/* harmony import */ var components_Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! components/Button */ 39);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! jquery */ 0);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! axios */ 46);\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lib_helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lib/helpers */ 10);\n/* harmony import */ var lib_helpers__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lib_helpers__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var containers_Settings_Tickets_ticketStatusBody__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! containers/Settings/Tickets/ticketStatusBody */ 1299);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _class;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/*\r\n * . .o8 oooo\r\n * .o8 \"888 `888\r\n * .o888oo oooo d8b oooo oooo .oooo888 .ooooo. .oooo.o 888 oooo\r\n * 888 `888\"\"8P `888 `888 d88' `888 d88' `88b d88( \"8 888 .8P'\r\n * 888 888 888 888 888 888 888ooo888 `\"Y88b. 888888.\r\n * 888 . 888 888 888 888 888 888 .o o. )88b 888 `88b.\r\n * \"888\" d888b `V88V\"V8P' `Y8bod88P\" `Y8bod8P' 8\"\"888P' o888o o888o\r\n * ========================================================================\r\n * Author: Chris Brame\r\n * Updated: 6/20/23 3:39 PM\r\n * Copyright (c) 2014-2023. All rights reserved.\r\n */\n\n\n\n\n\n\n\n\n\n\n\nvar TicketStatusContainer = (0,mobx_react__WEBPACK_IMPORTED_MODULE_8__.observer)(_class = /*#__PURE__*/function (_React$Component) {\n _inherits(TicketStatusContainer, _React$Component);\n\n var _super = _createSuper(TicketStatusContainer);\n\n function TicketStatusContainer() {\n _classCallCheck(this, TicketStatusContainer);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(TicketStatusContainer, [{\n key: \"onCreateStatusClicked\",\n value: function onCreateStatusClicked(e) {\n console.log(e);\n }\n }, {\n key: \"onStatusOrderChanged\",\n value: function onStatusOrderChanged(e) {\n var children = jquery__WEBPACK_IMPORTED_MODULE_4___default()(e.target).children('li');\n var arr = [];\n\n for (var i = 0; i < children.length; i++) {\n arr.push(jquery__WEBPACK_IMPORTED_MODULE_4___default()(children[i]).attr('data-key'));\n }\n\n axios__WEBPACK_IMPORTED_MODULE_5___default().put('/api/v1/tickets/status/order', {\n order: arr\n }).then(function (res) {\n console.log(res);\n })[\"catch\"](function (err) {\n var _err$response;\n\n console.log(err);\n lib_helpers__WEBPACK_IMPORTED_MODULE_6___default().UI.showSnackbar(err.message || ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : _err$response.statusText), true);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_Settings_SplitSettingsPanel__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n title: 'Ticket Status',\n subtitle: 'Ticket status sets the state of a ticket. (Active, Pending, Resolved, etc.)',\n rightComponent: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(components_Button__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n text: 'Create',\n style: 'success',\n flat: true,\n waves: true,\n onClick: function onClick(e) {\n return _this.onCreateStatusClicked(e);\n }\n }),\n menuItems: this.props.statuses ? this.props.statuses.map(function (status) {\n return {\n key: status.get('_id'),\n title: status.get('name'),\n content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"h3\", {\n style: {\n display: 'inline-block'\n }\n }, status.get('name')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", {\n style: {\n display: 'inline-block',\n marginLeft: 5,\n width: 10,\n height: 10,\n background: status.get('htmlColor'),\n borderRadius: 3\n }\n })),\n bodyComponent: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(containers_Settings_Tickets_ticketStatusBody__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n status: status\n })\n };\n }) : [],\n menuDraggable: true,\n menuOnDrag: function menuOnDrag(e) {\n return _this.onStatusOrderChanged(e);\n }\n }));\n }\n }]);\n\n return TicketStatusContainer;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component)) || _class;\n\nTicketStatusContainer.propTypes = {\n statuses: prop_types__WEBPACK_IMPORTED_MODULE_9___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_9___default().object))\n};\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {};\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_redux__WEBPACK_IMPORTED_MODULE_1__.connect)(mapStateToProps, {})(TicketStatusContainer));\n\n//# sourceURL=webpack://trudesk/./src/client/containers/Settings/Tickets/ticketStatusContainer.jsx?"); /***/ }), diff --git a/public/js/5.js.gz b/public/js/5.js.gz index 496398582..b52193f81 100644 Binary files a/public/js/5.js.gz and b/public/js/5.js.gz differ diff --git a/src/client/containers/Settings/Tickets/ticketStatusBody.jsx b/src/client/containers/Settings/Tickets/ticketStatusBody.jsx index 3a4fd4b10..d2219bcae 100644 --- a/src/client/containers/Settings/Tickets/ticketStatusBody.jsx +++ b/src/client/containers/Settings/Tickets/ticketStatusBody.jsx @@ -14,9 +14,11 @@ import React from 'react' import PropTypes from 'prop-types' +import { connect } from 'react-redux' import { observer } from 'mobx-react' import Input from 'components/Input' import { makeObservable, observable } from 'mobx' +import { fetchSettings } from 'actions/settings' import ColorSelector from 'components/ColorSelector' import Button from 'components/Button' import EnableSwitch from 'components/Settings/EnableSwitch' @@ -59,8 +61,8 @@ class TicketStatusBody extends React.Component { api.tickets .updateStatus({ id, name, htmlColor, isResolved, slatimer }) .then(res => { - console.log(res) helpers.UI.showSnackbar('Status updated') + this.props.fetchSettings() }) .catch(e => { console.log(e) @@ -147,7 +149,8 @@ class TicketStatusBody extends React.Component { } TicketStatusBody.propTypes = { - status: PropTypes.object.isRequired + status: PropTypes.object.isRequired, + fetchSettings: PropTypes.func.isRequired } -export default TicketStatusBody +export default connect(null, { fetchSettings })(TicketStatusBody) diff --git a/src/client/containers/Settings/Tickets/ticketStatusContainer.jsx b/src/client/containers/Settings/Tickets/ticketStatusContainer.jsx index d92b2d03a..c3ca1da80 100644 --- a/src/client/containers/Settings/Tickets/ticketStatusContainer.jsx +++ b/src/client/containers/Settings/Tickets/ticketStatusContainer.jsx @@ -36,7 +36,7 @@ class TicketStatusContainer extends React.Component { for (let i = 0; i < children.length; i++) arr.push($(children[i]).attr('data-key')) axios - .put('/api/v2/tickets/status/order', { order: arr }) + .put('/api/v1/tickets/status/order', { order: arr }) .then(res => { console.log(res) }) diff --git a/src/controllers/api/v1/routes.js b/src/controllers/api/v1/routes.js index b1be38e2c..fc028894b 100644 --- a/src/controllers/api/v1/routes.js +++ b/src/controllers/api/v1/routes.js @@ -58,6 +58,7 @@ module.exports = function (middleware, router, controllers) { router.post('/api/v1/tickets/status/create', apiv1, isAdmin, apiCtrl.tickets.createStatus) router.get('/api/v1/tickets/status', apiv1, apiCtrl.tickets.getStatus) + router.put('/api/v1/tickets/status/order', apiv1, isAdmin, apiCtrl.tickets.updateStatusOrder) router.put('/api/v1/tickets/status/:id', apiv1, isAdmin, apiCtrl.tickets.updateStatus) router.post('/api/v1/tickets/status/:id/delete', apiv1, isAdmin, apiCtrl.tickets.deleteStatus) diff --git a/src/controllers/api/v1/tickets.js b/src/controllers/api/v1/tickets.js index 7024c8282..dc867f3fa 100644 --- a/src/controllers/api/v1/tickets.js +++ b/src/controllers/api/v1/tickets.js @@ -1389,7 +1389,7 @@ apiTickets.getStatus = function (req, res) { ticketStatusSchema.find({}, function (err, status) { if (err) return res.status(400).json({ success: false, error: err.message }) - status = _.sortBy(status, ['uid']) + status = _.sortBy(status, 'order') return res.json({ success: true, status: status }) }) @@ -1414,12 +1414,40 @@ apiTickets.updateStatus = function (req, res) { status.save(function (err, p) { if (err) return res.status(400).json({ success: false, error: err.message }) - console.log(p) + return res.json({ success: true, status: p }) }) }) } +apiTickets.updateStatusOrder = function (req, res) { + var data = req.body + if (!data || !data.order) return res.status(400).json({ success: false, error: 'Invalid Post Data' }) + + var order = data.order + var ticketStatusSchema = require('../../../models/ticketStatus') + ticketStatusSchema.find({}, function (err, statuses) { + if (err) return res.status(400).json({ success: false, error: err }) + + async.eachSeries( + statuses, + function (item, done) { + var idx = _.findIndex(order, id => item._id.toString() === id) + item.order = idx + item.save(done) + }, + function (err) { + if (err) { + winston.debug(err) + return res.status(500).json({ success: false, error: err }) + } + + return res.status(200).json({ success: true }) + } + ) + }) +} + apiTickets.deleteStatus = function (req, res) { var id = req.params.id diff --git a/src/migration/index.js b/src/migration/index.js index b0ef1636e..3d081fa79 100644 --- a/src/migration/index.js +++ b/src/migration/index.js @@ -213,6 +213,7 @@ function createTicketStatus (callback) { name: 'New', htmlColor: '#29b955', uid: 0, + order: 1, isResolved: false, slatimer: true, isLocked: true @@ -221,6 +222,7 @@ function createTicketStatus (callback) { name: 'Open', htmlColor: '#d32f2f', uid: 1, + order: 2, isResolved: false, slatimer: true, isLocked: true @@ -229,6 +231,7 @@ function createTicketStatus (callback) { name: 'Pending', htmlColor: '#2196F3', uid: 2, + order: 3, isResolved: false, slatimer: false, isLocked: true @@ -237,6 +240,7 @@ function createTicketStatus (callback) { name: 'Closed', htmlColor: '#CCCCCC', uid: 3, + order: 4, isResolved: true, slatimer: false, isLocked: true diff --git a/src/models/ticketStatus.js b/src/models/ticketStatus.js index a00812e4d..24c56bedd 100644 --- a/src/models/ticketStatus.js +++ b/src/models/ticketStatus.js @@ -25,7 +25,7 @@ var statusSchema = mongoose.Schema( name: { type: String, required: true, unique: true }, htmlColor: { type: String, default: '#29b955' }, uid: { type: Number, unique: true, index: true }, - order: { type: Number, unique: true, index: true }, + order: { type: Number, index: true }, slatimer: { type: Boolean, default: true }, isResolved: { type: Boolean, default: false }, isLocked: { type: Boolean, default: false } @@ -70,6 +70,7 @@ statusSchema.statics.getStatus = function (_id, callback) { statusSchema.statics.getStatus = function (callback) { return this.model(COLLECTION) .find({}) + .sort({ order: 1 }) .exec(callback) } diff --git a/src/settings/settingsUtil.js b/src/settings/settingsUtil.js index 654891679..a87a54af9 100644 --- a/src/settings/settingsUtil.js +++ b/src/settings/settingsUtil.js @@ -138,8 +138,8 @@ util.getSettings = async callback => { content.data.priorities = _.sortBy(priorities, ['migrationNum', 'name']) const status = await statusSchema.getStatus() - content.data.status = _.sortBy(status,'_id') - + content.data.status = _.sortBy(status, 'order') + const templateSchema = require('../models/template') const templates = await templateSchema.find({}) content.data.mailTemplates = _.sortBy(templates, 'name')