Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'apps/settings/js/admin.js')
-rw-r--r--apps/settings/js/admin.js319
1 files changed, 319 insertions, 0 deletions
diff --git a/apps/settings/js/admin.js b/apps/settings/js/admin.js
new file mode 100644
index 00000000000..b2078862079
--- /dev/null
+++ b/apps/settings/js/admin.js
@@ -0,0 +1,319 @@
+$(document).ready(function(){
+ $('#excludedGroups').each(function (index, element) {
+ OC.Settings.setupGroupsSelect($(element));
+ $(element).change(function(ev) {
+ var groups = ev.val || [];
+ groups = JSON.stringify(groups);
+ OCP.AppConfig.setValue('core', $(this).attr('name'), groups);
+ });
+ });
+
+
+ $('#loglevel').change(function(){
+ $.post(OC.generateUrl('/settings/admin/log/level'), {level: $(this).val()},function(){
+ OC.Log.reload();
+ } );
+ });
+
+ $('#backgroundjobs span.crondate').tooltip({placement: 'top'});
+
+ $('#backgroundjobs input').change(function(){
+ if($(this).is(':checked')){
+ var mode = $(this).val();
+ if (mode === 'ajax' || mode === 'webcron' || mode === 'cron') {
+ OCP.AppConfig.setValue('core', 'backgroundjobs_mode', mode, {
+ success: function() {
+ // clear cron errors on background job mode change
+ OCP.AppConfig.deleteKey('core', 'cronErrors');
+ }
+ });
+ }
+ }
+ });
+
+ $('#shareAPIEnabled').change(function() {
+ $('#shareAPI p:not(#enable)').toggleClass('hidden', !this.checked);
+ });
+
+ $('#enableEncryption').change(function() {
+ $('#encryptionAPI div#EncryptionWarning').toggleClass('hidden');
+ });
+
+ $('#reallyEnableEncryption').click(function() {
+ $('#encryptionAPI div#EncryptionWarning').toggleClass('hidden');
+ $('#encryptionAPI div#EncryptionSettingsArea').toggleClass('hidden');
+ OCP.AppConfig.setValue('core', 'encryption_enabled', 'yes');
+ $('#enableEncryption').attr('disabled', 'disabled');
+ });
+
+ $('#startmigration').click(function(event){
+ $(window).on('beforeunload.encryption', function(e) {
+ return t('settings', 'Migration in progress. Please wait until the migration is finished');
+ });
+ event.preventDefault();
+ $('#startmigration').prop('disabled', true);
+ OC.msg.startAction('#startmigration_msg', t('settings', 'Migration started …'));
+ $.post(OC.generateUrl('/settings/admin/startmigration'), '', function(data){
+ OC.msg.finishedAction('#startmigration_msg', data);
+ if (data['status'] === 'success') {
+ $('#encryptionAPI div#selectEncryptionModules').toggleClass('hidden');
+ $('#encryptionAPI div#migrationWarning').toggleClass('hidden');
+ } else {
+ $('#startmigration').prop('disabled', false);
+ }
+ $(window).off('beforeunload.encryption');
+
+ });
+ });
+
+ $('#shareapiExpireAfterNDays').on('input', function() {
+ this.value = this.value.replace(/\D/g, '');
+ });
+
+ $('#shareAPI input:not(.noJSAutoUpdate)').change(function() {
+ var value = $(this).val();
+ if ($(this).attr('type') === 'checkbox') {
+ if (this.checked) {
+ value = 'yes';
+ } else {
+ value = 'no';
+ }
+ }
+ OCP.AppConfig.setValue('core', $(this).attr('name'), value);
+ });
+
+ $('#shareapiDefaultExpireDate').change(function() {
+ $("#setDefaultExpireDate").toggleClass('hidden', !this.checked);
+ });
+
+ $('#publicShareDisclaimer').change(function() {
+ $("#publicShareDisclaimerText").toggleClass('hidden', !this.checked);
+ if(!this.checked) {
+ savePublicShareDisclaimerText('');
+ }
+ });
+
+ $('#shareApiDefaultPermissionsSection input').change(function(ev) {
+ var $el = $('#shareApiDefaultPermissions');
+ var $target = $(ev.target);
+
+ var value = $el.val();
+ if ($target.is(':checked')) {
+ value = value | $target.val();
+ } else {
+ value = value & ~$target.val();
+ }
+
+ // always set read permission
+ value |= OC.PERMISSION_READ;
+
+ // this will trigger the field's change event and will save it
+ $el.val(value).change();
+
+ ev.preventDefault();
+
+ return false;
+ });
+
+ var savePublicShareDisclaimerText = _.debounce(function(value) {
+ var options = {
+ success: function() {
+ OC.msg.finishedSuccess('#publicShareDisclaimerStatus', t('core', 'Saved'));
+ },
+ error: function() {
+ OC.msg.finishedError('#publicShareDisclaimerStatus', t('core', 'Not saved'));
+ }
+ };
+
+ OC.msg.startSaving('#publicShareDisclaimerStatus');
+ if (_.isString(value) && value !== '') {
+ OCP.AppConfig.setValue('core', 'shareapi_public_link_disclaimertext', value, options);
+ } else {
+ $('#publicShareDisclaimerText').val('');
+ OCP.AppConfig.deleteKey('core', 'shareapi_public_link_disclaimertext', options);
+ }
+ }, 500);
+
+ $('#publicShareDisclaimerText').on('change, keyup', function() {
+ savePublicShareDisclaimerText(this.value);
+ });
+
+ $('#allowLinks').change(function() {
+ $("#publicLinkSettings").toggleClass('hidden', !this.checked);
+ $('#setDefaultExpireDate').toggleClass('hidden', !(this.checked && $('#shareapiDefaultExpireDate')[0].checked));
+ });
+
+ $('#mail_smtpauth').change(function() {
+ if (!this.checked) {
+ $('#mail_credentials').addClass('hidden');
+ } else {
+ $('#mail_credentials').removeClass('hidden');
+ }
+ });
+
+ $('#mail_smtpmode').change(function() {
+ if ($(this).val() !== 'smtp') {
+ $('#setting_smtpauth').addClass('hidden');
+ $('#setting_smtphost').addClass('hidden');
+ $('#mail_smtpsecure_label').addClass('hidden');
+ $('#mail_smtpsecure').addClass('hidden');
+ $('#mail_credentials').addClass('hidden');
+ $('#mail_sendmailmode_label, #mail_sendmailmode').removeClass('hidden');
+ } else {
+ $('#setting_smtpauth').removeClass('hidden');
+ $('#setting_smtphost').removeClass('hidden');
+ $('#mail_smtpsecure_label').removeClass('hidden');
+ $('#mail_smtpsecure').removeClass('hidden');
+ if ($('#mail_smtpauth').is(':checked')) {
+ $('#mail_credentials').removeClass('hidden');
+ }
+ $('#mail_sendmailmode_label, #mail_sendmailmode').addClass('hidden');
+ }
+ });
+
+ var changeEmailSettings = function() {
+ if (OC.PasswordConfirmation.requiresPasswordConfirmation()) {
+ OC.PasswordConfirmation.requirePasswordConfirmation(changeEmailSettings);
+ return;
+ }
+
+ OC.msg.startSaving('#mail_settings_msg');
+ $.ajax({
+ url: OC.generateUrl('/settings/admin/mailsettings'),
+ type: 'POST',
+ data: $('#mail_general_settings_form').serialize(),
+ success: function(){
+ OC.msg.finishedSuccess('#mail_settings_msg', t('settings', 'Saved'));
+ },
+ error: function(xhr){
+ OC.msg.finishedError('#mail_settings_msg', xhr.responseJSON);
+ }
+ });
+ };
+
+ var toggleEmailCredentials = function() {
+ if (OC.PasswordConfirmation.requiresPasswordConfirmation()) {
+ OC.PasswordConfirmation.requirePasswordConfirmation(toggleEmailCredentials);
+ return;
+ }
+
+ OC.msg.startSaving('#mail_settings_msg');
+ $.ajax({
+ url: OC.generateUrl('/settings/admin/mailsettings/credentials'),
+ type: 'POST',
+ data: $('#mail_credentials_settings').serialize(),
+ success: function(){
+ OC.msg.finishedSuccess('#mail_settings_msg', t('settings', 'Saved'));
+ },
+ error: function(xhr){
+ OC.msg.finishedError('#mail_settings_msg', xhr.responseJSON);
+ }
+ });
+ };
+
+ $('#mail_general_settings_form').change(changeEmailSettings);
+ $('#mail_credentials_settings_submit').click(toggleEmailCredentials);
+ $('#mail_smtppassword').click(function() {
+ if (this.type === 'text' && this.value === '********') {
+ this.type = 'password';
+ this.value = '';
+ }
+ });
+
+ $('#sendtestemail').click(function(event){
+ event.preventDefault();
+ OC.msg.startAction('#sendtestmail_msg', t('settings', 'Sending…'));
+
+ $.ajax({
+ url: OC.generateUrl('/settings/admin/mailtest'),
+ type: 'POST',
+ success: function(){
+ OC.msg.finishedSuccess('#sendtestmail_msg', t('settings', 'Email sent'));
+ },
+ error: function(xhr){
+ OC.msg.finishedError('#sendtestmail_msg', xhr.responseJSON);
+ }
+ });
+ });
+
+ $('#allowGroupSharing').change(function() {
+ $('#allowGroupSharing').toggleClass('hidden', !this.checked);
+ });
+
+ $('#shareapiExcludeGroups').change(function() {
+ $("#selectExcludedGroups").toggleClass('hidden', !this.checked);
+ });
+
+ var setupChecks = function () {
+ // run setup checks then gather error messages
+ $.when(
+ OC.SetupChecks.checkWebDAV(),
+ OC.SetupChecks.checkWellKnownUrl('/.well-known/webfinger', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true && !!OC.appConfig.core.public_webfinger, [200, 404]),
+ OC.SetupChecks.checkWellKnownUrl('/.well-known/nodeinfo', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true && !!OC.appConfig.core.public_nodeinfo, [200, 404]),
+ OC.SetupChecks.checkWellKnownUrl('/.well-known/caldav', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),
+ OC.SetupChecks.checkWellKnownUrl('/.well-known/carddav', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),
+ OC.SetupChecks.checkProviderUrl(OC.getRootPath() + '/ocm-provider/', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),
+ OC.SetupChecks.checkProviderUrl(OC.getRootPath() + '/ocs-provider/', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),
+ OC.SetupChecks.checkSetup(),
+ OC.SetupChecks.checkGeneric(),
+ OC.SetupChecks.checkWOFF2Loading(OC.filePath('core', '', 'fonts/NotoSans-Regular-latin.woff2'), OC.theme.docPlaceholderUrl),
+ OC.SetupChecks.checkDataProtected()
+ ).then(function (check1, check2, check3, check4, check5, check6, check7, check8, check9, check10, check11) {
+ var messages = [].concat(check1, check2, check3, check4, check5, check6, check7, check8, check9, check10, check11);
+ var $el = $('#postsetupchecks');
+ $('#security-warning-state-loading').addClass('hidden');
+
+ var hasMessages = false;
+ var $errorsEl = $el.find('.errors');
+ var $warningsEl = $el.find('.warnings');
+ var $infoEl = $el.find('.info');
+
+ for (var i = 0; i < messages.length; i++) {
+ switch (messages[i].type) {
+ case OC.SetupChecks.MESSAGE_TYPE_INFO:
+ $infoEl.append('<li>' + messages[i].msg + '</li>');
+ break;
+ case OC.SetupChecks.MESSAGE_TYPE_WARNING:
+ $warningsEl.append('<li>' + messages[i].msg + '</li>');
+ break;
+ case OC.SetupChecks.MESSAGE_TYPE_ERROR:
+ default:
+ $errorsEl.append('<li>' + messages[i].msg + '</li>');
+ }
+ }
+
+ if ($errorsEl.find('li').length > 0) {
+ $errorsEl.removeClass('hidden');
+ hasMessages = true;
+ }
+ if ($warningsEl.find('li').length > 0) {
+ $warningsEl.removeClass('hidden');
+ hasMessages = true;
+ }
+ if ($infoEl.find('li').length > 0) {
+ $infoEl.removeClass('hidden');
+ hasMessages = true;
+ }
+
+ if (hasMessages) {
+ $('#postsetupchecks-hint').removeClass('hidden');
+ if ($errorsEl.find('li').length > 0) {
+ $('#security-warning-state-failure').removeClass('hidden');
+ } else {
+ $('#security-warning-state-warning').removeClass('hidden');
+ }
+ } else {
+ var securityWarning = $('#security-warning');
+ if (securityWarning.children('ul').children().length === 0) {
+ $('#security-warning-state-ok').removeClass('hidden');
+ } else {
+ $('#security-warning-state-failure').removeClass('hidden');
+ }
+ }
+ });
+ };
+
+ if (document.getElementById('security-warning') !== null) {
+ setupChecks();
+ }
+});