feat: allow for settings.save/settings.load on client side

w/ optional data-socket-get / data-socket-set params on form element for custom calls
v1.18.x
psychobunny 4 years ago committed by Andrew Rodrigues
parent e755067387
commit 66196d2caf

@ -470,7 +470,9 @@ define('settings', ['hooks'], function (hooks) {
},
load: function (hash, formEl, callback) {
callback = callback || function () {};
socket.emit('admin.settings.get', {
var call = formEl.attr('data-socket-get');
socket.emit(call || 'admin.settings.get', {
hash: hash,
}, function (err, values) {
if (err) {
@ -489,7 +491,7 @@ define('settings', ['hooks'], function (hooks) {
});
// Save loaded settings into ajaxify.data for use client-side
ajaxify.data.settings = values;
ajaxify.data[call ? hash : 'settings'] = values;
helper.whenReady(function () {
$(formEl).find('[data-sorted-list]').each(function (idx, el) {
@ -537,7 +539,8 @@ define('settings', ['hooks'], function (hooks) {
}
});
socket.emit('admin.settings.set', {
var call = formEl.attr('data-socket-set');
socket.emit(call || 'admin.settings.set', {
hash: hash,
values: values,
}, function (err) {
@ -545,7 +548,7 @@ define('settings', ['hooks'], function (hooks) {
app.flags._unsaved = false;
// Also save to local ajaxify.data
ajaxify.data.settings = values;
ajaxify.data[call ? hash : 'settings'] = values;
if (typeof callback === 'function') {
callback(err);

@ -25,7 +25,7 @@ define('settings/sorted-list', [
values[key].push(Settings.helper.serializeForm(formData));
});
},
get: function ($container) {
get: function ($container, hash) {
var $list = $container.find('[data-type="list"]');
var key = $container.attr('data-sorted-list');
var formTpl = $container.attr('data-form-template');
@ -49,7 +49,9 @@ define('settings/sorted-list', [
});
});
var list = ajaxify.data.settings[key];
var call = $container.parents('form').attr('data-socket-get');
var list = ajaxify.data[call ? hash : 'settings'][key];
if (Array.isArray(list) && typeof list[0] !== 'string') {
list.forEach(function (item) {
var itemUUID = utils.generateUUID();

Loading…
Cancel
Save