18 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import{bp as w,bG as q,bH as O,ba as u,r as A,e as P,bb as G,aT as F,u as S,f as R,aU as $,g as z,aW as Z,d as U,A as W,c as n,D as I,h as M,m as T,ab as E,s as x,a_ as D,a$ as N,aZ as J,a6 as K,Z as Q,d7 as B,a9 as X,a7 as Y,a1 as H,ad as _,ac as p,bD as V,ak as ee,aN as L,ax as te,az as v,aA as y,aO as ne,aP as oe,aQ as se,aD as ae,bh as ie}from"./bundle.3e24044b.js";import{p as ce}from"./bundle.b5d84393.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=w(),r=q(O);return(l,i)=>{u.processing(),A("POST",P("/api/v1/projects/bulk"),{action:i,ids:[l]}).then(()=>u.success(`${i}d_project`)).finally(()=>{G(["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=w();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]=F({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}=R(),l=$(),i=z(),c=Z(),f=U(),a=W();ue();const[m,d,h,b]=F({entity:"project"}),C=[{column:"name",id:"name",label:t("name"),format:(e,o)=>n(I,{to:M("/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:M("/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(E,{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:D(e)}})}),children:n("span",{children:N(D(e)).slice(0,50)})})},{column:"private_notes",id:"private_notes",label:t("private_notes"),format:e=>n(E,{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:D(e)}})}),children:n("span",{children:N(D(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=Q(),i=w(),c=re(),f=B(),{isEditOrShowPage:a}=X({entity:"project",editPageTabs:["documents"]}),m=Y(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)})},{setChangeTemplateResources:b,setChangeTemplateVisible:C,setChangeTemplateEntityContext:g}=H();return[e=>l("create_invoice")&&n(_,{onClick:()=>h(e),icon:n(p,{element:V}),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=B(),l=le(),i=Q(),c=ie(),f=s=>{if(s&&!s.length)return u.error("no_assigned_tasks");if(!s)return u.error("multiple_client_error");r(s,s[0].client_id)},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}=H();return[({selectedIds:s,selectedResources:e,setSelected:o})=>i("create_invoice")&&n(_,{onClick:async()=>{f(await l(s,e)),o([])},icon:n(p,{element:V}),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};
 |