kaui 3.0.9 → 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.
Files changed (259) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/kaui/account/authorize.svg +4 -0
  3. data/app/assets/images/kaui/account/credit.svg +4 -0
  4. data/app/assets/images/kaui/account/down-arrow.svg +3 -0
  5. data/app/assets/images/kaui/account/edit.svg +4 -0
  6. data/app/assets/images/kaui/account/pay-all.svg +5 -0
  7. data/app/assets/images/kaui/account/plus.svg +3 -0
  8. data/app/assets/images/kaui/account/purchase.svg +5 -0
  9. data/app/assets/images/kaui/account/refresh.svg +5 -0
  10. data/app/assets/images/kaui/arrow.svg +3 -0
  11. data/app/assets/images/kaui/card.svg +5 -0
  12. data/app/assets/images/kaui/copy.svg +12 -0
  13. data/app/assets/images/kaui/dashboard/aviate.svg +6 -0
  14. data/app/assets/images/kaui/dashboard/custom-field.svg +5 -0
  15. data/app/assets/images/kaui/dashboard/kaui-doc-img.png +0 -0
  16. data/app/assets/images/kaui/dashboard/plugins.svg +7 -0
  17. data/app/assets/images/kaui/dashboard/tags.svg +4 -0
  18. data/app/assets/images/kaui/dashboard/users.svg +6 -0
  19. data/app/assets/images/kaui/delete.svg +6 -0
  20. data/app/assets/images/kaui/dots.svg +5 -0
  21. data/app/assets/images/kaui/download-csv.svg +5 -0
  22. data/app/assets/images/kaui/download.svg +4 -0
  23. data/app/assets/images/kaui/eye-off.svg +9 -0
  24. data/app/assets/images/kaui/eye.svg +7 -0
  25. data/app/assets/images/kaui/file-upload.svg +34 -0
  26. data/app/assets/images/kaui/generate.svg +5 -0
  27. data/app/assets/images/kaui/header/account.svg +4 -0
  28. data/app/assets/images/kaui/header/cog_icon.svg +4 -0
  29. data/app/assets/images/kaui/header/invoice.svg +5 -0
  30. data/app/assets/images/kaui/header/payment.svg +5 -0
  31. data/app/assets/images/kaui/header/search_icon.svg +4 -0
  32. data/app/assets/images/kaui/header/subscription.svg +6 -0
  33. data/app/assets/images/kaui/logout.svg +4 -0
  34. data/app/assets/images/kaui/modal/close.svg +3 -0
  35. data/app/assets/images/kaui/modal/plus.svg +3 -0
  36. data/app/assets/images/kaui/modal/red-close.svg +10 -0
  37. data/app/assets/images/kaui/modal/search.svg +4 -0
  38. data/app/assets/images/kaui/payment/payment.svg +4 -0
  39. data/app/assets/images/kaui/payment/refund.svg +4 -0
  40. data/app/assets/images/kaui/plus.svg +3 -0
  41. data/app/assets/images/kaui/search.svg +4 -0
  42. data/app/assets/images/kaui/setting/account.svg +10 -0
  43. data/app/assets/images/kaui/setting/analytics.svg +7 -0
  44. data/app/assets/images/kaui/setting/custom-field.svg +5 -0
  45. data/app/assets/images/kaui/setting/e-notifications.svg +6 -0
  46. data/app/assets/images/kaui/setting/plugins.svg +7 -0
  47. data/app/assets/images/kaui/setting/plus.svg +3 -0
  48. data/app/assets/images/kaui/setting/reset.svg +4 -0
  49. data/app/assets/images/kaui/setting/tag-definitions.svg +5 -0
  50. data/app/assets/images/kaui/setting/tags.svg +4 -0
  51. data/app/assets/images/kaui/setting/tenants.svg +6 -0
  52. data/app/assets/images/kaui/setting/users.svg +6 -0
  53. data/app/assets/images/kaui/setting.svg +4 -0
  54. data/app/assets/images/kaui/sidebar/account.svg +4 -0
  55. data/app/assets/images/kaui/sidebar/audit.svg +5 -0
  56. data/app/assets/images/kaui/sidebar/custom-fields.svg +5 -0
  57. data/app/assets/images/kaui/sidebar/invoices.svg +5 -0
  58. data/app/assets/images/kaui/sidebar/payments.svg +5 -0
  59. data/app/assets/images/kaui/sidebar/queues.svg +5 -0
  60. data/app/assets/images/kaui/sidebar/subscriptions.svg +6 -0
  61. data/app/assets/images/kaui/sidebar/tags.svg +5 -0
  62. data/app/assets/images/kaui/sidebar/timeline.svg +5 -0
  63. data/app/assets/images/kaui/sign_in_background.svg +57 -0
  64. data/app/assets/images/kaui/sort-down.svg +3 -0
  65. data/app/assets/images/kaui/sort-up.svg +3 -0
  66. data/app/assets/images/kaui/subscription/add-on.svg +7 -0
  67. data/app/assets/images/kaui/subscription/cancel.svg +6 -0
  68. data/app/assets/images/kaui/subscription/change.svg +6 -0
  69. data/app/assets/images/kaui/subscription/date.svg +6 -0
  70. data/app/assets/images/kaui/subscription/pause.svg +4 -0
  71. data/app/assets/images/kaui/timeline/authorize.svg +5 -0
  72. data/app/assets/images/kaui/timeline/capture.svg +5 -0
  73. data/app/assets/images/kaui/timeline/chargeback.svg +3 -0
  74. data/app/assets/images/kaui/timeline/credit.svg +6 -0
  75. data/app/assets/images/kaui/timeline/invoice.svg +5 -0
  76. data/app/assets/images/kaui/timeline/purchase.svg +5 -0
  77. data/app/assets/images/kaui/timeline/refund.svg +4 -0
  78. data/app/assets/images/kaui/timeline/void.svg +4 -0
  79. data/app/assets/images/kaui/view-doc.svg +6 -0
  80. data/app/assets/images/kaui/warning.png +0 -0
  81. data/app/assets/javascripts/application.js +2 -2
  82. data/app/assets/javascripts/kaui/kaui_override.js +232 -0
  83. data/app/assets/javascripts/kaui/multi_functions_bar_utils.js +125 -24
  84. data/app/assets/stylesheets/application.css +13 -1
  85. data/app/assets/stylesheets/kaui/account.css +2028 -14
  86. data/app/assets/stylesheets/kaui/account_timeline.css +183 -0
  87. data/app/assets/stylesheets/kaui/admin_allowed_users.css +260 -0
  88. data/app/assets/stylesheets/kaui/audit.css +26 -16
  89. data/app/assets/stylesheets/kaui/audit_logs.css +443 -0
  90. data/app/assets/stylesheets/kaui/auth_pages.css +72 -0
  91. data/app/assets/stylesheets/kaui/breadcrumb.css +38 -0
  92. data/app/assets/stylesheets/kaui/chargebacks.css +118 -0
  93. data/app/assets/stylesheets/kaui/clock.css +103 -0
  94. data/app/assets/stylesheets/kaui/common.css +1744 -401
  95. data/app/assets/stylesheets/kaui/custom_fields.css +546 -0
  96. data/app/assets/stylesheets/kaui/dashboard.css +26 -0
  97. data/app/assets/stylesheets/kaui/datatable.css +114 -56
  98. data/app/assets/stylesheets/kaui/header.css +221 -114
  99. data/app/assets/stylesheets/kaui/home.css +89 -62
  100. data/app/assets/stylesheets/kaui/invoice.css +1061 -27
  101. data/app/assets/stylesheets/kaui/kaui.css +217 -145
  102. data/app/assets/stylesheets/kaui/overdue.css +5 -3
  103. data/app/assets/stylesheets/kaui/payment.css +1102 -13
  104. data/app/assets/stylesheets/kaui/queues.css +269 -0
  105. data/app/assets/stylesheets/kaui/refunds.css +185 -0
  106. data/app/assets/stylesheets/kaui/role_definitions.css +111 -0
  107. data/app/assets/stylesheets/kaui/sidebar.css +122 -0
  108. data/app/assets/stylesheets/kaui/subscription.css +677 -0
  109. data/app/assets/stylesheets/kaui/tag_definitions.css +524 -0
  110. data/app/assets/stylesheets/kaui/tags.css +592 -121
  111. data/app/assets/stylesheets/kaui/tenants.css +1478 -0
  112. data/app/assets/stylesheets/kaui/tooltip.css +9 -5
  113. data/app/assets/stylesheets/kaui/wallets.css +121 -0
  114. data/app/controllers/kaui/accounts_controller.rb +3 -2
  115. data/app/controllers/kaui/admin_tenants_controller.rb +33 -0
  116. data/app/controllers/kaui/custom_fields_controller.rb +1 -1
  117. data/app/controllers/kaui/engine_controller.rb +1 -2
  118. data/app/controllers/kaui/engine_controller_util.rb +5 -7
  119. data/app/controllers/kaui/home_controller.rb +24 -17
  120. data/app/controllers/kaui/invoices_controller.rb +4 -15
  121. data/app/controllers/kaui/payments_controller.rb +1 -1
  122. data/app/controllers/kaui/sessions_controller.rb +1 -0
  123. data/app/controllers/kaui/tag_definitions_controller.rb +1 -0
  124. data/app/helpers/kaui/account_helper.rb +13 -0
  125. data/app/helpers/kaui/plugin_helper.rb +27 -0
  126. data/app/views/kaui/account_custom_fields/index.html.erb +95 -29
  127. data/app/views/kaui/account_emails/_account_emails_table.html.erb +13 -3
  128. data/app/views/kaui/account_emails/_form.html.erb +23 -6
  129. data/app/views/kaui/account_emails/new.html.erb +12 -6
  130. data/app/views/kaui/account_tags/_form_bar.html.erb +10 -1
  131. data/app/views/kaui/account_tags/index.html.erb +103 -24
  132. data/app/views/kaui/account_timelines/_multi_functions_bar.html.erb +302 -69
  133. data/app/views/kaui/account_timelines/show.html.erb +360 -254
  134. data/app/views/kaui/accounts/_account_details.html.erb +165 -0
  135. data/app/views/kaui/accounts/_account_filterbar.html.erb +70 -80
  136. data/app/views/kaui/accounts/_add_parent.html.erb +26 -0
  137. data/app/views/kaui/accounts/_billing_details.html.erb +196 -0
  138. data/app/views/kaui/accounts/_close_account_modal.html.erb +62 -40
  139. data/app/views/kaui/accounts/_form_account.html.erb +157 -0
  140. data/app/views/kaui/accounts/_functions_bar.html.erb +606 -0
  141. data/app/views/kaui/accounts/_link_parent_modal.html.erb +1 -1
  142. data/app/views/kaui/accounts/_link_parent_to_modal.html.erb +62 -0
  143. data/app/views/kaui/accounts/_multi_functions_bar.html.erb +67 -28
  144. data/app/views/kaui/accounts/_payment_gateways.html.erb +43 -0
  145. data/app/views/kaui/accounts/_personal_details.html.erb +67 -0
  146. data/app/views/kaui/accounts/edit.html.erb +15 -9
  147. data/app/views/kaui/accounts/index.html.erb +77 -27
  148. data/app/views/kaui/accounts/new.html.erb +14 -8
  149. data/app/views/kaui/accounts/show.html.erb +17 -11
  150. data/app/views/kaui/admin/index.html.erb +44 -19
  151. data/app/views/kaui/admin_allowed_users/_form.html.erb +123 -31
  152. data/app/views/kaui/admin_allowed_users/edit.html.erb +15 -9
  153. data/app/views/kaui/admin_allowed_users/index.html.erb +150 -30
  154. data/app/views/kaui/admin_allowed_users/new.html.erb +14 -8
  155. data/app/views/kaui/admin_allowed_users/show.html.erb +137 -32
  156. data/app/views/kaui/admin_tenants/_add_allowed_user_modal.html.erb +42 -15
  157. data/app/views/kaui/admin_tenants/_clock.html.erb +72 -0
  158. data/app/views/kaui/admin_tenants/_form.html.erb +32 -20
  159. data/app/views/kaui/admin_tenants/_form_catalog_translation.erb +21 -8
  160. data/app/views/kaui/admin_tenants/_form_invoice_template.erb +25 -9
  161. data/app/views/kaui/admin_tenants/_form_invoice_translation.erb +36 -20
  162. data/app/views/kaui/admin_tenants/_form_plugin_config.erb +16 -20
  163. data/app/views/kaui/admin_tenants/_show_catalog.erb +13 -6
  164. data/app/views/kaui/admin_tenants/_show_catalog_simple.erb +95 -46
  165. data/app/views/kaui/admin_tenants/_show_catalog_xml.erb +62 -37
  166. data/app/views/kaui/admin_tenants/_show_overdue.erb +91 -75
  167. data/app/views/kaui/admin_tenants/_tenant_details.html.erb +106 -17
  168. data/app/views/kaui/admin_tenants/_tenants_table.html.erb +67 -6
  169. data/app/views/kaui/admin_tenants/_useful_links.html.erb +21 -16
  170. data/app/views/kaui/admin_tenants/index.html.erb +35 -11
  171. data/app/views/kaui/admin_tenants/index.js.erb +3 -0
  172. data/app/views/kaui/admin_tenants/new.html.erb +19 -13
  173. data/app/views/kaui/admin_tenants/new_catalog.html.erb +230 -98
  174. data/app/views/kaui/admin_tenants/new_overdue_config.html.erb +152 -80
  175. data/app/views/kaui/admin_tenants/new_plan_currency.html.erb +44 -30
  176. data/app/views/kaui/admin_tenants/show.html.erb +211 -78
  177. data/app/views/kaui/admin_tenants/show.js.erb +3 -0
  178. data/app/views/kaui/audit_logs/_multi_functions_bar.html.erb +298 -101
  179. data/app/views/kaui/audit_logs/index.html.erb +137 -38
  180. data/app/views/kaui/bundle_tags/_form_bar.html.erb +11 -4
  181. data/app/views/kaui/bundles/_bundle_details.html.erb +24 -12
  182. data/app/views/kaui/bundles/index.html.erb +79 -104
  183. data/app/views/kaui/bundles/pause_resume.html.erb +73 -38
  184. data/app/views/kaui/chargebacks/_form.html.erb +35 -18
  185. data/app/views/kaui/chargebacks/new.html.erb +16 -9
  186. data/app/views/kaui/charges/_form.html.erb +54 -42
  187. data/app/views/kaui/charges/new.html.erb +15 -8
  188. data/app/views/kaui/components/breadcrumb/_breadcrumb.html.erb +146 -0
  189. data/app/views/kaui/components/button/_button.html.erb +16 -0
  190. data/app/views/kaui/components/dashboard/_card.html.erb +15 -0
  191. data/app/views/kaui/components/dashboard/_setting.html.erb +15 -0
  192. data/app/views/kaui/components/form_input/_form_input.html.erb +4 -0
  193. data/app/views/kaui/components/form_password/_form_password.html.erb +6 -0
  194. data/app/views/kaui/components/logo/_logo.html.erb +1 -0
  195. data/app/views/kaui/components/menu_dropdown/_menu_dropdown.html.erb +59 -0
  196. data/app/views/kaui/components/search_input/_search_input.html.erb +81 -0
  197. data/app/views/kaui/credits/_form.html.erb +42 -25
  198. data/app/views/kaui/credits/new.html.erb +15 -8
  199. data/app/views/kaui/custom_fields/_form.html.erb +37 -25
  200. data/app/views/kaui/custom_fields/_list_bar.html.erb +11 -10
  201. data/app/views/kaui/custom_fields/index.html.erb +121 -27
  202. data/app/views/kaui/custom_fields/new.html.erb +19 -8
  203. data/app/views/kaui/errors/500.html.erb +1 -1
  204. data/app/views/kaui/home/index.html.erb +77 -30
  205. data/app/views/kaui/invoice_items/_edit_form.html.erb +30 -14
  206. data/app/views/kaui/invoice_items/edit.html.erb +15 -7
  207. data/app/views/kaui/invoice_tags/_form_bar.html.erb +13 -3
  208. data/app/views/kaui/invoices/_invoice_filterbar.html.erb +53 -69
  209. data/app/views/kaui/invoices/_invoice_table.html.erb +77 -92
  210. data/app/views/kaui/invoices/_multi_functions_bar.html.erb +351 -140
  211. data/app/views/kaui/invoices/index.html.erb +89 -27
  212. data/app/views/kaui/invoices/show.html.erb +392 -80
  213. data/app/views/kaui/layouts/kaui_account_sidebar.html.erb +42 -0
  214. data/app/views/kaui/layouts/kaui_application.html.erb +29 -15
  215. data/app/views/kaui/layouts/kaui_flash.html.erb +82 -31
  216. data/app/views/kaui/layouts/kaui_navbar.html.erb +109 -82
  217. data/app/views/kaui/layouts/kaui_setting_sidebar.html.erb +36 -0
  218. data/app/views/kaui/payment_methods/_form.html.erb +32 -11
  219. data/app/views/kaui/payment_methods/_new_creditcard_payment_method.html.erb +35 -34
  220. data/app/views/kaui/payment_methods/_payment_methods_details_table.html.erb +27 -29
  221. data/app/views/kaui/payment_methods/_payment_methods_table.html.erb +116 -38
  222. data/app/views/kaui/payment_methods/_plugin_properties.html.erb +19 -9
  223. data/app/views/kaui/payment_methods/new.html.erb +14 -8
  224. data/app/views/kaui/payments/_form.html.erb +30 -13
  225. data/app/views/kaui/payments/_multi_functions_bar.html.erb +351 -141
  226. data/app/views/kaui/payments/_payment_filterbar.html.erb +63 -79
  227. data/app/views/kaui/payments/_payment_invoice_table.html.erb +105 -0
  228. data/app/views/kaui/payments/_payment_table.html.erb +4 -67
  229. data/app/views/kaui/payments/index.html.erb +90 -26
  230. data/app/views/kaui/payments/new.html.erb +15 -8
  231. data/app/views/kaui/payments/show.html.erb +222 -28
  232. data/app/views/kaui/queues/index.html.erb +329 -111
  233. data/app/views/kaui/refunds/_form.html.erb +68 -45
  234. data/app/views/kaui/refunds/new.html.erb +15 -8
  235. data/app/views/kaui/role_definitions/_form.html.erb +104 -17
  236. data/app/views/kaui/role_definitions/new.html.erb +15 -8
  237. data/app/views/kaui/sessions/_form.html.erb +9 -19
  238. data/app/views/kaui/sessions/new.html.erb +10 -9
  239. data/app/views/kaui/subscriptions/_cancel_by_date_modal.html.erb +65 -35
  240. data/app/views/kaui/subscriptions/_edit_form.html.erb +66 -35
  241. data/app/views/kaui/subscriptions/_form.html.erb +63 -32
  242. data/app/views/kaui/subscriptions/_subscriptions_table.html.erb +215 -57
  243. data/app/views/kaui/subscriptions/edit.html.erb +19 -8
  244. data/app/views/kaui/subscriptions/edit_bcd.erb +46 -16
  245. data/app/views/kaui/subscriptions/new.html.erb +22 -15
  246. data/app/views/kaui/tag_definitions/_form.html.erb +51 -30
  247. data/app/views/kaui/tag_definitions/index.html.erb +151 -40
  248. data/app/views/kaui/tag_definitions/new.html.erb +15 -8
  249. data/app/views/kaui/tags/index.html.erb +136 -47
  250. data/app/views/kaui/tenants/_form.html.erb +8 -5
  251. data/app/views/kaui/tenants/index.html.erb +15 -9
  252. data/app/views/kaui/transactions/_control_plugin_names.html.erb +18 -10
  253. data/app/views/kaui/transactions/_form.html.erb +86 -25
  254. data/app/views/kaui/transactions/new.html.erb +15 -9
  255. data/config/routes.rb +1 -0
  256. data/lib/kaui/engine.rb +11 -0
  257. data/lib/kaui/version.rb +1 -1
  258. data/lib/kaui.rb +0 -1
  259. metadata +120 -2
