(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[36],{ /***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Task/TaskList.vue?vue&type=script&lang=js": /*!*********************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Task/TaskList.vue?vue&type=script&lang=js ***! \*********************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _lib_componentSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/componentSettings */ \"./src/lib/componentSettings.js\");\n/* harmony import */ var _lib_urlHelpers_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/lib/urlHelpers.js */ \"./src/lib/urlHelpers.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'TaskList',\n props: {\n prepopulatedList: {\n type: Array\n },\n selectedUserProp: {\n type: Number\n },\n hideToolbar: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n listData: [],\n projectList: [],\n search: '',\n loading: false,\n headers: [{\n value: 'UserId',\n text: 'MSP User',\n sortable: true\n }, {\n value: 'summary',\n text: 'Event Summary',\n sortable: true\n }, {\n value: 'Contact',\n text: 'Contact',\n sortable: true\n }, {\n value: 'dueDate',\n text: 'Due Date',\n sortable: true\n }, {\n value: 'status',\n text: 'Status',\n sortable: true\n }],\n userList: [],\n settings: {\n version: 2\n }\n };\n },\n mounted() {\n console.debug('TaskList: mounted', this.$options.name); // unique list data name\n const settings = _lib_componentSettings__WEBPACK_IMPORTED_MODULE_0__[\"default\"].loadSettings(this);\n if (settings) {\n this.settings = settings; // mutation will trigger the watch\n } else {\n _lib_componentSettings__WEBPACK_IMPORTED_MODULE_0__[\"default\"].saveSettings(this); // or save the defaults\n }\n this.$store.dispatch('User/pullData').then(data => {\n this.userList = data;\n });\n this.$store.dispatch('Project/pullData').then(pdata => {\n this.projectList = pdata;\n });\n this.populate();\n },\n computed: {},\n watch: {\n settings: {\n // watch real-time filters and trigger populate()\n deep: true,\n handler() {\n _lib_componentSettings__WEBPACK_IMPORTED_MODULE_0__[\"default\"].saveSettings(this);\n this.populate();\n }\n },\n prepopulatedList: function () {\n this.populate();\n },\n selectedUserProp: function () {\n this.populate();\n }\n },\n methods: {\n translateProject(projectId) {\n var project = this.projectList.find(p => p.id === projectId);\n return project ? project.name : 'All Projects';\n },\n prettyDateAllDayOrNot(item) {\n if (item.allDay) {\n return this.$options.filters.prettyDate(item.start) + ' - All Day';\n } else {\n return this.$options.filters.prettyFullDate(item.start);\n }\n },\n customSearch(currentColumnValue, searchString, rowObject) {\n if (rowObject.summary.indexOf(searchString) !== -1) {\n return true;\n }\n if (this.translateUserId(rowObject.UserId).indexOf(searchString) !== -1) {\n return true;\n }\n if (this.$options.filters.prettyFullDate(rowObject.start).indexOf(searchString) !== -1) {\n return true;\n }\n if (rowObject.Contact && rowObject.Contact.fullName.indexOf(searchString) !== -1) {\n return true;\n }\n return false;\n },\n translateUserId(id) {\n if (this.userList.find(u => u.id === id)) {\n return this.userList.find(u => u.id === id).fullName;\n } else {\n return 'SYSTEM USER';\n }\n },\n goToContact(contactId) {\n this.$store.dispatch('Contact/openContactWithRelatedCPIS', contactId);\n },\n goToTask(row) {\n Object(_lib_urlHelpers_js__WEBPACK_IMPORTED_MODULE_1__[\"resolveAndOpen\"])(this.$router, '/tasks/' + row.id);\n },\n async populate() {\n var data = []; // start with an empty array to populate\n this.listData = [];\n if (!this.prepopulatedList) {\n this.loading = true;\n data = await this.$store.dispatch('Task/pullCompleted');\n if (this.selectedUserProp) {\n data = data.filter(t => t.UserId === this.selectedUserProp);\n }\n this.listData = this.applyFilters(data);\n this.loading = false;\n } else {\n data = this.prepopulatedList; // use provided data instead of making an API call\n this.listData = data;\n }\n },\n applyFilters(data) {\n // copy data between old and new\n return data;\n },\n resetFilters: function () {\n // add code to set filters to their defaults here\n this.populate();\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/Task/TaskList.vue?./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), /***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"57799412-vue-loader-template\"}!./node_modules/vuetify-loader/lib/loader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Task/TaskList.vue?vue&type=template&id=2f73aaad": /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"57799412-vue-loader-template"}!./node_modules/vuetify-loader/lib/loader.js??ref--4!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Task/TaskList.vue?vue&type=template&id=2f73aaad ***! \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\n/* harmony import */ var vuetify_lib_components_VBtn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuetify/lib/components/VBtn */ \"./node_modules/vuetify/lib/components/VBtn/index.js\");\n/* harmony import */ var vuetify_lib_components_VCard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuetify/lib/components/VCard */ \"./node_modules/vuetify/lib/components/VCard/index.js\");\n/* harmony import */ var vuetify_lib_components_VGrid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuetify/lib/components/VGrid */ \"./node_modules/vuetify/lib/components/VGrid/index.js\");\n/* harmony import */ var vuetify_lib_components_VDataTable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vuetify/lib/components/VDataTable */ \"./node_modules/vuetify/lib/components/VDataTable/index.js\");\n/* harmony import */ var vuetify_lib_components_VIcon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuetify/lib/components/VIcon */ \"./node_modules/vuetify/lib/components/VIcon/index.js\");\n/* harmony import */ var vuetify_lib_components_VTextField__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuetify/lib/components/VTextField */ \"./node_modules/vuetify/lib/components/VTextField/index.js\");\n/* harmony import */ var vuetify_lib_components_VToolbar__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vuetify/lib/components/VToolbar */ \"./node_modules/vuetify/lib/components/VToolbar/index.js\");\n/* harmony import */ var vuetify_lib_components_VTooltip__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vuetify/lib/components/VTooltip */ \"./node_modules/vuetify/lib/components/VTooltip/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(vuetify_lib_components_VGrid__WEBPACK_IMPORTED_MODULE_2__[\"VRow\"], [_c(vuetify_lib_components_VGrid__WEBPACK_IMPORTED_MODULE_2__[\"VCol\"], [_c(vuetify_lib_components_VCard__WEBPACK_IMPORTED_MODULE_1__[\"VCard\"], [_c(vuetify_lib_components_VToolbar__WEBPACK_IMPORTED_MODULE_6__[\"VToolbar\"], {\n attrs: {\n dense: \"\",\n dark: \"\",\n flat: \"\",\n color: \"secondary\"\n }\n }, [_vm.prepopulatedList && !_vm.hideToolbar ? _c(vuetify_lib_components_VToolbar__WEBPACK_IMPORTED_MODULE_6__[\"VToolbarTitle\"], {\n staticClass: \"white--text\"\n }, [_vm._v(\"To-Do's\")]) : !_vm.hideToolbar ? _c(vuetify_lib_components_VToolbar__WEBPACK_IMPORTED_MODULE_6__[\"VToolbarTitle\"], {\n staticClass: \"white--text\"\n }, [_vm._v(\"Completed ToDo's\")]) : _vm._e(), _c(vuetify_lib_components_VGrid__WEBPACK_IMPORTED_MODULE_2__[\"VSpacer\"]), _c(vuetify_lib_components_VTextField__WEBPACK_IMPORTED_MODULE_5__[\"VTextField\"], {\n staticClass: \"mb-2 py-0\",\n attrs: {\n \"append-icon\": \"mdi-magnify\",\n label: \"Search\",\n \"single-line\": \"\",\n \"hide-details\": \"\"\n },\n model: {\n value: _vm.search,\n callback: function ($$v) {\n _vm.search = $$v;\n },\n expression: \"search\"\n }\n }), _c(vuetify_lib_components_VTooltip__WEBPACK_IMPORTED_MODULE_7__[\"VTooltip\"], {\n attrs: {\n bottom: \"\"\n },\n scopedSlots: _vm._u([{\n key: \"activator\",\n fn: function ({\n on,\n attrs\n }) {\n return [!_vm.prepopulatedList || !_vm.prepopulatedList.length ? _c(vuetify_lib_components_VBtn__WEBPACK_IMPORTED_MODULE_0__[\"VBtn\"], _vm._g(_vm._b({\n attrs: {\n icon: \"\",\n to: \"/tasks/0\",\n color: \"white\"\n }\n }, \"v-btn\", attrs, false), on), [_c(vuetify_lib_components_VIcon__WEBPACK_IMPORTED_MODULE_4__[\"VIcon\"], [_vm._v(\"mdi-calendar-edit\")])], 1) : _vm._e()];\n }\n }])\n }, [_c(\"span\", [_vm._v(\"Create a To-Do/Appointment\")])])], 1), _c(vuetify_lib_components_VGrid__WEBPACK_IMPORTED_MODULE_2__[\"VRow\"], [_c(vuetify_lib_components_VGrid__WEBPACK_IMPORTED_MODULE_2__[\"VCol\"], [_c(vuetify_lib_components_VDataTable__WEBPACK_IMPORTED_MODULE_3__[\"VDataTable\"], {\n attrs: {\n headers: _vm.headers,\n items: _vm.listData,\n search: _vm.search,\n \"loading-text\": \"Loading...\",\n loading: _vm.loading,\n dense: \"\",\n \"custom-filter\": _vm.customSearch,\n \"items-per-page\": 25\n },\n on: {\n \"click:row\": _vm.goToTask\n },\n scopedSlots: _vm._u([{\n key: `item.summary`,\n fn: function (row) {\n return [_vm._v(\" (\" + _vm._s(_vm.translateProject(row.item.ProjectId)) + \") \" + _vm._s(row.item.summary) + \" \")];\n }\n }, {\n key: `item.start`,\n fn: function (row) {\n return [_vm._v(\" \" + _vm._s(_vm.prettyDateAllDayOrNot(row.item)) + \" \")];\n }\n }, {\n key: `item.UserId`,\n fn: function (row) {\n return [_vm._v(\" \" + _vm._s(_vm.translateUserId(row.item.UserId)) + \" \")];\n }\n }, {\n key: `item.Contact`,\n fn: function (row) {\n return [row.item.Contact ? _c(vuetify_lib_components_VBtn__WEBPACK_IMPORTED_MODULE_0__[\"VBtn\"], {\n attrs: {\n small: \"\",\n depressed: \"\",\n rounded: \"\",\n color: \"indigo lighten-4\"\n },\n on: {\n click: function ($event) {\n return _vm.goToContact(row.item.ContactId);\n }\n }\n }, [_vm._v(\" \" + _vm._s(row.item.Contact.fullName))]) : _vm._e()];\n }\n }, {\n key: `item.taskType`,\n fn: function (row) {\n return [_vm._v(\" \" + _vm._s(_vm._f(\"translateFormSelection\")(row.item.taskType, \"taskTypes\")) + \" \")];\n }\n }, {\n key: `item.status`,\n fn: function (row) {\n return [_c(\"span\", [_vm._v(_vm._s(_vm._f(\"translateFormSelection\")(row.item.status, \"taskStatus\")))]), row.item.status === 284 ? _c(\"span\", [_vm._v(\" @ \" + _vm._s(_vm._f(\"prettyDateTime\")(row.item.completedTime)))]) : _vm._e()];\n }\n }, {\n key: `item.dueDate`,\n fn: function (row) {\n return [_c(\"span\", [_vm._v(_vm._s(_vm._f(\"prettyDate\")(row.item.end)))])];\n }\n }], null, true)\n })], 1)], 1)], 1)], 1)], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/components/Task/TaskList.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%2257799412-vue-loader-template%22%7D!./node_modules/vuetify-loader/lib/loader.js??ref--4!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), /***/ "./src/components/Task/TaskList.vue": /*!******************************************!*\ !*** ./src/components/Task/TaskList.vue ***! \******************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _TaskList_vue_vue_type_template_id_2f73aaad__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TaskList.vue?vue&type=template&id=2f73aaad */ \"./src/components/Task/TaskList.vue?vue&type=template&id=2f73aaad\");\n/* harmony import */ var _TaskList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TaskList.vue?vue&type=script&lang=js */ \"./src/components/Task/TaskList.vue?vue&type=script&lang=js\");\n/* 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\");\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _TaskList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _TaskList_vue_vue_type_template_id_2f73aaad__WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _TaskList_vue_vue_type_template_id_2f73aaad__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"src/components/Task/TaskList.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./src/components/Task/TaskList.vue?"); /***/ }), /***/ "./src/components/Task/TaskList.vue?vue&type=script&lang=js": /*!******************************************************************!*\ !*** ./src/components/Task/TaskList.vue?vue&type=script&lang=js ***! \******************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TaskList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/babel-loader/lib!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib??vue-loader-options!./TaskList.vue?vue&type=script&lang=js */ \"./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Task/TaskList.vue?vue&type=script&lang=js\");\n/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TaskList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]); \n\n//# sourceURL=webpack:///./src/components/Task/TaskList.vue?"); /***/ }), /***/ "./src/components/Task/TaskList.vue?vue&type=template&id=2f73aaad": /*!************************************************************************!*\ !*** ./src/components/Task/TaskList.vue?vue&type=template&id=2f73aaad ***! \************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_57799412_vue_loader_template_node_modules_vuetify_loader_lib_loader_js_ref_4_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TaskList_vue_vue_type_template_id_2f73aaad__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"57799412-vue-loader-template\"}!../../../node_modules/vuetify-loader/lib/loader.js??ref--4!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/babel-loader/lib!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--7!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib??vue-loader-options!./TaskList.vue?vue&type=template&id=2f73aaad */ \"./node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"57799412-vue-loader-template\\\"}!./node_modules/vuetify-loader/lib/loader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/Task/TaskList.vue?vue&type=template&id=2f73aaad\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_57799412_vue_loader_template_node_modules_vuetify_loader_lib_loader_js_ref_4_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TaskList_vue_vue_type_template_id_2f73aaad__WEBPACK_IMPORTED_MODULE_0__[\"render\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return _node_modules_cache_loader_dist_cjs_js_cacheDirectory_node_modules_cache_vue_loader_cacheIdentifier_57799412_vue_loader_template_node_modules_vuetify_loader_lib_loader_js_ref_4_node_modules_cache_loader_dist_cjs_js_ref_13_0_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_7_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TaskList_vue_vue_type_template_id_2f73aaad__WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"]; });\n\n\n\n//# sourceURL=webpack:///./src/components/Task/TaskList.vue?"); /***/ }) }]);