From dbcbe382171b60c0da287cd92c394ccef80a5bfa Mon Sep 17 00:00:00 2001 From: Samir Boulahtit Date: Thu, 25 Dec 2025 22:44:33 +0100 Subject: [PATCH] fix: implement handleSort method for sortable table headers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update th_sortable macro to call handleSort(key) instead of inline logic - Add handleSort method to subscriptions.js, subscription-tiers.js, billing-history.js - Add sort_by and sort_order params to API calls in all three files - Reset to page 1 when sort changes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- app/templates/shared/macros/tables.html | 14 +++++++------- static/admin/js/billing-history.js | 13 +++++++++++++ static/admin/js/subscription-tiers.js | 12 ++++++++++++ static/admin/js/subscriptions.js | 13 +++++++++++++ 4 files changed, 45 insertions(+), 7 deletions(-) diff --git a/app/templates/shared/macros/tables.html b/app/templates/shared/macros/tables.html index edaa2341..cddb78f0 100644 --- a/app/templates/shared/macros/tables.html +++ b/app/templates/shared/macros/tables.html @@ -77,8 +77,8 @@ Parameters: - key: The data key/column name for sorting - label: Display label for the column - - sort_func: Alpine.js function name to call on click (default: 'sortBy') - - sort_order_var: Alpine.js variable for current sort order (default: 'sortOrder') + - sort_key_var: Alpine.js variable for current sort key (default: 'sortBy') + - sort_order_var: Alpine.js variable for sort order (default: 'sortOrder') Usage: {% call table_header_custom() %} @@ -97,27 +97,27 @@ this.sortBy = key; this.sortOrder = 'asc'; } - this.loadData(); + this.loadData(); // or loadSubscriptions(), etc. } #} -{% macro th_sortable(key, label, sort_func='sortBy', sort_order_var='sortOrder') %} +{% macro th_sortable(key, label, sort_key_var='sortBy', sort_order_var='sortOrder') %}