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/files_external-settings.js

2 lines
25 KiB

(()=>{"use strict";var e,t,n,a={80655:(e,t,n)=>{var a=n(65043),s=n(85168),i=n(53334),o=n(56760),r=n(63814),l=n(12111);function c(e,t){return e.toggleClass("warning-input",t),t}function d(e){const t=e.hasClass("optional");switch(e.attr("type")){case"text":case"password":if(""===e.val()&&!t)return!1}return!0}function u(e){switch(e.attr("type")){case"text":case"password":return c(e,!d(e))}}function p(e,t){const n=function(e){return e.toString().split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;").split('"').join("&quot;").split("'").join("&#039;")};if(e.length)return e.select2({placeholder:(0,i.t)("files_external","Type to select account or group."),allowClear:!0,multiple:!0,toggleSelect:!0,dropdownCssClass:"files-external-select2",ajax:{url:OC.generateUrl("apps/files_external/ajax/applicable"),dataType:"json",quietMillis:100,data:(e,n)=>({pattern:e,limit:t,offset:t*(n-1)}),results(e){const n=[];let a=0;$.each(e.groups,function(e,t){n.push({name:e+"(group)",displayname:t,type:"group"})}),$.each(e.users,function(e,t){a++,n.push({name:e,displayname:t,type:"user"})});const s=a>=t||e.groups.length>=t;return{results:n,more:s}}},initSelection(e,t){const n={users:[]},a=e.val().split(",");for(let e=0;e<a.length;e++)n.users.push(a[e]);$.ajax(OC.generateUrl("displaynames"),{type:"POST",contentType:"application/json",data:JSON.stringify(n),dataType:"json"}).done(function(e){const n=[];"success"===e.status&&($.each(e.users,function(e,t){!1!==t&&n.push({name:e,displayname:t,type:"user"})}),t(n))})},id:e=>e.name,formatResult(e){const t=$('<span><div class="avatardiv"></div><span>'+n(e.displayname)+"</span></span>"),a=t.find(".avatardiv").attr("data-type",e.type).attr("data-name",e.name).attr("data-displayname",e.displayname);if("group"===e.type){const e=OC.imagePath("core","actions/group");a.html('<img width="32" height="32" src="'+e+'">')}return t.get(0).outerHTML},formatSelection:e=>"group"===e.type?'<span title="'+n(e.name)+'" class="group">'+n(e.displayname+" "+(0,i.t)("files_external","(Group)"))+"</span>":'<span title="'+n(e.name)+'" class="user">'+n(e.displayname)+"</span>",escapeMarkup:e=>e}).on("select2-loaded",function(){$.each($(".avatardiv"),function(e,t){const n=$(t);"user"===n.data("type")&&n.avatar(n.data("name"),32)})}).on("change",function(e){c($(e.target).closest(".applicableUsersContainer").find(".select2-choices"),!e.val.length)})}function h(e){this.id=e,this.backendOptions={}}function f(e){this.id=e,this.applicableUsers=[],this.applicableGroups=[]}function g(e){this.id=e}function m(e){this.id=e}function b(){}function v(e,t){this.initialize(e,t)}(0,o.IF)(a.Ay),h.Status={IN_PROGRESS:-1,SUCCESS:0,ERROR:1,INDETERMINATE:2},h.Visibility={NONE:0,PERSONAL:1,ADMIN:2,DEFAULT:3},h.prototype={_url:null,id:null,mountPoint:"",backend:null,authMechanism:null,backendOptions:null,mountOptions:null,save(e){let t=OC.generateUrl(this._url),n="POST";l.default.isNumber(this.id)&&(n="PUT",t=OC.generateUrl(this._url+"/{id}",{id:this.id})),this._save(n,t,e)},async _save(e,t,n){try{const s=(await a.Ay.request({confirmPassword:o.mH.Strict,method:e,url:t,data:this.getData()})).data;this.id=s.id,n.success(s)}catch(e){n.error(e)}},getData(){const e={mountPoint:this.mountPoint,backend:this.backend,authMechanism:this.authMechanism,backendOptions:this.backendOptions,testOnly:!0};return this.id&&(e.id=this.id),this.mountOptions&&(e.mountOptions=this.mountOptions),e},recheck(e){l.default.isNumber(this.id)?$.ajax({type:"GET",url:OC.generateUrl(this._url+"/{id}",{id:this.id}),data:{testOnly:!0},success:e.success,error:e.error}):l.default.isFunction(e.error)&&e.error()},async destroy(e){if(l.default.isNumber(this.id))try{await a.Ay.request({method:"DELETE",url:OC.generateUrl(this._url+"/{id}",{id:this.id}),confirmPassword:o.mH.Strict}),e.success()}catch(t){e.error(t)}else l.default.isFunction(e.success)&&e.success()},validate(){return""!==this.mountPoint&&!!this.backend&&!this.errors}},f.prototype=l.default.extend({},h.prototype,{_url:"apps/files_external/globalstorages",applicableUsers:null,applicableGroups:null,priority:null,getData(){const e=h.prototype.getData.apply(this,arguments);return l.default.extend(e,{applicableUsers:this.applicableUsers,applicableGroups:this.applicableGroups,priority:this.priority})}}),g.prototype=l.default.extend({},h.prototype,{_url:"apps/files_external/userstorages"}),m.prototype=l.default.extend({},h.prototype,{_url:"apps/files_external/userglobalstorages"}),b.prototype={$el:null,show(e,t,n){b._last&&b._last.hide();const a=$(OCA.Files_External.Templates.mountOptionsDropDown({mountOptionsEncodingLabel:(0,i.t)("files_external","Compatibility with Mac NFD encoding (slow)"),mountOptionsEncryptLabel:(0,i.t)("files_external","Enable encryption"),mountOptionsPreviewsLabel:(0,i.t)("files_external","Enable previews"),mountOptionsSharingLabel:(0,i.t)("files_external","Enable sharing"),mountOptionsFilesystemCheckLabel:(0,i.t)("files_external","Check for changes"),mountOptionsFilesystemCheckOnce:(0,i.t)("files_external","Never"),mountOptionsFilesystemCheckDA:(0,i.t)("files_external","Once every direct access"),mountOptionsReadOnlyLabel:(0,i.t)("files_external","Read only"),deleteLabel:(0,i.t)("files_external","Disconnect")}));this.$el=a;const s=e[0].parentNode.className;this.setOptions(t,n,s),this.$el.appendTo(e),b._last=this,this.$el.trigger("show")},hide(){this.$el&&(this.$el.trigger("hide"),this.$el.remove(),this.$el=null,b._last=null)},getOptions(){const e={};return this.$el.find("input, select").each(function(){const t=$(this),n=t.attr("name");let a=null;a="checkbox"===t.attr("type")?t.prop("checked"):t.val(),"int"===t.attr("data-type")&&(a=parseInt(a,10)),e[n]=a}),e},setOptions(e,t,n){if("owncloud"===n){const e=t.indexOf("encrypt");e>0&&t.splice(e,1)}const a=this.$el;l.default.each(e,function(e,t){const n=a.find("input, select").filterAttr("name",t);"checkbox"===n.attr("type")?(l.default.isString(e)&&(e="true"===e),n.prop("checked",!!e)):n.val(e)}),a.find(".optionRow").each(function(e,n){const a=$(n),s=a.find("input, select").attr("name");-1!==t.indexOf(s)||a.hasClass("persistent")?a.show():a.hide()})}},v.ParameterFlags={OPTIONAL:1,USER_PROVIDED:2,HIDDEN:4},v.ParameterTypes={TEXT:0,BOOLEAN:1,PASSWORD:2},v.prototype=l.default.extend({$el:null,_storageConfigClass:null,_isPersonal:!1,_userListLimit:30,_allBackends:null,_allAuthMechanisms:null,_encryptionEnabled:!1,initialize(e,t){this.$el=e,this._isPersonal=!0!==e.data("admin"),this._isPersonal?this._storageConfigClass=OCA.Files_External.Settings.UserStorageConfig:this._storageConfigClass=OCA.Files_External.Settings.GlobalStorageConfig,t&&!l.default.isUndefined(t.userListLimit)&&(this._userListLimit=t.userListLimit),this._encryptionEnabled=t.encryptionEnabled,this._canCreateLocal=t.canCreateLocal,this._allBackends=this.$el.find(".selectBackend").data("configurations"),this._allAuthMechanisms=this.$el.find("#addMountPoint .authentication").data("mechanisms"),this._initEvents()},whenSelectBackend(e){this.$el.find("tbody tr:not(#addMountPoint):not(.externalStorageLoading)").each(function(t,n){const a=$(n).find(".backend").data("identifier");e($(n),a)}),this.on("selectBackend",e)},whenSelectAuthMechanism(e){const t=this;this.$el.find("tbody tr:not(#addMountPoint):not(.externalStorageLoading)").each(function(n,a){const s=$(a).find(".selectAuthMechanism").val();e($(a),s,t._allAuthMechanisms[s].scheme)}),this.on("selectAuthMechanism",e)},_initEvents(){const e=this,t=l.default.bind(this._onChange,this);this.$el.on("keyup","td input",t),this.$el.on("paste","td input",t),this.$el.on("change","td input:checkbox",t),this.$el.on("change",".applicable",t),this.$el.on("click",".status>span",function(){e.recheckStorageConfig($(this).closest("tr"))}),this.$el.on("click","td.mountOptionsToggle .icon-delete",function(){e.deleteStorageConfig($(this).closest("tr"))}),this.$el.on("click","td.save>.icon-checkmark",function(){e.saveStorageConfig($(this).closest("tr"))}),this.$el.on("click","td.mountOptionsToggle>.icon-more",function(){$(this).attr("aria-expanded","true"),e._showMountOptionsDropdown($(this).closest("tr"))}),this.$el.on("change",".selectBackend",l.default.bind(this._onSelectBackend,this)),this.$el.on("change",".selectAuthMechanism",l.default.bind(this._onSelectAuthMechanism,this)),this.$el.on("change",".applicableToAllUsers",l.default.bind(this._onChangeApplicableToAllUsers,this))},_onChange(e){const t=$(e.target);if(t.closest(".dropdown").length)return;u(t);const n=t.closest("tr");this.updateStatus(n,null)},_onSelectBackend(e){const t=$(e.target);let n=t.closest("tr");const a=new this._storageConfigClass;a.mountPoint=n.find(".mountPoint input").val(),a.backend=t.val(),n.find(".mountPoint input").val(""),n.find(".selectBackend").prop("selectedIndex",0);const s=$.Deferred();n=this.newStorage(a,s),n.find(".applicableToAllUsers").prop("checked",!1).trigger("change"),s.resolve(),n.find("td.configuration").children().not("[type=hidden]").first().focus(),this.saveStorageConfig(n)},_onSelectAuthMechanism(e){const t=$(e.target),n=t.closest("tr"),a=t.val(),s=$.Deferred();this.configureAuthMechanism(n,a,s),s.resolve(),this.saveStorageConfig(n)},_onChangeApplicableToAllUsers(e){const t=$(e.target),n=t.closest("tr"),a=t.is(":checked");n.find(".applicableUsersContainer").toggleClass("hidden",a),a||n.find(".applicableUsers").select2("val","",!0),this.saveStorageConfig(n)},configureAuthMechanism(e,t,n){const a=this._allAuthMechanisms[t],s=e.find("td.configuration");s.find(".auth-param").remove(),$.each(a.configuration,l.default.partial(this.writeParameterInput,s,l.default,l.default,["auth-param"]).bind(this)),this.trigger("selectAuthMechanism",e,t,a.scheme,n)},newStorage(e,t,n){let a=e.mountPoint,s=this._allBackends[e.backend];s||(s={name:"Unknown: "+e.backend,invalid:!0});const o=this.$el.find("tr#addMountPoint"),r=o.clone();if(n||r.insertBefore(o),r.data("storageConfig",e),r.show(),r.find("td.mountOptionsToggle, td.save, td.remove").removeClass("hidden"),r.find("td").last().removeAttr("style"),r.removeAttr("id"),r.find("select#selectBackend"),n||p(r.find(".applicableUsers"),this._userListLimit),e.id&&r.data("id",e.id),r.find(".backend").text(s.name),""===a&&(a=this._suggestMountPoint(s.name)),r.find(".mountPoint input").val(a),r.addClass(s.identifier),r.find(".backend").data("identifier",s.identifier),s.invalid||"local"===s.identifier&&!this._canCreateLocal)return r.find("[name=mountPoint]").prop("disabled",!0),r.find(".applicable,.mountOptionsToggle").empty(),r.find(".save").empty(),s.invalid&&this.updateStatus(r,!1,(0,i.t)("files_external","Unknown backend: {backendName}",{backendName:s.name})),r;const c=$('<select class="selectAuthMechanism"></select>'),d=this._isPersonal?h.Visibility.PERSONAL:h.Visibility.ADMIN;$.each(this._allAuthMechanisms,function(e,t){s.authSchemes[t.scheme]&&t.visibility&d&&c.append($('<option value="'+t.identifier+'" data-scheme="'+t.scheme+'">'+t.name+"</option>"))}),e.authMechanism?c.val(e.authMechanism):e.authMechanism=c.val(),r.find("td.authentication").append(c);const f=r.find("td.configuration");$.each(s.configuration,l.default.partial(this.writeParameterInput,f).bind(this)),this.trigger("selectBackend",r,s.identifier,t),this.configureAuthMechanism(r,e.authMechanism,t),e.backendOptions&&f.find("input, select").each(function(){const t=$(this),n=e.backendOptions[t.data("parameter")];void 0!==n&&(t.is("input:checkbox")&&t.prop("checked",n),t.val(e.backendOptions[t.data("parameter")]),u(t))});let g=[];e.applicableUsers&&(g=g.concat(e.applicableUsers)),e.applicableGroups&&(g=g.concat(l.default.map(e.applicableGroups,function(e){return e+"(group)"}))),g.length?(r.find(".applicableUsers").val(g).trigger("change"),r.find(".applicableUsersContainer").removeClass("hidden")):r.find(".applicableUsersContainer").addClass("hidden"),r.find(".applicableToAllUsers").prop("checked",!g.length);const m=$('<input type="hidden" class="priority" value="'+s.priority+'" />');return r.append(m),e.mountOptions?r.find("input.mountOptions").val(JSON.stringify(e.mountOptions)):r.find("input.mountOptions").val(JSON.stringify({encrypt:!0,previews:!0,enable_sharing:!1,filesystem_check_changes:1,encoding_compatibility:!1,readonly:!1})),r},loadStorages(){const e=this,t=$.Deferred(),n=$.Deferred();this.$el.find(".externalStorageLoading").removeClass("hidden"),$.when(t,n).always(()=>{e.$el.find(".externalStorageLoading").addClass("hidden")}),this._isPersonal?$.ajax({type:"GET",url:OC.generateUrl("apps/files_external/userglobalstorages"),data:{testOnly:!0},contentType:"application/json",success(n){n=Object.values(n);const a=$.Deferred();let s=$();n.forEach(function(t){let o;const r="system"===t.type&&e._isPersonal;t.mountPoint=t.mountPoint.substr(1),o=r?new m:new e._storageConfigClass,l.default.extend(o,t);const c=e.newStorage(o,a,!0);c.detach(),e.$el.prepend(c);const d=c.find(".authentication");d.text(d.find("select option:selected").text()),c.find(".mountOptionsToggle, .remove").empty(),c.find("input:not(.user_provided), select:not(.user_provided)").attr("disabled","disabled"),r?c.find(".configuration").find(":not(.user_provided)").remove():c.find(".configuration").text((0,i.t)("files_external","Admin defined")),n.length<20?e.recheckStorageConfig(c):e.updateStatus(c,h.Status.INDETERMINATE,(0,i.t)("files_external","Automatic status checking is disabled due to the large number of configured storages, click to check status")),s=s.add(c)}),p(e.$el.find(".applicableUsers"),this._userListLimit),e.$el.find("tr#addMountPoint").before(s);const o=$("#files_external");0===n.length&&"false"===o.attr("data-can-create")&&(o.hide(),$('a[href="#external-storage"]').parent().hide(),$(".emptycontent").show()),a.resolve(),t.resolve()}}):t.resolve();const a=this._storageConfigClass.prototype._url;$.ajax({type:"GET",url:OC.generateUrl(a),contentType:"application/json",success(t){t=Object.values(t);const a=$.Deferred();let s=$();t.forEach(function(n){n.mountPoint="/"===n.mountPoint?"/":n.mountPoint.substr(1);const o=new e._storageConfigClass;l.default.extend(o,n);const r=e.newStorage(o,a,!0);t.length<20?e.recheckStorageConfig(r):e.updateStatus(r,h.Status.INDETERMINATE,(0,i.t)("files_external","Automatic status checking is disabled due to the large number of configured storages, click to check status")),s=s.add(r)}),p(s.find(".applicableUsers"),this._userListLimit),e.$el.find("tr#addMountPoint").before(s),a.resolve(),n.resolve()}})},writeParameterInput(e,t,n,a){const s=function(e){return(n.flags&e)===e};if((a=$.isArray(a)?a:[]).push("added"),s(v.ParameterFlags.OPTIONAL)&&a.push("optional"),s(v.ParameterFlags.USER_PROVIDED)){if(!this._isPersonal)return;a.push("user_provided")}let i;const o=n.value;if(s(v.ParameterFlags.HIDDEN))i=$('<input type="hidden" class="'+a.join(" ")+'" data-parameter="'+t+'" />');else if(n.type===v.ParameterTypes.PASSWORD)i=$('<input type="password" class="'+a.join(" ")+'" data-parameter="'+t+'" placeholder="'+o+'" />');else if(n.type===v.ParameterTypes.BOOLEAN){const e=l.default.uniqueId("checkbox_");i=$('<div><label><input type="checkbox" id="'+e+'" class="'+a.join(" ")+'" data-parameter="'+t+'" />'+o+"</label></div>")}else i=$('<input type="text" class="'+a.join(" ")+'" data-parameter="'+t+'" placeholder="'+o+'" />');return n.defaultValue&&(n.type===v.ParameterTypes.BOOLEAN?i.find("input").prop("checked",n.defaultValue):i.val(n.defaultValue)),n.tooltip&&i.attr("title",n.tooltip),u(i),e.append(i),i},getStorageConfig(e){let t=e.data("id");t||(t=null);let n=e.data("storageConfig");n||(n=new this._storageConfigClass(t)),n.errors=null,n.mountPoint=e.find(".mountPoint input").val(),n.backend=e.find(".backend").data("identifier"),n.authMechanism=e.find(".selectAuthMechanism").val();const a={},s=e.find(".configuration input"),i=[];if($.each(s,function(e,t){const n=$(t),s=n.data("parameter");"button"!==n.attr("type")&&(d(n)||n.hasClass("optional")?$(t).is(":checkbox")?$(t).is(":checked")?a[s]=!0:a[s]=!1:a[s]=$(t).val():i.push(s))}),n.backendOptions=a,i.length&&(n.errors={backendOptions:i}),!this._isPersonal){const t=function(e){const t=[],n=[],a=function(e){let t=e.find(".applicableUsers").select2("val");return t&&0!==t.length||(t=[]),t}(e);return $.each(a,function(e,a){const s=a.indexOf?a.indexOf("(group)"):-1;-1!==s?n.push(a.substr(0,s)):t.push(a)}),e.find(".applicable").data("applicable-groups",n).data("applicable-users",t),{users:t,groups:n}}(e),a=t.users||[],s=t.groups||[];e.find(".applicableToAllUsers").is(":checked")?(n.applicableUsers=[],n.applicableGroups=[]):(n.applicableUsers=a,n.applicableGroups=s,n.applicableUsers.length||n.applicableGroups.length||(n.errors||(n.errors={}),n.errors.requiredApplicable=!0)),n.priority=parseInt(e.find("input.priority").val()||"100",10)}const o=e.find("input.mountOptions").val();return o&&(n.mountOptions=JSON.parse(o)),n},deleteStorageConfig(e){const t=this,n=e.data("id");if(!l.default.isNumber(n))return void e.remove();const a=new this._storageConfigClass(n);OC.dialogs.confirm((0,i.t)("files_external","Are you sure you want to disconnect this external storage?")+" "+(0,i.t)("files_external","It will make the storage unavailable in {instanceName} and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself.",{storage:this.mountPoint,instanceName:window.OC.theme.name}),(0,i.t)("files_external","Delete storage?"),function(n){n&&(t.updateStatus(e,h.Status.IN_PROGRESS),a.destroy({success(){e.remove()},error(n){const a=n&&n.responseJSON?n.responseJSON.message:void 0;t.updateStatus(e,h.Status.ERROR,a)}}))})},saveStorageConfig(e,t,n){const a=this,s=this.getStorageConfig(e);if(!s||!s.validate())return!1;this.updateStatus(e,h.Status.IN_PROGRESS),s.save({success(i){void 0!==n&&e.data("save-timer")!==n||(a.updateStatus(e,i.status,i.statusMessage),e.data("id",i.id),l.default.isFunction(t)&&t(s))},error(t){if(void 0===n||e.data("save-timer")===n){const n=t&&t.responseJSON?t.responseJSON.message:void 0;a.updateStatus(e,h.Status.ERROR,n)}}})},recheckStorageConfig(e){const t=this,n=this.getStorageConfig(e);if(!n.validate())return!1;this.updateStatus(e,h.Status.IN_PROGRESS),n.recheck({success(n){t.updateStatus(e,n.status,n.statusMessage)},error(n){const a=n&&n.responseJSON?n.responseJSON.message:void 0;t.updateStatus(e,h.Status.ERROR,a)}})},updateStatus(e,t,n){const a=e.find(".status span");switch(t){case null:a.hide();break;case h.Status.IN_PROGRESS:a.attr("class","icon-loading-small");break;case h.Status.SUCCESS:a.attr("class","success icon-checkmark-white");break;case h.Status.INDETERMINATE:a.attr("class","indeterminate icon-info-white");break;default:a.attr("class","error icon-error-white")}null!==t&&a.show(),"string"!=typeof n&&(n=(0,i.t)("files_external","Click to recheck the configuration")),a.attr("title",n)},_suggestMountPoint(e){const t=this.$el,n=e.indexOf("/");-1!==n&&(e=e.substring(0,n)),e=e.replace(/\s+/g,"");let a=1,s="",i=!0;for(;i&&a<20&&(i=!1,t.find("tbody td.mountPoint input").each(function(t,n){if($(n).val()===e+s)return i=!0,!1}),i);)s=a,a++;return e+s},_showMountOptionsDropdown(e){const t=this,n=this.getStorageConfig(e),a=e.find(".mountOptionsToggle"),s=new b,i=["previews","filesystem_check_changes","enable_sharing","encoding_compatibility","readonly","delete"];this._encryptionEnabled&&i.push("encrypt"),s.show(a,n.mountOptions||[],i),$("body").on("mouseup.mountOptionsDropdown",function(e){$(e.target).closest(".popovermenu").length||s.hide()}),s.$el.on("hide",function(){const n=s.getOptions();$("body").off("mouseup.mountOptionsDropdown"),e.find("input.mountOptions").val(JSON.stringify(n)),e.find("td.mountOptionsToggle>.icon-more").attr("aria-expanded","false"),t.saveStorageConfig(e)})}},OC.Backbone.Events),window.addEventListener("DOMContentLoaded",function(){const e=$("#files_external").attr("data-encryption-enabled"),t=$("#files_external").attr("data-can-create-local"),n="true"===e,c=new v($("#externalStorage"),{encryptionEnabled:n,canCreateLocal:"true"===t});c.loadStorages();const d=$("#allowUserMounting");d.bind("change",function(){OC.msg.startSaving("#userMountingMsg"),this.checked?(OCP.AppConfig.setValue("files_external","allow_user_mounting","yes"),$('input[name="allowUserMountingBackends\\[\\]"]').prop("checked",!0),$("#userMountingBackends").removeClass("hidden"),$('input[name="allowUserMountingBackends\\[\\]"]').eq(0).trigger("change")):(OCP.AppConfig.setValue("files_external","allow_user_mounting","no"),$("#userMountingBackends").addClass("hidden")),OC.msg.finishedSaving("#userMountingMsg",{status:"success",data:{message:(0,i.t)("files_external","Saved")}})}),$('input[name="allowUserMountingBackends\\[\\]"]').bind("change",function(){OC.msg.startSaving("#userMountingMsg");let e=$('input[name="allowUserMountingBackends\\[\\]"]:checked').map(function(){return $(this).val()}).get();const t=$('input[name="allowUserMountingBackends\\[\\]"][data-deprecate-to]').map(function(){return-1!==$.inArray($(this).data("deprecate-to"),e)?$(this).val():null}).get();e=e.concat(t),OCP.AppConfig.setValue("files_external","user_mounting_backends",e.join()),OC.msg.finishedSaving("#userMountingMsg",{status:"success",data:{message:(0,i.t)("files_external","Saved")}}),0===e.length&&(d.prop("checked",!1),d.trigger("change"))}),$("#global_credentials").on("submit",async function(e){e.preventDefault();const t=$(this),n=t.find("[type=submit]");n.val((0,i.t)("files_external","Saving …"));const l=t.find("[name=uid]").val(),c=t.find("[name=username]").val(),d=t.find("[name=password]").val();try{await a.Ay.request({method:"POST",data:{uid:l,user:c,password:d},url:(0,r.Jv)("apps/files_external/globalcredentials"),confirmPassword:o.mH.Strict}),n.val((0,i.t)("files_external","Saved")),setTimeout(function(){n.val((0,i.t)("files_external","Save"))},2500)}catch(e){if(n.val((0,i.t)("files_external","Save")),(0,a.F0)(e)){const t=e.response?.data?.message||(0,i.t)("files_external","Failed to save global credentials");(0,s.Qg)((0,i.t)("files_external","Failed to save global credentials: {message}",{message:t}))}}return!1}),OCA.Files_External.Settings.mountConfig=c,OC.MountConfig={saveStorage:l.default.bind(c.saveStorageConfig,c)}}),OCA.Files_External=OCA.Files_External||{},OCA.Files_External.Settings=OCA.Files_External.Settings||{},OCA.Files_External.Settings.GlobalStorageConfig=f,OCA.Files_External.Settings.UserStorageConfig=g,OCA.Files_External.Settings.MountConfigListView=v}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={id:e,loaded:!1,exports:{}};return a[e].call(n.exports,n,n.exports,i),n.loaded=!0,n.exports}i.m=a,e=[],i.O=(t,n,a,s)=>{if(!n){var o=1/0;for(d=0;d<e.length;d++){n=e[d][0],a=e[d][1],s=e[d][2];for(var r=!0,l=0;l<n.length;l++)(!1&s||o>=s)&&Object.keys(i.O).every(e=>i.O[e](n[l]))?n.splice(l--,1):(r=!1,s<o&&(o=s));if(r){e.splice(d--,1);var c=a();void 0!==c&&(t=c)}}return t}s=s||0;for(var d=e.length;d>0&&e[d-1][2]>s;d--)e[d]=e[d-1];e[d]=[n,a,s]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce((t,n)=>(i.f[n](e,t),t),[])),i.u=e=>e+"-"+e+".js?v="+{640:"d4c5c018803ee8751b2a",780:"e3ee44fa7690af29d8d7",3564:"29e8338d43e0d4bd3995",5810:"b550a24d46f75f92c2d5",7471:"6423b9b898ffefeb7d1d"}[e],i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},n="nextcloud:",i.l=(e,a,s,o)=>{if(t[e])t[e].push(a);else{var r,l;if(void 0!==s)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var u=c[d];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==n+s){r=u;break}}r||(l=!0,(r=document.createElement("script")).charset="utf-8",r.timeout=120,i.nc&&r.setAttribute("nonce",i.nc),r.setAttribute("data-webpack",n+s),r.src=e),t[e]=[a];var p=(n,a)=>{r.onerror=r.onload=null,clearTimeout(h);var s=t[e];if(delete t[e],r.parentNode&&r.parentNode.removeChild(r),s&&s.forEach(e=>e(a)),n)return n(a)},h=setTimeout(p.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=p.bind(null,r.onerror),r.onload=p.bind(null,r.onload),l&&document.head.appendChild(r)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),i.j=5808,(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var t=i.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var a=n.length-1;a>-1&&(!e||!/^http(s?):/.test(e));)e=n[a--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),(()=>{i.b=document.baseURI||self.location.href;var e={5808:0};i.f.j=(t,n)=>{var a=i.o(e,t)?e[t]:void 0;if(0!==a)if(a)n.push(a[2]);else{var s=new Promise((n,s)=>a=e[t]=[n,s]);n.push(a[2]=s);var o=i.p+i.u(t),r=new Error;i.l(o,n=>{if(i.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var s=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;r.message="Loading chunk "+t+" failed.\n("+s+": "+o+")",r.name="ChunkLoadError",r.type=s,r.request=o,a[1](r)}},"chunk-"+t,t)}},i.O.j=t=>0===e[t];var t=(t,n)=>{var a,s,o=n[0],r=n[1],l=n[2],c=0;if(o.some(t=>0!==e[t])){for(a in r)i.o(r,a)&&(i.m[a]=r[a]);if(l)var d=l(i)}for(t&&t(n);c<o.length;c++)s=o[c],i.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return i.O(d)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),i.nc=void 0;var o=i.O(void 0,[4208],()=>i(80655));o=i.O(o)})();
//# sourceMappingURL=files_external-settings.js.map?v=da6584393bfcc8ee19ac