@@ -1,46 +1,71 @@
1
+
1
2
  <div class="modal fade" id="advanceSearchModal" tabindex="-1" role="dialog" aria-labelledby="advanceSearchModalLabel" aria-hidden="true">
2
3
  <div class="modal-dialog" role="document">
3
4
  <div class="modal-content">
4
5
  <div class="modal-header">
5
- <h5 class="modal-title" id="advanceSearchModalLabel">Advance Search</h5>
6
- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
7
- <span aria-hidden="true">&times;</span>
6
+ <h5 class="modal-title d-flex align-items-center gap-3" id="advanceSearchModalLabel">
7
+ <span class="icon-container">
8
+ <%= image_tag("kaui/modal/search.svg", width: 20, height: 20) %>
9
+ </span>
10
+ Advance Search
11
+ </h5>
12
+ <button type="button" class="close close-button custom-hover" data-bs-dismiss="modal" aria-label="Close">
13
+ <span aria-hidden="true">
14
+ <%= image_tag("kaui/modal/close.svg", width: 20, height: 20) %>
15
+ </span>
8
16
  </button>
9
17
  </div>
10
18
  <div class="modal-body">
11
19
  <form id="advanceSearchForm">
12
20
  <div class="form-group d-flex align-items-center">
13
- <label for="searchFieldSelect" class="mr-2" style="width: 30%;">Search Fields:</label>
14
- <select id="searchFieldSelect" class="form-control mr-2">
15
- <% if @account.account_id.present? %>
16
- <% @search_fields.reject { |value, _| value == 'account_id' }.each do |value, title| %>
17
- <option value="<%= value %>"><%= title %></option>
18
- <% end %>
19
- <% else %>
20
- <% @search_fields.each do |value, title| %>
21
- <option value="<%= value %>"><%= title %></option>
21
+ <label for="searchFieldSelect" class="mr-2 field-label" style="width: 30%;">Search Field</label>
22
+ <select id="searchFieldSelect" class="form-control mr-2">
23
+ <% if @account.account_id.present? %>
24
+ <% @search_fields.reject { |value, _| value == 'account_id' }.each do |value, title| %>
25
+ <option value="<%= value %>"><%= title %></option>
26
+ <% end %>
27
+ <% else %>
28
+ <% @search_fields.each do |value, title| %>
29
+ <option value="<%= value %>"><%= title %></option>
30
+ <% end %>
22
31
  <% end %>
