mirror of
https://github.com/nextcloud/server.git
synced 2026-10-28 15:15:54 +01:00
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
3 lines
28 KiB
JavaScript
3 lines
28 KiB
JavaScript
import{A as K,a3 as W,V as fe,i as S,e as O,E as B,o as u,k as h,u as e,q as A,C as Z,f as x,n as y,l as b,t as g,G as M,K as Te,H as q,Q as J,R as X,h as T,F as Y,S as Oe,a1 as z,$ as pe,p as v,w,z as V,y as qe,c as Ne,a as Ee}from"./PencilOutline-C4ZkKkas.chunk.mjs";import{N as R,S as Pe,I as Re,ah as Fe,ag as De,ai as je,Q as Be,g as Ge,P as He}from"./Link-CUdpEe-t.chunk.mjs";import{a as P,c as N,l as $}from"./star-outline-BpDZzOb8.chunk.mjs";import{t as n,a as Le}from"./translations-pLZlvQeM.chunk.mjs";import"./MenuUp-DiApqAR0.chunk.mjs";import{N as D}from"./ArrowRight-COu6qSN5.chunk.mjs";import{N as oe}from"./cancel-DDzvQ-HX.chunk.mjs";import{N as ge}from"./NcSettingsSection-DeN6Lle1.chunk.mjs";import{N as Ie,s as Qe}from"./AlertCircleOutline-jA3ki2Uu.chunk.mjs";import{N as ne}from"./index-BJ-wBpMs.chunk.mjs";import{_ as ve}from"./NcHighlight.vue_vue_type_script_lang-CT7Xx-zK.chunk.mjs";import{c as U}from"./index-DHyMMYTN.chunk.mjs";import{b as ze}from"./NcTextArea-DqJyrYiA.chunk.mjs";import{b as Ze}from"./index-DJ32j2fv.chunk.mjs";import"./NcActionButton-BvGszxyz.chunk.mjs";import"./index-DKxdOjOX.chunk.mjs";import"./NcActionCheckbox-Co6zJ6Hf.chunk.mjs";import"./Web-BMG0zIln.chunk.mjs";import"./NcActionInput-CEGC-U_1.chunk.mjs";import"./NcActionLink-DvEArNRM.chunk.mjs";import"./NcActionRouter-X9XmAaxE.chunk.mjs";import"./NcModal-BxLzaUZK.chunk.mjs";import"./star-Dwot5QHD.chunk.mjs";import"./NcActionText-BWO7oBCL.chunk.mjs";import"./NcAppContent-WuNJWVSm.chunk.mjs";import"./formatRelative-uuSCBZ1C.chunk.mjs";import{N as be}from"./Check-CEU1oy_I.chunk.mjs";import"./MapMarkerOutline-Ip3bQdll.chunk.mjs";import"./NcAvatar-RT0QIft7.chunk.mjs";import"./information-outline-CUvhpCqf.chunk.mjs";import"./index-D6fZh9CR.chunk.mjs";import{N as F}from"./NcCheckboxRadioSwitch-BgZXg73g.chunk.mjs";import{N as me}from"./NcChip-cyGdYKyD.chunk.mjs";import"./index-JFK8X6kZ.chunk.mjs";import"./NcContent-CIX5Zf8v.chunk.mjs";import"./statusOptionsService-ChGCgh7H.chunk.mjs";import"./NcDashboardWidget-a5Hnwaiz.chunk.mjs";import"./zh-TW-cfs3YkM4.chunk.mjs";import"./NcDateTimePickerNative-Df5ELjq1.chunk.mjs";import"./NcEmojiPicker-D7HkUvA6.chunk.mjs";import"./NcUploadPicker-Cla8uJJV.chunk.mjs";import"./NcFormBox-BeUjBkqH.chunk.mjs";import"./NcRichText-BQgo5yW3.chunk.mjs";import"./LoginFlowDone-Bb0f_UR0.chunk.mjs";import"./CogOutline-u_yQZWjI.chunk.mjs";import"./folder-multiple-outline-BhxDilQg.chunk.mjs";import"./TrayArrowDown-vMg8Cl05.chunk.mjs";import"./NcInputField-wKF2DDSn.chunk.mjs";import{N as Ke}from"./NcPasswordField-DgVaELPd.chunk.mjs";import"./NcProfileHoverCard-RZrrM7IM.chunk.mjs";import"./NcProgressBar-Dixhlp8F.chunk.mjs";import"./index-BueGcLEj.chunk.mjs";import"./livePhotoUtils-CVUhgL4S.chunk.mjs";import"./index-DDsCA2or.chunk.mjs";import"./NcSelectTags-DyK-4P4O.chunk.mjs";import{N as We}from"./history-D6oDzA1t.chunk.mjs";import"./NcUserStatusIcon-CWV4DI9J.chunk.mjs";import"./emoji-Cbe4MxhY.chunk.mjs";import"./colors-B1T-jIOW.chunk.mjs";import{C as ye}from"./AuthMechanismRsa-DxIaeo3K.chunk.mjs";import{C as I,a as he,M as j,S as G,b as Ye,c as Je}from"./types-CsWiBsBo.chunk.mjs";import{a as xe,P as Q}from"./index-BMlZKoNj.chunk.mjs";import{c as we,p as Xe}from"./externalStorageUtils-mlnj1LcU.chunk.mjs";import{b as ie,e as re}from"./index-UXL_i2di.chunk.mjs";import{l as ke}from"./logger-BG6Wk87s.chunk.mjs";import"./_l10n-CK24vgHE.chunk.mjs";import"./File-xDTWu8L0.chunk.mjs";import"./index-GqSDnl3c.chunk.mjs";import"./autolink-D1sObkXs.chunk.mjs";import"./index-D_oRcFiB.chunk.mjs";import"./dav-BNCa0U-Z.chunk.mjs";const ea='<svg xmlns="http://www.w3.org/2000/svg" id="mdi-account-group-outline" viewBox="0 0 24 24"><path d="M12,5A3.5,3.5 0 0,0 8.5,8.5A3.5,3.5 0 0,0 12,12A3.5,3.5 0 0,0 15.5,8.5A3.5,3.5 0 0,0 12,5M12,7A1.5,1.5 0 0,1 13.5,8.5A1.5,1.5 0 0,1 12,10A1.5,1.5 0 0,1 10.5,8.5A1.5,1.5 0 0,1 12,7M5.5,8A2.5,2.5 0 0,0 3,10.5C3,11.44 3.53,12.25 4.29,12.68C4.65,12.88 5.06,13 5.5,13C5.94,13 6.35,12.88 6.71,12.68C7.08,12.47 7.39,12.17 7.62,11.81C6.89,10.86 6.5,9.7 6.5,8.5C6.5,8.41 6.5,8.31 6.5,8.22C6.2,8.08 5.86,8 5.5,8M18.5,8C18.14,8 17.8,8.08 17.5,8.22C17.5,8.31 17.5,8.41 17.5,8.5C17.5,9.7 17.11,10.86 16.38,11.81C16.5,12 16.63,12.15 16.78,12.3C16.94,12.45 17.1,12.58 17.29,12.68C17.65,12.88 18.06,13 18.5,13C18.94,13 19.35,12.88 19.71,12.68C20.47,12.25 21,11.44 21,10.5A2.5,2.5 0 0,0 18.5,8M12,14C9.66,14 5,15.17 5,17.5V19H19V17.5C19,15.17 14.34,14 12,14M4.71,14.55C2.78,14.78 0,15.76 0,17.5V19H3V17.07C3,16.06 3.69,15.22 4.71,14.55M19.29,14.55C20.31,15.22 21,16.06 21,17.07V19H24V17.5C24,15.76 21.22,14.78 19.29,14.55M12,16C13.53,16 15.24,16.5 16.23,17H7.77C8.76,16.5 10.47,16 12,16Z" /></svg>',ee=fe(new Map),ae=fe(new Map),te=new Set;function Ve(s){const a=S(()=>W(s).map(t=>({id:`user:${t}`,user:t,displayName:ee.get(t)||t})));return K(async()=>{const t=W(s).filter(i=>!ee.has(i));if(t.length>0){const{data:i}=await U.post(P("/displaynames"),{users:t});for(const[c,d]of Object.entries(i.users))ee.set(c,d)}}),a}function Se(s){const a=S(()=>W(s).map(t=>Ce(t,ae.get(t))));return K(async()=>{const t=W(s).filter(i=>!ae.has(i)&&!te.has(i));t.forEach(i=>te.add(i));for(const i of t)try{const{data:c}=await U.get(P("apps/files_external/ajax/applicable"),{params:{pattern:i,limit:50}});ae.set(i,c.groups[i]??i)}finally{te.delete(i)}}),a}function Ce(s,a){return{id:s,isNoUser:!0,displayName:a||s,iconSvg:ea}}const aa=O({__name:"ApplicableEntities",props:{groups:{default:()=>[]},groupsModifiers:{},users:{default:()=>[]},usersModifiers:{}},emits:["update:groups","update:users"],setup(s){const a=B(s,"groups"),t=B(s,"users"),i=A([]),c=Ve(t),d=Se(a),p=S({get(){return[...d.value,...c.value]},set(o){t.value=o.filter(m=>m.user).map(m=>m.user),a.value=o.filter(m=>m.isNoUser).map(m=>m.id)}}),r=Ze(l,500);async function l(o){const{data:m}=await U.get(P("apps/files_external/ajax/applicable"),{params:{pattern:o,limit:20}}),_=[...i.value.map(f=>[f.id,f]),...Object.entries(m.groups).map(([f,C])=>[f,{...Ce(f),displayName:C}]),...Object.entries(m.users).map(([f,C])=>[`user:${f}`,{id:`user:${f}`,user:f,displayName:C}])];i.value=[...new Map(_).values()]}return(o,m)=>(u(),h(e(ze),{modelValue:p.value,"onUpdate:modelValue":m[0]||(m[0]=_=>p.value=_),keepOpen:"",multiple:"",options:i.value,inputLabel:e(n)("files_external","Restrict to"),onSearch:e(r)},null,8,["modelValue","options","inputLabel","onSearch"]))}}),ta=O({__name:"AuthMechanismConfiguration",props:Y({authMechanism:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const a=B(s,"modelValue"),t=s,i=S(()=>{if(!t.authMechanism.configuration)return;const l=Object.entries(t.authMechanism.configuration).filter(([,o])=>!(o.flags&I.UserProvided));return Object.fromEntries(l)}),c=S(()=>window.OCA.FilesExternal.AuthMechanism.getHandler(t.authMechanism)),d=S(()=>{if(!i.value)return!1;for(const l of Object.values(i.value))if(!(l.flags&I.Hidden||l.flags&I.UserProvided))return!0;return!1}),p=A(!1);K(async()=>{c.value&&(p.value=!0,await window.customElements.whenDefined(c.value.tagName),p.value=!1)}),Z(i,()=>{for(const l in i.value)l in a.value||(a.value[l]=i.value[l]?.type===he.Boolean?!1:"")});function r(l){const o=[l.detail].flat()[0];a.value={...a.value,...o}}return(l,o)=>d.value?(u(),x("fieldset",{key:0,class:y(l.$style.authMechanismConfiguration)},[b("legend",null,g(e(n)("files_external","Authentication")),1),c.value?(u(),x(M,{key:0},[p.value?(u(),h(e(be),{key:0})):(u(),h(Te(c.value.tagName),{key:1,".modelValue":a.value,".authMechanism":s.authMechanism,"onUpdate:modelValue":r},null,40,[".modelValue",".authMechanism"]))],64)):(u(!0),x(M,{key:1},q(i.value,(m,_)=>J((u(),h(ye,{key:m.value,modelValue:a.value[_],"onUpdate:modelValue":f=>a.value[_]=f,"config-key":_,"config-option":m},null,8,["modelValue","onUpdate:modelValue","config-key","config-option"])),[[X,!(m.flags&e(I).Hidden)]])),128))],2)):T("",!0)}}),la="_authMechanismConfiguration_kpcpy_2",sa={authMechanismConfiguration:la},oa={$style:sa},na=N(ta,[["__cssModules",oa]]),ia=O({__name:"BackendConfiguration",props:Y({configuration:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const a=B(s,"modelValue"),t=s;return Z(()=>t.configuration,()=>{for(const i in t.configuration)i in a.value||(a.value[i]=t.configuration[i]?.defaultValue??(t.configuration[i]?.type===he.Boolean?!1:""))},{immediate:!0}),(i,c)=>(u(),x("fieldset",{class:y(i.$style.backendConfiguration)},[b("legend",null,g(e(n)("files_external","Storage configuration")),1),(u(!0),x(M,null,q(s.configuration,(d,p)=>J((u(),h(ye,{key:d.value,modelValue:a.value[p],"onUpdate:modelValue":r=>a.value[p]=r,configKey:p,configOption:d},null,8,["modelValue","onUpdate:modelValue","configKey","configOption"])),[[X,!(d.flags&e(I).Hidden)]])),128))],2))}}),ra="_backendConfiguration_1sf6y_2",ua={backendConfiguration:ra},da={$style:ua},ca=N(ia,[["__cssModules",da]]),{isAdmin:pa}=$("files_external","settings"),ma=Object.freeze({encrypt:!0,previews:!0,filesystem_check_changes:j.OncePerRequest,enable_sharing:!1,encoding_compatibility:!1,readonly:!1}),ue=Oe("files_external--storages",()=>{const s=A([]),a=A([]);async function t(_){const f=P("apps/files_external/globalstorages"),{data:C}=await U.post(f,z(_),{confirmPassword:Q.Strict});s.value.push(H(C))}async function i(_){const f=P("apps/files_external/userstorages"),{data:C}=await U.post(f,z(_),{confirmPassword:Q.Strict});a.value.push(H(C))}async function c(_){await U.delete(o(_),{confirmPassword:Q.Strict}),_.type==="personal"?a.value=a.value.filter(f=>f.id!==_.id):s.value=s.value.filter(f=>f.id!==_.id)}async function d(_){const{data:f}=await U.put(o(_),z(_),{confirmPassword:Q.Strict});m(H(f))}async function p(_){const{data:f}=await U.get(o(_));m(H(f))}return l(),{globalStorages:s,userStorages:a,createGlobalStorage:t,createUserStorage:i,deleteStorage:c,reloadStorage:p,updateStorage:d};async function r(_){const f=`apps/files_external/${_}`,{data:C}=await U.get(P(f));return Object.values(C).map(H)}async function l(){xe(U),pa?s.value=await r("globalstorages"):(a.value=await r("userstorages"),s.value=await r("userglobalstorages"))}function o(_){const f=_.type==="personal"?"userstorages":"globalstorages";return P(`apps/files_external/${f}/${_.id}`)}function m(_){if(_.type==="personal"){const f=a.value.findIndex(C=>C.id===_.id);a.value.splice(f,1,_)}else{const f=s.value.findIndex(C=>C.id===_.id);s.value.splice(f,1,_)}}});function H(s){return{...s,mountOptions:Me(s.mountOptions)}}function Me(s){const a={...s};return a.encrypt=L(a.encrypt,!0),a.previews=L(a.previews,!0),a.enable_sharing=L(a.enable_sharing,!1),a.filesystem_check_changes=typeof a.filesystem_check_changes=="string"?Number.parseInt(a.filesystem_check_changes):a.filesystem_check_changes??j.Never,a.encoding_compatibility=L(a.encoding_compatibility,!1),a.readonly=L(a.readonly,!1),a}function L(s,a=!1){return s===void 0?a:s===!0||s==="true"||s==="1"}const _a=["id","aria-labelledby"],fa=O({__name:"MountOptions",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(s){const a=B(s,"modelValue");K(()=>{Object.keys(a.value).length===0&&(a.value=Me(a.value))});const{hasEncryption:t}=$("files_external","settings"),i=pe(),c=pe(),d=A(!1),p=[{label:n("files_external","Never"),value:j.Never},{label:n("files_external","Once every direct access"),value:j.OncePerRequest},{label:n("files_external","Always"),value:j.Always}],r=S({get(){return p.find(l=>l.value===a.value.filesystem_check_changes)},set(l){a.value.filesystem_check_changes=l?.value??j.OncePerRequest}});return(l,o)=>(u(),x("div",{class:y(l.$style.mountOptions)},[v(e(R),{id:e(i),"aria-controls":e(c),"aria-expanded":d.value,variant:"tertiary-no-background",onClick:o[0]||(o[0]=m=>d.value=!d.value)},{icon:w(()=>[v(e(D),{directional:"",path:d.value?e(Pe):e(Re)},null,8,["path"])]),default:w(()=>[V(" "+g(e(n)("files_external","Mount options")),1)]),_:1},8,["id","aria-controls","aria-expanded"]),J(b("fieldset",{id:e(c),class:y(l.$style.mountOptions__fieldset),"aria-labelledby":e(i)},[v(e(ne),{modelValue:r.value,"onUpdate:modelValue":o[1]||(o[1]=m=>r.value=m),inputLabel:e(n)("files_external","Check filesystem changes"),options:p},null,8,["modelValue","inputLabel"]),v(e(F),{modelValue:s.modelValue.readonly,"onUpdate:modelValue":o[2]||(o[2]=m=>s.modelValue.readonly=m),type:"switch"},{default:w(()=>[V(g(e(n)("files_external","Read only")),1)]),_:1},8,["modelValue"]),v(e(F),{modelValue:s.modelValue.previews,"onUpdate:modelValue":o[3]||(o[3]=m=>s.modelValue.previews=m),type:"switch"},{default:w(()=>[V(g(e(n)("files_external","Enable previews")),1)]),_:1},8,["modelValue"]),v(e(F),{modelValue:s.modelValue.enable_sharing,"onUpdate:modelValue":o[4]||(o[4]=m=>s.modelValue.enable_sharing=m),type:"switch"},{default:w(()=>[V(g(e(n)("files_external","Enable sharing")),1)]),_:1},8,["modelValue"]),e(t)?(u(),h(e(F),{key:0,modelValue:s.modelValue.encrypt,"onUpdate:modelValue":o[5]||(o[5]=m=>s.modelValue.encrypt=m),type:"switch"},{default:w(()=>[V(g(e(n)("files_external","Enable encryption")),1)]),_:1},8,["modelValue"])):T("",!0),v(e(F),{modelValue:s.modelValue.encoding_compatibility,"onUpdate:modelValue":o[6]||(o[6]=m=>s.modelValue.encoding_compatibility=m),type:"switch"},{default:w(()=>[V(g(e(n)("files_external","Compatibility with Mac NFD encoding (slow)")),1)]),_:1},8,["modelValue"])],10,_a),[[X,d.value]])],2))}}),ga="_mountOptions_1fqyb_2",va="_mountOptions__fieldset_1fqyb_12",ba={mountOptions:ga,mountOptions__fieldset:va},ya={$style:ba},ha=N(fa,[["__cssModules",ya]]),{isAdmin:le}=$("files_external","settings"),xa=$("files_external","allowedBackends"),_e=$("files_external","backends").filter(s=>xa.includes(s.identifier)),wa=$("files_external","authMechanisms"),ka=O({__name:"AddExternalStorageDialog",props:Y({storage:{default:()=>({backendOptions:{},mountOptions:{...ma},type:le?"system":"personal"})}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:Y(["close"],["update:open"]),setup(s){const a=B(s,"open"),t=A(structuredClone(z(s.storage)));K(()=>{a.value&&(t.value=structuredClone(z(s.storage)))});const i=S(()=>we(t.value.applicableUsers,t.value.applicableGroups)),c=S({get(){return _e.find(r=>r.identifier===t.value.backend)},set(r){t.value.backend=r?.identifier}}),d=S(()=>wa.filter(({scheme:r})=>c.value?.authSchemes[r])),p=S({get(){return d.value.find(r=>r.identifier===t.value.authMechanism)},set(r){const l=d.value.find(o=>o.identifier===t.value.authMechanism);l&&l.identifier!==r?.identifier&&t.value.backendOptions&&Xe(t.value.backendOptions,l.configuration,[r?.configuration,c.value?.configuration]),t.value.authMechanism=r?.identifier}});return Z(d,()=>{d.value.length===1&&(t.value.authMechanism=d.value[0].identifier)}),(r,l)=>(u(),h(e(Ie),{open:a.value,"onUpdate:open":[l[9]||(l[9]=o=>a.value=o),l[11]||(l[11]=o=>o||r.$emit("close"))],isForm:"",contentClasses:r.$style.externalStorageDialog,name:t.value.id?e(n)("files_external","Edit storage"):e(n)("files_external","Add storage"),onSubmit:l[10]||(l[10]=o=>r.$emit("close",t.value))},{actions:w(()=>[s.storage.id?(u(),h(e(R),{key:0,onClick:l[8]||(l[8]=o=>r.$emit("close"))},{default:w(()=>[V(g(e(n)("files_external","Cancel")),1)]),_:1})):T("",!0),v(e(R),{variant:"primary",type:"submit"},{default:w(()=>[V(g(s.storage.id?e(n)("files_external","Edit"):e(n)("files_external","Create")),1)]),_:1})]),default:w(()=>[v(e(ve),{modelValue:t.value.mountPoint,"onUpdate:modelValue":l[0]||(l[0]=o=>t.value.mountPoint=o),label:e(n)("files_external","Folder name"),required:""},null,8,["modelValue","label"]),v(ha,{modelValue:t.value.mountOptions,"onUpdate:modelValue":l[1]||(l[1]=o=>t.value.mountOptions=o)},null,8,["modelValue"]),e(le)?(u(),h(aa,{key:0,groups:t.value.applicableGroups,"onUpdate:groups":l[2]||(l[2]=o=>t.value.applicableGroups=o),users:t.value.applicableUsers,"onUpdate:users":l[3]||(l[3]=o=>t.value.applicableUsers=o),class:y(r.$style.externalStorageDialog__dropdown)},null,8,["groups","users","class"])):T("",!0),e(le)&&i.value?(u(),h(e(oe),{key:1,type:"info",text:e(n)("files_external","Without a restriction this storage is available to every account on this server.")},null,8,["text"])):T("",!0),v(e(ne),{modelValue:c.value,"onUpdate:modelValue":l[4]||(l[4]=o=>c.value=o),options:e(_e),disabled:!!(t.value.id&&t.value.backend),inputLabel:e(n)("files_external","External storage"),class:y(r.$style.externalStorageDialog__dropdown),label:"name",required:""},null,8,["modelValue","options","disabled","inputLabel","class"]),v(e(ne),{modelValue:p.value,"onUpdate:modelValue":l[5]||(l[5]=o=>p.value=o),options:d.value,disabled:!t.value.backend||d.value.length<=1,inputLabel:e(n)("files_external","Authentication"),class:y(r.$style.externalStorageDialog__dropdown),label:"name",required:""},null,8,["modelValue","options","disabled","inputLabel","class"]),c.value&&t.value.backendOptions?(u(),h(ca,{key:2,modelValue:t.value.backendOptions,"onUpdate:modelValue":l[6]||(l[6]=o=>t.value.backendOptions=o),class:y(r.$style.externalStorageDialog__configuration),configuration:c.value.configuration},null,8,["modelValue","class","configuration"])):T("",!0),p.value&&t.value.backendOptions?(u(),h(na,{key:3,modelValue:t.value.backendOptions,"onUpdate:modelValue":l[7]||(l[7]=o=>t.value.backendOptions=o),class:y(r.$style.externalStorageDialog__configuration),authMechanism:p.value},null,8,["modelValue","class","authMechanism"])):T("",!0)]),_:1},8,["open","contentClasses","name"]))}}),Va="_externalStorageDialog_l5jv4_2",Sa="_externalStorageDialog__configuration_l5jv4_9",Ca="_externalStorageDialog__dropdown_l5jv4_13",Ma={externalStorageDialog:Va,externalStorageDialog__configuration:Sa,externalStorageDialog__dropdown:Ca},Aa={$style:Ma},Ae=N(ka,[["__cssModules",Aa]]),$a={class:"hidden-visually"},Ua={key:0},Ta=O({__name:"ExternalStorageTableRow",props:{storage:{},isAdmin:{type:Boolean}},setup(s){const a=s,t=ue(),i=$("files_external","backends"),c=S(()=>i.find(k=>k.identifier===a.storage.backend).name),d=$("files_external","authMechanisms"),p=S(()=>d.find(k=>k.identifier===a.storage.authMechanism).name),r=A(!1),l=S(()=>{if(r.value)return{icon:"loading",label:n("files_external","Checking …")};const k=a.storage.status??G.Indeterminate,de=a.storage.statusMessage||Ye[k],E=Je[k],ce=k===G.NetworkError||k===G.Timeout,Ue=!ce&&k!==G.Success&&k!==G.Indeterminate;return{icon:E,label:de,isWarning:ce,isError:Ue}}),o=Ve(()=>a.storage.applicableUsers||[]),m=Se(()=>a.storage.applicableGroups||[]),_=S(()=>we(a.storage.applicableUsers,a.storage.applicableGroups));async function f(){await t.deleteStorage(a.storage)}async function C(){const k=await Qe(Ae,{storage:a.storage});k&&await t.updateStorage(k)}async function $e(){r.value=!0;try{await t.reloadStorage(a.storage)}finally{r.value=!1}}return(k,de)=>(u(),x("tr",{class:y(k.$style.storageTableRow)},[b("td",null,[b("span",$a,g(l.value.label),1),v(e(R),{"aria-label":e(n)("files_external","Recheck status"),title:l.value.label,variant:"tertiary-no-background",onClick:$e},{icon:w(()=>[l.value.icon==="loading"?(u(),h(e(be),{key:0})):(u(),h(e(D),{key:1,class:y({[k.$style.storageTableRow__status_error]:l.value.isError,[k.$style.storageTableRow__status_warning]:l.value.isWarning}),path:l.value.icon},null,8,["class","path"]))]),_:1},8,["aria-label","title"])]),b("td",null,g(s.storage.mountPoint),1),b("td",null,g(c.value),1),b("td",null,g(p.value),1),s.isAdmin?(u(),x("td",Ua,[b("div",{class:y(k.$style.storageTableRow__cellApplicable)},[_.value?(u(),h(e(me),{key:0,iconPath:e(Fe),noClose:"",text:e(n)("files_external","All accounts")},null,8,["iconPath","text"])):T("",!0),(u(!0),x(M,null,q(e(m),E=>(u(),h(e(me),{key:E.id,iconPath:e(De),noClose:"",text:E.displayName},null,8,["iconPath","text"]))),128)),(u(!0),x(M,null,q(e(o),E=>(u(),h(e(We),{key:E.user,displayName:E.displayName,size:24,user:E.user},null,8,["displayName","user"]))),128))],2)])):T("",!0),b("td",null,[s.isAdmin||s.storage.type==="personal"?(u(),x("div",{key:0,class:y(k.$style.storageTableRow__cellActions)},[v(e(R),{"aria-label":e(n)("files_external","Edit"),title:e(n)("files_external","Edit"),onClick:C},{icon:w(()=>[v(e(D),{path:e(je)},null,8,["path"])]),_:1},8,["aria-label","title"]),v(e(R),{"aria-label":e(n)("files_external","Delete"),title:e(n)("files_external","Delete"),variant:"error",onClick:f},{icon:w(()=>[v(e(D),{path:e(Be)},null,8,["path"])]),_:1},8,["aria-label","title"])],2)):(u(),h(e(D),{key:1,inline:"",path:e(Ge),name:e(n)("files_external","System provided storage"),title:e(n)("files_external","System provided storage")},null,8,["path","name","title"]))])],2))}}),Oa="_storageTableRow__cellActions_goqfw_2",qa="_storageTableRow__cellApplicable_goqfw_7",Na="_storageTableRow__status_warning_goqfw_17",Ea="_storageTableRow__status_error_goqfw_21",Pa={storageTableRow__cellActions:Oa,storageTableRow__cellApplicable:qa,storageTableRow__status_warning:Na,storageTableRow__status_error:Ea},Ra={$style:Pa},Fa=N(Ta,[["__cssModules",Ra]]),Da=["aria-label"],ja={class:"hidden-visually"},Ba={key:0},Ga={class:"hidden-visually"},Ha=O({__name:"ExternalStorageTable",setup(s){const a=ue(),{isAdmin:t}=$("files_external","settings"),i=S(()=>t?a.globalStorages:[...a.userStorages,...a.globalStorages]);return(c,d)=>(u(),x("table",{class:y(c.$style.storageTable),"aria-label":e(n)("files_external","External storages")},[b("thead",{class:y(c.$style.storageTable__header)},[b("tr",null,[b("th",{class:y(c.$style.storageTable__headerStatus)},[b("span",ja,g(e(n)("files_external","Status")),1)],2),b("th",{class:y(c.$style.storageTable__headerFolder)},g(e(n)("files_external","Folder name")),3),b("th",{class:y(c.$style.storageTable__headerBackend)},g(e(n)("files_external","External storage")),3),b("th",{class:y(c.$style.storageTable__headerAuthentication)},g(e(n)("files_external","Authentication")),3),e(t)?(u(),x("th",Ba,g(e(n)("files_external","Restricted to")),1)):T("",!0),b("th",{class:y(c.$style.storageTable__headerActions)},[b("span",Ga,g(e(n)("files_external","Actions")),1)],2)])],2),b("tbody",null,[(u(!0),x(M,null,q(i.value,p=>(u(),h(Fa,{key:p.id,isAdmin:e(t),storage:p},null,8,["isAdmin","storage"]))),128))])],10,Da))}}),La="_storageTable_1dqte_2",Ia="_storageTable__header_1dqte_11",Qa="_storageTable__headerStatus_1dqte_16",za="_storageTable__headerFolder_1dqte_20",Za="_storageTable__headerBackend_1dqte_24",Ka="_storageTable__headerFAuthentication_1dqte_28",Wa="_storageTable__headerActions_1dqte_32",Ya={storageTable:La,storageTable__header:Ia,storageTable__headerStatus:Qa,storageTable__headerFolder:za,storageTable__headerBackend:Za,storageTable__headerFAuthentication:Ka,storageTable__headerActions:Wa},Ja={$style:Ya},Xa=N(Ha,[["__cssModules",Ja]]),et=O({__name:"UserMountSettings",setup(s){const a=$("files_external","user-mounting"),t=$("files_external","backends").filter(d=>d.identifier!=="local"),i=A(a.allowUserMounting),c=A(a.allowedBackends);return Z(i,()=>{const d=!i.value;window.OCP.AppConfig.setValue("files_external","allow_user_mounting",i.value?"yes":"no",{success:()=>re(n("files_external","Saved")),error:()=>{i.value=d,ie(n("files_external","Error while saving"))}})}),Z(c,(d,p)=>{window.OCP.AppConfig.setValue("files_external","user_mounting_backends",d.join(","),{success:()=>re(n("files_external","Saved allowed backends")),error:()=>{ie(n("files_external","Failed to save allowed backends")),c.value=p}})}),(d,p)=>(u(),x("form",null,[b("h3",{class:y(d.$style.userMountSettings__heading)},g(e(n)("files_external","Advanced options for external storage mounts")),3),v(e(F),{modelValue:i.value,"onUpdate:modelValue":p[0]||(p[0]=r=>i.value=r),type:"switch"},{default:w(()=>[V(g(e(n)("files_external","Allow people to mount external storage")),1)]),_:1},8,["modelValue"]),J(b("fieldset",{class:y(d.$style.userMountSettings__backends)},[b("legend",null,g(e(n)("files_external","External storage backends people are allowed to mount")),1),(u(!0),x(M,null,q(e(t),r=>(u(),h(e(F),{key:r.identifier,modelValue:c.value,"onUpdate:modelValue":p[1]||(p[1]=l=>c.value=l),value:r.identifier,name:"allowUserMountingBackends[]"},{default:w(()=>[V(g(r.name),1)]),_:2},1032,["modelValue","value"]))),128))],2),[[X,i.value]])]))}}),at="_userMountSettings__heading_59moz_2",tt="_userMountSettings__backends_59moz_9",lt={userMountSettings__heading:at,userMountSettings__backends:tt},st={$style:lt},ot=N(et,[["__cssModules",st]]);const nt=["aria-label"],it=O({__name:"ExternalStoragesSection",setup(s){const a=$("files_external","settings",{docUrl:"",dependencyIssues:{messages:null,modules:null},isAdmin:!1}),t=ue(),i=a.dependencyIssues?.messages??[],c=a.dependencyIssues?.modules??{},d=A(!1),p=A();async function r(l){if(d.value=!1,!!l)try{a.isAdmin?await t.createGlobalStorage(l):await t.createUserStorage(l),p.value=void 0}catch(o){ke.error("Failed to add external storage",{error:o,storage:l}),p.value={...l},d.value=!0}}return(l,o)=>(u(),h(e(ge),{docUrl:e(a).docUrl,name:e(n)("files_external","External storage"),description:e(n)("files_external","External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices.")+(e(a).isAdmin?" "+e(n)("files_external","You may also allow people to mount their own external storage services."):"")},{default:w(()=>[(u(!0),x(M,null,q(e(i),(m,_)=>(u(),h(e(oe),{key:_,type:"error"},{default:w(()=>[V(g(m),1)]),_:2},1024))),128)),(u(!0),x(M,null,q(e(c),(m,_)=>(u(),h(e(oe),{key:_,type:"warning"},{default:w(()=>[b("p",null,[_==="curl"?(u(),x(M,{key:0},[V(g(e(n)("files_external","The cURL support in PHP is not enabled or installed.")),1)],64)):_==="ftp"?(u(),x(M,{key:1},[V(g(e(n)("files_external","The FTP support in PHP is not enabled or installed.")),1)],64)):(u(),x(M,{key:2},[V(g(e(n)("files_external","{module} is not installed.",{module:_})),1)],64)),V(" "+g(e(Le)("files_external","Please ask your system administrator to install it as otherwise mounting the following backend is not possible:","Please ask your system administrator to install it as otherwise mounting the following backends is not possible:",m.length)),1)]),b("ul",{class:y(l.$style.externalStoragesSection__dependantList),"aria-label":e(n)("files_external","Dependant backends")},[(u(!0),x(M,null,q(m,f=>(u(),x("li",{key:f},g(f),1))),128))],10,nt)]),_:2},1024))),128)),T("",!0),v(Xa),v(e(R),{class:y(l.$style.externalStoragesSection__newStorageButton),variant:"primary",onClick:o[0]||(o[0]=m=>d.value=!d.value)},{icon:w(()=>[v(e(D),{path:e(He)},null,8,["path"])]),default:w(()=>[V(" "+g(e(n)("files_external","Add external storage")),1)]),_:1},8,["class"]),v(Ae,{open:d.value,"onUpdate:open":o[1]||(o[1]=m=>d.value=m),storage:p.value,onClose:r},null,8,["open","storage"]),e(a).isAdmin?(u(),h(ot,{key:1})):T("",!0)]),_:1},8,["docUrl","name","description"]))}}),rt="_externalStoragesSection__dependantList_atsmn_2",ut="_externalStoragesSection__newStorageButton_atsmn_7",dt={externalStoragesSection__dependantList:rt,externalStoragesSection__newStorageButton:ut},ct={$style:dt},pt=N(it,[["__cssModules",ct]]),mt=O({__name:"GlobalCredentialsSection",setup(s){const a=$("files_external","global-credentials"),t=A(!1),i=A(a.user),c=A(a.password);xe(U);async function d(){try{t.value=!0;const{data:p}=await U.post(P("apps/files_external/globalcredentials"),{uid:a.uid,user:i.value,password:c.value},{confirmPassword:Q.Strict});if(p){re(n("files_external","Global credentials saved"));return}}catch(p){ke.error(p)}finally{t.value=!1}ie(n("files_external","Could not save global credentials")),i.value=a.user,c.value=a.password}return(p,r)=>(u(),h(e(ge),{name:e(n)("files_external","Global credentials"),description:e(n)("files_external","Global credentials can be used to authenticate with multiple external storages that have the same credentials.")},{default:w(()=>[b("form",{id:"global_credentials",class:y(p.$style.globalCredentialsSectionForm),autocomplete:"false",onSubmit:qe(d,["prevent"])},[v(e(ve),{modelValue:i.value,"onUpdate:modelValue":r[0]||(r[0]=l=>i.value=l),name:"username",autocomplete:"false",label:e(n)("files_external","Login")},null,8,["modelValue","label"]),v(e(Ke),{modelValue:c.value,"onUpdate:modelValue":r[1]||(r[1]=l=>c.value=l),name:"password",autocomplete:"false",label:e(n)("files_external","Password")},null,8,["modelValue","label"]),v(e(R),{class:y(p.$style.globalCredentialsSectionForm__submit),disabled:t.value,variant:"primary",type:"submit"},{default:w(()=>[V(g(t.value?e(n)("files_external","Saving …"):e(n)("files_external","Save")),1)]),_:1},8,["class","disabled"])],34)]),_:1},8,["name","description"]))}}),_t="_globalCredentialsSectionForm_bgjv2_2",ft="_globalCredentialsSectionForm__submit_bgjv2_10",gt={globalCredentialsSectionForm:_t,globalCredentialsSectionForm__submit:ft},vt={$style:gt},bt=N(mt,[["__cssModules",vt]]),yt=O({__name:"FilesExternalSettings",setup(s){return(a,t)=>(u(),x(M,null,[v(pt),v(bt)],64))}}),ht=Ne(),se=Ee(yt);se.config.idPrefix="files-external",se.use(ht),se.mount("#files-external");
|
|
//# sourceMappingURL=files_external-settings.mjs.map
|