nextcloud-server/apps/encryption/js/settings-admin.js

81 lines
2.9 KiB
JavaScript

/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2013-2015 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
window.addEventListener('DOMContentLoaded', function() {
$('input:button[name="enableRecoveryKey"]').click(function() {
const recoveryStatus = $(this).attr('status')
const newRecoveryStatus = (1 + parseInt(recoveryStatus)) % 2
const buttonValue = $(this).attr('value')
const recoveryPassword = $('#encryptionRecoveryPassword').val()
const confirmPassword = $('#repeatEncryptionRecoveryPassword').val()
OC.msg.startSaving('#encryptionSetRecoveryKey .msg')
$.post(
OC.generateUrl('/apps/encryption/ajax/adminRecovery'),
{
adminEnableRecovery: newRecoveryStatus,
recoveryPassword,
confirmPassword,
},
).done(function(data) {
OC.msg.finishedSuccess('#encryptionSetRecoveryKey .msg', data.data.message)
if (newRecoveryStatus === 0) {
$('p[name="changeRecoveryPasswordBlock"]').addClass('hidden')
$('input:button[name="enableRecoveryKey"]').attr('value', 'Enable recovery key')
$('input:button[name="enableRecoveryKey"]').attr('status', '0')
} else {
$('input:password[name="changeRecoveryPassword"]').val('')
$('p[name="changeRecoveryPasswordBlock"]').removeClass('hidden')
$('input:button[name="enableRecoveryKey"]').attr('value', 'Disable recovery key')
$('input:button[name="enableRecoveryKey"]').attr('status', '1')
}
})
.fail(function(jqXHR) {
$('input:button[name="enableRecoveryKey"]').attr('value', buttonValue)
$('input:button[name="enableRecoveryKey"]').attr('status', recoveryStatus)
OC.msg.finishedError('#encryptionSetRecoveryKey .msg', JSON.parse(jqXHR.responseText).data.message)
})
})
$('#repeatEncryptionRecoveryPassword').keyup(function(event) {
if (event.keyCode == 13) {
$('#enableRecoveryKey').click()
}
})
// change recovery password
$('button:button[name="submitChangeRecoveryKey"]').click(function() {
const oldRecoveryPassword = $('#oldEncryptionRecoveryPassword').val()
const newRecoveryPassword = $('#newEncryptionRecoveryPassword').val()
const confirmNewPassword = $('#repeatedNewEncryptionRecoveryPassword').val()
OC.msg.startSaving('#encryptionChangeRecoveryKey .msg')
$.post(
OC.generateUrl('/apps/encryption/ajax/changeRecoveryPassword'),
{
oldPassword: oldRecoveryPassword,
newPassword: newRecoveryPassword,
confirmPassword: confirmNewPassword,
},
).done(function(data) {
OC.msg.finishedSuccess('#encryptionChangeRecoveryKey .msg', data.data.message)
})
.fail(function(jqXHR) {
OC.msg.finishedError('#encryptionChangeRecoveryKey .msg', JSON.parse(jqXHR.responseText).data.message)
})
})
$('#encryptHomeStorage').change(function() {
$.post(
OC.generateUrl('/apps/encryption/ajax/setEncryptHomeStorage'),
{
encryptHomeStorage: this.checked,
},
)
})
})