Files
jandl-taskmanager-app/app/dist/js/9841.e3a2f8ac.js
T

2 lines
8.5 KiB
JavaScript

"use strict";(self["webpackChunkjandl"]=self["webpackChunkjandl"]||[]).push([[9841],{18104:function(e,t,s){s.r(t),s.d(t,{default:function(){return Y}});var a=s(56768);const i={ref:"page"};function r(e,t,s,r,n,l){const o=(0,a.g2)("A-team-filter"),d=(0,a.g2)("Z-timeline");return(0,a.uX)(),(0,a.CE)("div",i,[e.$store.getters["tm/isInitialized"]?((0,a.uX)(),(0,a.Wv)(o,{key:0,"split-days":e.calendarData?e.splitDays:null,onFilterChanged:l.onFilterChanged},null,8,["split-days","onFilterChanged"])):(0,a.Q3)("",!0),e.calendarData&&!n.hideCal?((0,a.uX)(),(0,a.Wv)(d,{key:1,"cal-data":e.calendarData,"cal-config":n.calendarConfig,splits:e.splitDays},null,8,["cal-data","cal-config","splits"])):(0,a.Q3)("",!0)],512)}s(83725),s(35019);var n=s(67290),l=s(42807),o=s(56756),d=s(15728);const u={class:"d-flex date-wrapper"},c=["src"],h=["src"];function m(e,t,i,r,m,f){return(0,a.uX)(),(0,a.Wv)(o.L,{class:"px-10 py-8 subheader"},{default:(0,a.k6)(()=>[(0,a.bF)(n.V,{modelValue:m.selectedTeam,"onUpdate:modelValue":t[0]||(t[0]=e=>m.selectedTeam=e),"custom-filter":e.customFilter,"match-any":!0,class:"subheader-input",items:e.teams,"item-title":"name","item-value":"id",label:"Tím",variant:"outlined"},null,8,["modelValue","custom-filter","items"]),(0,a.Lk)("div",u,[(0,a.bF)(l.D,{class:"subheader-icon-button prev",variant:"outlined",onClick:t[1]||(t[1]=e=>f.prevDay())},{default:(0,a.k6)(()=>[(0,a.Lk)("img",{src:s(8322),alt:""},null,8,c)]),_:1}),(0,a.bF)(d.Wx,{modelValue:m.selectedDate,"onUpdate:modelValue":t[2]||(t[2]=e=>m.selectedDate=e),class:"subheader-input disabled",label:"Dátum",variant:"outlined","append-inner-icon":"mdi-calendar-blank-outline"},null,8,["modelValue"]),(0,a.bF)(l.D,{class:"subheader-icon-button next",variant:"outlined",onClick:t[3]||(t[3]=e=>f.nextDay())},{default:(0,a.k6)(()=>[(0,a.Lk)("img",{src:s(85838),alt:""},null,8,h)]),_:1})]),(0,a.bF)(d.Wx,{modelValue:m.time,"onUpdate:modelValue":t[4]||(t[4]=e=>m.time=e),class:"subheader-input disabled",label:"Nenaplánované hodiny",variant:"outlined",disabled:!0},null,8,["modelValue"])]),_:1})}s(52598),s(51339),s(89471);var f=s(81048),_=s(17533),p=s(54860),k=s(60782),g={mixins:[p.A],props:{splitDays:{type:[Array,null],default:()=>null}},emits:["filter-changed"],data(){return{date:new Date,selectedTeam:null,selectedDate:null,time:null,filter:{start:null,end:null,team:null}}},computed:{...(0,k.L8)("auth",["user"]),...(0,k.L8)("tm",["teams"])},watch:{selectedTeam(e){this.filter.team=this.teams.find(t=>t.id==e),this._emitFilterChanged()},splitDays(){this.time=this.splitDays.map(e=>parseFloat(e.unscheduledTime)).reduce((e,t)=>e+t,0)}},mounted(){const e=localStorage.getItem("selectedTeam");this.selectedTeam=e?JSON.parse(e):this.teams[0]?.id,this.$nextTick(()=>this._updateFilters())},methods:{prevDay(){this.date=(0,f.A)(this.date,1),this._updateFilters()},nextDay(){this.date=(0,_.A)(this.date,1),this._updateFilters()},_updateFilters(){this.filter.start=this.date,this.filter.end=this.date,this.selectedDate=String(this.filter.start?.toLocaleDateString("sk-SK")),this._emitFilterChanged()},_emitFilterChanged(){this.filter.start&&this.filter.end&&this.filter.team&&(this.$emit("filter-changed",this.filter),localStorage.setItem("selectedTeam",this.filter.team.id))}}},D=s(71241);const b=(0,D.A)(g,[["render",m],["__scopeId","data-v-f5bf4f8e"]]);var y=b,w=s(66751),v=s(49148),C=s.n(v),F=(s(28743),s(29838),s(91914)),A={computed:{calendarData(){if(!this.subtasks||!this.blockers)return;const e=this._generateBlockers();return{tasks:[...this._generateNonWorking(),...this._generateTasks(),...e.filter(e=>"home_office"!=e.type)],homeoffices:[...e.filter(e=>"home_office"==e.type)]}},splitDays(){const e=[],t={};return this.filter.team.employees.forEach((s,a)=>{const i=C()(this.filter.start),r=this._getRemainingWorkCapacityMinutes(s);let n=0,l=0;this.calendarData.tasks.forEach(e=>{if((e.subtask?.employee_id==s.id||e.blocker?.employee?.id==s.id)&&!("non-working-hours"==e.type||e.subtask?.is_finished||e.blocker?.is_finished||e.isBlocker))if(i.isBefore(C()(),"days"))l+=F.A._getDifferenceInMinutes(e._real_end,e._real_start);else if(i.isSame(C()(),"days")){l+=F.A._getDifferenceInMinutes(e._real_end,e._real_start);const t=C()(e._real_start).isBefore(C()(),"minutes")&&C()(e._real_end).isAfter(C()(),"minutes"),a=C()(e._real_start).isAfter(C()(),"minutes"),i=C()(e._real_start).hour()>=s.work_start&&C()(e._real_start).hour()<=s.work_end;i&&(t?n+=F.A._getDifferenceInMinutes(new Date,e._real_end):a&&(n+=F.A._getDifferenceInMinutes(e._real_end,e._real_start)))}else{const t=C()(e._real_start).hour()>=s.work_start&&C()(e._real_start).hour()<=s.work_end;t&&(n+=F.A._getDifferenceInMinutes(e._real_end,e._real_start)),l+=F.A._getDifferenceInMinutes(e._real_end,e._real_start)}}),this.calendarData.homeoffices.forEach(e=>{e.blocker.employee?.id==s.id&&(t[e.split]=!0)});const o=r-n;e.push({id:a+1,name:s.name,surname:s.surname,employee_id:s.id,date:this.filter.start,fullname:`${s.name} ${s.surname}`,initials:s.name.charAt(0).toUpperCase()+s.surname.charAt(0).toUpperCase(),unscheduledTime:o>0?(o/60).toFixed(1):0,scheduledTime:l>0?(l/60).toFixed(1):0,isHomeoffice:!!t[a+1]})}),e}},methods:{_generateNonWorking(){const e=[],t=new Date(this.filter.start);let s=null;this.calendarConfig.date=t;const{start:a,end:i}=this._getDayStartEnd();return this.filter.team.employees.forEach((t,r)=>{(!s||t.work_start<s)&&(s=t.work_start),e.push({title:"Non working hours",start:a,end:this._setMinutesToDate(60*(t.work_start+.1)),split:r+1,type:"non-working-hours",draggable:!1}),e.push({title:"Non working hours",start:this._setMinutesToDate(60*(t.work_end+.1)),end:i,split:r+1,type:"non-working-hours",draggable:!1})}),this.calendarConfig.scrollHour=s-1,e},_generateTasks(){const e=[],t=C()(this.filter.start).format("DD-MM-YYYY");return this.subtasks.forEach(s=>{let a=null,i=null;this.filter.team.employees.forEach((e,t)=>{e.id==s.employee_id&&(a=t+1,i=e)}),s.timeblocks.forEach(r=>{const n=C()(r.start).format("DD-MM-YYYY");let l="subtask";"office365"==s.type&&(l="office365"),n==t&&e.push({id:s.id,start:new Date(r.start),end:new Date(r.end),master_task:s.master_task,name:i?.name,surname:i?.surname,isWeekend:C()(r.start).day()%6==0,initials:i?.name?.charAt(0)?.toUpperCase()+i?.surname?.charAt(0)?.toUpperCase(),split:a,project_code:s.project_code,type:l,subtask:s,_timeblock_id:r.id,_timeblock_is_finished:r.is_finished,_real_start:new Date(r.start),_real_end:new Date(r.end)})})}),e},_generateBlockers(){const e=[];return this.blockers.forEach(t=>{let s=null,a=null;this.filter.team.employees.forEach((e,i)=>{e.id==t.employee?.id&&(s=i+1,a=e)}),e.push({blocker:t,split:s,start:new Date(t.start),end:new Date(t.end),type:t.type,isBlocker:!0,initials:`${a?.name[0]}${a?.surname[0]}`,color:"#B00020",draggable:!1,isWeekend:C()(t.start).day()%6==0,_real_start:new Date(t.start),_real_end:new Date(t.end)})}),e},_getDayStartEnd(){return{start:this._setMinutesToDate(0),end:this._setMinutesToDate(1439)}},_setMinutesToDate(e,t=new Date(this.filter.start)){return t.setHours(Math.floor(e/60),e%60,0,0),t},_getRemainingWorkCapacityMinutes(e){const t=C()(this.filter.start),s=C()();if(s.isAfter(t,"days"))return 0;if(s.isBefore(t,"days"))return 60*(e.work_end-e.work_start);const a=60*e.work_start,i=60*e.work_end,r=s.diff(C()().startOf("day"),"minutes");return a>r?i-a:i<r?0:i-r}}},T=s(56747),M={components:{ATeamFilter:y,ZTimeline:w.A},mixins:[A,T.A],data(){return{hideCal:!1,filter:null,subtasks:null,blockers:null,calendarConfig:{date:new Date,scrollHour:7}}},computed:{...(0,k.L8)("auth",["user"])},mounted(){this.$events.on("on-subtask-edited",()=>{this.onFilterChanged(this.filter)}),this.$events.on("on-subtask-deleted",()=>{this.onFilterChanged(this.filter)}),this.$events.on("on-blocker-edited",()=>{this.onFilterChanged(this.filter)}),this.$events.on("on-blocker-deleted",()=>{this.onFilterChanged(this.filter)})},unmounted(){this.$events.off("on-subtask-edited"),this.$events.off("on-subtask-deleted"),this.$events.off("on-blocker-edited"),this.$events.off("on-blocker-deleted")},methods:{async onFilterChanged(e){this.filter=e;const t={};e.start&&(t.start=C()(e.start).format("YYYY-MM-DD")),e.end&&(t.end=C()(e.end).format("YYYY-MM-DD")),e.team&&(t.team_id=e.team.id);const s=new URLSearchParams(t).toString();try{const{subtasks:e,blockers:t}=await this.$axios.get_auth(`v1/subtasks?${s}`);this.subtasks=e,this.blockers=t,this.hideCal=!0,setTimeout(()=>{this.hideCal=!1},0)}catch(a){this.$toast.error("Nepodarilo sa nacitat data!")}setTimeout(()=>{this._initScrollListener()},100)}}};const $=(0,D.A)(M,[["render",r],["__scopeId","data-v-3d8d1276"]]);var Y=$}}]);
//# sourceMappingURL=9841.e3a2f8ac.js.map