mirror of
https://github.com/netzbegruenung/circles.git
synced 2024-05-07 14:13:39 +02:00
e0f568b7e2
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
147 lines
4.8 KiB
JavaScript
147 lines
4.8 KiB
JavaScript
/*
|
|
* Circles - Bring cloud-users closer together.
|
|
*
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
* later. See the COPYING file.
|
|
*
|
|
* @author Maxence Lange <maxence@pontapreta.net>
|
|
* @copyright 2017
|
|
* @license GNU AGPL version 3 or any later version
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as
|
|
* published by the Free Software Foundation, either version 3 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
*/
|
|
|
|
/** global: OC */
|
|
/** global: OCA */
|
|
/** global: Notyf */
|
|
|
|
/** global: curr */
|
|
/** global: define */
|
|
/** global: elements */
|
|
/** global: nav */
|
|
|
|
var settings = {
|
|
|
|
displaySettings: function(display) {
|
|
if (display) {
|
|
settings.initUISettings();
|
|
elements.circleDesc.hide(define.animationSpeed);
|
|
elements.mainUIMembers.hide(define.animationSpeed);
|
|
elements.settingsPanel.delay(define.animationSpeed).show(define.animationSpeed);
|
|
} else {
|
|
elements.settingsPanel.hide(define.animationSpeed);
|
|
elements.mainUIMembers.delay(define.animationSpeed).show(define.animationSpeed);
|
|
}
|
|
},
|
|
|
|
initUISettings: function() {
|
|
elements.settingsName.val(curr.circleName);
|
|
elements.settingsDesc.val(curr.circleDesc);
|
|
elements.settingsLimit.val(curr.circleLimit);
|
|
|
|
|
|
// single-password-enabled
|
|
elements.settingsPassword.prop('checked',
|
|
(curr.circleSettings['password_enforcement'] === 'true'));
|
|
elements.settingsPassword.on('change', function() {
|
|
settings.interactUISettings();
|
|
});
|
|
|
|
elements.settingsSinglePassword.val('');
|
|
elements.settingsSinglePasswordEnabled.prop('checked',
|
|
(curr.circleSettings['password_single_enabled'] === 'true'));
|
|
elements.settingsSinglePasswordEnabled.on('change', function() {
|
|
settings.interactUISettings();
|
|
});
|
|
|
|
if (OC.isUserAdmin()) {
|
|
elements.settingsEntryLimit.show();
|
|
} else {
|
|
elements.settingsEntryLimit.hide();
|
|
}
|
|
|
|
elements.settingsLink.prop('checked', (curr.circleSettings['allow_links'] === 'true'));
|
|
elements.settingsLinkAuto.prop('checked',
|
|
(curr.circleSettings['allow_links_auto'] === 'true'));
|
|
elements.settingsLinkFiles.prop('checked',
|
|
(curr.circleSettings['allow_links_files'] === 'true'));
|
|
|
|
elements.settingsLink.on('change', function() {
|
|
settings.interactUISettings();
|
|
});
|
|
|
|
settings.interactUISettings();
|
|
},
|
|
|
|
|
|
interactUISettings: function() {
|
|
if (elements.settingsPassword.is(":checked")) {
|
|
settings.enableSetting(elements.settingsEntrySinglePassword, elements.settingsSinglePassword,
|
|
true);
|
|
settings.enableSetting(null, elements.settingsSinglePasswordEnabled, true);
|
|
if (elements.settingsSinglePasswordEnabled.is(":checked")) {
|
|
settings.enableSetting(null, elements.settingsSinglePassword, true);
|
|
} else {
|
|
settings.enableSetting(null, elements.settingsSinglePassword,
|
|
false);
|
|
}
|
|
} else {
|
|
settings.enableSetting(null, elements.settingsSinglePasswordEnabled, false);
|
|
settings.enableSetting(elements.settingsEntrySinglePassword, elements.settingsSinglePassword,
|
|
false);
|
|
}
|
|
|
|
if (curr.allowed_federated_circles !== '1' ||
|
|
curr.circleDetails.type === define.typePersonal) {
|
|
settings.enableSetting(elements.settingsEntryLink, elements.settingsLink, false);
|
|
settings.enableSetting(elements.settingsEntryLinkAuto, elements.settingsLinkAuto,
|
|
false);
|
|
settings.enableSetting(elements.settingsEntryLinkFiles, elements.settingsLinkFiles,
|
|
false);
|
|
return;
|
|
}
|
|
settings.enableSetting(elements.settingsEntryLink, elements.settingsLink, true);
|
|
settings.enableSetting(elements.settingsEntryLinkAuto, elements.settingsLinkAuto,
|
|
(elements.settingsLink.is(":checked")));
|
|
settings.enableSetting(elements.settingsEntryLinkFiles, elements.settingsLinkFiles,
|
|
(elements.settingsLink.is(":checked")));
|
|
},
|
|
|
|
enableSetting: function(entry, input, enable) {
|
|
if (entry !== null) {
|
|
entry.stop().fadeTo(curr.animationSpeed, (enable) ? 1 : 0.3);
|
|
}
|
|
input.prop('disabled', !enable);
|
|
},
|
|
|
|
saveSettingsResult: function(result) {
|
|
if (result.status < 1) {
|
|
OCA.notification.onFail(
|
|
t('circles', 'Issue while saving settings') + ': ' +
|
|
((result.error) ? result.error : t('circles', 'no error message')));
|
|
return;
|
|
}
|
|
|
|
nav.circlesActionReturn();
|
|
curr.defineCircle(result);
|
|
nav.displayCircleDetails(result.details);
|
|
nav.displayMembersInteraction(result.details);
|
|
OCA.notification.onSuccess(t('circles', "Settings saved."));
|
|
}
|
|
};
|
|
|
|
|
|
|