PluginProbe
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration / 2.2.0
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration v2.2.0
2.2.0 2.1.0 2.0.15 2.0.12 2.0.10 2.0.4 2.0.1 2.0.0 1.95.3 1.95.2 1.95 1.91.6 trunk 1.11 1.12 1.13 1.20 1.21 1.22 1.23 1.30 1.31 1.32 1.35 1.40 All 43 releases
fluent-boards / assets / admin / Components / Report / Tasks / Tasks.js

Tasks.js in FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration 2.2.0, at assets/admin/Components/Report/Tasks/Tasks.js

2 lines 6.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import{R as e,a as t,d as s,r,b as a,h as i,f as o,c as l,s as n,i as d}from"../../../../reportHelpers.js?ver=2.2.0";import{H as p}from"../../../../_HorizontalBarPanel.js?ver=2.2.0";import{A as m}from"../../../../_AssigneeProgressList.js?ver=2.2.0";import{P as h}from"../../../../_PriorityDistribution.js?ver=2.2.0";import{at as b,ar as c,L as u,a as g}from"../../../../vendor-element-plus.js?ver=2.2.0";import{aO as f,aP as _,S as w,T as y,$ as k,a5 as $,_ as v,a0 as T,a9 as A,a2 as P,a8 as C,a7 as R,Z as B}from"../../../../vendor.js?ver=2.2.0";import{_ as I,I as E}from"../../../../descriptionToPlainText.js?ver=2.2.0";import"../../../../chartPalette.js?ver=2.2.0";import"../../../../vendor-echarts.js?ver=2.2.0";import"../../../../UpgradeUrl.js?ver=2.2.0";const S={name:"RecentlyCompletedTasks",components:{ReportPanel:e,Icons:E},props:{title:{type:String,default:"Recently Completed Tasks"},tasks:{type:Array,default:()=>[]},showViewAll:{type:Boolean,default:!0},loading:{type:Boolean,default:!1},showEstimatedTime:{type:Boolean,default:!1}},emits:["view-all","open-task","export"],methods:{priorityLabel:e=>({urgent:"Urgent",high:"High",medium:"Medium",low:"Low"}[e]||"None"),initials:e=>(e||"").split(" ").filter(Boolean).slice(0,2).map(e=>e.charAt(0).toUpperCase()).join("")}},j={class:"fbs_report_completed--actions"},x={class:"fbs_report_completed--task"},L=["title","onClick"],V={class:"fbs_report_completed--board"},H={class:"icon"},M={class:"label"},U={class:"fbs_report_completed--assignee"};const O={class:"fbs_report_page"},q={class:"fbs_report_page--row fbs_report_page--row-split"},z={class:"fbs_report_page--row fbs_report_page--row-split"};const D=I({name:"ReportTasks",components:{ReportFilterBar:t,HorizontalBarPanel:p,AssigneeProgressList:m,PriorityDistribution:h,RecentlyCompletedTasks:I(S,[["render",function(e,t,s,r,a,i){const o=g,l=f("Icons"),n=c,d=u,p=b,m=f("ReportPanel"),h=_("loading");return w(),y(m,{title:s.title},{actions:k(()=>[T("div",j,[v(o,{disabled:s.loading,title:s.loading?e.$t("Loading report…"):"",onClick:t[0]||(t[0]=t=>e.$emit("export"))},{default:k(()=>[C(A(e.$t("Export")),1)]),_:1},8,["disabled","title"]),s.showViewAll?(w(),y(o,{key:0,link:"",class:"fbs_report_completed--view-all no-underline hover-underline fbs_mr_0 fbs_ml_0",onClick:t[1]||(t[1]=t=>e.$emit("view-all"))},{default:k(()=>[C(A(e.$t("View All")),1)]),_:1})):R("",!0)])]),default:k(()=>[$((w(),y(p,{data:s.tasks,class:"fbs_report_completed"},{default:k(()=>[v(n,{prop:"title",label:e.$t("Task"),sortable:"","min-width":"240"},{default:k(t=>[T("div",x,[v(l,{"icon-name":"task-status-complete",class:"fbs_report_completed--check"}),T("button",{type:"button",class:"fbs_report_completed--title",title:t.row.title,onClick:s=>e.$emit("open-task",t.row)},A(t.row.title),9,L)])]),_:1},8,["label"]),v(n,{prop:"board",label:e.$t("Board"),sortable:"","min-width":"170"},{default:k(e=>[T("div",V,[T("span",null,A(e.row.board),1)])]),_:1},8,["label"]),v(n,{prop:"stage",label:e.$t("Stage"),sortable:"","min-width":"150"},null,8,["label"]),v(n,{prop:"priority",label:e.$t("Priority"),sortable:"","min-width":"140"},{default:k(t=>[T("span",{class:P(["fbs_priority_badge fbs_priority_badge_selected","fbs_priority_badge_"+t.row.priority])},[T("span",H,[v(l,{"icon-name":"priority-"+t.row.priority},null,8,["icon-name"])]),T("span",M,A(e.$t(i.priorityLabel(t.row.priority))),1)],2)]),_:1},8,["label"]),v(n,{prop:"assignee",label:e.$t("Assignee"),sortable:"","min-width":"180"},{default:k(e=>[T("div",U,[v(d,{size:24,src:e.row.assigneeAvatar},{default:k(()=>[C(A(i.initials(e.row.assignee)),1)]),_:2},1032,["src"]),T("span",null,A(e.row.assignee),1)])]),_:1},8,["label"]),s.showEstimatedTime?(w(),y(n,{key:0,prop:"estimated",label:e.$t("Est."),sortable:"",width:"110",align:"right"},{default:k(e=>[C(A(e.row.estimated||"---"),1)]),_:1},8,["label"])):R("",!0)]),_:1},8,["data"])),[[h,s.loading]])]),_:1},8,["title"])}]])},data(){return{loading:!1,boards:[],report:i(),filters:d(this.$route.query)}},computed:{hasTimeTracking(){var e,t,s;return"yes"===(null==(s=null==(t=null==(e=this.appVars)?void 0:e.advanced_modules)?void 0:t.timeTracking)?void 0:s.enabled)},canShowEstimatedTime(){return this.appVars.has_pro&&this.hasTimeTracking},labelItems(){return this.report.byLabel.map(e=>({label:e.title,value:e.total,color:e.color}))}},watch:{"filters.boardId"(e){n(this.$router,this.$route,e)},"$route.query.board_id"(e){const t=Array.isArray(e)?e[0]:e;String(t||"")!==String(this.filters.boardId||"")&&(this.filters.boardId=t||"")},filters:{deep:!0,handler(){this.fetchReport()}}},created(){this.requests=l()},mounted(){this.getBoards(),this.fetchReport()},methods:{getBoards(){o(this.$get).then(e=>{this.boards=e}).catch(()=>{this.boards=[]})},fetchReport(){this.loading=!0;const e=this.requests.next();this.$get("reports/tasks",a(this.filters)).then(t=>{e.isCurrent()&&(this.report=t.report||i())}).catch(t=>{e.isCurrent()&&(this.report=i(),this.$handleError(t))}).finally(()=>{e.isCurrent()&&(this.loading=!1)})},exportReport(){if(this.loading)return;const e={urgent:"Urgent",high:"High",medium:"Medium",low:"Low"},t=[this.$t("Task"),this.$t("Board"),this.$t("Stage"),this.$t("Priority"),this.$t("Assignee")],a=this.report.recentlyCompleted.map(t=>{const s=[t.title,t.board,t.stage,this.$t(e[t.priority]||"None"),t.assignee];return this.canShowEstimatedTime&&s.push(t.estimated||"---"),s});this.canShowEstimatedTime&&t.push(this.$t("Est."));const i=[t,...a];s(r("fluent-boards-tasks",this.filters),i)},openMember(e){e&&e.id&&this.$router.push({name:"member",params:{user_id:e.id}})},openTask(e){e&&e.boardId&&this.$router.push({name:"task",params:{id:e.boardId,taskIdName:`${e.id}-${e.slug}`}})},viewAllCompleted(){this.filters.boardId?this.$router.push({name:"board",params:{id:this.filters.boardId}}):this.$router.push({name:"boards"})}}},[["render",function(e,t,s,r,a,i){const o=f("ReportFilterBar"),l=f("HorizontalBarPanel"),n=f("AssigneeProgressList"),d=f("PriorityDistribution"),p=f("RecentlyCompletedTasks");return w(),B("div",O,[v(o,{modelValue:a.filters,"onUpdate:modelValue":t[0]||(t[0]=e=>a.filters=e),boards:a.boards,loading:a.loading,"show-export":!1},null,8,["modelValue","boards","loading"]),T("div",q,[v(l,{title:e.$t("Tasks by Stage"),items:a.report.byStage,loading:a.loading},null,8,["title","items","loading"]),v(n,{title:e.$t("Tasks by Assignee"),members:a.report.byAssignee,loading:a.loading,onOpenMember:i.openMember},null,8,["title","members","loading","onOpenMember"])]),T("div",z,[v(l,{title:e.$t("Tasks by Label"),items:i.labelItems,loading:a.loading},null,8,["title","items","loading"]),v(d,{items:a.report.priority.items,total:a.report.priority.total,loading:a.loading},null,8,["items","total","loading"])]),v(p,{tasks:a.report.recentlyCompleted,loading:a.loading,"show-estimated-time":i.canShowEstimatedTime,onViewAll:i.viewAllCompleted,onOpenTask:i.openTask,onExport:i.exportReport},null,8,["tasks","loading","show-estimated-time","onViewAll","onOpenTask","onExport"])])}]]);export{D as default};
2