23
- <% end %>
24
- </select>
25
- <button type="button" class="btn btn-secondary" id="addSearchField">Add</button>
32
+ </select>
33
+ <button type="button" class="border-button custom-hover" id="addSearchField">
34
+ <%= image_tag("kaui/modal/plus.svg", width: 16, height: 16) %>
35
+ </button>
26
36
  </div>
27
37
  <div id="search-fields-container">
28
38
  </div>
29
39
  </form>
30
40
  </div>
31
41
  <div class="modal-footer">
32
- <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
33
- <button type="button" class="btn btn-primary" id="applyAdvanceSearch">Apply Search</button>
34
- <button type="button" class="btn btn-danger" id="clearAdvanceSearch">Clear Search</button>
42
+ <%= render "kaui/components/button/button", {
43
+ label: 'Clear Search',
44
+ variant: "outline-secondary d-inline-flex align-items-center gap-1",
45
+ type: "button",
46
+ html_class: "kaui-button custom-hover",
47
+ html_options: {
48
+ id: "clearAdvanceSearch"
49
+ }
50
+ } %>
51
+ <%= render "kaui/components/button/button", {
52
+ label: 'Apply Search',
53
+ variant: "outline-secondary d-inline-flex align-items-center gap-1",
54
+ type: "button",
55
+ html_class: "kaui-dropdown custom-hover",
56
+ html_options: {
57
+ id: "applyAdvanceSearch"
58
+ }
59
+ } %>
35
60
  </div>
