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,51 +1,114 @@
1
- <div class="search">
2
-
3
- <div class="column-block">
4
-
5
- <h1>Tag Definitions
6
- <% if can? :create_tag_definition, Kaui::Tag %>
7
- <%= link_to '&nbsp;<i class="fa fa-plus-square"></i>'.html_safe, kaui_engine.new_tag_definition_path %>
8
- <% end %>
9
- </h1>
10
-
11
- <table id='tag_definitions-table' class='table table-condensed mobile-data'>
12
- <thead>
13
- <tr>
14
- <th>Id</th>
15
- <th>Name</th>
16
- <th>Description</th>
17
- <th>System tag?</th>
18
- <th>Applicable types</th>
19
- <th></th>
20
- </tr>
21
- </thead>
22
- <tbody>
23
- <% @tag_definitions.each do |tag_definition| %>
24
- <tr>
25
- <td><%= object_id_popover(tag_definition.id) %></td>
26
- <td><%= tag_definition.name %></td>
27
- <td><%= tag_definition.description %></td>
28
- <td><%= tag_definition.system_tag? %></td>
29
- <td><%= tag_definition.pretty_applicable_object_types %></td>
30
- <td>
31
- <% unless tag_definition.system_tag? %>
32
- <%= link_to 'Destroy', kaui_engine.tag_definition_path(tag_definition.id), :confirm => 'Are you sure?', :method => :delete %>
1
+ <div class="kaui-container kaui-tag-definitions-index">
2
+ <%= render partial: 'kaui/components/breadcrumb/breadcrumb', locals: {
3
+ breadcrumbs: [
4
+ { label: 'Settings', href: '/' },
5
+ { label: "Tag Definitions", href: '#' }
6
+ ]
7
+ } %>
8
+
9
+ <div class="d-flex" style="gap: 4rem;">
10
+ <%= render :template => 'kaui/layouts/kaui_setting_sidebar' %>
11
+
12
+ <div class="tag-definitions-details w-100">
13
+ <div class="d-flex flex-column">
14
+ <div class="tag-definitions-details-header">
15
+ <h2>Tag Definitions</h2>
16
+ <span>
17
+ <% if can? :create_tag_definition, Kaui::Tag %>
18
+ <%= link_to kaui_engine.new_tag_definition_path do %>
19
+ <%= render "kaui/components/button/button", {
20
+ label: "Create Definition",
21
+ icon: "kaui/plus.svg",
22
+ variant: "outline-secondary d-inline-flex align-items-center gap-1",
23
+ type: "button",
24
+ html_class: "kaui-dropdown custom-hover",
25
+ } %>
33
26
  <% end %>
34
- </td>
35
- </tr>
36
- <% end %>
37
- </tbody>
38
- </table>
27
+ <% end %>
28
+ </span>
29
+ </div>
39
30
 
