| 1 |
import{R as t,a as e,b as a,j as s,f as r,c as i,g as o}from"../../../../reportHelpers.js?ver=2.1.0";import{S as n}from"../../../../_StatCard.js?ver=2.1.0";import{A as l}from"../../../../UpgradeUrl.js?ver=2.1.0";import{_ as d,I as p}from"../../../../descriptionToPlainText.js?ver=2.1.0";import{aO as c,aP as m,S as u,T as y,$ as v,a5 as _,Z as b,H as f,ax as g,a8 as h,a9 as k,a0 as A,a7 as C,_ as R,a1 as $}from"../../../../vendor.js?ver=2.1.0";import{A as T}from"../../../../_AssigneeProgressList.js?ver=2.1.0";import"../../../../vendor-element-plus.js?ver=2.1.0";const j={name:"RecentActivityFeed",components:{ReportPanel:t,ActivityListItem:l},props:{title:{type:String,default:"Recent Activity"},activities:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1}},emits:["open-task"]},w={class:"fbs_report_activity_feed"},x={class:"fbs_report_activity_feed--text"},I={class:"fbs_report_activity_feed--actor"},S={class:"fbs_report_activity_feed--action"},B=["onClick"],P={key:0,class:"fbs_report_activity_feed--empty"};const M=d(j,[["render",function(t,e,a,s,r,i){const o=c("ActivityListItem"),n=c("ReportPanel"),l=m("loading");return u(),y(n,{title:a.title},{default:v(()=>[_((u(),b("div",w,[(u(!0),b(f,null,g(a.activities,(e,s)=>(u(),y(o,{key:e.id,last:s===a.activities.length-1},{title:v(()=>[A("span",x,[A("span",I,k(e.actor),1),A("span",S,k(t.$t(e.action)),1),A("button",{type:"button",class:"fbs_report_activity_feed--subject",onClick:a=>t.$emit("open-task",e)},k(e.subject),9,B)])]),date:v(()=>[h(k(e.date),1)]),_:2},1032,["last"]))),128)),a.activities.length||a.loading?C("",!0):(u(),b("p",P,k(t.$t("No activity found")),1))])),[[l,a.loading]])]),_:1},8,["title"])}]]),F={name:"ActivityTypeBreakdown",components:{ReportPanel:t,Icons:p},props:{title:{type:String,default:"Activity by Type"},items:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1}},computed:{max(){return this.items.reduce((t,e)=>Math.max(t,e.value||0),0)}},methods:{percent(t){return this.max?Math.round((t.value||0)/this.max*100):0}}},L={class:"fbs_report_activity_types"},O={class:"fbs_report_activity_types--label"},U={class:"fbs_report_activity_types--track"},N={class:"fbs_report_activity_types--count"},V={key:0,class:"fbs_report_activity_types--empty"};const q={class:"fbs_report_page"},H={class:"fbs_report_page--stats"},E={class:"fbs_report_page--row fbs_report_page--row-even"},Z={class:"fbs_report_page--stack"};const z=d({name:"ReportActivity",components:{ReportFilterBar:e,StatCard:n,RecentActivityFeed:M,AssigneeProgressList:T,ActivityTypeBreakdown:d(F,[["render",function(t,e,a,s,r,i){const o=c("Icons"),n=c("ReportPanel"),l=m("loading");return u(),y(n,{title:a.title},{default:v(()=>[_((u(),b("div",L,[(u(!0),b(f,null,g(a.items,e=>(u(),b("div",{key:e.key,class:"fbs_report_activity_types--row"},[A("span",O,[R(o,{"icon-name":e.icon},null,8,["icon-name"]),h(" "+k(t.$t(e.label)),1)]),A("span",U,[A("span",{class:"fbs_report_activity_types--fill",style:$({width:i.percent(e)+"%"})},null,4)]),A("span",N,k(e.value),1)]))),128)),a.items.length||a.loading?C("",!0):(u(),b("p",V,k(t.$t("No activity to show.")),1))])),[[l,a.loading]])]),_:1},8,["title"])}]])},data:()=>({loading:!1,boards:[],report:s(),filters:o()}),computed:{statCards(){const t=this.report.stats;return[{key:"created",label:"Tasks Created",value:t.tasksCreated},{key:"stage",label:"Stage Changed",value:t.stageChanged},{key:"comments",label:"Comments Added",value:t.commentsAdded},{key:"subtasks",label:"Subtasks Created",value:t.subtasksCreated},{key:"attachments",label:"Attachments Added",value:t.attachmentsAdded}]}},watch:{filters:{deep:!0,handler(){this.fetchReport()}}},created(){this.requests=i()},mounted(){this.getBoards(),this.fetchReport()},methods:{getBoards(){r(this.$get).then(t=>{this.boards=t}).catch(()=>{this.boards=[]})},fetchReport(){this.loading=!0;const t=this.requests.next();this.$get("reports/activity",a(this.filters)).then(e=>{t.isCurrent()&&(this.report=e.report||s())}).catch(e=>{t.isCurrent()&&(this.report=s(),this.$handleError(e))}).finally(()=>{t.isCurrent()&&(this.loading=!1)})},openMember(t){t&&t.id&&this.$router.push({name:"member",params:{user_id:t.id}})},openTask(t){t&&t.boardId&&t.taskId&&this.$router.push({name:"task",params:{id:t.boardId,taskIdName:`${t.taskId}-${t.taskSlug}`}})}}},[["render",function(t,e,a,s,r,i){const o=c("ReportFilterBar"),n=c("StatCard"),l=c("RecentActivityFeed"),d=c("AssigneeProgressList"),p=c("ActivityTypeBreakdown");return u(),b("div",q,[R(o,{modelValue:r.filters,"onUpdate:modelValue":e[0]||(e[0]=t=>r.filters=t),boards:r.boards,loading:r.loading,"show-export":!1},null,8,["modelValue","boards","loading"]),A("div",H,[(u(!0),b(f,null,g(i.statCards,t=>(u(),y(n,{key:t.key,label:t.label,value:t.value},null,8,["label","value"]))),128))]),A("div",E,[R(l,{activities:r.report.recent,loading:r.loading,onOpenTask:i.openTask},null,8,["activities","loading","onOpenTask"]),A("div",Z,[R(d,{title:t.$t("Activity by User"),members:r.report.byUser,metric:"count",loading:r.loading,onOpenMember:i.openMember},null,8,["title","members","loading","onOpenMember"]),R(p,{items:r.report.byType,loading:r.loading},null,8,["items","loading"])])])])}]]);export{z as default}; |