diff --git a/apps/files_external/lib/Command/Backends.php b/apps/files_external/lib/Command/Backends.php
index c2d844dc78117..399bdadcacf72 100644
--- a/apps/files_external/lib/Command/Backends.php
+++ b/apps/files_external/lib/Command/Backends.php
@@ -94,7 +94,7 @@ private function serializeAuthBackend(\JsonSerializable $backend): array {
*/
private function formatConfiguration(array $parameters): array {
$configuration = array_filter($parameters, function (DefinitionParameter $parameter) {
- return $parameter->getType() !== DefinitionParameter::VALUE_HIDDEN;
+ return $parameter->isFlagSet(DefinitionParameter::FLAG_HIDDEN);
});
return array_map(function (DefinitionParameter $parameter) {
return $parameter->getTypeName();
diff --git a/apps/files_external/lib/Lib/Auth/OAuth1/OAuth1.php b/apps/files_external/lib/Lib/Auth/OAuth1/OAuth1.php
index b215201b4f4de..688e04c4210fb 100644
--- a/apps/files_external/lib/Lib/Auth/OAuth1/OAuth1.php
+++ b/apps/files_external/lib/Lib/Auth/OAuth1/OAuth1.php
@@ -21,14 +21,17 @@ public function __construct(IL10N $l) {
->setText($l->t('OAuth1'))
->addParameters([
(new DefinitionParameter('configured', 'configured'))
- ->setType(DefinitionParameter::VALUE_HIDDEN),
+ ->setType(DefinitionParameter::VALUE_TEXT)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN),
new DefinitionParameter('app_key', $l->t('App key')),
(new DefinitionParameter('app_secret', $l->t('App secret')))
->setType(DefinitionParameter::VALUE_PASSWORD),
(new DefinitionParameter('token', 'token'))
- ->setType(DefinitionParameter::VALUE_HIDDEN),
+ ->setType(DefinitionParameter::VALUE_PASSWORD)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN),
(new DefinitionParameter('token_secret', 'token_secret'))
- ->setType(DefinitionParameter::VALUE_HIDDEN),
+ ->setType(DefinitionParameter::VALUE_PASSWORD)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN),
])
->addCustomJs('oauth1')
;
diff --git a/apps/files_external/lib/Lib/Auth/OAuth2/OAuth2.php b/apps/files_external/lib/Lib/Auth/OAuth2/OAuth2.php
index 6b41fef90d521..b6c1e1d95574f 100644
--- a/apps/files_external/lib/Lib/Auth/OAuth2/OAuth2.php
+++ b/apps/files_external/lib/Lib/Auth/OAuth2/OAuth2.php
@@ -21,12 +21,14 @@ public function __construct(IL10N $l) {
->setText($l->t('OAuth2'))
->addParameters([
(new DefinitionParameter('configured', 'configured'))
- ->setType(DefinitionParameter::VALUE_HIDDEN),
+ ->setType(DefinitionParameter::VALUE_TEXT)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN),
new DefinitionParameter('client_id', $l->t('Client ID')),
(new DefinitionParameter('client_secret', $l->t('Client secret')))
->setType(DefinitionParameter::VALUE_PASSWORD),
(new DefinitionParameter('token', 'token'))
- ->setType(DefinitionParameter::VALUE_HIDDEN),
+ ->setType(DefinitionParameter::VALUE_PASSWORD)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN),
])
->addCustomJs('oauth2')
;
diff --git a/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php b/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php
index e3453a477d438..57df631636179 100644
--- a/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php
+++ b/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php
@@ -43,7 +43,9 @@ public function __construct(
->setText($l->t('Log-in credentials, save in database'))
->addParameters([
(new DefinitionParameter('password', $l->t('Password')))
- ->setType(DefinitionParameter::VALUE_PASSWORD),
+ ->setType(DefinitionParameter::VALUE_PASSWORD)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN)
+ ->setFlag(DefinitionParameter::FLAG_OPTIONAL),
]);
$eventDispatcher->addServiceListener(UserLoggedInEvent::class, StorePasswordListener::class);
diff --git a/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php b/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php
index 6b7a51a88285e..8af82ab228c56 100644
--- a/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php
+++ b/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php
@@ -32,7 +32,9 @@ public function __construct(
->setText($l->t('Log-in credentials, save in session'))
->addParameters([
(new DefinitionParameter('password', $l->t('Password')))
- ->setType(DefinitionParameter::VALUE_PASSWORD),
+ ->setType(DefinitionParameter::VALUE_PASSWORD)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN)
+ ->setFlag(DefinitionParameter::FLAG_OPTIONAL),
]);
}
diff --git a/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php b/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php
index 2371ce0a219dd..87072299d6d31 100644
--- a/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php
+++ b/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php
@@ -31,7 +31,8 @@ public function __construct(
new DefinitionParameter('user', $l->t('Login')),
new DefinitionParameter('public_key', $l->t('Public key')),
(new DefinitionParameter('private_key', 'private_key'))
- ->setType(DefinitionParameter::VALUE_HIDDEN),
+ ->setType(DefinitionParameter::VALUE_PASSWORD)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN),
])
->addCustomJs('public_key')
;
diff --git a/apps/files_external/lib/Lib/Backend/LegacyBackend.php b/apps/files_external/lib/Lib/Backend/LegacyBackend.php
index 11396913fbd42..a74412e8373a3 100644
--- a/apps/files_external/lib/Lib/Backend/LegacyBackend.php
+++ b/apps/files_external/lib/Lib/Backend/LegacyBackend.php
@@ -52,10 +52,6 @@ public function __construct($class, array $definition, Builtin $authMechanism) {
$type = DefinitionParameter::VALUE_PASSWORD;
$placeholder = substr($placeholder, 1);
break;
- case '#':
- $type = DefinitionParameter::VALUE_HIDDEN;
- $placeholder = substr($placeholder, 1);
- break;
}
$this->addParameter((new DefinitionParameter($name, $placeholder))
->setType($type)
diff --git a/apps/files_external/lib/Lib/Backend/SMB.php b/apps/files_external/lib/Lib/Backend/SMB.php
index c4a68fea6e18e..b246b0638f007 100644
--- a/apps/files_external/lib/Lib/Backend/SMB.php
+++ b/apps/files_external/lib/Lib/Backend/SMB.php
@@ -49,8 +49,9 @@ public function __construct(IL10N $l, Password $legacyAuth) {
->setFlag(DefinitionParameter::FLAG_OPTIONAL)
->setTooltip($l->t("Check the ACL's of each file or folder inside a directory to filter out items where the account has no read permissions, comes with a performance penalty")),
(new DefinitionParameter('timeout', $l->t('Timeout')))
- ->setType(DefinitionParameter::VALUE_HIDDEN)
- ->setFlag(DefinitionParameter::FLAG_OPTIONAL),
+ ->setType(DefinitionParameter::VALUE_TEXT)
+ ->setFlag(DefinitionParameter::FLAG_OPTIONAL)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN),
])
->addAuthScheme(AuthMechanism::SCHEME_PASSWORD)
->addAuthScheme(AuthMechanism::SCHEME_SMB)
diff --git a/apps/files_external/lib/Lib/DefinitionParameter.php b/apps/files_external/lib/Lib/DefinitionParameter.php
index 1e611edd1edd6..3c668c6b83dc6 100644
--- a/apps/files_external/lib/Lib/DefinitionParameter.php
+++ b/apps/files_external/lib/Lib/DefinitionParameter.php
@@ -18,12 +18,12 @@ class DefinitionParameter implements \JsonSerializable {
public const VALUE_TEXT = 0;
public const VALUE_BOOLEAN = 1;
public const VALUE_PASSWORD = 2;
- public const VALUE_HIDDEN = 3;
/** Flag constants */
public const FLAG_NONE = 0;
public const FLAG_OPTIONAL = 1;
public const FLAG_USER_PROVIDED = 2;
+ public const FLAG_HIDDEN = 4;
/** @var string human-readable parameter tooltip */
private string $tooltip = '';
diff --git a/apps/files_external/src/settings.js b/apps/files_external/src/settings.js
index aa9b57786d97b..033696c9d2423 100644
--- a/apps/files_external/src/settings.js
+++ b/apps/files_external/src/settings.js
@@ -647,13 +647,13 @@ const MountConfigListView = function($el, options) {
MountConfigListView.ParameterFlags = {
OPTIONAL: 1,
USER_PROVIDED: 2,
+ HIDDEN: 4,
}
MountConfigListView.ParameterTypes = {
TEXT: 0,
BOOLEAN: 1,
PASSWORD: 2,
- HIDDEN: 3,
}
/**
@@ -1142,13 +1142,13 @@ MountConfigListView.prototype = _.extend({
let newElement
const trimmedPlaceholder = placeholder.value
- if (placeholder.type === MountConfigListView.ParameterTypes.PASSWORD) {
+ if (hasFlag(MountConfigListView.ParameterFlags.HIDDEN)) {
+ newElement = $('')
+ } else if (placeholder.type === MountConfigListView.ParameterTypes.PASSWORD) {
newElement = $('')
} else if (placeholder.type === MountConfigListView.ParameterTypes.BOOLEAN) {
const checkboxId = _.uniqueId('checkbox_')
newElement = $('
')
- } else if (placeholder.type === MountConfigListView.ParameterTypes.HIDDEN) {
- newElement = $('')
} else {
newElement = $('')
}
diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php
index d1a8f78076a29..5aad7b018afaf 100644
--- a/apps/files_external/templates/settings.php
+++ b/apps/files_external/templates/settings.php
@@ -7,7 +7,6 @@
*/
use OCA\Files_External\Lib\Auth\AuthMechanism;
use OCA\Files_External\Lib\Backend\Backend;
-use OCA\Files_External\Lib\DefinitionParameter;
use OCA\Files_External\Service\BackendService;
/** @var array $_ */
@@ -42,63 +41,6 @@
}
}
-function writeParameterInput($parameter, $options, $classes = []) {
- $value = '';
- if (isset($options[$parameter->getName()])) {
- $value = $options[$parameter->getName()];
- }
- $placeholder = $parameter->getText();
- $is_optional = $parameter->isFlagSet(DefinitionParameter::FLAG_OPTIONAL);
-
- switch ($parameter->getType()) {
- case DefinitionParameter::VALUE_PASSWORD: ?>
-
- class=""
- data-parameter="getName()); ?>"
- value=""
- placeholder=""
- />
-
-
-
-
-
-
- class=""
- data-parameter="getName()); ?>"
- value=""
- />
-
-
- class=""
- data-parameter="getName()); ?>"
- value=""
- placeholder=""
- />
-
diff --git a/apps/files_external/tests/Backend/LegacyBackendTest.php b/apps/files_external/tests/Backend/LegacyBackendTest.php
index 303700c661102..cea46c1a0cdfa 100644
--- a/apps/files_external/tests/Backend/LegacyBackendTest.php
+++ b/apps/files_external/tests/Backend/LegacyBackendTest.php
@@ -32,7 +32,6 @@ public function testConstructor(): void {
'textfield' => 'Text field',
'passwordfield' => '*Password field',
'checkbox' => '!Checkbox',
- 'hiddenfield' => '#Hidden field',
'optionaltext' => '&Optional text field',
'optionalpassword' => '&*Optional password field',
],
@@ -66,9 +65,6 @@ public function testConstructor(): void {
$this->assertEquals('Checkbox', $parameters['checkbox']->getText());
$this->assertEquals(DefinitionParameter::VALUE_BOOLEAN, $parameters['checkbox']->getType());
$this->assertEquals(DefinitionParameter::FLAG_NONE, $parameters['checkbox']->getFlags());
- $this->assertEquals('Hidden field', $parameters['hiddenfield']->getText());
- $this->assertEquals(DefinitionParameter::VALUE_HIDDEN, $parameters['hiddenfield']->getType());
- $this->assertEquals(DefinitionParameter::FLAG_NONE, $parameters['hiddenfield']->getFlags());
$this->assertEquals('Optional text field', $parameters['optionaltext']->getText());
$this->assertEquals(DefinitionParameter::VALUE_TEXT, $parameters['optionaltext']->getType());
$this->assertEquals(DefinitionParameter::FLAG_OPTIONAL, $parameters['optionaltext']->getFlags());
diff --git a/apps/files_external/tests/DefinitionParameterTest.php b/apps/files_external/tests/DefinitionParameterTest.php
index 0b1d11bbf0cf2..3fc65eaf89707 100644
--- a/apps/files_external/tests/DefinitionParameterTest.php
+++ b/apps/files_external/tests/DefinitionParameterTest.php
@@ -38,12 +38,12 @@ public function testJsonSerialization(): void {
'tooltip' => '',
], $param->jsonSerialize());
- $param->setType(Param::VALUE_HIDDEN);
- $param->setFlags(Param::FLAG_NONE);
+ $param->setType(Param::VALUE_TEXT);
+ $param->setFlags(Param::FLAG_HIDDEN);
$this->assertEquals([
'value' => 'bar',
- 'flags' => Param::FLAG_NONE,
- 'type' => Param::VALUE_HIDDEN,
+ 'flags' => Param::FLAG_HIDDEN,
+ 'type' => Param::VALUE_TEXT,
'tooltip' => '',
], $param->jsonSerialize());
}
@@ -53,6 +53,7 @@ public function validateValueProvider() {
[Param::VALUE_TEXT, Param::FLAG_NONE, 'abc', true],
[Param::VALUE_TEXT, Param::FLAG_NONE, '', false],
[Param::VALUE_TEXT, Param::FLAG_OPTIONAL, '', true],
+ [Param::VALUE_TEXT, Param::FLAG_HIDDEN, '', false],
[Param::VALUE_BOOLEAN, Param::FLAG_NONE, false, true],
[Param::VALUE_BOOLEAN, Param::FLAG_NONE, 123, false],
@@ -62,8 +63,6 @@ public function validateValueProvider() {
[Param::VALUE_PASSWORD, Param::FLAG_NONE, 'foobar', true],
[Param::VALUE_PASSWORD, Param::FLAG_NONE, '', false],
-
- [Param::VALUE_HIDDEN, Param::FLAG_NONE, '', false]
];
}
diff --git a/dist/files_external-settings.js b/dist/files_external-settings.js
index 855f9a67751f4..5e966361452f4 100644
--- a/dist/files_external-settings.js
+++ b/dist/files_external-settings.js
@@ -1,2 +1,2 @@
-(()=>{"use strict";var e,t,n,s={80655:(e,t,n)=>{var s=n(56760),a=n(63814),i=n(85168),o=n(53334),r=n(65043),l=n(74692),c=n.n(l);function d(e,t){return e.toggleClass("warning-input",t),t}function u(e){const t=e.hasClass("optional");switch(e.attr("type")){case"text":case"password":if(""===e.val()&&!t)return!1}return!0}function p(e){switch(e.attr("type")){case"text":case"password":return d(e,!u(e))}}function h(e,t){const n=function(e){return e.toString().split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")};if(e.length)return e.select2({placeholder:(0,o.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/applicable"),dataType:"json",quietMillis:100,data:(e,n)=>({pattern:e,limit:t,offset:t*(n-1)}),results(e){if("success"===e.status){const n=[];let s=0;$.each(e.groups,(function(e,t){n.push({name:e+"(group)",displayname:t,type:"group"})})),$.each(e.users,(function(e,t){s++,n.push({name:e,displayname:t,type:"user"})}));const a=s>=t||e.groups.length>=t;return{results:n,more:a}}}},initSelection(e,t){const n={users:[]},s=e.val().split(",");for(let e=0;e
e.name,formatResult(e){const t=$(''+n(e.displayname)+""),s=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");s.html('
')}return t.get(0).outerHTML},formatSelection:e=>"group"===e.type?''+n(e.displayname+" "+(0,o.t)("files_external","(Group)"))+"":''+n(e.displayname)+"",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){d($(e.target).closest(".applicableUsersContainer").find(".select2-choices"),!e.val.length)}))}(0,s.IF)(r.Ay);const f=function(e){this.id=e,this.backendOptions={}};f.Status={IN_PROGRESS:-1,SUCCESS:0,ERROR:1,INDETERMINATE:2},f.Visibility={NONE:0,PERSONAL:1,ADMIN:2,DEFAULT:3},f.prototype={_url:null,id:null,mountPoint:"",backend:null,authMechanism:null,backendOptions:null,mountOptions:null,save(e){let t=OC.generateUrl(this._url),n="POST";_.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 a=(await r.Ay.request({confirmPassword:s.mH.Strict,method:e,url:t,data:this.getData()})).data;this.id=a.id,n.success(a)}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){_.isNumber(this.id)?$.ajax({type:"GET",url:OC.generateUrl(this._url+"/{id}",{id:this.id}),data:{testOnly:!0},success:e.success,error:e.error}):_.isFunction(e.error)&&e.error()},async destroy(e){if(_.isNumber(this.id))try{await r.Ay.request({method:"DELETE",url:OC.generateUrl(this._url+"/{id}",{id:this.id}),confirmPassword:s.mH.Strict}),e.success()}catch(t){e.error(t)}else _.isFunction(e.success)&&e.success()},validate(){return""!==this.mountPoint&&!!this.backend&&!this.errors}};const g=function(e){this.id=e,this.applicableUsers=[],this.applicableGroups=[]};g.prototype=_.extend({},f.prototype,{_url:"apps/files_external/globalstorages",applicableUsers:null,applicableGroups:null,priority:null,getData(){const e=f.prototype.getData.apply(this,arguments);return _.extend(e,{applicableUsers:this.applicableUsers,applicableGroups:this.applicableGroups,priority:this.priority})}});const m=function(e){this.id=e};m.prototype=_.extend({},f.prototype,{_url:"apps/files_external/userstorages"});const b=function(e){this.id=e};b.prototype=_.extend({},f.prototype,{_url:"apps/files_external/userglobalstorages"});const v=function(){};v.prototype={$el:null,show(e,t,n){v._last&&v._last.hide();const s=$(OCA.Files_External.Templates.mountOptionsDropDown({mountOptionsEncodingLabel:(0,o.t)("files_external","Compatibility with Mac NFD encoding (slow)"),mountOptionsEncryptLabel:(0,o.t)("files_external","Enable encryption"),mountOptionsPreviewsLabel:(0,o.t)("files_external","Enable previews"),mountOptionsSharingLabel:(0,o.t)("files_external","Enable sharing"),mountOptionsFilesystemCheckLabel:(0,o.t)("files_external","Check for changes"),mountOptionsFilesystemCheckOnce:(0,o.t)("files_external","Never"),mountOptionsFilesystemCheckDA:(0,o.t)("files_external","Once every direct access"),mountOptionsReadOnlyLabel:(0,o.t)("files_external","Read only"),deleteLabel:(0,o.t)("files_external","Disconnect")}));this.$el=s;const a=e[0].parentNode.className;this.setOptions(t,n,a),this.$el.appendTo(e),v._last=this,this.$el.trigger("show")},hide(){this.$el&&(this.$el.trigger("hide"),this.$el.remove(),this.$el=null,v._last=null)},getOptions(){const e={};return this.$el.find("input, select").each((function(){const t=$(this),n=t.attr("name");let s=null;s="checkbox"===t.attr("type")?t.prop("checked"):t.val(),"int"===t.attr("data-type")&&(s=parseInt(s,10)),e[n]=s})),e},setOptions(e,t,n){if("owncloud"===n){const e=t.indexOf("encrypt");e>0&&t.splice(e,1)}const s=this.$el;_.each(e,(function(e,t){const n=s.find("input, select").filterAttr("name",t);"checkbox"===n.attr("type")?(_.isString(e)&&(e="true"===e),n.prop("checked",!!e)):n.val(e)})),s.find(".optionRow").each((function(e,n){const s=$(n),a=s.find("input, select").attr("name");-1!==t.indexOf(a)||s.hasClass("persistent")?s.show():s.hide()}))}};const y=function(e,t){this.initialize(e,t)};y.ParameterFlags={OPTIONAL:1,USER_PROVIDED:2},y.ParameterTypes={TEXT:0,BOOLEAN:1,PASSWORD:2,HIDDEN:3},y.prototype=_.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&&!_.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 s=$(n).find(".backend").data("identifier");e($(n),s)})),this.on("selectBackend",e)},whenSelectAuthMechanism(e){const t=this;this.$el.find("tbody tr:not(#addMountPoint):not(.externalStorageLoading)").each((function(n,s){const a=$(s).find(".selectAuthMechanism").val();e($(s),a,t._allAuthMechanisms[a].scheme)})),this.on("selectAuthMechanism",e)},_initEvents(){const e=this,t=_.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",_.bind(this._onSelectBackend,this)),this.$el.on("change",".selectAuthMechanism",_.bind(this._onSelectAuthMechanism,this)),this.$el.on("change",".applicableToAllUsers",_.bind(this._onChangeApplicableToAllUsers,this))},_onChange(e){const t=$(e.target);if(t.closest(".dropdown").length)return;p(t);const n=t.closest("tr");this.updateStatus(n,null)},_onSelectBackend(e){const t=$(e.target);let n=t.closest("tr");const s=new this._storageConfigClass;s.mountPoint=n.find(".mountPoint input").val(),s.backend=t.val(),n.find(".mountPoint input").val(""),n.find(".selectBackend").prop("selectedIndex",0);const a=c().Deferred();n=this.newStorage(s,a),n.find(".applicableToAllUsers").prop("checked",!1).trigger("change"),a.resolve(),n.find("td.configuration").children().not("[type=hidden]").first().focus(),this.saveStorageConfig(n)},_onSelectAuthMechanism(e){const t=$(e.target),n=t.closest("tr"),s=t.val(),a=c().Deferred();this.configureAuthMechanism(n,s,a),a.resolve(),this.saveStorageConfig(n)},_onChangeApplicableToAllUsers(e){const t=$(e.target),n=t.closest("tr"),s=t.is(":checked");n.find(".applicableUsersContainer").toggleClass("hidden",s),s||n.find(".applicableUsers").select2("val","",!0),this.saveStorageConfig(n)},configureAuthMechanism(e,t,n){const s=this._allAuthMechanisms[t],a=e.find("td.configuration");a.find(".auth-param").remove(),$.each(s.configuration,_.partial(this.writeParameterInput,a,_,_,["auth-param"]).bind(this)),this.trigger("selectAuthMechanism",e,t,s.scheme,n)},newStorage(e,t,n){let s=e.mountPoint,a=this._allBackends[e.backend];a||(a={name:"Unknown: "+e.backend,invalid:!0});const i=this.$el.find("tr#addMountPoint"),r=i.clone();if(n||r.insertBefore(i),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||h(r.find(".applicableUsers"),this._userListLimit),e.id&&r.data("id",e.id),r.find(".backend").text(a.name),""===s&&(s=this._suggestMountPoint(a.name)),r.find(".mountPoint input").val(s),r.addClass(a.identifier),r.find(".backend").data("identifier",a.identifier),a.invalid||"local"===a.identifier&&!this._canCreateLocal)return r.find("[name=mountPoint]").prop("disabled",!0),r.find(".applicable,.mountOptionsToggle").empty(),r.find(".save").empty(),a.invalid&&this.updateStatus(r,!1,(0,o.t)("files_external","Unknown backend: {backendName}",{backendName:a.name})),r;const l=$(''),c=this._isPersonal?f.Visibility.PERSONAL:f.Visibility.ADMIN;$.each(this._allAuthMechanisms,(function(e,t){a.authSchemes[t.scheme]&&t.visibility&c&&l.append($('"))})),e.authMechanism?l.val(e.authMechanism):e.authMechanism=l.val(),r.find("td.authentication").append(l);const d=r.find("td.configuration");$.each(a.configuration,_.partial(this.writeParameterInput,d).bind(this)),this.trigger("selectBackend",r,a.identifier,t),this.configureAuthMechanism(r,e.authMechanism,t),e.backendOptions&&d.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")]),p(t))}));let u=[];e.applicableUsers&&(u=u.concat(e.applicableUsers)),e.applicableGroups&&(u=u.concat(_.map(e.applicableGroups,(function(e){return e+"(group)"})))),u.length?(r.find(".applicableUsers").val(u).trigger("change"),r.find(".applicableUsersContainer").removeClass("hidden")):r.find(".applicableUsersContainer").addClass("hidden"),r.find(".applicableToAllUsers").prop("checked",!u.length);const g=$('');return r.append(g),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 s=c().Deferred();let a=$();n.forEach((function(t){let i;const r="system"===t.type&&e._isPersonal;t.mountPoint=t.mountPoint.substr(1),i=r?new b:new e._storageConfigClass,_.extend(i,t);const l=e.newStorage(i,s,!0);l.detach(),e.$el.prepend(l);const c=l.find(".authentication");c.text(c.find("select option:selected").text()),l.find(".mountOptionsToggle, .remove").empty(),l.find("input:not(.user_provided), select:not(.user_provided)").attr("disabled","disabled"),r?l.find(".configuration").find(":not(.user_provided)").remove():l.find(".configuration").text((0,o.t)("files_external","Admin defined")),n.length<20?e.recheckStorageConfig(l):e.updateStatus(l,f.Status.INDETERMINATE,(0,o.t)("files_external","Automatic status checking is disabled due to the large number of configured storages, click to check status")),a=a.add(l)})),h(e.$el.find(".applicableUsers"),this._userListLimit),e.$el.find("tr#addMountPoint").before(a);const i=$("#files_external");0===n.length&&"false"===i.attr("data-can-create")&&(i.hide(),$('a[href="#external-storage"]').parent().hide(),$(".emptycontent").show()),s.resolve(),t.resolve()}}):t.resolve();const s=this._storageConfigClass.prototype._url;$.ajax({type:"GET",url:OC.generateUrl(s),contentType:"application/json",success(t){t=Object.values(t);const s=c().Deferred();let a=$();t.forEach((function(n){n.mountPoint="/"===n.mountPoint?"/":n.mountPoint.substr(1);const i=new e._storageConfigClass;_.extend(i,n);const r=e.newStorage(i,s,!0);t.length<20?e.recheckStorageConfig(r):e.updateStatus(r,f.Status.INDETERMINATE,(0,o.t)("files_external","Automatic status checking is disabled due to the large number of configured storages, click to check status")),a=a.add(r)})),h(a.find(".applicableUsers"),this._userListLimit),e.$el.find("tr#addMountPoint").before(a),s.resolve(),n.resolve()}})},writeParameterInput(e,t,n,s){const a=function(e){return(n.flags&e)===e};if((s=$.isArray(s)?s:[]).push("added"),a(y.ParameterFlags.OPTIONAL)&&s.push("optional"),a(y.ParameterFlags.USER_PROVIDED)){if(!this._isPersonal)return;s.push("user_provided")}let i;const o=n.value;if(n.type===y.ParameterTypes.PASSWORD)i=$('');else if(n.type===y.ParameterTypes.BOOLEAN){const e=_.uniqueId("checkbox_");i=$('")}else i=n.type===y.ParameterTypes.HIDDEN?$(''):$('');return n.defaultValue&&(n.type===y.ParameterTypes.BOOLEAN?i.find("input").prop("checked",n.defaultValue):i.val(n.defaultValue)),n.tooltip&&i.attr("title",n.tooltip),p(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 s={},a=e.find(".configuration input"),i=[];if($.each(a,(function(e,t){const n=$(t),a=n.data("parameter");"button"!==n.attr("type")&&(u(n)||n.hasClass("optional")?$(t).is(":checkbox")?$(t).is(":checked")?s[a]=!0:s[a]=!1:s[a]=$(t).val():i.push(a))})),n.backendOptions=s,i.length&&(n.errors={backendOptions:i}),!this._isPersonal){const t=function(e){const t=[],n=[],s=function(e){let t=e.find(".applicableUsers").select2("val");return t&&0!==t.length||(t=[]),t}(e);return $.each(s,(function(e,s){const a=s.indexOf?s.indexOf("(group)"):-1;-1!==a?n.push(s.substr(0,a)):t.push(s)})),e.find(".applicable").data("applicable-groups",n).data("applicable-users",t),{users:t,groups:n}}(e),s=t.users||[],a=t.groups||[];e.find(".applicableToAllUsers").is(":checked")?(n.applicableUsers=[],n.applicableGroups=[]):(n.applicableUsers=s,n.applicableGroups=a,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(!_.isNumber(n))return void e.remove();const s=new this._storageConfigClass(n);OC.dialogs.confirm((0,o.t)("files_external","Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud 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}),(0,o.t)("files_external","Delete storage?"),(function(n){n&&(t.updateStatus(e,f.Status.IN_PROGRESS),s.destroy({success(){e.remove()},error(n){const s=n&&n.responseJSON?n.responseJSON.message:void 0;t.updateStatus(e,f.Status.ERROR,s)}}))}))},saveStorageConfig(e,t,n){const s=this,a=this.getStorageConfig(e);if(!a||!a.validate())return!1;this.updateStatus(e,f.Status.IN_PROGRESS),a.save({success(i){void 0!==n&&e.data("save-timer")!==n||(s.updateStatus(e,i.status,i.statusMessage),e.data("id",i.id),_.isFunction(t)&&t(a))},error(t){if(void 0===n||e.data("save-timer")===n){const n=t&&t.responseJSON?t.responseJSON.message:void 0;s.updateStatus(e,f.Status.ERROR,n)}}})},recheckStorageConfig(e){const t=this,n=this.getStorageConfig(e);if(!n.validate())return!1;this.updateStatus(e,f.Status.IN_PROGRESS),n.recheck({success(n){t.updateStatus(e,n.status,n.statusMessage)},error(n){const s=n&&n.responseJSON?n.responseJSON.message:void 0;t.updateStatus(e,f.Status.ERROR,s)}})},updateStatus(e,t,n){const s=e.find(".status span");switch(t){case null:s.hide();break;case f.Status.IN_PROGRESS:s.attr("class","icon-loading-small");break;case f.Status.SUCCESS:s.attr("class","success icon-checkmark-white");break;case f.Status.INDETERMINATE:s.attr("class","indeterminate icon-info-white");break;default:s.attr("class","error icon-error-white")}null!==t&&s.show(),"string"!=typeof n&&(n=(0,o.t)("files_external","Click to recheck the configuration")),s.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 s=1,a="",i=!0;for(;i&&s<20&&(i=!1,t.find("tbody td.mountPoint input").each((function(t,n){if($(n).val()===e+a)return i=!0,!1})),i);)a=s,s++;return e+a},_showMountOptionsDropdown(e){const t=this,n=this.getStorageConfig(e),s=e.find(".mountOptionsToggle"),a=new v,i=["previews","filesystem_check_changes","enable_sharing","encoding_compatibility","readonly","delete"];this._encryptionEnabled&&i.push("encrypt"),a.show(s,n.mountOptions||[],i),$("body").on("mouseup.mountOptionsDropdown",(function(e){$(e.target).closest(".popovermenu").length||a.hide()})),a.$el.on("hide",(function(){const n=a.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,l=new y($("#externalStorage"),{encryptionEnabled:n,canCreateLocal:"true"===t});l.loadStorages();const c=$("#allowUserMounting");c.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,o.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,o.t)("files_external","Saved")}}),0===e.length&&(c.prop("checked",!1),c.trigger("change"))})),$("#global_credentials").on("submit",(async function(e){e.preventDefault();const t=$(this),n=t.find("[type=submit]");n.val((0,o.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 r.Ay.request({method:"POST",data:{uid:l,user:c,password:d},url:(0,a.Jv)("apps/files_external/globalcredentials"),confirmPassword:s.mH.Strict}),n.val((0,o.t)("files_external","Saved")),setTimeout((function(){n.val((0,o.t)("files_external","Save"))}),2500)}catch(e){if(n.val((0,o.t)("files_external","Save")),(0,r.F0)(e)){const t=e.response?.data?.message||(0,o.t)("files_external","Failed to save global credentials");(0,i.Qg)((0,o.t)("files_external","Failed to save global credentials: {message}",{message:t}))}}return!1})),OCA.Files_External.Settings.mountConfig=l,OC.MountConfig={saveStorage:_.bind(l.saveStorageConfig,l)}})),OCA.Files_External=OCA.Files_External||{},OCA.Files_External.Settings=OCA.Files_External.Settings||{},OCA.Files_External.Settings.GlobalStorageConfig=g,OCA.Files_External.Settings.UserStorageConfig=m,OCA.Files_External.Settings.MountConfigListView=y}},a={};function i(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={id:e,loaded:!1,exports:{}};return s[e].call(n.exports,n,n.exports,i),n.loaded=!0,n.exports}i.m=s,e=[],i.O=(t,n,s,a)=>{if(!n){var o=1/0;for(d=0;d=a)&&Object.keys(i.O).every((e=>i.O[e](n[l])))?n.splice(l--,1):(r=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[n,s,a]},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="+{2441:"2c050d23f9070dfa7f03",5862:"142cd48ca8ec32e57725",6227:"3494381758c4754ef3f5"}[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,s,a,o)=>{if(t[e])t[e].push(s);else{var r,l;if(void 0!==a)for(var c=document.getElementsByTagName("script"),d=0;d{r.onerror=r.onload=null,clearTimeout(h);var a=t[e];if(delete t[e],r.parentNode&&r.parentNode.removeChild(r),a&&a.forEach((e=>e(s))),n)return n(s)},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 s=n.length-1;s>-1&&(!e||!/^http(s?):/.test(e));)e=n[s--].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 s=i.o(e,t)?e[t]:void 0;if(0!==s)if(s)n.push(s[2]);else{var a=new Promise(((n,a)=>s=e[t]=[n,a]));n.push(s[2]=a);var o=i.p+i.u(t),r=new Error;i.l(o,(n=>{if(i.o(e,t)&&(0!==(s=e[t])&&(e[t]=void 0),s)){var a=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;r.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",r.name="ChunkLoadError",r.type=a,r.request=o,s[1](r)}}),"chunk-"+t,t)}},i.O.j=t=>0===e[t];var t=(t,n)=>{var s,a,o=n[0],r=n[1],l=n[2],c=0;if(o.some((t=>0!==e[t]))){for(s in r)i.o(r,s)&&(i.m[s]=r[s]);if(l)var d=l(i)}for(t&&t(n);ci(80655)));o=i.O(o)})();
-//# sourceMappingURL=files_external-settings.js.map?v=2cf84fb405505a9cc1cd
\ No newline at end of file
+(()=>{"use strict";var e,t,n,s={80655:(e,t,n)=>{var s=n(56760),a=n(63814),i=n(85168),o=n(53334),r=n(65043),l=n(74692),c=n.n(l);function d(e,t){return e.toggleClass("warning-input",t),t}function u(e){const t=e.hasClass("optional");switch(e.attr("type")){case"text":case"password":if(""===e.val()&&!t)return!1}return!0}function p(e){switch(e.attr("type")){case"text":case"password":return d(e,!u(e))}}function h(e,t){const n=function(e){return e.toString().split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")};if(e.length)return e.select2({placeholder:(0,o.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/applicable"),dataType:"json",quietMillis:100,data:(e,n)=>({pattern:e,limit:t,offset:t*(n-1)}),results(e){if("success"===e.status){const n=[];let s=0;$.each(e.groups,(function(e,t){n.push({name:e+"(group)",displayname:t,type:"group"})})),$.each(e.users,(function(e,t){s++,n.push({name:e,displayname:t,type:"user"})}));const a=s>=t||e.groups.length>=t;return{results:n,more:a}}}},initSelection(e,t){const n={users:[]},s=e.val().split(",");for(let e=0;ee.name,formatResult(e){const t=$(''+n(e.displayname)+""),s=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");s.html('
')}return t.get(0).outerHTML},formatSelection:e=>"group"===e.type?''+n(e.displayname+" "+(0,o.t)("files_external","(Group)"))+"":''+n(e.displayname)+"",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){d($(e.target).closest(".applicableUsersContainer").find(".select2-choices"),!e.val.length)}))}(0,s.IF)(r.Ay);const f=function(e){this.id=e,this.backendOptions={}};f.Status={IN_PROGRESS:-1,SUCCESS:0,ERROR:1,INDETERMINATE:2},f.Visibility={NONE:0,PERSONAL:1,ADMIN:2,DEFAULT:3},f.prototype={_url:null,id:null,mountPoint:"",backend:null,authMechanism:null,backendOptions:null,mountOptions:null,save(e){let t=OC.generateUrl(this._url),n="POST";_.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 a=(await r.Ay.request({confirmPassword:s.mH.Strict,method:e,url:t,data:this.getData()})).data;this.id=a.id,n.success(a)}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){_.isNumber(this.id)?$.ajax({type:"GET",url:OC.generateUrl(this._url+"/{id}",{id:this.id}),data:{testOnly:!0},success:e.success,error:e.error}):_.isFunction(e.error)&&e.error()},async destroy(e){if(_.isNumber(this.id))try{await r.Ay.request({method:"DELETE",url:OC.generateUrl(this._url+"/{id}",{id:this.id}),confirmPassword:s.mH.Strict}),e.success()}catch(t){e.error(t)}else _.isFunction(e.success)&&e.success()},validate(){return""!==this.mountPoint&&!!this.backend&&!this.errors}};const g=function(e){this.id=e,this.applicableUsers=[],this.applicableGroups=[]};g.prototype=_.extend({},f.prototype,{_url:"apps/files_external/globalstorages",applicableUsers:null,applicableGroups:null,priority:null,getData(){const e=f.prototype.getData.apply(this,arguments);return _.extend(e,{applicableUsers:this.applicableUsers,applicableGroups:this.applicableGroups,priority:this.priority})}});const m=function(e){this.id=e};m.prototype=_.extend({},f.prototype,{_url:"apps/files_external/userstorages"});const b=function(e){this.id=e};b.prototype=_.extend({},f.prototype,{_url:"apps/files_external/userglobalstorages"});const v=function(){};v.prototype={$el:null,show(e,t,n){v._last&&v._last.hide();const s=$(OCA.Files_External.Templates.mountOptionsDropDown({mountOptionsEncodingLabel:(0,o.t)("files_external","Compatibility with Mac NFD encoding (slow)"),mountOptionsEncryptLabel:(0,o.t)("files_external","Enable encryption"),mountOptionsPreviewsLabel:(0,o.t)("files_external","Enable previews"),mountOptionsSharingLabel:(0,o.t)("files_external","Enable sharing"),mountOptionsFilesystemCheckLabel:(0,o.t)("files_external","Check for changes"),mountOptionsFilesystemCheckOnce:(0,o.t)("files_external","Never"),mountOptionsFilesystemCheckDA:(0,o.t)("files_external","Once every direct access"),mountOptionsReadOnlyLabel:(0,o.t)("files_external","Read only"),deleteLabel:(0,o.t)("files_external","Disconnect")}));this.$el=s;const a=e[0].parentNode.className;this.setOptions(t,n,a),this.$el.appendTo(e),v._last=this,this.$el.trigger("show")},hide(){this.$el&&(this.$el.trigger("hide"),this.$el.remove(),this.$el=null,v._last=null)},getOptions(){const e={};return this.$el.find("input, select").each((function(){const t=$(this),n=t.attr("name");let s=null;s="checkbox"===t.attr("type")?t.prop("checked"):t.val(),"int"===t.attr("data-type")&&(s=parseInt(s,10)),e[n]=s})),e},setOptions(e,t,n){if("owncloud"===n){const e=t.indexOf("encrypt");e>0&&t.splice(e,1)}const s=this.$el;_.each(e,(function(e,t){const n=s.find("input, select").filterAttr("name",t);"checkbox"===n.attr("type")?(_.isString(e)&&(e="true"===e),n.prop("checked",!!e)):n.val(e)})),s.find(".optionRow").each((function(e,n){const s=$(n),a=s.find("input, select").attr("name");-1!==t.indexOf(a)||s.hasClass("persistent")?s.show():s.hide()}))}};const y=function(e,t){this.initialize(e,t)};y.ParameterFlags={OPTIONAL:1,USER_PROVIDED:2,HIDDEN:4},y.ParameterTypes={TEXT:0,BOOLEAN:1,PASSWORD:2},y.prototype=_.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&&!_.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 s=$(n).find(".backend").data("identifier");e($(n),s)})),this.on("selectBackend",e)},whenSelectAuthMechanism(e){const t=this;this.$el.find("tbody tr:not(#addMountPoint):not(.externalStorageLoading)").each((function(n,s){const a=$(s).find(".selectAuthMechanism").val();e($(s),a,t._allAuthMechanisms[a].scheme)})),this.on("selectAuthMechanism",e)},_initEvents(){const e=this,t=_.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",_.bind(this._onSelectBackend,this)),this.$el.on("change",".selectAuthMechanism",_.bind(this._onSelectAuthMechanism,this)),this.$el.on("change",".applicableToAllUsers",_.bind(this._onChangeApplicableToAllUsers,this))},_onChange(e){const t=$(e.target);if(t.closest(".dropdown").length)return;p(t);const n=t.closest("tr");this.updateStatus(n,null)},_onSelectBackend(e){const t=$(e.target);let n=t.closest("tr");const s=new this._storageConfigClass;s.mountPoint=n.find(".mountPoint input").val(),s.backend=t.val(),n.find(".mountPoint input").val(""),n.find(".selectBackend").prop("selectedIndex",0);const a=c().Deferred();n=this.newStorage(s,a),n.find(".applicableToAllUsers").prop("checked",!1).trigger("change"),a.resolve(),n.find("td.configuration").children().not("[type=hidden]").first().focus(),this.saveStorageConfig(n)},_onSelectAuthMechanism(e){const t=$(e.target),n=t.closest("tr"),s=t.val(),a=c().Deferred();this.configureAuthMechanism(n,s,a),a.resolve(),this.saveStorageConfig(n)},_onChangeApplicableToAllUsers(e){const t=$(e.target),n=t.closest("tr"),s=t.is(":checked");n.find(".applicableUsersContainer").toggleClass("hidden",s),s||n.find(".applicableUsers").select2("val","",!0),this.saveStorageConfig(n)},configureAuthMechanism(e,t,n){const s=this._allAuthMechanisms[t],a=e.find("td.configuration");a.find(".auth-param").remove(),$.each(s.configuration,_.partial(this.writeParameterInput,a,_,_,["auth-param"]).bind(this)),this.trigger("selectAuthMechanism",e,t,s.scheme,n)},newStorage(e,t,n){let s=e.mountPoint,a=this._allBackends[e.backend];a||(a={name:"Unknown: "+e.backend,invalid:!0});const i=this.$el.find("tr#addMountPoint"),r=i.clone();if(n||r.insertBefore(i),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||h(r.find(".applicableUsers"),this._userListLimit),e.id&&r.data("id",e.id),r.find(".backend").text(a.name),""===s&&(s=this._suggestMountPoint(a.name)),r.find(".mountPoint input").val(s),r.addClass(a.identifier),r.find(".backend").data("identifier",a.identifier),a.invalid||"local"===a.identifier&&!this._canCreateLocal)return r.find("[name=mountPoint]").prop("disabled",!0),r.find(".applicable,.mountOptionsToggle").empty(),r.find(".save").empty(),a.invalid&&this.updateStatus(r,!1,(0,o.t)("files_external","Unknown backend: {backendName}",{backendName:a.name})),r;const l=$(''),c=this._isPersonal?f.Visibility.PERSONAL:f.Visibility.ADMIN;$.each(this._allAuthMechanisms,(function(e,t){a.authSchemes[t.scheme]&&t.visibility&c&&l.append($('"))})),e.authMechanism?l.val(e.authMechanism):e.authMechanism=l.val(),r.find("td.authentication").append(l);const d=r.find("td.configuration");$.each(a.configuration,_.partial(this.writeParameterInput,d).bind(this)),this.trigger("selectBackend",r,a.identifier,t),this.configureAuthMechanism(r,e.authMechanism,t),e.backendOptions&&d.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")]),p(t))}));let u=[];e.applicableUsers&&(u=u.concat(e.applicableUsers)),e.applicableGroups&&(u=u.concat(_.map(e.applicableGroups,(function(e){return e+"(group)"})))),u.length?(r.find(".applicableUsers").val(u).trigger("change"),r.find(".applicableUsersContainer").removeClass("hidden")):r.find(".applicableUsersContainer").addClass("hidden"),r.find(".applicableToAllUsers").prop("checked",!u.length);const g=$('');return r.append(g),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 s=c().Deferred();let a=$();n.forEach((function(t){let i;const r="system"===t.type&&e._isPersonal;t.mountPoint=t.mountPoint.substr(1),i=r?new b:new e._storageConfigClass,_.extend(i,t);const l=e.newStorage(i,s,!0);l.detach(),e.$el.prepend(l);const c=l.find(".authentication");c.text(c.find("select option:selected").text()),l.find(".mountOptionsToggle, .remove").empty(),l.find("input:not(.user_provided), select:not(.user_provided)").attr("disabled","disabled"),r?l.find(".configuration").find(":not(.user_provided)").remove():l.find(".configuration").text((0,o.t)("files_external","Admin defined")),n.length<20?e.recheckStorageConfig(l):e.updateStatus(l,f.Status.INDETERMINATE,(0,o.t)("files_external","Automatic status checking is disabled due to the large number of configured storages, click to check status")),a=a.add(l)})),h(e.$el.find(".applicableUsers"),this._userListLimit),e.$el.find("tr#addMountPoint").before(a);const i=$("#files_external");0===n.length&&"false"===i.attr("data-can-create")&&(i.hide(),$('a[href="#external-storage"]').parent().hide(),$(".emptycontent").show()),s.resolve(),t.resolve()}}):t.resolve();const s=this._storageConfigClass.prototype._url;$.ajax({type:"GET",url:OC.generateUrl(s),contentType:"application/json",success(t){t=Object.values(t);const s=c().Deferred();let a=$();t.forEach((function(n){n.mountPoint="/"===n.mountPoint?"/":n.mountPoint.substr(1);const i=new e._storageConfigClass;_.extend(i,n);const r=e.newStorage(i,s,!0);t.length<20?e.recheckStorageConfig(r):e.updateStatus(r,f.Status.INDETERMINATE,(0,o.t)("files_external","Automatic status checking is disabled due to the large number of configured storages, click to check status")),a=a.add(r)})),h(a.find(".applicableUsers"),this._userListLimit),e.$el.find("tr#addMountPoint").before(a),s.resolve(),n.resolve()}})},writeParameterInput(e,t,n,s){const a=function(e){return(n.flags&e)===e};if((s=$.isArray(s)?s:[]).push("added"),a(y.ParameterFlags.OPTIONAL)&&s.push("optional"),a(y.ParameterFlags.USER_PROVIDED)){if(!this._isPersonal)return;s.push("user_provided")}let i;const o=n.value;if(a(y.ParameterFlags.HIDDEN))i=$('');else if(n.type===y.ParameterTypes.PASSWORD)i=$('');else if(n.type===y.ParameterTypes.BOOLEAN){const e=_.uniqueId("checkbox_");i=$('")}else i=$('');return n.defaultValue&&(n.type===y.ParameterTypes.BOOLEAN?i.find("input").prop("checked",n.defaultValue):i.val(n.defaultValue)),n.tooltip&&i.attr("title",n.tooltip),p(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 s={},a=e.find(".configuration input"),i=[];if($.each(a,(function(e,t){const n=$(t),a=n.data("parameter");"button"!==n.attr("type")&&(u(n)||n.hasClass("optional")?$(t).is(":checkbox")?$(t).is(":checked")?s[a]=!0:s[a]=!1:s[a]=$(t).val():i.push(a))})),n.backendOptions=s,i.length&&(n.errors={backendOptions:i}),!this._isPersonal){const t=function(e){const t=[],n=[],s=function(e){let t=e.find(".applicableUsers").select2("val");return t&&0!==t.length||(t=[]),t}(e);return $.each(s,(function(e,s){const a=s.indexOf?s.indexOf("(group)"):-1;-1!==a?n.push(s.substr(0,a)):t.push(s)})),e.find(".applicable").data("applicable-groups",n).data("applicable-users",t),{users:t,groups:n}}(e),s=t.users||[],a=t.groups||[];e.find(".applicableToAllUsers").is(":checked")?(n.applicableUsers=[],n.applicableGroups=[]):(n.applicableUsers=s,n.applicableGroups=a,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(!_.isNumber(n))return void e.remove();const s=new this._storageConfigClass(n);OC.dialogs.confirm((0,o.t)("files_external","Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud 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}),(0,o.t)("files_external","Delete storage?"),(function(n){n&&(t.updateStatus(e,f.Status.IN_PROGRESS),s.destroy({success(){e.remove()},error(n){const s=n&&n.responseJSON?n.responseJSON.message:void 0;t.updateStatus(e,f.Status.ERROR,s)}}))}))},saveStorageConfig(e,t,n){const s=this,a=this.getStorageConfig(e);if(!a||!a.validate())return!1;this.updateStatus(e,f.Status.IN_PROGRESS),a.save({success(i){void 0!==n&&e.data("save-timer")!==n||(s.updateStatus(e,i.status,i.statusMessage),e.data("id",i.id),_.isFunction(t)&&t(a))},error(t){if(void 0===n||e.data("save-timer")===n){const n=t&&t.responseJSON?t.responseJSON.message:void 0;s.updateStatus(e,f.Status.ERROR,n)}}})},recheckStorageConfig(e){const t=this,n=this.getStorageConfig(e);if(!n.validate())return!1;this.updateStatus(e,f.Status.IN_PROGRESS),n.recheck({success(n){t.updateStatus(e,n.status,n.statusMessage)},error(n){const s=n&&n.responseJSON?n.responseJSON.message:void 0;t.updateStatus(e,f.Status.ERROR,s)}})},updateStatus(e,t,n){const s=e.find(".status span");switch(t){case null:s.hide();break;case f.Status.IN_PROGRESS:s.attr("class","icon-loading-small");break;case f.Status.SUCCESS:s.attr("class","success icon-checkmark-white");break;case f.Status.INDETERMINATE:s.attr("class","indeterminate icon-info-white");break;default:s.attr("class","error icon-error-white")}null!==t&&s.show(),"string"!=typeof n&&(n=(0,o.t)("files_external","Click to recheck the configuration")),s.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 s=1,a="",i=!0;for(;i&&s<20&&(i=!1,t.find("tbody td.mountPoint input").each((function(t,n){if($(n).val()===e+a)return i=!0,!1})),i);)a=s,s++;return e+a},_showMountOptionsDropdown(e){const t=this,n=this.getStorageConfig(e),s=e.find(".mountOptionsToggle"),a=new v,i=["previews","filesystem_check_changes","enable_sharing","encoding_compatibility","readonly","delete"];this._encryptionEnabled&&i.push("encrypt"),a.show(s,n.mountOptions||[],i),$("body").on("mouseup.mountOptionsDropdown",(function(e){$(e.target).closest(".popovermenu").length||a.hide()})),a.$el.on("hide",(function(){const n=a.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,l=new y($("#externalStorage"),{encryptionEnabled:n,canCreateLocal:"true"===t});l.loadStorages();const c=$("#allowUserMounting");c.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,o.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,o.t)("files_external","Saved")}}),0===e.length&&(c.prop("checked",!1),c.trigger("change"))})),$("#global_credentials").on("submit",(async function(e){e.preventDefault();const t=$(this),n=t.find("[type=submit]");n.val((0,o.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 r.Ay.request({method:"POST",data:{uid:l,user:c,password:d},url:(0,a.Jv)("apps/files_external/globalcredentials"),confirmPassword:s.mH.Strict}),n.val((0,o.t)("files_external","Saved")),setTimeout((function(){n.val((0,o.t)("files_external","Save"))}),2500)}catch(e){if(n.val((0,o.t)("files_external","Save")),(0,r.F0)(e)){const t=e.response?.data?.message||(0,o.t)("files_external","Failed to save global credentials");(0,i.Qg)((0,o.t)("files_external","Failed to save global credentials: {message}",{message:t}))}}return!1})),OCA.Files_External.Settings.mountConfig=l,OC.MountConfig={saveStorage:_.bind(l.saveStorageConfig,l)}})),OCA.Files_External=OCA.Files_External||{},OCA.Files_External.Settings=OCA.Files_External.Settings||{},OCA.Files_External.Settings.GlobalStorageConfig=g,OCA.Files_External.Settings.UserStorageConfig=m,OCA.Files_External.Settings.MountConfigListView=y}},a={};function i(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={id:e,loaded:!1,exports:{}};return s[e].call(n.exports,n,n.exports,i),n.loaded=!0,n.exports}i.m=s,e=[],i.O=(t,n,s,a)=>{if(!n){var o=1/0;for(d=0;d=a)&&Object.keys(i.O).every((e=>i.O[e](n[l])))?n.splice(l--,1):(r=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[n,s,a]},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="+{2441:"2c050d23f9070dfa7f03",5862:"142cd48ca8ec32e57725",6227:"3494381758c4754ef3f5"}[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,s,a,o)=>{if(t[e])t[e].push(s);else{var r,l;if(void 0!==a)for(var c=document.getElementsByTagName("script"),d=0;d{r.onerror=r.onload=null,clearTimeout(h);var a=t[e];if(delete t[e],r.parentNode&&r.parentNode.removeChild(r),a&&a.forEach((e=>e(s))),n)return n(s)},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 s=n.length-1;s>-1&&(!e||!/^http(s?):/.test(e));)e=n[s--].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 s=i.o(e,t)?e[t]:void 0;if(0!==s)if(s)n.push(s[2]);else{var a=new Promise(((n,a)=>s=e[t]=[n,a]));n.push(s[2]=a);var o=i.p+i.u(t),r=new Error;i.l(o,(n=>{if(i.o(e,t)&&(0!==(s=e[t])&&(e[t]=void 0),s)){var a=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;r.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",r.name="ChunkLoadError",r.type=a,r.request=o,s[1](r)}}),"chunk-"+t,t)}},i.O.j=t=>0===e[t];var t=(t,n)=>{var s,a,o=n[0],r=n[1],l=n[2],c=0;if(o.some((t=>0!==e[t]))){for(s in r)i.o(r,s)&&(i.m[s]=r[s]);if(l)var d=l(i)}for(t&&t(n);ci(80655)));o=i.O(o)})();
+//# sourceMappingURL=files_external-settings.js.map?v=88ec270cbf050c0aabc7
\ No newline at end of file
diff --git a/dist/files_external-settings.js.map b/dist/files_external-settings.js.map
index f94505ca76ce4..87f5dd4d33b6f 100644
--- a/dist/files_external-settings.js.map
+++ b/dist/files_external-settings.js.map
@@ -1 +1 @@
-{"version":3,"file":"files_external-settings.js?v=2cf84fb405505a9cc1cd","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files_external/src/settings.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-FileCopyrightText: 2012-2016 ownCloud, Inc.\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { addPasswordConfirmationInterceptors, PwdConfirmationMode } from '@nextcloud/password-confirmation'\nimport { generateUrl } from '@nextcloud/router'\nimport { showError } from '@nextcloud/dialogs'\nimport { t } from '@nextcloud/l10n'\nimport axios, { isAxiosError } from '@nextcloud/axios'\n\nimport jQuery from 'jquery'\n\naddPasswordConfirmationInterceptors(axios)\n\n/**\n * Returns the selection of applicable users in the given configuration row\n *\n * @param $row configuration row\n * @return array array of user names\n */\nfunction getSelection($row) {\n\tlet values = $row.find('.applicableUsers').select2('val')\n\tif (!values || values.length === 0) {\n\t\tvalues = []\n\t}\n\treturn values\n}\n\n/**\n *\n * @param $row\n */\nfunction getSelectedApplicable($row) {\n\tconst users = []\n\tconst groups = []\n\tconst multiselect = getSelection($row)\n\t$.each(multiselect, function(index, value) {\n\t\t// FIXME: don't rely on string parts to detect groups...\n\t\tconst pos = (value.indexOf) ? value.indexOf('(group)') : -1\n\t\tif (pos !== -1) {\n\t\t\tgroups.push(value.substr(0, pos))\n\t\t} else {\n\t\t\tusers.push(value)\n\t\t}\n\t})\n\n\t// FIXME: this should be done in the multiselect change event instead\n\t$row.find('.applicable')\n\t\t.data('applicable-groups', groups)\n\t\t.data('applicable-users', users)\n\n\treturn { users, groups }\n}\n\n/**\n *\n * @param $element\n * @param highlight\n */\nfunction highlightBorder($element, highlight) {\n\t$element.toggleClass('warning-input', highlight)\n\treturn highlight\n}\n\n/**\n *\n * @param $input\n */\nfunction isInputValid($input) {\n\tconst optional = $input.hasClass('optional')\n\tswitch ($input.attr('type')) {\n\tcase 'text':\n\tcase 'password':\n\t\tif ($input.val() === '' && !optional) {\n\t\t\treturn false\n\t\t}\n\t\tbreak\n\t}\n\treturn true\n}\n\n/**\n *\n * @param $input\n */\nfunction highlightInput($input) {\n\tswitch ($input.attr('type')) {\n\tcase 'text':\n\tcase 'password':\n\t\treturn highlightBorder($input, !isInputValid($input))\n\t}\n}\n\n/**\n * Initialize select2 plugin on the given elements\n *\n * @param {Array