nextcloud-printer/js/admin.js

65 lines
1.5 KiB
JavaScript

let elements = []
const selector = '#printer-message';
const appConfig = (name, value, callbacks) => {
OCP.AppConfig.setValue('printer', name, value, callbacks)
}
const saveSettings = (key) => {
const element = elements.get(key)
let value
let name
if (jQuery(element).is('[data-checkbox]')) {
name = jQuery(element).attr('data-name')
const inputs = jQuery('input[name="' + name + '[]"]:checked')
value = []
inputs.each((i, v) => {
value.push(v.value)
})
value = JSON.stringify(value)
} else {
name = jQuery(element).attr('name')
value = jQuery(element).val()
}
const size = elements.length
if (name === 'cache') {
++value
}
const callbacks = {
success: () => {
OC.msg.finishedSuccess(
selector,
t('printer', (key + 1) + '/' + size)
)
if (key < size - 1) {
saveSettings(++key)
} else {
OC.msg.finishedSuccess(selector, t('printer', 'Saved'))
}
},
error: () => {
OC.msg.finishedError(selector, t('printer', 'Error while saving "' + element + '"'))
}
}
appConfig(name, value, callbacks)
}
jQuery(document).ready(() => {
elements = jQuery('.printer-setting')
jQuery('#printer-save').on('click', (event) => {
event.preventDefault()
OC.msg.startSaving(selector)
saveSettings(0)
});
});