{"version":3,"sources":["webpack:///./src/_features/modules/tasks/tasks.vue?9b91","webpack:///./src/_features/modules/tasks/tasks.vue?f71a","webpack:///./src/_features/modules/tasks/tasks.vue?9978","webpack:///./src/_features/modules/tasks/tasks.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","columnKey","header","columns","selected","staticRenderFns","column","$validator","items","errors","Object","assign","length","$route","query","t","projectID","payload","updateTask","fetchData","onCancel","taskID","params","deleteTask","console","error","taskName","description","employeeID","dueDate","format","fetchTasks","labelName","fetchEmployees","fetchingInterval","setInterval","actions","title","action","onSelectEdit","onUpdate","label","field","type","validate","renderHtml","value","employees","find","a","id","displayName","options","map","onSelectDelete","clearInterval","components","EditableTable","component"],"mappings":"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","file":"js/chunk-2d0b2749.db85fc8d.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('EditableTable',{attrs:{\"columnKey\":_vm.columnKey,\"headers\":_vm.header,\"columns\":_vm.columns,\"selected\":_vm.selected}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport { Action, Getter } from \"vuex-class\";\r\nimport moment from \"moment\";\r\n\r\nimport { dispatchHideNav } from \"@/_shared/actions\";\r\n\r\nimport EditableTable, { TableHeader, Option } from \"@/_shared/tables/editable-table.vue\";\r\nimport { Task, Employee } from \"@/store/modules/tasks\";\r\n\r\n@Component({\r\n components: {\r\n EditableTable\r\n }\r\n})\r\nexport default class TaskList extends Vue {\r\n @Action(\"getTasksAction\") private fetchTasks!: (params: any) => void;\r\n @Action(\"getEmployeesAction\") private fetchEmployees!: (params: any) => void;\r\n @Action(\"newTasksAction\") private updateTask!: (params: any) => void;\r\n @Action(\"deleteTask\") private deleteTask!: (params: any) => void;\r\n\r\n @Getter(\"allTasks\") private columns!: Task[];\r\n @Getter(\"allEmployees\") private employees!: Employee[];\r\n\r\n private columnKey: string = \"taskID\";\r\n private header: TableHeader[] = [];\r\n\r\n private fetchingInterval!: number;\r\n private selected: Task | null = null;\r\n\r\n private async onUpdate(column: Task) {\r\n const { errors: { items } } = await this.$validator;\r\n if (Object.assign(items).length) {\r\n return false;\r\n }\r\n const { query: { t, projectID } }: any = this.$route;\r\n const payload: any = {\r\n ...column,\r\n t,\r\n projectID,\r\n };\r\n await this.updateTask(payload);\r\n this.fetchData();\r\n this.onCancel();\r\n }\r\n\r\n private async onSelectDelete(column: Task) {\r\n try {\r\n const { query: { t, projectID } }: any = this.$route;\r\n const { taskID } = column;\r\n const params: any = {\r\n t,\r\n projectID,\r\n taskID,\r\n };\r\n await this.deleteTask(params);\r\n this.fetchData();\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n private onCancel() {\r\n this.selected = null;\r\n }\r\n\r\n private onSelectEdit(column: Task) {\r\n const { taskID, taskName, description, employeeID } = column;\r\n const dueDate = moment(column.dueDate).format(\"YYYY-MM-DD\");\r\n\r\n this.selected = {\r\n employeeID,\r\n taskID,\r\n taskName,\r\n description,\r\n dueDate,\r\n };\r\n }\r\n\r\n private fetchData() {\r\n const { query: { projectID, t } }: any = this.$route;\r\n this.fetchTasks({ projectID, t });\r\n }\r\n\r\n private async mounted() {\r\n dispatchHideNav(this);\r\n const { query: { projectID, t, labelName } }: any = this.$route;\r\n\r\n await this.fetchEmployees({ projectID, t });\r\n\r\n this.fetchData();\r\n this.fetchingInterval = setInterval((): void => this.fetchData(), 3000);\r\n\r\n this.header = [\r\n {\r\n actions: [\r\n {\r\n title: \"Edit\",\r\n action: this.onSelectEdit,\r\n },\r\n {\r\n title: \"Save\",\r\n action: this.onUpdate,\r\n },\r\n ],\r\n },\r\n {\r\n label: labelName || \"Name\",\r\n field: \"taskName\",\r\n type: \"text\",\r\n validate: \"required\",\r\n },\r\n {\r\n label: \"Status\",\r\n field: \"status\",\r\n renderHtml: (value: any) => value,\r\n type: \"hidden\",\r\n },\r\n {\r\n label: \"Description\",\r\n field: \"description\",\r\n type: \"text\",\r\n },\r\n {\r\n label: \"Employee\",\r\n field: \"employeeID\",\r\n type: \"select\",\r\n format: value => {\r\n const { displayName }: any = this.employees.find(a => a.id === value);\r\n return displayName;\r\n },\r\n options: this.employees.map(({ id, displayName }: Employee): Option => ({\r\n value: id,\r\n label: displayName,\r\n })),\r\n },\r\n {\r\n label: \"Due Date\",\r\n field: \"dueDate\",\r\n format: value => moment(value).format(\"YYYY-MM-DD\"),\r\n type: \"date\",\r\n validate: \"required\",\r\n },\r\n {\r\n actions: [\r\n {\r\n title: \"Delete\",\r\n action: this.onSelectDelete\r\n },\r\n {\r\n title: \"Cancel\",\r\n action: this.onCancel\r\n },\r\n ],\r\n },\r\n ];\r\n }\r\n\r\n private beforeDestroy() {\r\n clearInterval(this.fetchingInterval);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tasks.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tasks.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./tasks.vue?vue&type=template&id=ad86dd00&scoped=true&\"\nimport script from \"./tasks.vue?vue&type=script&lang=ts&\"\nexport * from \"./tasks.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ad86dd00\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}