31
+ <div class="mt-4">
32
+ <table id='tag_definitions-table' class='tag-definitions-table'>
33
+ <thead>
34
+ <tr>
35
+ <th class="sortable-header" data-column="0">
36
+ <div class="header-content">
37
+ <span class="header-text">Id</span>
38
+ <div class="sort-icons">
39
+ <%= image_tag "kaui/sort-up.svg", class: "sort-icon sort-asc" %>
40
+ <%= image_tag "kaui/sort-down.svg", class: "sort-icon sort-desc" %>
41
+ </div>
42
+ </div>
43
+ </th>
44
+ <th class="sortable-header" data-column="1">
45
+ <div class="header-content">
46
+ <span class="header-text">Name</span>
47
+ <div class="sort-icons">
48
+ <%= image_tag "kaui/sort-up.svg", class: "sort-icon sort-asc" %>
49
+ <%= image_tag "kaui/sort-down.svg", class: "sort-icon sort-desc" %>
50
+ </div>
51
+ </div>
52
+ </th>
53
+ <th class="sortable-header" data-column="2">
54
+ <div class="header-content">
55
+ <span class="header-text">Description</span>
56
+ <div class="sort-icons">
57
+ <%= image_tag "kaui/sort-up.svg", class: "sort-icon sort-asc" %>
58
+ <%= image_tag "kaui/sort-down.svg", class: "sort-icon sort-desc" %>
59
+ </div>
60
+ </div>
61
+ </th>
62
+ <th class="sortable-header" data-column="3">
63
+ <div class="header-content">
64
+ <span class="header-text">System tag</span>
65
+ <div class="sort-icons">
66
+ <%= image_tag "kaui/sort-up.svg", class: "sort-icon sort-asc" %>
67
+ <%= image_tag "kaui/sort-down.svg", class: "sort-icon sort-desc" %>
68
+ </div>
69
+ </div>
70
+ </th>
71
+ <th class="sortable-header" data-column="4">
72
+ <div class="header-content">
73
+ <span class="header-text">Applicable types</span>
74
+ <div class="sort-icons">
75
+ <%= image_tag "kaui/sort-up.svg", class: "sort-icon sort-asc" %>
76
+ <%= image_tag "kaui/sort-down.svg", class: "sort-icon sort-desc" %>
77
+ </div>
78
+ </div>
79
+ </th>
80
+ <th></th>
81
+ </tr>
82
+ </thead>
83
+ <tbody>
84
+ <% @tag_definitions.each do |tag_definition| %>
85
+ <tr>
86
+ <td><%= object_id_popover(tag_definition.id) %></td>
87
+ <td><%= tag_definition.name %></td>
88
+ <td><%= tag_definition.description %></td>
89
+ <td><span class="<%= tag_definition.system_tag? %>"><%= tag_definition.system_tag? %></span></td>
90
+ <td><span><%= tag_definition.pretty_applicable_object_types %></span></td>
91
+ <td>
92
+ <% unless tag_definition.system_tag? %>
93
+ <%= link_to 'Destroy', kaui_engine.tag_definition_path(tag_definition.id), :confirm => 'Are you sure?', :method => :delete %>
94
+ <% end %>
95
+ </td>
96
+ </tr>
97
+ <% end %>
98
+ </tbody>
99
+ </table>
100
+ </div>
101
+ </div>
102
+ </div>
40
103
  </div>
41
-
42
104
  </div>
43
105
 
106
+
44
107
  <%= javascript_tag do %>
