Adjust scopes menu based on conditions
Now not all fields have the "v2-private" option in place. Fix dropdown issue when a scope was stored that is not listed after disabling the lookup server. Whenever the lookup server upload is disabled, the scope menu is now displayed where it makes sense to allow switching between the two private scopes. Signed-off-by: Vincent Petry <vincent@nextcloud.com>
This commit is contained in:
parent
f45f826b52
commit
e2ab530ee3
|
@ -57,7 +57,7 @@
|
|||
}
|
||||
];
|
||||
|
||||
if (options.excludedScopes) {
|
||||
if (options.excludedScopes && options.excludedScopes.length) {
|
||||
this._scopes = this._scopes.filter(function(scopeEntry) {
|
||||
return options.excludedScopes.indexOf(scopeEntry.name) === -1;
|
||||
})
|
||||
|
@ -117,22 +117,11 @@
|
|||
var currentlyActiveValue = $('#'+context.target.closest('form').id).find('input[type="hidden"]')[0].value;
|
||||
|
||||
for(var i in this._scopes) {
|
||||
if (this._scopes[i].name === currentlyActiveValue) {
|
||||
this._scopes[i].active = true;
|
||||
} else {
|
||||
this._scopes[i].active = false;
|
||||
}
|
||||
|
||||
switch (currentlyActiveValue) {
|
||||
case 'v2-private':
|
||||
this._scopes[0].active = true;
|
||||
break;
|
||||
case 'private':
|
||||
this._scopes[1].active = true;
|
||||
break;
|
||||
case 'contacts':
|
||||
this._scopes[2].active = true;
|
||||
break;
|
||||
case 'public':
|
||||
this._scopes[3].active = true;
|
||||
break;
|
||||
}
|
||||
|
||||
this.render();
|
||||
|
|
|
@ -10,6 +10,13 @@
|
|||
(function(_, $, OC) {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Construct a new FederationScopeMenu instance
|
||||
* @constructs FederationScopeMenu
|
||||
* @memberof OC.Settings
|
||||
* @param {object} options
|
||||
* @param {bool} [options.lookupServerUploadEnabled=false] whether uploading to the lookup server is enabled
|
||||
*/
|
||||
var FederationSettingsView = OC.Backbone.View.extend({
|
||||
_inputFields: undefined,
|
||||
|
||||
|
@ -24,6 +31,7 @@
|
|||
} else {
|
||||
this._config = new OC.Settings.UserSettings();
|
||||
}
|
||||
this.showFederationScopes = !!options.showFederationScopes;
|
||||
|
||||
this._inputFields = [
|
||||
'displayname',
|
||||
|
@ -71,10 +79,15 @@
|
|||
|
||||
_.each(this._inputFields, function(field) {
|
||||
var $icon = self.$('#' + field + 'form h3 > .federation-menu');
|
||||
var excludedScopes = null
|
||||
var excludedScopes = []
|
||||
|
||||
if (fieldsWithV2Private.indexOf(field) === -1) {
|
||||
excludedScopes = ['v2-private']
|
||||
excludedScopes.push('v2-private');
|
||||
}
|
||||
|
||||
if (!self.showFederationScopes) {
|
||||
excludedScopes.push('contacts');
|
||||
excludedScopes.push('public');
|
||||
}
|
||||
|
||||
var scopeMenu = new OC.Settings.FederationScopeMenu({
|
||||
|
|
|
@ -199,10 +199,12 @@ window.addEventListener('DOMContentLoaded', function () {
|
|||
});
|
||||
|
||||
|
||||
var settingsEl = $('#personal-settings')
|
||||
var userSettings = new OC.Settings.UserSettings();
|
||||
var federationSettingsView = new OC.Settings.FederationSettingsView({
|
||||
el: '#personal-settings',
|
||||
config: userSettings
|
||||
el: settingsEl,
|
||||
config: userSettings,
|
||||
showFederationScopes: !!settingsEl.data('lookup-server-upload-enabled'),
|
||||
});
|
||||
|
||||
userSettings.on("sync", function() {
|
||||
|
|
|
@ -34,7 +34,7 @@ script('settings', [
|
|||
]);
|
||||
?>
|
||||
|
||||
<div id="personal-settings">
|
||||
<div id="personal-settings" data-lookup-server-upload-enabled="<?php p($_['lookupServerUploadEnabled'] ? 'true' : 'false') ?>">
|
||||
<div id="personal-settings-avatar-container" class="personal-settings-container">
|
||||
<div>
|
||||
<form id="avatarform" class="section" method="post" action="<?php p(\OC::$server->getURLGenerator()->linkToRoute('core.avatar.postAvatar')); ?>">
|
||||
|
@ -68,9 +68,7 @@ script('settings', [
|
|||
</div>
|
||||
<span class="icon-checkmark hidden"></span>
|
||||
<span class="icon-error hidden" ></span>
|
||||
<?php if ($_['lookupServerUploadEnabled']) { ?>
|
||||
<input type="hidden" id="avatarscope" value="<?php p($_['avatarScope']) ?>">
|
||||
<?php } ?>
|
||||
</form>
|
||||
</div>
|
||||
<div class="personal-settings-setting-box personal-settings-group-box section">
|
||||
|
@ -198,9 +196,7 @@ script('settings', [
|
|||
autocomplete="on" autocapitalize="none" autocorrect="off" />
|
||||
<span class="icon-checkmark hidden"></span>
|
||||
<span class="icon-error hidden" ></span>
|
||||
<?php if ($_['lookupServerUploadEnabled']) { ?>
|
||||
<input type="hidden" id="phonescope" value="<?php p($_['phoneScope']) ?>">
|
||||
<?php } ?>
|
||||
</form>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
@ -223,9 +219,7 @@ script('settings', [
|
|||
autocomplete="on" autocapitalize="none" autocorrect="off" />
|
||||
<span class="icon-checkmark hidden"></span>
|
||||
<span class="icon-error hidden" ></span>
|
||||
<?php if ($_['lookupServerUploadEnabled']) { ?>
|
||||
<input type="hidden" id="addressscope" value="<?php p($_['addressScope']) ?>">
|
||||
<?php } ?>
|
||||
</form>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
@ -279,9 +273,7 @@ script('settings', [
|
|||
/>
|
||||
<span class="icon-checkmark hidden"></span>
|
||||
<span class="icon-error hidden" ></span>
|
||||
<?php if ($_['lookupServerUploadEnabled']) { ?>
|
||||
<input type="hidden" id="websitescope" value="<?php p($_['websiteScope']) ?>">
|
||||
<?php } ?>
|
||||
</form>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
@ -335,9 +327,7 @@ script('settings', [
|
|||
/>
|
||||
<span class="icon-checkmark hidden"></span>
|
||||
<span class="icon-error hidden" ></span>
|
||||
<?php if ($_['lookupServerUploadEnabled']) { ?>
|
||||
<input type="hidden" id="twitterscope" value="<?php p($_['twitterScope']) ?>">
|
||||
<?php } ?>
|
||||
</form>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
|
Loading…
Reference in New Issue