refactor: sorted-list .get() to be async fn

+ plugin hook `filter:settings.sorted-list.load` to allow modification of params prior to template parsing
isekai-main
Julian Lam 3 years ago
parent 578145acd6
commit 89b559a2a3

@ -26,12 +26,16 @@ define('settings/sorted-list', [
values[key].push(formData); values[key].push(formData);
}); });
}, },
get: function ($container, hash) { get: async ($container, hash) => {
const $list = $container.find('[data-type="list"]'); const { listEl, key, formTpl, formValues } = await hooks.fire('filter:settings.sorted-list.load', {
const key = $container.attr('data-sorted-list'); listEl: $container.find('[data-type="list"]'),
const formTpl = $container.attr('data-form-template'); key: $container.attr('data-sorted-list'),
formTpl: $container.attr('data-form-template'),
formValues: {},
});
const formHtml = await benchpress.render(formTpl, formValues);
benchpress.render(formTpl, {}).then(function (formHtml) {
const addBtn = $('[data-sorted-list="' + key + '"] [data-type="add"]'); const addBtn = $('[data-sorted-list="' + key + '"] [data-type="add"]');
addBtn.on('click', function () { addBtn.on('click', function () {
@ -54,13 +58,12 @@ define('settings/sorted-list', [
$('#content').append(form.hide()); $('#content').append(form.hide());
parse($container, itemUUID, item).then(() => { parse($container, itemUUID, item).then(() => {
hooks.fire('action:settings.sorted-list.loaded', { element: $list.get(0) }); hooks.fire('action:settings.sorted-list.loaded', { element: listEl.get(0) });
}); });
}); });
} }
});
$list.sortable().addClass('pointer'); listEl.sortable().addClass('pointer');
}, },
addItem: function ($formElements, $target) { addItem: function ($formElements, $target) {
const key = $target.attr('data-sorted-list'); const key = $target.attr('data-sorted-list');

Loading…
Cancel
Save