18 lines
7.0 KiB
JavaScript
18 lines
7.0 KiB
JavaScript
import{bq as D,bH as q,bI as R,bc as u,r as A,e as P,a7 as O,aV as N,u as S,f as $,aW as z,g as G,aY as W,d as Y,A as Z,c as n,D as I,h as E,m as T,ad as M,s as x,b0 as w,b1 as F,a$ as J,a8 as K,Z as B,dd as Q,ab as U,a9 as X,a1 as V,af as _,ae as p,bE as H,am as ee,aP as L,az as te,aB as v,aC as y,aQ as ne,aR as oe,aS as se,aF as ae,bi as ie}from"./bundle.0b839d67.js";import{p as ce}from"./bundle.c3b1b250.js";/**
|
|
* Invoice Ninja (https://invoiceninja.com).
|
|
*
|
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
|
*
|
|
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
|
|
*
|
|
* @license https://www.elastic.co/licensing/elastic-license
|
|
*/function re(){const t=D(),r=q(R);return(l,i)=>{u.processing(),A("POST",P("/api/v1/projects/bulk"),{action:i,ids:[l]}).then(()=>u.success(`${i}d_project`)).finally(()=>{O(["projects"]),r&&t.invalidateQueries([r])})}}/**
|
|
* Invoice Ninja (https://invoiceninja.com).
|
|
*
|
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
|
*
|
|
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
|
|
*
|
|
* @license https://www.elastic.co/licensing/elastic-license
|
|
*/function le(){const t=D();return async(r,l)=>{let i=null;const c=l==null?void 0:l.map(a=>a.client_id);if(c!=null&&c.length){const a=c[0];if(c.some(d=>d!==a))return i}i=[],u.processing();const f=r.map(a=>t.fetchQuery(["/api/v1/tasks","project_tasks",a,"active"],()=>A("GET",P("/api/v1/tasks?project_tasks=:projectId&per_page=100&status=active&without_deleted_clients=true",{projectId:a})),{staleTime:1/0}).then(m=>{const d=m.data.data.filter(h=>!h.invoice_id);i!==null&&(i=[...i,...d])}));return u.dismiss(),await Promise.all(f),i}}const de=["name","task_rate","due_date","public_notes","private_notes","budgeted_hours","entity_state"];function ue(){const[t,r,l,i]=N({entity:"project"});return["name","client","task_rate","due_date","public_notes","private_notes","budgeted_hours","entity_state","archived_at","created_at",t,r,l,i,"documents","is_deleted","number","updated_at","total_hours"]}function pe(){var s;const{t}=S(),{dateFormat:r}=$(),l=z(),i=G(),c=W(),f=Y(),a=Z();ue();const[m,d,h,b]=N({entity:"project"}),C=[{column:"name",id:"name",label:t("name"),format:(e,o)=>n(I,{to:E("/projects/:id",{id:o.id}),renderSpan:i("project",o),children:e})},{column:"client",id:"client_id",label:t("client"),format:(e,o)=>o.client&&n(I,{to:E("/clients/:id",{id:e.toString()}),renderSpan:i("client",o.client),children:o.client.display_name})},{column:"task_rate",id:"task_rate",label:t("task_rate"),format:(e,o)=>{var k,j;return f(e,(k=o.client)==null?void 0:k.country_id,(j=o.client)==null?void 0:j.settings.currency_id)}},{column:"due_date",id:"due_date",label:t("due_date"),format:e=>T(e,r)},{column:"public_notes",id:"public_notes",label:t("public_notes"),format:e=>n(M,{width:"auto",tooltipElement:n("div",{className:"w-full max-h-48 overflow-auto whitespace-normal break-all",children:n("article",{className:x("prose prose-sm",{"prose-invert":a.dark_mode}),dangerouslySetInnerHTML:{__html:w(e)}})}),children:n("span",{children:F(w(e)).slice(0,50)})})},{column:"private_notes",id:"private_notes",label:t("private_notes"),format:e=>n(M,{width:"auto",tooltipElement:n("div",{className:"w-full max-h-48 overflow-auto whitespace-normal break-all",children:n("article",{className:x("prose prose-sm",{"prose-invert":a.dark_mode}),dangerouslySetInnerHTML:{__html:w(e)}})}),children:n("span",{children:F(w(e)).slice(0,50)})})},{column:"budgeted_hours",id:"budgeted_hours",label:t("budgeted_hours"),format:e=>l(e)},{column:"total_hours",id:"current_hours",label:t("total_hours"),format:e=>l(e)},{column:"entity_state",id:"id",label:t("entity_state"),format:(e,o)=>n(J,{entity:o})},{column:"archived_at",id:"archived_at",label:t("archived_at"),format:e=>T(e,r)},{column:"created_at",id:"created_at",label:t("created_at"),format:e=>T(e,r)},{column:m,id:"custom_value1",label:m,format:e=>c("project1",e==null?void 0:e.toString())},{column:d,id:"custom_value2",label:d,format:e=>c("project2",e==null?void 0:e.toString())},{column:h,id:"custom_value3",label:h,format:e=>c("project3",e==null?void 0:e.toString())},{column:b,id:"custom_value4",label:b,format:e=>c("project4",e==null?void 0:e.toString())},{column:"documents",id:"documents",label:t("documents"),format:(e,o)=>o.documents.length},{column:"is_deleted",id:"is_deleted",label:t("is_deleted"),format:(e,o)=>o.is_deleted?t("yes"):t("no")},{column:"number",id:"number",label:t("number")},{column:"updated_at",id:"updated_at",label:t("updated_at"),format:e=>T(e,r)}],g=((s=a==null?void 0:a.react_table_columns)==null?void 0:s.project)||de;return C.filter(e=>g.includes(e.column)).sort((e,o)=>g.indexOf(e.column)-g.indexOf(o.column))}function he(){const[t]=S(),r=K(),l=B(),i=D(),c=re(),f=Q(),{isEditOrShowPage:a}=U({entity:"project",editPageTabs:["documents"]}),m=X(ce),d=e=>{m({...e,id:"",documents:[],number:""}),r("/projects/create?action=clone")},h=e=>{u.processing(),i.fetchQuery(["/api/v1/tasks","project_tasks",e.id,"per_page",100,"status","active"],()=>A("GET",P("/api/v1/tasks?project_tasks=:projectId&per_page=100&status=active&without_deleted_clients=true",{projectId:e.id})),{staleTime:1/0}).then(o=>{u.dismiss();const k=o.data.data.filter(j=>!j.invoice_id);if(!o.data.data.length)return u.error("no_assigned_tasks");f(k,e.client_id,e.id)})},{setChangeTemplateResources:b,setChangeTemplateVisible:C,setChangeTemplateEntityContext:g}=V();return[e=>l("create_invoice")&&n(_,{onClick:()=>h(e),icon:n(p,{element:H}),children:t("invoice_project")}),e=>l("create_project")&&n(_,{onClick:()=>d(e),icon:n(p,{element:ee}),children:t("clone")}),e=>n(_,{onClick:()=>{C(!0),b([e]),g({endpoint:"/api/v1/projects/bulk",entity:"project"})},icon:n(p,{element:L}),children:t("run_template")}),()=>a&&n(te,{withoutPadding:!0}),e=>v(e)===y.Active&&a&&n(_,{onClick:()=>c(e.id,"archive"),icon:n(p,{element:ne}),children:t("archive")}),e=>(v(e)===y.Archived||v(e)===y.Deleted)&&a&&n(_,{onClick:()=>c(e.id,"restore"),icon:n(p,{element:oe}),children:t("restore")}),e=>(v(e)===y.Active||v(e)===y.Archived)&&a&&n(_,{onClick:()=>c(e.id,"delete"),icon:n(p,{element:se}),children:t("delete")})]}const fe=()=>{const[t]=S(),r=Q(),l=le(),i=B(),c=ie(),f=(s,e)=>{if(s&&!s.length)return u.error("no_assigned_tasks");if(!s)return u.error("multiple_client_error");const o=e.length;r(s,s[0].client_id,e[o-1])},a=s=>s.some(({documents:e})=>e.length),m=s=>s.flatMap(({documents:e})=>e.map(({id:o})=>o)),d=(s,e)=>{const o=m(s);c(o,"download"),e([])},{setChangeTemplateVisible:h,setChangeTemplateResources:b,setChangeTemplateEntityContext:C}=V();return[({selectedIds:s,selectedResources:e,setSelected:o})=>i("create_invoice")&&n(_,{onClick:async()=>{f(await l(s,e),s),o([])},icon:n(p,{element:H}),children:t("invoice_project")}),({selectedResources:s,setSelected:e})=>n(_,{onClick:()=>a(s)?d(s,e):u.error("no_documents_to_download"),icon:n(p,{element:ae}),children:t("documents")}),({selectedResources:s})=>n(_,{onClick:()=>{h(!0),b(s),C({endpoint:"/api/v1/projects/bulk",entity:"project"})},icon:n(p,{element:L}),children:t("run_template")})]};export{he as a,fe as b,ue as c,de as d,pe as u};
|