36
61
  </div>
37
62
  </div>
38
63
  </div>
39
64
 
40
65
  <template id="search-field-template">
41
- <div class="form-group row align-items-center search-field">
42
- <label class="col-sm-4 col-form-label search-field-label"></label>
43
- <div class="col-sm-3">
66
+ <div class="form-group row align-items-center justify-content-between search-field">
67
+ <label class="col-sm-3 col-form-label search-field-label"></label>
68
+ <div class="col-sm-4">
44
69
  <select class="form-control search-field-filter">
45
70
  <option value="eq">Equals</option>
46
71
  <option value="neq">Not Equals</option>
@@ -54,61 +79,12 @@
54
79
  <div class="col-sm-4">
55
80
  <input type="text" class="form-control search-field-value">
56
81
  </div>
57
- <div class="col-sm-1">
58
- <i class="glyphicon glyphicon-remove" id=remove-search-field></i>
59
- </div>
82
+ <button type="button" class="button custom-hover" id="remove-search-field">
83
+ <%= image_tag("kaui/modal/red-close.svg", width: 16, height: 16) %>
84
+ </button>
60
85
  </div>
61
86
  </template>
62
87
 
63
- <style>
64
- .form-group.row.align-items-center {
65
- display: flex;
66
- align-items: center;
67
- }
68
-
69
- .form-group.row.align-items-center label {
70
- margin-bottom: 0; /* Remove default margin */
71
- }
72
-
73
- .form-group.row.align-items-center .form-control {
74
- margin-right: 10px; /* Add some space between elements */
75
- }
76
-
77
- .form-group.d-flex {
78
- display: flex;
79
- align-items: center;
80
- }
81
-
82
- .form-group.d-flex label {
83
- margin-bottom: 0; /* Remove default margin */
84
- }
85
-
86
- .form-group.d-flex .form-control {
87
- margin-right: 10px; /* Add some space between the select box and the button */
88
- }
89
-
90
- #search-labels-container .label {
91
- margin-left: 5px; /* Add space between labels */
92
- margin-bottom: 5px; /* Add space below labels if they wrap to the next line */
93
- color: white;
94
- }
95
-
96
- .filter-bar-container {
97
- display: flex;
98
- justify-content: flex-start; /* Align items to the left */
99
- align-items: center; /* Center items vertically */
100
- }
101
-
102
- .filter-bar {
103
- display: flex;
104
- align-items: center; /* Center items vertically */
105
- }
106
-
107
- .filter-bar label {
108
- margin: 10px; /* Add some space between the label and the select box */
109
- }
110
- </style>
111
-
112
88
  <%= javascript_tag do %>
