You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
nextcloud-server/dist/dav-settings-admin-example-...

2 lines
14 KiB

import{o as n,g as d,h as u,t as m,i as C,m as M,b as U,c as V,u as k,w as i,j as B,l,r as p,z as f,f as Z}from"./Web-C6SCsxGW.chunk.mjs";import{t as c}from"./translation-DoG5ZELJ-Cnt4vXgN.chunk.mjs";import"./PencilOutline-C1tkygpH.chunk.mjs";import"./createElementId-DhjFt1I9-BNMD4Py3.chunk.mjs";import"./NcTextArea-Dxzj4zdb-GMp7IrMZ.chunk.mjs";/* empty css */import"./NcActionInput-Dr8Yrafu-DDQ6-lUx.chunk.mjs";import"./NcActionLink-BFiaYt9A-Dv7gmA1L.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B5ZPshgt.chunk.mjs";import"./NcModal-DiDvgcU8-BGtgvRZO.chunk.mjs";import"./NcActionSeparator-B9pNQaji-DS4a-n7O.chunk.mjs";import"./NcActionText-CQ9qwJ0p-ComUM16z.chunk.mjs";import"./NcContent-BYh5hWDN-CQ9tkcIJ.chunk.mjs";import{N as S}from"./logger-D3RVzcfQ-DkEHwbzs.chunk.mjs";import"./Check-Dqswwx_Q.chunk.mjs";import"./NcAvatar-1KxMUN7V-CTX6i5PQ.chunk.mjs";import"./NcBreadcrumbs-B4eyDS9i-tnJr-W9y.chunk.mjs";import{b as g}from"./index-kP1pdrFW.chunk.mjs";import{N as H}from"./NcCheckboxRadioSwitch-DVdt5Hkq-B7DkpnVC.chunk.mjs";import"./Plus-stN3BxFA.chunk.mjs";import"./index-CMWWCEPw.chunk.mjs";import{D as T,s as j}from"./TrayArrowDown-DZh6ayhZ.chunk.mjs";import"./NcDashboardWidget-zmbDEGL--CXSGjund.chunk.mjs";import"./index-n1CrGiYz.chunk.mjs";import{N as L}from"./mdi-CWhkSanI.chunk.mjs";import"./index-CghPYgx4.chunk.mjs";import"./NcEmojiPicker-UTxgju3f-maqzfdcN.chunk.mjs";import"./MapMarkerOutline-BIm9RXlP.chunk.mjs";import"./index-BVGldGhi.chunk.mjs";/* empty css */import"./NcInputField-5Sg6EUP6-Bi7zQsHH.chunk.mjs";import"./TrashCanOutline-DvfYiA0s.chunk.mjs";import"./NcPasswordField-BFyzHTOO-e6VD_8sb.chunk.mjs";import"./index-BMT9oeVC.chunk.mjs";import{c as x}from"./index-D9pEuVUV.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-Bx2esFU2-BXWO9wHN.chunk.mjs";import"./NcSelectTags-I2hJaNax-B3UyT8AV.chunk.mjs";import{N as q}from"./ContentCopy-CDJ0YWtG.chunk.mjs";import"./NcUserBubble-BXR7vT0V-DRBB6l8X.chunk.mjs";import"./NcUserStatusIcon-BF5OEQFU-BktHNalE.chunk.mjs";import"./emoji-C8k9NUlo-BNYdWfNi.chunk.mjs";import"./colors-Cv9F-jWS-B1UKp356.chunk.mjs";import{d as I,a as y}from"./index-DnxGs_o3.chunk.mjs";import{_ as w,l as D}from"./public-C1mLBHT3.chunk.mjs";import{l as _}from"./logger-D6XBjIiY.chunk.mjs";import"./ArrowRight-DjwuaHxS.chunk.mjs";import"./util-C9Hc1fff.chunk.mjs";const G='<svg xmlns="http://www.w3.org/2000/svg" id="mdi-cancel" viewBox="0 0 24 24"><path d="M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z" /></svg>',J={name:"AccountIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},K=["aria-hidden","aria-label"],P=["fill","width","height"],Q={d:"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"},W={key:0};function X(a,t,e,s,o,r){return n(),d("span",M(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon account-icon",role:"img",onClick:t[0]||(t[0]=v=>a.$emit("click",v))}),[(n(),d("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[u("path",Q,[e.title?(n(),d("title",W,m(e.title),1)):C("",!0)])],8,P))],16,K)}const Y=w(J,[["render",X]]),tt={name:"RestoreIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},et=["aria-hidden","aria-label"],at=["fill","width","height"],ot={d:"M13,3A9,9 0 0,0 4,12H1L4.89,15.89L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3Z"},it={key:0};function nt(a,t,e,s,o,r){return n(),d("span",M(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon restore-icon",role:"img",onClick:t[0]||(t[0]=v=>a.$emit("click",v))}),[(n(),d("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[u("path",ot,[e.title?(n(),d("title",it,m(e.title),1)):C("",!0)])],8,at))],16,et)}const R=w(tt,[["render",nt]]),lt={name:"TrayArrowUpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},st=["aria-hidden","aria-label"],rt=["fill","width","height"],ct={d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 2L6.46 7.46L7.88 8.88L11 5.75V15H13V5.75L16.13 8.88L17.55 7.45L12 2Z"},dt={key:0};function pt(a,t,e,s,o,r){return n(),d("span",M(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon tray-arrow-up-icon",role:"img",onClick:t[0]||(t[0]=v=>a.$emit("click",v))}),[(n(),d("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[u("path",ct,[e.title?(n(),d("title",dt,m(e.title),1)):C("",!0)])],8,rt))],16,st)}const $=w(lt,[["render",pt]]),mt={class:"download-button"},ut={class:"download-button__label"},vt=U({__name:"ExampleContentDownloadButton",props:{href:{}},setup(a){return(t,e)=>(n(),V(k(S),{variant:"tertiary",href:a.href},{icon:i(()=>[B(t.$slots,"icon",{},void 0,!0)]),default:i(()=>[u("div",mt,[u("span",ut,[B(t.$slots,"default",{},void 0,!0)]),l(T,{class:"download-button__icon",size:20})])]),_:3},8,["href"]))}}),O=w(vt,[["__scopeId","data-v-be40807a"]]),ht=D("dav","enableDefaultContact",!1),ft=D("dav","hasCustomDefaultContact",!1),gt={name:"ExampleContactSettings",components:{NcDialog:L,NcButton:S,NcCheckboxRadioSwitch:H,IconUpload:$,IconRestore:R,IconAccount:Y,ExampleContentDownloadButton:O},setup(){return{t:c}},data(){return{enableDefaultContact:ht,hasCustomDefaultContact:ft,isModalOpen:!1,loading:!1,buttons:[{label:c("dav","Cancel"),icon:G,callback:()=>{this.isModalOpen=!1}},{label:c("dav","Import"),icon:j,variant:"primary",callback:()=>{this.clickImportInput()}}]}},computed:{downloadUrl(){return g("/apps/dav/api/defaultcontact/contact")}},methods:{updateEnableDefaultContact(){x.put(g("apps/dav/api/defaultcontact/config"),{allow:!this.enableDefaultContact}).then(()=>{this.enableDefaultContact=!this.enableDefaultContact}).catch(()=>{y(c("dav","Error while saving settings"))})},toggleModal(){this.isModalOpen=!this.isModalOpen},clickImportInput(){this.$refs.exampleContactImportInput.click()},resetContact(){this.loading=!0,x.put(g("/apps/dav/api/defaultcontact/contact")).then(()=>{this.hasCustomDefaultContact=!1,I(c("dav","Contact reset successfully"))}).catch(a=>{_.error("Error importing contact:",{error:a}),y(c("dav","Error while resetting contact"))}).finally(()=>{this.loading=!1})},processFile(a){this.loading=!0;const t=a.target.files[0],e=new FileReader;e.onload=async()=>{this.isModalOpen=!1;try{await x.put(g("/apps/dav/api/defaultcontact/contact"),{contactData:e.result}),this.hasCustomDefaultContact=!0,I(c("dav","Contact imported successfully"))}catch(s){_.error("Error importing contact:",{error:s}),y(c("dav","Error while importing contact"))}finally{this.loading=!1,a.target.value=""}},e.readAsText(t)}}},Ct={class:"example-contact-settings"},wt={key:0,class:"example-contact-settings__buttons"},bt=["disabled"];function xt(a,t,e,s,o,r){const v=p("NcCheckboxRadioSwitch"),N=p("IconAccount"),z=p("ExampleContentDownloadButton"),E=p("IconUpload"),b=p("NcButton"),A=p("IconRestore"),F=p("NcDialog");return n(),d("div",Ct,[l(v,{modelValue:o.enableDefaultContact,type:"switch","onUpdate:modelValue":r.updateEnableDefaultContact},{default:i(()=>[f(m(s.t("dav","Add example contact to user's address book when they first log in")),1)]),_:1},8,["modelValue","onUpdate:modelValue"]),o.enableDefaultContact?(n(),d("div",wt,[l(z,{href:r.downloadUrl},{icon:i(()=>[l(N,{size:20})]),default:i(()=>[t[2]||(t[2]=f(" example_contact.vcf ",-1))]),_:1},8,["href"]),l(b,{variant:"secondary",onClick:r.toggleModal},{icon:i(()=>[l(E,{size:20})]),default:i(()=>[f(" "+m(s.t("dav","Import contact")),1)]),_:1},8,["onClick"]),o.hasCustomDefaultContact?(n(),V(b,{key:0,variant:"tertiary",onClick:r.resetContact},{icon:i(()=>[l(A,{size:20})]),default:i(()=>[f(" "+m(s.t("dav","Reset to default")),1)]),_:1},8,["onClick"])):C("",!0)])):C("",!0),l(F,{open:o.isModalOpen,"onUpdate:open":t[0]||(t[0]=h=>o.isModalOpen=h),name:s.t("dav","Import contacts"),buttons:o.buttons},{default:i(()=>[u("div",null,[u("p",null,m(s.t("dav","Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?")),1)])]),_:1},8,["open","name","buttons"]),u("input",{id:"example-contact-import",ref:"exampleContactImportInput",disabled:o.loading,type:"file",accept:".vcf",class:"hidden-visually",onChange:t[1]||(t[1]=(...h)=>r.processFile&&r.processFile(...h))},null,40,bt)])}const yt=w(gt,[["render",xt],["__scopeId","data-v-db8b0002"]]),_t={name:"CalendarBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Et=["aria-hidden","aria-label"],kt=["fill","width","height"],It={d:"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1"},Dt={key:0};function Mt(a,t,e,s,o,r){return n(),d("span",M(a.$attrs,{"aria-hidden":e.title?null:"true","aria-label":e.title,class:"material-design-icon calendar-blank-icon",role:"img",onClick:t[0]||(t[0]=v=>a.$emit("click",v))}),[(n(),d("svg",{fill:e.fillColor,class:"material-design-icon__svg",width:e.size,height:e.size,viewBox:"0 0 24 24"},[u("path",It,[e.title?(n(),d("title",Dt,m(e.title),1)):C("",!0)])],8,kt))],16,Et)}const Vt=w(_t,[["render",Mt]]);async function Nt(a){const t=g("/apps/dav/api/exampleEvent/enable");await x.post(t,{enable:a})}async function zt(a){const t=g("/apps/dav/api/exampleEvent/event");await x.post(t,{ics:a})}async function At(){const a=g("/apps/dav/api/exampleEvent/event");await x.delete(a)}const Ft={name:"ExampleEventSettings",components:{NcButton:S,NcCheckboxRadioSwitch:H,NcDialog:L,IconCalendarBlank:Vt,IconUpload:$,IconRestore:R,ExampleContentDownloadButton:O},setup(){return{t:c}},data(){return{createExampleEvent:D("dav","create_example_event",!1),hasCustomEvent:D("dav","has_custom_example_event",!1),showImportModal:!1,uploading:!1,deleting:!1,savingConfig:!1,selectedFile:void 0}},computed:{downloadUrl(){return g("/apps/dav/api/exampleEvent/event")}},methods:{selectFile(){this.selectedFile=this.$refs["event-file"]?.files[0]},async updateCreateExampleEvent(){this.savingConfig=!0;const a=!this.createExampleEvent;try{await Nt(a)}catch(t){y(c("dav","Failed to save example event creation setting")),_.error("Failed to save example event creation setting",{error:t,enable:a})}finally{this.savingConfig=!1}this.createExampleEvent=a},uploadCustomEvent(){if(!this.selectedFile)return;this.uploading=!0;const a=new FileReader;a.addEventListener("load",async()=>{const t=a.result;try{await zt(t)}catch(e){y(c("dav","Failed to upload the example event")),_.error("Failed to upload example ICS",{error:e,ics:t});return}finally{this.uploading=!1}I(c("dav","Custom example event was saved successfully")),this.showImportModal=!1,this.hasCustomEvent=!0}),a.readAsText(this.selectedFile)},async deleteCustomEvent(){this.deleting=!0;try{await At()}catch(a){y(c("dav","Failed to delete the custom example event")),_.error("Failed to delete the custom example event",{error:a});return}finally{this.deleting=!1}I(c("dav","Custom example event was deleted successfully")),this.hasCustomEvent=!1}}},St={class:"example-event-settings"},Bt={key:0,class:"example-event-settings__buttons"},Ut={class:"import-event-modal"},Ht=["disabled"],Lt={class:"import-event-modal__buttons"};function Rt(a,t,e,s,o,r){const v=p("NcCheckboxRadioSwitch"),N=p("IconCalendarBlank"),z=p("ExampleContentDownloadButton"),E=p("IconUpload"),b=p("NcButton"),A=p("IconRestore"),F=p("NcDialog");return n(),d("div",St,[l(v,{modelValue:o.createExampleEvent,disabled:o.savingConfig,type:"switch","onUpdate:modelValue":r.updateCreateExampleEvent},{default:i(()=>[f(m(s.t("dav","Add example event to user's calendar when they first log in")),1)]),_:1},8,["modelValue","disabled","onUpdate:modelValue"]),o.createExampleEvent?(n(),d("div",Bt,[l(z,{href:r.downloadUrl},{icon:i(()=>[l(N,{size:20})]),default:i(()=>[t[4]||(t[4]=f(" example_event.ics ",-1))]),_:1},8,["href"]),l(b,{variant:"secondary",onClick:t[0]||(t[0]=h=>o.showImportModal=!0)},{icon:i(()=>[l(E,{size:20})]),default:i(()=>[f(" "+m(s.t("dav","Import calendar event")),1)]),_:1}),o.hasCustomEvent?(n(),V(b,{key:0,variant:"tertiary",disabled:o.deleting,onClick:r.deleteCustomEvent},{icon:i(()=>[l(A,{size:20})]),default:i(()=>[f(" "+m(s.t("dav","Reset to default")),1)]),_:1},8,["disabled","onClick"])):C("",!0)])):C("",!0),l(F,{open:o.showImportModal,"onUpdate:open":t[3]||(t[3]=h=>o.showImportModal=h),name:s.t("dav","Import calendar event")},{default:i(()=>[u("div",Ut,[u("p",null,m(s.t("dav","Uploading a new event will overwrite the existing one.")),1),u("input",{ref:"event-file",disabled:o.uploading,type:"file",accept:".ics,text/calendar",class:"import-event-modal__file-picker",onChange:t[1]||(t[1]=(...h)=>r.selectFile&&r.selectFile(...h))},null,40,Ht),u("div",Lt,[l(b,{disabled:o.uploading||!o.selectedFile,variant:"primary",onClick:t[2]||(t[2]=h=>r.uploadCustomEvent())},{icon:i(()=>[l(E,{size:20})]),default:i(()=>[f(" "+m(s.t("dav","Upload event")),1)]),_:1},8,["disabled"])])])]),_:1},8,["open","name"])])}const $t=w(Ft,[["render",Rt],["__scopeId","data-v-88fee128"]]),Ot=U({__name:"ExampleContentSettingsSection",setup(a){return(t,e)=>(n(),V(k(q),{id:"example-content",name:k(c)("dav","Example content"),description:k(c)("dav","Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content.")},{default:i(()=>[l(yt),l($t)]),_:1},8,["name","description"]))}}),Zt=Z(Ot);Zt.mount("#settings-example-content");
//# sourceMappingURL=dav-settings-admin-example-content.mjs.map