45
108
  $(document).ready(function() {
46
- $('#tag_definitions-table').dataTable({
109
+ var table = $('#tag_definitions-table').DataTable({
47
110
  "dom": "t",
48
- "paging": "false",
111
+ "paging": false,
49
112
  "order": [],
50
113
  "columns": [
51
114
  null,
@@ -56,5 +119,53 @@ $(document).ready(function() {
56
119
  { "orderable": false }
57
120
  ]
58
121
  });
122
+
123
+ // Custom sorting functionality
124
+ var currentSortColumn = -1;
125
+ var currentSortDirection = 'asc';
126
+
127
+ // Handle custom header clicks
128
+ $('.sortable-header').on('click', function() {
129
+ var columnIndex = parseInt($(this).data('column'));
130
+ var newDirection = 'asc';
131
+
132
+ // If clicking the same column, toggle direction
133
+ if (currentSortColumn === columnIndex) {
134
+ newDirection = currentSortDirection === 'asc' ? 'desc' : 'asc';
135
+ }
136
+
137
+ currentSortColumn = columnIndex;
138
+ currentSortDirection = newDirection;
139
+
140
+ // Update visual indicators
141
+ updateSortIndicators(columnIndex, newDirection);
142
+
143
+ // Apply DataTable sorting
144
+ table.order([columnIndex, newDirection]).draw();
145
+ });
146
+
147
+ // Function to update sort indicators
148
+ function updateSortIndicators(columnIndex, direction) {
149
+ // Reset all headers
150
+ $('.sortable-header').removeClass('sort-asc-active sort-desc-active');
151
+ $('.sort-icon').removeClass('active');
152
+
153
+ // Set active state for current column
154
+ var $header = $('.sortable-header[data-column="' + columnIndex + '"]');
155
+ $header.addClass(direction + '-active');
156
+ $header.find('.sort-' + direction).addClass('active');
157
+ }
158
+
159
+ // Add hover tooltip functionality for object IDs
160
+ $('.object-id-popover').each(function() {
161
+ var $element = $(this);
162
+ var objectId = $element.data('id');
163
+
164
+ if (objectId) {
165
+ $element.on('mouseenter', function() {
166
+ showObjectIdTooltip(this, objectId);
167
+ });
168
+ }
169
+ });
59
170
  });
60
171
  <% end %>
@@ -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>Add new tag definition</h1>
6
- <%= render 'form' %>
1
+ <div class="register add-new-tag-definition-details">
2
+ <div class="">
3
+ <div class="mx-auto" style="max-width: 37.5rem;">
4
+ <h5 class="add-new-tag-definition-title border-bottom pb-3 mb-3">
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="M6.6665 11.667L8.33425 13.3368" stroke="#414651" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
8
+ <path d="M15 5.00033L18.3333 1.66699" stroke="#414651" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
9
+ <path d="M7.98807 17.1545L2.84508 12.0115C2.19422 11.3607 2.19422 10.3053 2.84508 9.65451L8.67841 3.82117C8.99099 3.5086 9.41491 3.33301 9.85691 3.33301H16.6666V10.1427C16.6666 10.5847 16.491 11.0086 16.1784 11.3212L10.3451 17.1545C9.69424 17.8053 8.63891 17.8053 7.98807 17.1545Z" stroke="#414651" stroke-width="1.5" stroke-linejoin="round"/>
10
+ </svg>
11
+ </span>
12
+ Add New Tag Definition
13
+ </h5>
14
+ <%= render 'form' %>
15
+ </div>
7
16
  </div>
8
-
9
- </div>
10
17
  </div>
@@ -1,59 +1,148 @@
1
- <div class="search">
2
-
3
- <div class="column-block">
4
-
5
- <h1>Tags</h1>
6
-
7
- <table id="tags-table" class="table table-condensed mobile-data">
8
- <thead>
9
- <tr>
10
- <th>Tag ID</th>
11
- <th>Object ID</th>
12
- <th>Object type</th>
13
- <th>Tag definition name</th>
14
- </tr>
15
- </thead>
16
- <tbody>
17
- <tr>
18
- <td colspan="1" class="dataTables_empty">Loading data from server</td>
19
- </tr>
20
- </tbody>
21
- </table>
1
+ <div class="kaui-container kaui-tags-index">
2
+ <%= render partial: 'kaui/components/breadcrumb/breadcrumb', locals: {
3
+ breadcrumbs: [
4
+ { label: 'Settings', href: '/' },
5
+ { label: "Tags", href: '#' }
6
+ ]
7
+ } %>
22
8
 
23
- </div>
9
+ <div class="d-flex" style="gap: 4rem;">
10
+ <%= render :template => 'kaui/layouts/kaui_setting_sidebar' %>
11
+
12
+ <div class="tags-details w-100">
13
+ <div class="d-flex flex-column">
14
+ <div class="tags-details-header">
15
+ <h2>Tags</h2>
16
+ <span>
17
+ </span>
18
+ </div>
24
19
 
20
+ <div class="mt-4 w-100">
21
+ <table id="tags-table" class="tags-table">
22
+ <thead>
23
+ <tr>
24
+ <th class="sortable-header" data-column="0">
25
+ <div class="header-content">
26
+ <span class="header-text">Tag ID</span>
27
+ <div class="sort-icons">
28
+ <%= image_tag "kaui/sort-up.svg", class: "sort-icon sort-asc" %>
29
+ <%= image_tag "kaui/sort-down.svg", class: "sort-icon sort-desc" %>
30
+ </div>
31
+ </div>
32
+ </th>
33
+ <th class="sortable-header" data-column="1">
34
+ <div class="header-content">
35
+ <span class="header-text">Object ID</span>
36
+ <div class="sort-icons">
37
+ <%= image_tag "kaui/sort-up.svg", class: "sort-icon sort-asc" %>
38
+ <%= image_tag "kaui/sort-down.svg", class: "sort-icon sort-desc" %>
39
+ </div>
40
+ </div>
41
+ </th>
42
+ <th class="sortable-header" data-column="2">
43
+ <div class="header-content">
44
+ <span class="header-text">Object type</span>
45
+ <div class="sort-icons">
46
+ <%= image_tag "kaui/sort-up.svg", class: "sort-icon sort-asc" %>
47
+ <%= image_tag "kaui/sort-down.svg", class: "sort-icon sort-desc" %>
48
+ </div>
49
+ </div>
50
+ </th>
51
+ <th class="sortable-header" data-column="3">
52
+ <div class="header-content">
53
+ <span class="header-text">Tag definition name</span>
54
+ <div class="sort-icons">
55
+ <%= image_tag "kaui/sort-up.svg", class: "sort-icon sort-asc" %>
56
+ <%= image_tag "kaui/sort-down.svg", class: "sort-icon sort-desc" %>
57
+ </div>
58
+ </div>
59
+ </th>
60
+ </tr>
61
+ </thead>
62
+ <tbody>
63
+ </tbody>
64
+ </table>
65
+ </div>
66
+ </div>
67
+ </div>
68
+ </div>
25
69
  </div>
26
70
 
27
71
  <%= javascript_tag do %>
72
+ $(document).ready(function() {
73
+ var table = $('#tags-table').DataTable({
74
+ "dom": "<'row'<'col-md-6'l><'col-md-6'f>r>t<'row'<'col-md-6'i><'col-md-6'p>>",
75
+ "pagingType": <% if @max_nb_records.nil? -%>"simple"<% else -%>"full_numbers"<% end -%>,
76
+ "language": {
77
+ "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 -%>
78
+ },
79
+ "pageLength": <%= @limit %>,
80
+ "displayStart": <%= @offset %>,
81
+ <% unless @ordering.blank? %>
82
+ "order": [[ 0, "<%= @ordering %>" ]],
83
+ <% end %>
84
+ "processing": true,
85
+ "serverSide": true,
86
+ "search": {"search": "<%= @search_query %>"},
87
+ "ajax": "<%= tags_pagination_path(:ordering => @ordering, :format => :json) %>"
88
+ });
89
+
90
+ // Custom sorting functionality
91
+ var currentSortColumn = -1;
92
+ var currentSortDirection = 'asc';
28
93
 
29
- $(document).ready(function() {
30
- var table = $('#tags-table').DataTable({
31
- "dom": "<'row'<'col-md-6'l><'col-md-6'f>r>t<'row'<'col-md-6'i><'col-md-6'p>>",
32
- "pagingType": <% if @max_nb_records.nil? -%>"simple"<% else -%>"full_numbers"<% end -%>,
33
- "language": {
34
- <!-- See DefaultPaginationSqlDaoHelper.java -->
35
- "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 -%>
36
- },
37
- "pageLength": <%= @limit %>,
38
- "displayStart": <%= @offset %>,
94
+ // Handle custom header clicks
95
+ $('.sortable-header').on('click', function() {
96
+ var columnIndex = parseInt($(this).data('column'));
97
+ var newDirection = 'asc';
98
+
99
+ // If clicking the same column, toggle direction
100
+ if (currentSortColumn === columnIndex) {
101
+ newDirection = currentSortDirection === 'asc' ? 'desc' : 'asc';
102
+ }
103
+
104
+ currentSortColumn = columnIndex;
105
+ currentSortDirection = newDirection;
106
+
107
+ // Update visual indicators
108
+ updateSortIndicators(columnIndex, newDirection);
109
+
110
+ // Apply DataTable sorting
111
+ table.order([columnIndex, newDirection]).draw();
112
+ });
113
+
114
+ // Function to update sort indicators
115
+ function updateSortIndicators(columnIndex, direction) {
116
+ // Reset all headers
117
+ $('.sortable-header').removeClass('sort-asc-active sort-desc-active');
118
+ $('.sort-icon').removeClass('active');
119
+
120
+ // Set active state for current column
121
+ var $header = $('.sortable-header[data-column="' + columnIndex + '"]');
122
+ $header.addClass(direction + '-active');
123
+ $header.find('.sort-' + direction).addClass('active');
124
+ }
125
+
126
+ // Initialize sort indicators based on current state
39
127
  <% unless @ordering.blank? %>
40
- "order": [[ 0, "<%= @ordering %>" ]],
128
+ var initialColumn = 0;
129
+ var initialDirection = "<%= @ordering %>";
130
+ updateSortIndicators(initialColumn, initialDirection);
41
131
  <% end %>
42
- "processing": true,
43
- "serverSide": true,
44
- "search": {"search": "<%= @search_query %>"},
45
- "ajax": "<%= tags_pagination_path(:ordering => @ordering, :format => :json) %>"
46
- });
47
132
 
48
- <!-- When we don't know the total number of pages, we need to hide the legend and next button manually -->
49
- <% if @max_nb_records.nil? %>
50
133
  $('#tags-table').on('draw.dt', function() {
51
- var noMoreData = table.column(0)
52
- .data()
53
- .length == 0;
54
- $(".next.paginate_button").toggleClass("disabled", noMoreData);
55
- $(".dataTables_info").toggle(!noMoreData);
134
+ // Custom logic for column 3 wrapping in a span
135
+ $('#tags-table tbody tr').each(function () {
136
+ const $td = $(this).find('td:nth-of-type(3)');
137
+ const content = $td.text().trim();
138
+ $td.html(`<span>${content}</span>`);
139
+ });
140
+
141
+ <% if @max_nb_records.nil? %>
142
+ var noMoreData = table.column(0).data().length == 0;
143
+ $(".next.paginate_button").toggleClass("disabled", noMoreData);
144
+ $(".dataTables_info").toggle(!noMoreData);
145
+ <% end %>
56
146
  });
57
- <% end %>
58
- });
147
+ });
59
148
  <% end %>
@@ -1,13 +1,16 @@
1
1
  <%= form_for :tenants, :url => {:action => :select_tenant}, :html => {:class => 'form-horizontal'} do |f| %>
2
- <div class="form-group">
2
+ <div class="form-group d-flex pb-3">
3
3
  <%= label_tag :tenant_name, 'Tenant', :class => 'col-sm-2 control-label' %>
4
4
  <div class="col-sm-10">
5
5
  <%= select_tag :kb_tenant_id, options_for_select(@tenants.map { |t| [t.name || t.api_key, t.kb_tenant_id] }), :class => 'form-control' %>
6
6
  </div>
7
7
  </div>
8
- <div class="form-group">
9
- <div class="col-sm-offset-2 col-sm-10">
10
- <%= f.submit 'Save', :class => 'btn btn-default' %>
11
- </div>
8
+ <div class="form-group d-flex justify-content-end pt-3 mt-3 border-top">
9
+ <%= render "kaui/components/button/button", {
10
+ label: 'Save',
11
+ variant: "outline-secondary d-inline-flex align-items-center gap-1",
12
+ type: "submit",
13
+ html_class: "kaui-dropdown custom-hover"
14
+ } %>
12
15
  </div>
13
16
  <% end %>
@@ -1,10 +1,16 @@
1
- <div class="register">
2
- <div class="col-md-8 col-md-offset-2">
3
-
4
- <div class="column-block">
5
- <h1>Choose tenant</h1>
6
- <%= render 'form' %>
1
+ <div class="register kaui-container kaui-tenant-select">
2
+ <div class="">
3
+ <div class="" style="max-width: 36rem; margin: 0 auto;">
4
+ <h5 class="choose-tenant-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="M13.3334 5.83333C13.3334 7.67428 11.841 9.16667 10.0001 9.16667C8.15913 9.16667 6.66675 7.67428 6.66675 5.83333C6.66675 3.99238 8.15913 2.5 10.0001 2.5C11.841 2.5 13.3334 3.99238 13.3334 5.83333Z" stroke="#414651" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
8
+ <path d="M15.8334 15.8337C15.8334 13.5325 13.9679 11.667 11.6667 11.667H8.33341C6.03223 11.667 4.16675 13.5325 4.16675 15.8337V17.5003H15.8334V15.8337Z" stroke="#414651" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
9
+ </svg>
10
+ </span>
11
+ Choose tenant
12
+ </h5>
13
+ <%= render 'form' %>
14
+ </div>
7
15
  </div>
8
-
9
- </div>
10
- </div>
16
+ </div>
@@ -1,5 +1,7 @@
1
- <div id="control_plugin_names" class="row">
2
- <a class='btn btn-xs' href="javascript:void(0);" onclick="new_control_plugin_name();" id="new_control_plugin_names"><%= '<i class="fa fa-plus-square"></i>'.html_safe + " add control plugin names" %></a>
1
+ <div id="control_plugin_names" class="">
2
+ <a class='dots-menu kaui-button' href="javascript:void(0);" onclick="new_control_plugin_name();" id="new_control_plugin_names"><%= '<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
3
+ <path d="M9.99992 3.3335V16.6668M16.6666 10.0002H3.33325" stroke="#1570EF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>'.html_safe + " Add Control Plugin Names" %></a>
3
5
  <table id="control_plugin_names_table" class="table table-condensed">
4
6
  <thead>
5
7
  <tr>
@@ -11,14 +13,22 @@
11
13
  <% (@control_plugin_names ||= ['']).each_with_index do |control_plugin_name, index| %>
12
14
  <tr id="control_plugin_name_<%= index %>" >
13
15
  <td><%= text_field_tag 'control_plugin_names[]', control_plugin_name, class: 'form-control' %></td>
14
- <td>
15
- <a class='btn btn-xs' href="javascript:void(0);" onclick="delete_control_plugin_name(this);" id="delete_control_plugin_name_<%= index %>"><%= '<i class="fa fa-times"></i>'.html_safe %></a>
16
+ <td class="close-icon">
17
+ <a class='' href="javascript:void(0);" onclick="delete_control_plugin_name(this);" id="delete_control_plugin_name_<%= index %>"><%= '<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
18
+ <g clip-path="url(#clip0_394_21877)">
19
+ <path d="M12.6671 3.3335L3.33374 12.6668M3.33374 3.3335L12.6671 12.6668" stroke="#D92D20" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
20
+ </g>
21
+ <defs>
22
+ <clipPath id="clip0_394_21877">
23
+ <rect width="16" height="16" fill="white"/>
24
+ </clipPath>
25
+ </defs>
26
+ </svg>'.html_safe %></a>
16
27
  </td>
17
28
  </tr>
18
29
  <% end %>
19
30
  </tbody>
20
31
  </table>
21
- <hr/>
22
32
  </div>
23
33
 
24
34
  <%= javascript_tag do %>
@@ -50,15 +60,13 @@
50
60
 
51
61
  function delete_control_plugin_name(obj) {
52
62
  var idx = obj.id.split("delete_control_plugin_name_")[1];
53
- var rowCount = $('#control_plugin_names_table tr').size();
63
+ var rowCount = $('#control_plugin_names_table tbody tr').length;
54
64
 
55
- if ( rowCount > 2 ){
65
+ if (rowCount > 1) {
56
66
  $("#control_plugin_name_" + idx).remove();
57
67
  } else {
58
68
  $("#control_plugin_name_" + idx).find('td').each(function(){
59
- $(this).contents().each(function(){
60
- $(this).val('');
61
- });
69
+ $(this).find('input').val('');
62
70
  });
63
71
  }
64
72
  }