killbill-avatax 3.1.0.pre.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/images/avatax/sort-down.svg +3 -0
- data/app/assets/images/avatax/sort-up.svg +3 -0
- data/app/views/avatax/configuration/_exemptions_table.html.erb +42 -2
- data/app/views/avatax/configuration/_products_table.html.erb +42 -2
- data/app/views/avatax/configuration/index.html.erb +9 -9
- data/app/views/kaui/components/button/_button.html.erb +2 -2
- data/lib/avatax/version.rb +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 395717b358719e10e5e7e10eb99d6313281670d1818c5db7392dc8b46d7164fe
|
|
4
|
+
data.tar.gz: d8dd8f265f238ba0fe58b7cc59760d4186779648c783fb5941cef8e0ef1bed2f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f8d8eb2e3cd1e1ee184ac6ff9ef1388523d79ae310e52aa7c58f8496b7eec30ef4c049f932cc6768a60d810712d55273eec80c36b5a3f1c1083edf387486b937
|
|
7
|
+
data.tar.gz: 65436084b9d935d6bc673e4641729a8c5259d62555e36e349880ca49e1751afa1626cf9e21cfe400c567b0fb5b9d331515b56d229ec0d2e2dc99d84a44f41b76
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg class="sort-icon sort-desc" xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none" role="img" aria-label="sort descending">
|
|
2
|
+
<path d="M3 6.5L6 9.5L9 6.5" stroke="#A4A7AE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg class="sort-icon sort-asc" xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none" role="img" aria-label="sort ascending">
|
|
2
|
+
<path d="M3 5.5L6 2.5L9 5.5" stroke="#A4A7AE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
+
</svg>
|
|
@@ -1,8 +1,29 @@
|
|
|
1
1
|
<table id="exemptions-table" class="configuration-table">
|
|
2
|
+
<colgroup>
|
|
3
|
+
<col style="width: 45%">
|
|
4
|
+
<col style="width: 45%">
|
|
5
|
+
<col style="width: 10%">
|
|
6
|
+
</colgroup>
|
|
2
7
|
<thead>
|
|
3
8
|
<tr>
|
|
4
|
-
<th
|
|
5
|
-
|
|
9
|
+
<th class="sortable-header" data-column="0">
|
|
10
|
+
<div class="header-content">
|
|
11
|
+
<span class="header-text">Account ID</span>
|
|
12
|
+
<div class="sort-icons">
|
|
13
|
+
<%= image_tag "avatax/sort-up.svg", class: "sort-icon sort-asc" %>
|
|
14
|
+
<%= image_tag "avatax/sort-down.svg", class: "sort-icon sort-desc" %>
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
</th>
|
|
18
|
+
<th class="sortable-header" data-column="1">
|
|
19
|
+
<div class="header-content">
|
|
20
|
+
<span class="header-text">Customer Usage Type</span>
|
|
21
|
+
<div class="sort-icons">
|
|
22
|
+
<%= image_tag "avatax/sort-up.svg", class: "sort-icon sort-asc" %>
|
|
23
|
+
<%= image_tag "avatax/sort-down.svg", class: "sort-icon sort-desc" %>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</th>
|
|
6
27
|
<th></th>
|
|
7
28
|
</tr>
|
|
8
29
|
</thead>
|
|
@@ -24,11 +45,30 @@
|
|
|
24
45
|
$('#exemptions-table').dataTable({
|
|
25
46
|
"dom": "t",
|
|
26
47
|
"paging": false,
|
|
48
|
+
"ordering": true,
|
|
27
49
|
"columns": [
|
|
28
50
|
null,
|
|
29
51
|
null,
|
|
30
52
|
{ "orderable": false }
|
|
31
53
|
]
|
|
32
54
|
});
|
|
55
|
+
var exemptionsTable = $('#exemptions-table').DataTable();
|
|
56
|
+
|
|
57
|
+
$('#exemptions-table thead').on('click', 'th.sortable-header, th.sortable-header *', function(e) {
|
|
58
|
+
var th = $(this).closest('th');
|
|
59
|
+
var columnIndex = parseInt(th.data('column'), 10);
|
|
60
|
+
var currentOrder = exemptionsTable.order();
|
|
61
|
+
var direction = 'asc';
|
|
62
|
+
|
|
63
|
+
if (currentOrder.length && currentOrder[0][0] === columnIndex) {
|
|
64
|
+
direction = currentOrder[0][1] === 'asc' ? 'desc' : 'asc';
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
exemptionsTable.order([columnIndex, direction]).draw();
|
|
68
|
+
|
|
69
|
+
// Update icon state
|
|
70
|
+
$('#exemptions-table thead th .sort-icon').removeClass('active');
|
|
71
|
+
th.find('.sort-' + (direction === 'asc' ? 'asc' : 'desc')).addClass('active');
|
|
72
|
+
});
|
|
33
73
|
});
|
|
34
74
|
<% end %>
|
|
@@ -1,8 +1,29 @@
|
|
|
1
1
|
<table id="products-table" class="configuration-table">
|
|
2
|
+
<colgroup>
|
|
3
|
+
<col style="width: 45%">
|
|
4
|
+
<col style="width: 45%">
|
|
5
|
+
<col style="width: 10%">
|
|
6
|
+
</colgroup>
|
|
2
7
|
<thead>
|
|
3
8
|
<tr>
|
|
4
|
-
<th
|
|
5
|
-
|
|
9
|
+
<th class="sortable-header" data-column="0">
|
|
10
|
+
<div class="header-content">
|
|
11
|
+
<span class="header-text">Product name</span>
|
|
12
|
+
<div class="sort-icons">
|
|
13
|
+
<%= image_tag "avatax/sort-up.svg", class: "sort-icon sort-asc" %>
|
|
14
|
+
<%= image_tag "avatax/sort-down.svg", class: "sort-icon sort-desc" %>
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
</th>
|
|
18
|
+
<th class="sortable-header" data-column="1">
|
|
19
|
+
<div class="header-content">
|
|
20
|
+
<span class="header-text">Tax code</span>
|
|
21
|
+
<div class="sort-icons">
|
|
22
|
+
<%= image_tag "avatax/sort-up.svg", class: "sort-icon sort-asc" %>
|
|
23
|
+
<%= image_tag "avatax/sort-down.svg", class: "sort-icon sort-desc" %>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</th>
|
|
6
27
|
<th></th>
|
|
7
28
|
</tr>
|
|
8
29
|
</thead>
|
|
@@ -24,11 +45,30 @@
|
|
|
24
45
|
$('#products-table').dataTable({
|
|
25
46
|
"dom": "t",
|
|
26
47
|
"paging": false,
|
|
48
|
+
"ordering": true,
|
|
27
49
|
"columns": [
|
|
28
50
|
null,
|
|
29
51
|
null,
|
|
30
52
|
{ "orderable": false }
|
|
31
53
|
]
|
|
32
54
|
});
|
|
55
|
+
var productsTable = $('#products-table').DataTable();
|
|
56
|
+
|
|
57
|
+
$('#products-table thead').on('click', 'th.sortable-header, th.sortable-header *', function(e) {
|
|
58
|
+
var th = $(this).closest('th');
|
|
59
|
+
var columnIndex = parseInt(th.data('column'), 10);
|
|
60
|
+
var currentOrder = productsTable.order();
|
|
61
|
+
var direction = 'asc';
|
|
62
|
+
|
|
63
|
+
if (currentOrder.length && currentOrder[0][0] === columnIndex) {
|
|
64
|
+
direction = currentOrder[0][1] === 'asc' ? 'desc' : 'asc';
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
productsTable.order([columnIndex, direction]).draw();
|
|
68
|
+
|
|
69
|
+
// Update icon state
|
|
70
|
+
$('#products-table thead th .sort-icon').removeClass('active');
|
|
71
|
+
th.find('.sort-' + (direction === 'asc' ? 'asc' : 'desc')).addClass('active');
|
|
72
|
+
});
|
|
33
73
|
});
|
|
34
74
|
<% end %>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<div class="kaui-container configuration-index">
|
|
2
2
|
<%= render "kaui/components/breadcrumb/breadcrumb" %>
|
|
3
|
-
<div class="d-flex
|
|
4
|
-
<div class="configuration" style="max-width:
|
|
5
|
-
<div class="d-flex flex-column
|
|
3
|
+
<div class="d-flex" style="gap: 4rem;">
|
|
4
|
+
<div class="configuration" style="max-width: 80rem;">
|
|
5
|
+
<div class="d-flex flex-column">
|
|
6
6
|
<div class="configuration-header mb-4">
|
|
7
7
|
<div class="d-flex align-items-center">
|
|
8
8
|
<h2>Configured products</h2>
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
</div>
|
|
27
27
|
|
|
28
28
|
<div class="kaui-container configuration-index">
|
|
29
|
-
<div class="d-flex
|
|
30
|
-
<div class="configuration" style="max-width:
|
|
31
|
-
<div class="d-flex flex-column
|
|
29
|
+
<div class="d-flex" style="gap: 4rem;">
|
|
30
|
+
<div class="configuration" style="max-width: 80rem;">
|
|
31
|
+
<div class="d-flex flex-column">
|
|
32
32
|
<div class="configuration-header mb-4">
|
|
33
33
|
<div class="d-flex align-items-center">
|
|
34
34
|
<h2>Exempt accounts</h2>
|
|
@@ -52,9 +52,9 @@
|
|
|
52
52
|
</div>
|
|
53
53
|
|
|
54
54
|
<div class="kaui-container configuration-index">
|
|
55
|
-
<div class="d-flex
|
|
56
|
-
<div class="configuration" style="max-width:
|
|
57
|
-
<div class="d-flex flex-column
|
|
55
|
+
<div class="d-flex" style="gap: 4rem;">
|
|
56
|
+
<div class="configuration" style="max-width: 80rem;">
|
|
57
|
+
<div class="d-flex flex-column">
|
|
58
58
|
<div class="configuration-header mb-4">
|
|
59
59
|
<div class="d-flex align-items-center">
|
|
60
60
|
<h2>Plugin configuration</h2>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<%#
|
|
2
|
-
This is a placeholder
|
|
2
|
+
This is a placeholder button component for standalone gem usage.
|
|
3
3
|
|
|
4
4
|
This placeholder prevents "missing template" errors when running
|
|
5
5
|
the gem independently during development or testing.
|
|
6
6
|
%>
|
|
7
7
|
|
|
8
|
-
<!--
|
|
8
|
+
<!-- Button placeholder for standalone gem -->
|
data/lib/avatax/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: killbill-avatax
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 4.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kill Bill core team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-11-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: killbill-assets-ui
|
|
@@ -62,6 +62,8 @@ files:
|
|
|
62
62
|
- README.md
|
|
63
63
|
- Rakefile
|
|
64
64
|
- app/assets/config/avatax_manifest.js
|
|
65
|
+
- app/assets/images/avatax/sort-down.svg
|
|
66
|
+
- app/assets/images/avatax/sort-up.svg
|
|
65
67
|
- app/assets/javascripts/application.js
|
|
66
68
|
- app/assets/javascripts/avatax/avatax.js
|
|
67
69
|
- app/assets/stylesheets/application.css
|
|
@@ -104,9 +106,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
104
106
|
version: '0'
|
|
105
107
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
106
108
|
requirements:
|
|
107
|
-
- - "
|
|
109
|
+
- - ">="
|
|
108
110
|
- !ruby/object:Gem::Version
|
|
109
|
-
version:
|
|
111
|
+
version: '0'
|
|
110
112
|
requirements: []
|
|
111
113
|
rubygems_version: 3.4.10
|
|
112
114
|
signing_key:
|