113
89
  $(document).ready(function() {
114
90
  populateSearchLabelsFromUrl();
@@ -157,18 +133,26 @@ $(document).ready(function() {
157
133
  }
158
134
 
159
135
  searchFields.each(function() {
160
- var filter = $(this).find('.search-field-filter option:selected').text();
161
- var value = $(this).find('.search-field-value').val();
162
- var columnName = $(this).find('.search-field-filter').attr('name').replace('Filter', '');
136
+ var filter = $(this).find('.search-field-filter option:selected').text().trim();
137
+ var value = $(this).find('.search-field-value').val().trim();
138
+ var columnName = $(this).find('.search-field-filter').attr('name').replace('Filter', '').trim();
163
139
 
164
140
  // Create and append the search label
165
141
  if (value !== '') {
166
142
  var label = $('<span>', {
167
- class: 'label label-info',
168
- text: columnName + ' [' + filter + '] ' + value
143
+ class: 'label label-info d-inline-flex align-items-center gap-2',
144
+ 'data-field': columnName,
145
+ 'data-filter': filter,
146
+ 'data-value': value
169
147
  });
148
+ var labelText = $('<span>', { text: columnName + ' [' + filter + '] ' + value });
149
+ var closeIcon = $('<span>', {
150
+ class: 'filter-close-icon',
151
+ style: 'cursor: pointer; margin-left: 5px; display: inline-flex; align-items: center;'
152
+ }).html('<svg width="12" height="12" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15.8337 4.1665L4.16699 15.8332M4.16699 4.1665L15.8337 15.8332" stroke="#A4A7AE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>');
153
+ label.append(labelText).append(closeIcon);
154
+ searchLabelsContainer.append(label);
170
155
  }
171
- searchLabelsContainer.append(label);
172
156
  });
173
157
  $('#advanceSearchModal').modal('hide');
174
158
  });
@@ -0,0 +1,105 @@
1
+ <div class="info-wrapper" >
2
+
3
+ <div class="tag-bar">
4
+ <!--<div class="tag-select">-->
5
+ <!--<span><i class="fa fa-tag"></i><i class="fa fa-caret-down"></i></span>-->
6
+ <!--<div class="tag-select-box">-->
7
+ <!--<strong>Tag As:</strong>-->
8
+ <!--</div>-->
9
+ <!--</div>-->
10
+
11
+ <%= render :partial => 'kaui/custom_fields/list_bar',
12
+ :locals => {:custom_fields => custom_fields} %>
13
+
14
+ <% gateway_url = gateway_url(payment_method, payment) %>
15
+ <% unless gateway_url.nil? %>
16
+ <div class="gateway-link">
17
+ <span><%= link_to 'See in gateway', gateway_url, :target => '_blank' %></span>
18
+ </div>
19
+ <% end %>
20
+ </div>
21
+
22
+ <div style="overflow-x: auto;">
23
+ <table id="payment_<%= payment.payment_id %>" class="payment-table">
24
+ <thead>
25
+ <tr>
26
+ <th><%= I18n.translate('date') %></th>
27
+ <th><%= I18n.translate('type') %></th>
28
+ <th><%= I18n.translate('amount') %></th>
29
+ <th><%= I18n.translate('transaction_external_key') %></th>
30
+ <th><%= I18n.translate('first_id') %></th>
31
+ <th><%= I18n.translate('second_id') %></th>
32
+ <th><%= I18n.translate('gateway_code') %></th>
33
+ <th><%= I18n.translate('gateway_message') %></th>
34
+ <th><%= I18n.translate('status') %></th>
35
+ </tr>
36
+ </thead>
37
+ <tbody>
38
+ <% (payment.transactions || []).each do |transaction| %>
39
+ <tr>
40
+ <td><%= format_date(transaction.effective_date, account.time_zone).html_safe %></td>
41
+ <td><span class="phase-type"><%= transaction.transaction_type %></span></td>
42
+ <td>
43
+ <% if transaction.amount.present? %>
44
+ <% if transaction.amount != transaction.processed_amount %>
45
+ <%= humanized_money_with_symbol Kaui::Transaction.processed_amount_to_money(transaction) %>
46
+ (<%= transaction.currency %>)
47
+ <a href="#" data-toggle="tooltip" class="kb-tooltip" title="<%= I18n.translate('requested_amount_colon') %> <%= humanized_money_with_symbol Kaui::Transaction.amount_to_money(transaction) %>(<%= transaction.currency %>)">(?)</a>
48
+ <% else%>
49
+ <%= humanized_money_with_symbol Kaui::Transaction.amount_to_money(transaction) %>
50
+ (<%= transaction.currency %>)
51
+ <% end %>
52
+ <% end %>
53
+ </td>
54
+ <td><%= transaction.transaction_external_key %></td>
55
+ <td><%= transaction.first_payment_reference_id %></td>
56
+ <td><%= transaction.second_payment_reference_id %></td>
57
+ <td><%= transaction.gateway_error_code %></td>
58
+ <td><%= transaction.gateway_error_msg %></td>
59
+ <td>
60
+ <ul style="list-style: none; padding-left: 0">
61
+ <li>
62
+ <%= colored_transaction_status(transaction.status) %>
63
+ <% if current_user.root? %>
64
+ <%= link_to '&nbsp;<i class="fa fa-eraser"></i>'.html_safe, kaui_engine.new_account_transaction_path(payment.account_id,
65
+ :payment_id => payment.payment_id,
66
+ :transaction_id => transaction.transaction_id) %>
67
+ <% end %>
68
+ </li>
69
+ <% if transaction.next_retry_date %>
70
+ <li>
71
+ Scheduled retry:
72
+ <%= transaction.next_retry_date %>
73
+ <% if can? :trigger, Kaui::Payment %>
74
+ <%= link_to '<i class="fa fa-times"></i>'.html_safe, kaui_engine.payment_cancel_scheduled_payment_path(payment.payment_id, :account_id => payment.account_id, :transaction_external_key => transaction.transaction_external_key), :method => :delete %>
75
+ <% end %>
76
+ </li>
77
+ <% end %>
78
+ <% (transaction.properties || []).sort_by { |p| p.key }.each do |property| %>
79
+ <% next if property.value.blank? %>
80
+ <li><strong><%= property.key %>:</strong>
81
+ <%= json?(property.value) ? "<pre>#{JSON.pretty_generate(JSON.parse(property.value))}</pre>".html_safe : property.value %></li>
82
+ <% end %>
83
+ </ul>
84
+ </td>
85
+ </tr>
86
+ <% end %>
87
+ </tbody>
88
+ </table>
89
+ </div>
90
+
91
+ </div>
92
+
93
+ <%= javascript_tag do %>
94
+ $(document).ready(function() {
95
+ $('#payment_<%= payment.payment_id %>').dataTable({
96
+ "dom": "t",
97
+ "paging": false
98
+ });
99
+
100
+ $(function () {
101
+ $('[data-toggle="tooltip"]').tooltip();
102
+ });
103
+
104
+ });
105
+ <% end %>
@@ -1,71 +1,8 @@
1
- <div class="info-wrapper" >
2
-
3
- <div class="tag-bar">
4
- <!--<div class="tag-select">-->
5
- <!--<span><i class="fa fa-tag"></i><i class="fa fa-caret-down"></i></span>-->
6
- <!--<div class="tag-select-box">-->
7
- <!--<strong>Tag As:</strong>-->
8
- <!--</div>-->
9
- <!--</div>-->
10
-
11
- <%= render :partial => 'kaui/custom_fields/list_bar',
12
- :locals => {:custom_fields => custom_fields} %>
13
-
14
- <% if payment.capturable? || payment.voidable? || (payment.refundable? && (can?(:refund, Kaui::Payment) || can?(:chargeback, Kaui::Payment))) %>
15
-
16
- <div class="tag-select" onclick="void(0)">
17
- <span><i class="fa fa-credit-card"></i><i class="fa fa-caret-down"></i></span>
18
-
19
- <div class="tag-select-box">
20
1
 
21
- <% if payment.refundable? %>
22
- <% if can? :refund, Kaui::Payment %>
23
- <% if payment.target_invoice_id.present? %>
24
- <%= link_to '<i class="fa fa-money"></i>&nbsp;Refund'.html_safe, kaui_engine.new_account_refund_path(payment.account_id, :params => {:payment_id => payment.payment_id,
25
- :invoice_id => payment.target_invoice_id}) %>
26
- <% else %>
27
- <%= link_to '<i class="fa fa-money"></i>&nbsp;Refund'.html_safe, kaui_engine.new_account_transaction_path(payment.account_id,
28
- :payment_id => payment.payment_id,
29
- :payment_method_id => payment.payment_method_id,
30
- :amount => payment.amount_refundable,
31
- :currency => payment.currency,
32
- :transaction_type => 'REFUND') %>
33
- <% end %>
34
- <% end %>
35
- <% if can? :chargeback, Kaui::Payment %>
36
- <% if payment.target_invoice_id.present? %>
37
- <%= link_to '<i class="fa fa-undo"></i>&nbsp;Chargeback'.html_safe, kaui_engine.new_account_chargeback_path(payment.account_id,
38
- :payment_id => payment.payment_id,
39
- :invoice_id => payment.target_invoice_id) %>
40
- <% else %>
41
- <%= link_to '<i class="fa fa-undo"></i>&nbsp;Chargeback'.html_safe, kaui_engine.new_account_transaction_path(payment.account_id,
42
- :payment_id => payment.payment_id,
43
- :payment_method_id => payment.payment_method_id,
44
- :amount => payment.amount_refundable,
45
- :currency => payment.currency,
46
- :transaction_type => 'CHARGEBACK') %>
47
- <% end %>
48
- <% end %>
49
- <% end %>
50
- <% if payment.capturable? %>
51
- <%= link_to '<i class="fa fa-credit-card"></i>&nbsp;Capture'.html_safe, kaui_engine.new_account_transaction_path(payment.account_id,
52
- :payment_id => payment.payment_id,
53
- :payment_method_id => payment.payment_method_id,
54
- :amount => payment.amount_capturable,
55
- :currency => payment.currency,
56
- :transaction_type => 'CAPTURE') %>
57
- <% end %>
58
- <% if payment.voidable? %>
59
- <%= link_to '<i class="fa fa-times-circle-o"></i>&nbsp;Void'.html_safe, kaui_engine.new_account_transaction_path(payment.account_id,
60
- :payment_id => payment.payment_id,
61
- :payment_method_id => payment.payment_method_id,
62
- :transaction_type => 'VOID') %>
63
- <% end %>
2
+ <div class="info-wrapper" >
64
3
 
65
- </div>
4
+ <div class="d-flex justify-content-end align-items-center mb-2">
66
5
 
67
- </div>
68
- <% end %>
69
6
  <% gateway_url = gateway_url(payment_method, payment) %>
70
7
  <% unless gateway_url.nil? %>
71
8
  <div class="gateway-link">
@@ -74,8 +11,8 @@
74
11
  <% end %>
75
12
  </div>
76
13
 
77
- <div style="overflow-x: auto;">
78
- <table id="payment_<%= payment.payment_id %>" class="table table-condensed mobile-data">
14
+ <div style="overflow-x: auto;" class="scrollable-payment-table">
15
+ <table id="payment_<%= payment.payment_id %>" class="payment-table">
79
16
  <thead>
80
17
  <tr>
81
18
  <th><%= I18n.translate('date') %></th>
@@ -1,30 +1,44 @@
1
- <div class="search">
2
- <div class="column-block">
3
- <h1><%= I18n.translate('payments') %></h1>
4
- <%= render :partial => 'multi_functions_bar' %>
5
- <table id="payments-table" class="table table-condensed mobile-data" style="width:100%">
6
- <thead>
7
- <tr>
8
- <% Kaui.account_payments_columns.call()[0].each do |title| %>
9
- <th><%= title %></th>
10
- <% end %>
11
- </tr>
12
- </thead>
13
- <tbody>
14
- <tr>
15
- <td colspan="1" class="dataTables_empty"><%= I18n.translate('loading_data_from_server') %></td>
16
- </tr>
17
- </tbody>
18
- </table>
1
+ <div class="kaui-container payments-index">
2
+ <%= render "kaui/components/breadcrumb/breadcrumb" %>
3
+ <div class="d-flex " style="gap: 4rem;">
4
+ <%= render :template => 'kaui/layouts/kaui_account_sidebar' %>
5
+ <div class="payments" style="max-width: <%= request.path.include?('/accounts/') ? '67.5rem' : '80rem' %>;">
6
+ <div class="d-flex flex-column ">
7
+ <div class="payments-header mb-4">
8
+ <div class="d-flex align-items-center">
9
+ <h2><%= I18n.translate('payments') %></h2>
10
+ </div>
11
+ <span>
12
+ <%= render :partial => 'multi_functions_bar' %>
13
+ </span>
14
+ </div>
15
+ <div id="search-labels-container" class="ml-2">
16
+ <!-- Dynamic search labels will be added here -->
17
+ </div>
18
+ <table id="payments-table" class="payments-table">
19
+ <thead class="table-header">
20
+ <tr>
21
+ <% Kaui.account_payments_columns.call()[0].each_with_index do |title, index| %>
22
+ <th class="sortable-header" data-column="<%= index %>">
23
+ <div class="header-content">
24
+ <span class="header-text"><%= title %></span>
25
+ <div class="sort-icons">
26
+ <%= image_tag "kaui/sort-up.svg", class: "sort-icon sort-asc" %>
27
+ <%= image_tag "kaui/sort-down.svg", class: "sort-icon sort-desc" %>
28
+ </div>
29
+ </div>
30
+ </th>
31
+ <% end %>
32
+ </tr>
33
+ </thead>
34
+ <tbody class="table-body">
35
+ </tbody>
36
+ </table>
37
+ </div>
38
+ </div>
19
39
  </div>
20
40
  </div>
21
41
 
22
- <style>
23
- #payments-table td, #payments-table tr {
24
- white-space: nowrap;
25
- }
26
- </style>
27
-
28
42
  <%= javascript_tag do %>
