1import{d as T,k as m,e as V,o as i,q as f,c as r,b as p,a as s,t as n,w as U,s as l,l as u,v as _,L as k,F as S,f as N,g as y,u as g}from"./vue-runtime-BQRJclI-.js";import{_ as $}from"./CrmPage.vue_vue_type_script_setup_true_lang-ZCMRr4D8.js";import{a as B}from"./api-EKzEAybP.js";import{P as x}from"./app-CEZoZvWt.js";import"./AppLayout.vue_vue_type_script_setup_true_lang-rjYNyxvY.js";import"./index-DW7t84mx.js";import"./locale-CEc2pebt.js";import"./index-BtjU-9jb.js";import"./index-CzdlQSCI.js";import"./index-Cb2RBfEp.js";import"./DropdownMenuTrigger.vue_vue_type_script_setup_true_lang-DEvFGbvk.js";import"./lucide-core-CAjyj2By.js";import"./DialogTitle.vue_vue_type_script_setup_true_lang-CGM6RULP.js";import"./site-icons-BpOMQBK2.js";import"./workspaceUi-DowentTg.js";import"./file-spreadsheet-7TIKSeai.js";import"./chevron-right-Bi-N5nf3.js";import"./plus-BmU2lAth.js";import"./analytics-n60hlbQi.js";import"./AppToast.vue_vue_type_script_setup_true_lang-DT3BCsva.js";import"./SessionExpiredNotice.vue_vue_type_script_setup_true_lang-C0jNvULT.js";import"./http-BoUr6vaJ.js";const D={key:0,role:"alert",class:"crm-error"},E={key:1,role:"status",class:"crm-notice"},P={class:"crm-label"},q={class:"crm-label"},I={class:"crm-label"},M={class:"crm-label"},O={class:"space-y-3 text-sm md:col-span-2"},F={class:"flex items-center gap-2"},H={class:"flex items-center gap-2"},L={class:"flex items-center gap-2"},j={class:"flex gap-2"},A=["disabled"],z={class:"crm-card divide-y divide-vr-line"},G={class:"font-semibold"},J={key:0,class:"crm-badge"},K={class:"mt-1 text-sm text-vr-dim"},Q={class:"mt-1 text-xs text-vr-dim"},R=["aria-label","onClick"],W={key:0,class:"p-6 text-sm text-vr-dim"},xe=T({__name:"TaskTypes",props:{types:{}},setup(h){const d=m(h.types),a=m(null),b=m(!1),c=m(""),v=m("");function w(){a.value={uuid:"",name:"",default_title:"",icon:"",is_active:!0,hide_from_task_list:!1,hide_from_calendar:!1,sort_order:d.value.length+1,version:1}}async function C(){if(a.value){b.value=!0,c.value="",v.value="";try{const{type:o}=await B(`/settings/task-types${a.value.uuid?`/${a.value.uuid}`:""}`,a.value.uuid?"PUT":"POST",a.value);d.value=[...d.value.filter(e=>e.uuid!==o.uuid),o].sort((e,t)=>e.sort_order-t.sort_order),a.value=null,v.value="Task type saved."}catch(o){c.value=o instanceof Error?o.message:String(o)}finally{b.value=!1}}}return(o,e)=>(i(),V($,{title:"Task types",description:"Set default titles, ordering, and visibility in the task list and calendar.",href:"/settings/task-types",eyebrow:"Settings · Tasks"},{actions:f(()=>[y(g(x),{href:"/tasks",class:"crm-button"},{default:f(()=>e[8]||(e[8]=[l("Tasks")])),_:1}),y(g(x),{href:"/settings/migration/configuration",class:"crm-button"},{default:f(()=>e[9]||(e[9]=[l("Import configuration")])),_:1}),s("button",{class:"crm-button crm-button-primary",onClick:w},"New task type")]),default:f(()=>[c.value?(i(),r("p",D,n(c.value),1)):p("",!0),v.value?(i(),r("p",E,n(v.value),1)):p("",!0),a.value?(i(),r("form",{key:2,class:"crm-card grid gap-4 p-5 md:grid-cols-2",onSubmit:U(C,["prevent"])},[s("label",P,[e[10]||(e[10]=l("Name")),u(s("input",{"onUpdate:modelValue":e[0]||(e[0]=t=>a.value.name=t),class:"crm-input",required:"",maxlength:"255"},null,512),[[_,a.value.name]])]),s("label",q,[e[11]||(e[11]=l("Default task title")),u(s("input",{"onUpdate:modelValue":e[1]||(e[1]=t=>a.value.default_title=t),class:"crm-input",required:"",maxlength:"255"},null,512),[[_,a.value.default_title]])]),s("label",I,[e[12]||(e[12]=l("Icon name")),u(s("input",{"onUpdate:modelValue":e[2]||(e[2]=t=>a.value.icon=t),class:"crm-input",maxlength:"80"},null,512),[[_,a.value.icon]])]),s("label",M,[e[13]||(e[13]=l("Order")),u(s("input",{"onUpdate:modelValue":e[3]||(e[3]=t=>a.value.sort_order=t),type:"number",min:"0",max:"10000",class:"crm-input"},null,512),[[_,a.value.sort_order,void 0,{number:!0}]])]),s("div",O,[s("label",F,[u(s("input",{"onUpdate:modelValue":e[4]||(e[4]=t=>a.value.is_active=t),type:"checkbox"},null,512),[[k,a.value.is_active]]),e[14]||(e[14]=l("Available for new tasks"))]),s("label",H,[u(s("input",{"onUpdate:modelValue":e[5]||(e[5]=t=>a.value.hide_from_task_list=t),type:"checkbox"},null,512),[[k,a.value.hide_from_task_list]]),e[15]||(e[15]=l("Hide this type from the task list"))]),s("label",L,[u(s("input",{"onUpdate:modelValue":e[6]||(e[6]=t=>a.value.hide_from_calendar=t),type:"checkbox"},null,512),[[k,a.value.hide_from_calendar]]),e[16]||(e[16]=l("Hide this type from the calendar"))])]),s("div",j,[s("button",{class:"crm-button crm-button-primary",disabled:b.value},"Save task type",8,A),s("button",{type:"button",class:"crm-button",onClick:e[7]||(e[7]=t=>a.value=null)},"Cancel")])],32)):p("",!0),s("section",z,[(i(!0),r(S,null,N(d.value,t=>(i(),r("article",{key:t.uuid,class:"flex flex-wrap items-center justify-between gap-4 p-5"},[s("div",null,[s("h2",G,[l(n(t.name)+" ",1),t.is_active?p("",!0):(i(),r("span",J,"Inactive"))]),s("p",K,"Default title: "+n(t.default_title),1),s("p",Q," Order "+n(t.sort_order)+" · Task list "+n(t.hide_from_task_list?"hidden":"visible")+" · Calendar "+n(t.hide_from_calendar?"hidden":"visible"),1)]),s("button",{class:"crm-button","aria-label":`Edit ${t.name}`,onClick:Y=>a.value={...t}},"Edit",8,R)]))),128)),d.value.length?p("",!0):(i(),r("p",W,"Create a task type or import your reviewed source configuration."))])]),_:1}))}});
1export{xe as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.