123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419 |
- $(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_defaults.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true && !!oc_appconfig.core.public_webfinger, [200, 501]),
- OC.SetupChecks.checkWellKnownUrl('/.well-known/caldav', oc_defaults.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),
- OC.SetupChecks.checkWellKnownUrl('/.well-known/carddav', oc_defaults.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),
- OC.SetupChecks.checkSetup(),
- OC.SetupChecks.checkGeneric(),
- OC.SetupChecks.checkWOFF2Loading(OC.filePath('core', '', 'fonts/Nunito-Regular.woff2'), oc_defaults.docPlaceholderUrl),
- OC.SetupChecks.checkDataProtected()
- ).then(function (check1, check2, check3, check4, check5, check6, check7, check8) {
- var messages = [].concat(check1, check2, check3, check4, check5, check6, check7, check8);
- 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();
- }
- // server info
- var serverInfoForm = $('#server-info-form');
- var serverInfoWorkingTimeoutHandle;
- var serverInfoSubmitButton = $('#server-info-submit-button');
- /**
- * Sets the server info submit button state to default.
- */
- function setServerInfoButtonDefault() {
- serverInfoSubmitButton.removeClass('button-success');
- serverInfoSubmitButton.removeClass('button-error');
- serverInfoSubmitButton.removeClass('button-working');
- }
- /**
- * Sets the server info submit button state to working.
- */
- function setServerInfoButtonWorking() {
- serverInfoSubmitButton.removeClass('button-success');
- serverInfoSubmitButton.removeClass('button-error');
- serverInfoSubmitButton.addClass('button-working');
- }
- /**
- * Sets the server info submit button state to success.
- */
- function setServerInfoButtonSuccess() {
- serverInfoSubmitButton.removeClass('button-error');
- serverInfoSubmitButton.removeClass('button-working');
- serverInfoSubmitButton.addClass('button-success');
- }
- /**
- * Sets the server info submit button state to error.
- */
- function setServerInfoButtonError() {
- serverInfoSubmitButton.removeClass('button-success');
- serverInfoSubmitButton.removeClass('button-working');
- serverInfoSubmitButton.addClass('button-error');
- }
- /**
- * Clears the server info working timeout, if present.
- */
- function clearServerInfoWorkingTimeout() {
- if (serverInfoWorkingTimeoutHandle) {
- clearTimeout(serverInfoWorkingTimeoutHandle);
- serverInfoWorkingTimeoutHandle = undefined;
- }
- }
- /**
- * Unlocks the server info form, e.g. removing readonly from inputs.
- */
- function unlockForm() {
- serverInfoForm.find('input, select').prop('readonly', false);
- serverInfoSubmitButton.prop('disabled', false);
- }
- /**
- * Resets the submit button state one of the form elements is changed.
- */
- serverInfoForm.find('input, select').on('keyup change', function() {
- setServerInfoButtonDefault();
- });
- /**
- * Handles the server info form submit.
- */
- serverInfoForm.on('submit', function(event) {
- event.stopImmediatePropagation();
- event.preventDefault();
- serverInfoForm.find('input, select').prop('readonly', true);
- serverInfoSubmitButton.prop('disabled', true);
- clearServerInfoWorkingTimeout();
- // start show spinner only if request takes longer than one second
- serverInfoWorkingTimeoutHandle = setTimeout(function() {
- setServerInfoButtonWorking();
- }, 1000);
- $.ajax({
- url: OC.generateUrl('/settings/serverinfo'),
- type: 'POST',
- data: serverInfoForm.serialize(),
- success: function() {
- clearServerInfoWorkingTimeout();
- setServerInfoButtonSuccess();
- unlockForm();
- serverInfoSubmitButton.blur();
- },
- error: function() {
- clearServerInfoWorkingTimeout();
- setServerInfoButtonError();
- unlockForm();
- serverInfoSubmitButton.blur();
- }
- });
- });
- });
|