fix: bug where action:settings.sorted-list.loaded fired early

The hook was fired before the elements had been added to the DOM.

Also, I updated it to use the new hooks lib.
This commit is contained in:
Julian Lam
2021-01-31 16:57:28 -05:00
parent a8be6fb8fb
commit 1a04ec6419

View File

@@ -2,8 +2,9 @@
define('settings/sorted-list', [
'benchpress',
'hooks',
'jquery-ui/widgets/sortable',
], function (benchpress) {
], function (benchpress, hooks) {
var SortedList;
var Settings;
@@ -57,13 +58,14 @@ define('settings/sorted-list', [
form.attr('data-sorted-list-object', key);
$('#content').append(form.hide());
parse($container, itemUUID, item);
parse($container, itemUUID, item).then(() => {
hooks.fire('action:settings.sorted-list.loaded', { element: $list.get(0) });
});
});
}
});
$list.sortable().addClass('pointer');
$(window).trigger('action:settings.sorted-list.loaded', { element: $list.get(0) });
},
};
@@ -113,6 +115,7 @@ define('settings/sorted-list', [
var $list = $container.find('[data-type="list"]');
var itemTpl = $container.attr('data-item-template');
return new Promise((resolve) => {
app.parseAndTranslate(itemTpl, data, function (itemHtml) {
itemHtml = $(itemHtml);
$list.append(itemHtml);
@@ -120,6 +123,8 @@ define('settings/sorted-list', [
setupRemoveButton($container, itemUUID);
setupEditButton($container, itemUUID);
resolve();
});
});
}