29
43
  $(document).ready(function() {
30
44
  var stateKey = 'DataTables_payments-table';
@@ -52,7 +66,8 @@ $(document).ready(function() {
52
66
  "pagingType": <% if @max_nb_records.nil? -%>"simple"<% else -%>"full_numbers"<% end -%>,
53
67
  "language": {
54
68
  <!-- See DefaultPaginationSqlDaoHelper.java -->
55
- "info": <% if @max_nb_records.nil? -%>"Showing _START_ to _END_ of <%= number_with_delimiter(Kaui::EngineControllerUtil::SIMPLE_PAGINATION_THRESHOLD) -%>+ entries"<% else -%>"Showing _START_ to _END_ of _TOTAL_ entries"<% end -%>
69
+ "info": <% if @max_nb_records.nil? -%>"Showing _START_ to _END_ of <%= number_with_delimiter(Kaui::EngineControllerUtil::SIMPLE_PAGINATION_THRESHOLD) -%>+ entries"<% else -%>"Showing _START_ to _END_ of _TOTAL_ entries"<% end -%>,
70
+ "infoFiltered": ""
56
71
  },
57
72
  "pageLength": <%= @limit %>,
58
73
  "displayStart": <%= @offset %>,
@@ -93,7 +108,7 @@ $(document).ready(function() {
93
108
  },
94
109
  <% end %>
95
110
  <% if @search_query.blank? %>
96
- "ordering": false,
111
+ "ordering": true,
97
112
  <% elsif !@ordering.blank? %>
98
113
  "order": [[ 0, "<%= @ordering %>" ]],
99
114
  <% end %>
@@ -102,8 +117,57 @@ $(document).ready(function() {
102
117
  "search": {"search": "<%= @search_query %>"},
103
118
  });
104
119
 
120
+ // Custom sorting functionality
121
+ var currentSortColumn = -1;
122
+ var currentSortDirection = 'asc';
123
+
124
+ // Handle custom header clicks
125
+ $('.sortable-header').on('click', function() {
126
+ var columnIndex = parseInt($(this).data('column'));
127
+ var newDirection = 'asc';
128
+
129
+ // If clicking the same column, toggle direction
130
+ if (currentSortColumn === columnIndex) {
131
+ newDirection = currentSortDirection === 'asc' ? 'desc' : 'asc';
132
+ }
133
+
134
+ currentSortColumn = columnIndex;
135
+ currentSortDirection = newDirection;
136
+
137
+ // Update visual indicators
138
+ updateSortIndicators(columnIndex, newDirection);
139
+
140
+ // Apply DataTable sorting
141
+ table.order([columnIndex, newDirection]).draw();
142
+ });
143
+
144
+ // Function to update sort indicators
145
+ function updateSortIndicators(columnIndex, direction) {
146
+ // Reset all headers
147
+ $('.sortable-header').removeClass('sort-asc-active sort-desc-active');
148
+ $('.sort-icon').removeClass('active');
149
+
150
+ // Set active state for current column
151
+ var $header = $('.sortable-header[data-column="' + columnIndex + '"]');
152
+ $header.addClass(direction + '-active');
153
+ $header.find('.sort-' + direction).addClass('active');
154
+ }
155
+
156
+ // Initialize sort indicators based on current state
157
+ <% if !@ordering.blank? %>
158
+ var initialColumn = 0;
159
+ var initialDirection = "<%= @ordering %>";
160
+ updateSortIndicators(initialColumn, initialDirection);
161
+ <% end %>
162
+
105
163
  <!-- When we don't know the total number of pages, we need to hide the legend and next button manually -->
106
164
  $('#payments-table').on('draw.dt', function() {
165
+
166
+ $("td.dataTables_empty").each(function() {
167
+ var text = $(this).text().trim();
168
+ $(this).html('<p class="max-text-container">' + text + '</p>');
169
+ });
170
+
107
171
  <% if @max_nb_records.nil? %>
108
172
  var noMoreData = table.column(0)
109
173
  .data()
@@ -1,10 +1,17 @@
1
- <div class="register">
2
- <div class="col-md-8 col-md-offset-2">
3
-
4
- <div class="column-block">
5
- <h1>Process payment</h1>
6
- <%= render 'form' %>
1
+ <div class="register process-payment-modal">
2
+ <div class="">
3
+ <div class="mx-auto" style="max-width: 37.5rem;">
4
+ <h5 class="add-account-title border-bottom">
5
+ <span class="icon-container">
6
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
7
+ <path d="M16.6667 3.33301H3.33341C2.41294 3.33301 1.66675 4.0792 1.66675 4.99967V14.9997C1.66675 15.9202 2.41294 16.6663 3.33341 16.6663H16.6667C17.5872 16.6663 18.3334 15.9202 18.3334 14.9997V4.99967C18.3334 4.0792 17.5872 3.33301 16.6667 3.33301Z" stroke="#414651" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
8
+ <path d="M8.33325 13.333H9.58325M12.0833 13.333H14.9999" stroke="#414651" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
9
+ <path d="M1.66675 7.5H18.3334" stroke="#414651" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="round"/>
10
+ </svg>
11
+ </span>
12
+ Process payment
13
+ </h5>
14
+ <%= render 'form' %>
15
+ </div>
7
16
  </div>
8
-
9
- </div>
10
17
  </div>