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
@@ -0,0 +1,42 @@
1
+ <% if params[:account_id].present? %>
2
+ <div class="account-sidebar-area">
3
+ <div class="container">
4
+ <p class="line-break-anywhere"><%= pretty_account_identifier %></p>
5
+
6
+ <% menu_items = [
7
+ { label: 'Account', path: kaui_engine.account_path(params[:account_id]), controller_suffix: 'accounts', icon_path: 'kaui/sidebar/account.svg' },
8
+ { label: 'Subscriptions', path: kaui_engine.account_bundles_path(params[:account_id]), controller_suffix: 'bundles', icon_path: 'kaui/sidebar/subscriptions.svg' },
9
+ { label: 'Invoices', path: kaui_engine.account_invoices_path(params[:account_id]), controller_suffix: 'invoices', icon_path: 'kaui/sidebar/invoices.svg' },
10
+ { label: 'Payments', path: kaui_engine.account_payments_path(params[:account_id]), controller_suffix: 'payments', icon_path: 'kaui/sidebar/payments.svg' },
11
+ { label: 'Timeline', path: kaui_engine.account_timeline_path(params[:account_id]), controller_suffix: 'timelines', icon_path: 'kaui/sidebar/timeline.svg' },
12
+ { label: 'Tags', path: kaui_engine.account_tags_path(params[:account_id]), controller_suffix: 'tags', icon_path: 'kaui/sidebar/tags.svg' },
13
+ { label: 'Custom Fields', path: kaui_engine.account_custom_fields_path(params[:account_id]), controller_suffix: 'custom_fields', icon_path: 'kaui/sidebar/custom-fields.svg' }
14
+ ] %>
15
+
16
+ <% if aviate_plugin_installed %>
17
+ <% menu_items << { label: 'Wallets', path: aviate_engine.account_wallets_path(params[:account_id]), controller_suffix: 'wallets', icon_path: 'kaui/sidebar/invoices.svg' } %>
18
+ <% end %>
19
+
20
+ <% if current_user.root? %>
21
+ <% menu_items += [
22
+ { label: 'Queues', path: kaui_engine.account_queues_path(params[:account_id]), controller_suffix: 'queues', icon_path: 'kaui/sidebar/queues.svg' },
23
+ { label: 'Audit', path: kaui_engine.account_audit_logs_path(params[:account_id]), controller_suffix: 'logs', icon_path: 'kaui/sidebar/audit.svg' }
24
+ ] %>
25
+ <% end %>
26
+
27
+ <% menu_items.each do |item| %>
28
+ <% css_class = params[:controller].ends_with?(item[:controller_suffix]) ? 'current' : 'non-current' %>
29
+ <%= link_to item[:path], class: css_class do %>
30
+ <span class="icon">
31
+ <%= image_tag(item[:icon_path], size: "20x20") %>
32
+ </span>
33
+ <%= item[:label] %>
34
+ <% end %>
35
+ <% end %>
36
+
37
+ <% if account_closed? %>
38
+ <span class="label label-danger">CLOSED</span>
39
+ <% end %>
40
+ </div>
41
+ </div>
42
+ <% end %>
@@ -1,21 +1,35 @@
1
1
  <!DOCTYPE html>
2
2
  <html>
3
- <%= render :template => 'kaui/layouts/kaui_header' %>
4
- <body>
5
- <%= render :template => 'kaui/layouts/kaui_navbar' %>
3
+ <%= render :template => 'kaui/layouts/kaui_header' %>
6
4
 
7
- <% if params[:account_id].present? %>
8
- <%= render :template => 'kaui/layouts/kaui_account_navbar' %>
9
- <% end %>
5
+ <body>
10
6
 
11
- <div class="container">
12
- <%= render :template => 'kaui/layouts/kaui_flash' %>
13
- <div class="row">
14
- <div class="col-md-12">
7
+ <% if user_signed_in? -%>
8
+ <%= render :template => 'kaui/layouts/kaui_navbar' %>
9
+ <% end %>
10
+
11
+ <%
12
+ =begin%>
13
+ <% if params[:account_id].present? %>
14
+ <%= render :template => 'kaui/layouts/kaui_account_navbar' %>
15
+ <% end %>
16
+ <%
17
+ =end%>
18
+
19
+
20
+ <%
21
+ =begin%>
22
+ <% if params[:account_id].present? %>
23
+ <%= render :template => 'kaui/layouts/kaui_account_sidebar' %>
24
+ <% end %>
25
+ <%
26
+ =end%>
27
+
28
+ <div class="container-fluid auth-container">
29
+ <%= render :template => 'kaui/layouts/kaui_flash' %>
15
30
  <%= yield %>
16
- </div>
17
31
  </div>
18
- </div>
19
- <%= render :template => 'kaui/layouts/kaui_footer' %>
20
- </body>
21
- </html>
32
+ <%= render :template => 'kaui/layouts/kaui_footer' %>
33
+ </body>
34
+
35
+ </html>
@@ -1,28 +1,31 @@
1
1
  <%- # :alert used by devise -%>
2
2
  <% [:error, :alert].each do |key| %>
3
- <% if flash[key] %>
4
- <div class="row server-alert">
5
- <div class="col-md-12">
6
- <div class="alert alert-danger"><%= flash[key] %></div>
7
- </div>
3
+ <% if flash[key] %>
4
+ <div id="flash-<%= key %>" class="server-alert kaui-container centered-absolute">
5
+ <div class="custom-alert custom-alert-danger">
6
+ <div class="d-flex justify-content-between align-items-start w-100">
7
+ <span><%= flash[key] %></span>
8
+ <button type="button" class="close-btn" aria-label="Close" onclick="closeFlashMessage('<%= key %>')">
9
+ <span aria-hidden="true">&times;</span>
10
+ </button>
8
11
  </div>
9
- <% end %>
10
- <% end %>
12
+ </div>
13
+ </div>
14
+ <% end %>
15
+ <% end %>
11
16
 
12
17
 
13
18
  <% if defined?(@account) %>
14
19
  <% if @account.errors.any? %>
15
- <h3>The following errors prevented the account from being created:</h3>
16
-
17
- <div class="row server-alert">
18
- <div class="col-md-12">
19
- <div class="alert alert-danger">
20
+ <div class="server-alert kaui-container centered-absolute">
21
+ <h3 class="error-title">The following errors prevented the account from being created:</h3>
22
+ <div class="custom-alert custom-alert-danger">
23
+ <i class="bi bi-exclamation-triangle-fill"></i>
24
+ <ul>
20
25
  <% @account.errors.values.flatten.each do |msg| %>
21
-
22
26
  <li><%= msg %></li>
23
-
24
27
  <% end %>
25
- </div>
28
+ </ul>
26
29
  </div>
27
30
  </div>
28
31
  <% end %>
@@ -33,38 +36,86 @@
33
36
 
34
37
 
35
38
  <% if flash[:warning] %>
36
- <div class="row server-alert">
37
- <div class="col-md-12">
38
- <div class="alert alert-warning"><%= flash[:warning] %></div>
39
+ <div id="flash-warning" class="server-alert kaui-container centered-absolute">
40
+ <div class="custom-alert custom-alert-warning">
41
+ <div class="d-flex justify-content-between align-items-start w-100">
42
+ <span><%= flash[:warning] %></span>
43
+ <button type="button" class="close-btn" aria-label="Close" onclick="closeFlashMessage('warning')">
44
+ <span aria-hidden="true">&times;</span>
45
+ </button>
46
+ </div>
39
47
  </div>
40
48
  </div>
41
49
  <% end %>
42
50
  <% if flash[:notice] %>
43
- <div class="row server-alert">
44
- <div class="col-md-12">
45
- <div class="alert alert-info"><%= flash[:notice] %></div>
51
+ <div id="flash-notice" class="server-alert kaui-container centered-absolute">
52
+ <div class="custom-alert custom-alert-info">
53
+ <div class="d-flex justify-content-between align-items-start w-100">
54
+ <span><%= flash[:notice] %></span>
55
+ <button type="button" class="close-btn" aria-label="Close" onclick="closeFlashMessage('notice')">
56
+ <span aria-hidden="true">&times;</span>
57
+ </button>
46
58
  </div>
47
59
  </div>
60
+ </div>
48
61
  <% end %>
49
62
  <!--This is for ajax calls that need to notify for error, to trigger this alert use ajaxAlert(message, timeout)-->
50
- <div id="ajaxErrorAlert" class="row ajaxAlert" style="display: none">
51
- <div class="col-md-12">
52
- <div class="alert alert-danger">
53
- <button type="button" class="close" aria-label="Close">
63
+ <div id="ajaxErrorAlert" class="ajaxAlert kaui-container centered-absolute" style="display: none">
64
+ <div class="custom-alert custom-alert-danger">
65
+ <div class="d-flex justify-content-between align-items-start w-100">
66
+ <span id="ajaxErrorAlertMessage" class="ajaxAlertMessage"></span>
67
+ <button type="button" class="close-btn" aria-label="Close" onclick="closeAjaxAlert('error')">
54
68
  <span aria-hidden="true">&times;</span>
55
69
  </button>
56
- <span id="ajaxErrorAlertMessage" class="ajaxAlertMessage"></span>
57
70
  </div>
58
71
  </div>
59
72
  </div>
60
73
  <!--This is for ajax calls that need to notify information, to trigger this alert use ajaxInfo(message, timeout)-->
61
- <div id="ajaxInfoAlert" class="row ajaxAlert" style="display: none">
62
- <div class="col-md-12">
63
- <div class="alert alert-info">
64
- <button type="button" class="close" aria-label="Close">
74
+ <div id="ajaxInfoAlert" class="ajaxAlert kaui-container centered-absolute" style="display: none">
75
+ <div class="custom-alert custom-alert-info">
76
+ <div class="d-flex justify-content-between align-items-start w-100">
77
+ <span id="ajaxInfoAlertMessage" class="ajaxAlertMessage"></span>
78
+ <button type="button" class="close-btn" aria-label="Close" onclick="closeAjaxAlert('info')">
65
79
  <span aria-hidden="true">&times;</span>
66
80
  </button>
67
- <span id="ajaxInfoAlertMessage" class="ajaxAlertMessage"></span>
68
81
  </div>
69
82
  </div>
70
83
  </div>
84
+
85
+ <script>
86
+ $(document).ready(function() {
87
+ // Auto-hide success message after 3 seconds
88
+ setTimeout(function() {
89
+ $('#flash-notice').fadeOut(500);
90
+ }, 3000);
91
+ });
92
+
93
+ // Function to close flash messages
94
+ function closeFlashMessage(type) {
95
+ $('#flash-' + type).fadeOut(500);
96
+ }
97
+
98
+ // Function to show ajax info alert with auto-hide
99
+ function ajaxInfo(message, timeout) {
100
+ if (typeof timeout === 'undefined') {
101
+ timeout = 3000; // Default to 3 seconds
102
+ }
103
+
104
+ $('#ajaxInfoAlertMessage').text(message);
105
+ $('#ajaxInfoAlert').fadeIn(300);
106
+
107
+ // Auto-hide after specified timeout
108
+ setTimeout(function() {
109
+ $('#ajaxInfoAlert').fadeOut(500);
110
+ }, timeout);
111
+ }
112
+
113
+ // Function to close ajax alerts
114
+ function closeAjaxAlert(type) {
115
+ if (type === 'error') {
116
+ $('#ajaxErrorAlert').fadeOut(500);
117
+ } else if (type === 'info') {
118
+ $('#ajaxInfoAlert').fadeOut(500);
119
+ }
120
+ }
121
+ </script>
@@ -1,97 +1,124 @@
1
- <header>
2
- <div class="container">
3
- <div class="row">
4
1
 
5
- <div class="col-md-6">
6
- <%= link_to image_tag('kaui/logo.svg', :alt => 'Kill Bill Logo'), kaui_engine.home_path %>
2
+ <header>
3
+ <div class="kaui-container">
4
+ <div class="row">
5
+ <div class="d-flex align-items-center justify-content-between bg-white w-100">
7
6
 
8
- <% if user_signed_in? -%>
9
- <% if tenant_selected? %>
10
- <%= form_tag kaui_engine.search_path, :role => 'search', :id => 'searchform', :method => 'get' do %>
11
- <%= text_field_tag :q, '', :placeholder => 'Search' %>
12
- <%= submit_tag 'Search' %>
13
- <% end %>
14
- <% end %>
7
+ <!-- Logo -->
8
+ <div class="d-flex align-items-center gap-2">
9
+ <%= render 'kaui/components/logo/logo' %>
10
+ </div>
15
11
 
16
- <% if can?(:create, Kaui::Account) && tenant_selected? %>
17
- <%= link_to '<i class="fa fa-plus-square"></i>&nbsp;Create new account'.html_safe, kaui_engine.new_account_path %>
18
- <% end %>
12
+ <!-- Search Input (only if tenant is selected) -->
13
+ <% if tenant_selected? %>
14
+ <div class="px-3 w-100">
15
+ <%= render 'kaui/components/search_input/search_input' %>
16
+ </div>
19
17
  <% end %>
20
- </div>
21
-
22
- <div class="col-md-6">
23
- <div class="row">
24
-
25
- <div id="main-menu" class="col-xs-6">
26
-
27
- <% if user_signed_in? -%>
28
- <div class="tag-bar tag-bar-no-border">
29
-
30
- <% if tenant_selected? -%>
31
- <div class="tag-select" onclick="void(0)">
32
- <span><i class="fa fa-tags"></i><i class="fa fa-caret-down"></i></span>
33
-
34
- <div class="tag-select-box">
35
- <%= link_to 'Tags', kaui_engine.tags_path %>
36
- <%= link_to 'Tag definitions', kaui_engine.tag_definitions_path %>
37
- <%= link_to 'Custom Fields', kaui_engine.custom_fields_path %>
38
- </div>
39
- </div>
40
- <% end %>
41
-
42
- <% if (current_user.root? && tenant_selected?) %>
43
- <div class="tag-select" onclick="void(0)">
44
- <span><i class="fa fa-cogs"></i><i class="fa fa-caret-down"></i></span>
45
-
46
- <div class="tag-select-box">
47
- <%= link_to 'Users', kaui_engine.admin_allowed_users_path %>
48
- <%= link_to 'Tenants', kaui_engine.admin_tenants_path %>
49
18
 
50
- <% if current_user.root? && tenant_selected? %>
51
- <%= link_to 'Admin', kaui_engine.admin_path %>
52
- <% end %>
53
- </div>
54
- </div>
19
+ <!-- Right Section -->
20
+ <div class="d-flex align-items-center">
21
+
22
+ <!-- Tag-based dropdowns -->
23
+ <%
24
+ =begin%>
25
+ <% if user_signed_in? && tenant_selected? %>
26
+ <div class="dropdown">
27
+ <button class="btn btn-sm dropdown-toggle" type="button" data-bs-toggle="dropdown">
28
+ <i class="fa fa-tags"></i>
29
+ </button>
30
+ <ul class="dropdown-menu">
31
+ <li><%= link_to 'Tags', kaui_engine.tags_path, class: 'dropdown-item' %></li>
32
+ <li><%= link_to 'Tag definitions', kaui_engine.tag_definitions_path, class: 'dropdown-item' %></li>
33
+ <li><%= link_to 'Custom Fields', kaui_engine.custom_fields_path, class: 'dropdown-item' %></li>
34
+ </ul>
35
+ </div>
36
+
37
+ <% if current_user.root? %>
38
+ <div class="dropdown">
39
+ <button class="btn btn-sm dropdown-toggle" type="button" data-bs-toggle="dropdown">
40
+ <i class="fa fa-cogs"></i>
41
+ </button>
42
+ <ul class="dropdown-menu">
43
+ <li><%= link_to 'Users', kaui_engine.admin_allowed_users_path, class: 'dropdown-item' %></li>
44
+ <li><%= link_to 'Tenants', kaui_engine.admin_tenants_path, class: 'dropdown-item' %></li>
45
+ <li><%= link_to 'Admin', kaui_engine.admin_path, class: 'dropdown-item' %></li>
46
+ </ul>
47
+ </div>
48
+ <% end %>
49
+ <% end %>
50
+ <%
51
+ =end%>
52
+
53
+ <!-- Create Menu Dropdown -->
54
+
55
+ <% if user_signed_in? && can?(:create, Kaui::Account) && tenant_selected? %>
56
+ <%= render "kaui/components/button/button", {
57
+ label: "Create Account",
58
+ icon: "kaui/plus.svg",
59
+ variant: "outline-secondary d-inline-flex align-items-center gap-1 mx-2",
60
+ type: "button",
61
+ html_class: "kaui-dropdown custom-hover text-nowrap",
62
+ html_options: {
63
+ onclick: "window.location.href='#{kaui_engine.new_account_path}'"
64
+ }
65
+ } %>
66
+ <% end %>
67
+
68
+ <!-- Settings Icon -->
69
+ <% if user_signed_in? && session[:tenant_id].present? %>
70
+ <%= link_to kaui_engine.admin_tenant_path(session[:tenant_id]), class: 'd-flex align-items-center gap-2 border admin-info text-decoration-none' do %>
71
+ <%= image_tag 'kaui/header/cog_icon.svg', alt: 'setting' %>
72
+ <% if user_signed_in? %>
73
+ <div class="text-sm text-nowrap">
74
+ <% if session[:kb_tenant_name].present? && session[:tenant_id].present? %>
75
+ <%= "#{current_user.kb_username} / #{session[:kb_tenant_name]}" %>
76
+ <% elsif session[:kb_tenant_name].present? %>
77
+ <%= "#{current_user.kb_username} / #{session[:kb_tenant_name]}" %>
78
+ <% else %>
79
+ <%= current_user.kb_username %>
55
80
  <% end %>
56
-
57
81
  </div>
82
+ <% end %>
58
83
  <% end %>
59
84
 
60
- </div>
61
-
62
- <div class="col-xs-6 text-right">
63
- <nav>
64
- <ul class="account-menu">
65
- <% if user_signed_in? -%>
66
- <li>
67
- <% if session[:kb_tenant_name].present? %>
68
- <% if session[:tenant_id].present? %>
69
- <%= link_to("#{current_user.kb_username} / #{session[:kb_tenant_name]}", kaui_engine.admin_tenant_path(session[:tenant_id])) %>
70
- <% else %>
71
- <%= "#{current_user.kb_username} / #{session[:kb_tenant_name]}" %>
72
- <% end %>
73
- <% else %>
74
- <%= current_user.kb_username %>
75
- <% end %>
76
- </li>
77
- <li><%= link_to 'Sign Out', kaui_engine.destroy_user_session_path, :method => :delete %></li>
78
- <% else %>
79
- <% unless Kaui.disable_sign_up_link %>
80
- <% unless current_page?(new_user_session_path)%>
81
- <li><%= link_to 'Login'.html_safe, kaui_engine.new_user_session_path %></li>
82
- <% end %>
83
- <% unless current_page?(new_user_registration_path)%>
84
- <li><%= link_to 'Sign-up'.html_safe, kaui_engine.new_user_registration_path %></li>
85
- <% end %>
86
- <% end %>
87
- <% end %>
88
- </ul>
89
- </nav>
90
- </div>
85
+ <% end %>
86
+
87
+ <!-- Logout Icon -->
88
+ <% if user_signed_in? %>
89
+ <%= link_to image_tag('kaui/logout.svg', alt: 'logout'), kaui_engine.destroy_user_session_path, method: :delete, class: 'p-2 header-icon' %>
90
+ <% end %>
91
+
92
+
93
+ <!-- User Identity Display / Auth Links -->
94
+
95
+ <%
96
+ =begin%>
97
+ <% if user_signed_in? %>
98
+ <div class="px-2 text-sm text-muted">
99
+ <% if session[:kb_tenant_name].present? && session[:tenant_id].present? %>
100
+ <%= link_to("#{current_user.kb_username} / #{session[:kb_tenant_name]}", kaui_engine.admin_tenant_path(session[:tenant_id])) %>
101
+ <% elsif session[:kb_tenant_name].present? %>
102
+ <%= "#{current_user.kb_username} / #{session[:kb_tenant_name]}" %>
103
+ <% else %>
104
+ <%= current_user.kb_username %>
105
+ <% end %>
106
+ </div>
107
+ <% else %>
108
+ <% unless Kaui.disable_sign_up_link %>
109
+ <% unless current_page?(new_user_session_path) %>
110
+ <%= link_to 'Login', kaui_engine.new_user_session_path, class: 'btn btn-sm btn-outline-primary' %>
111
+ <% end %>
112
+ <% unless current_page?(new_user_registration_path) %>
113
+ <%= link_to 'Sign-up', kaui_engine.new_user_registration_path, class: 'btn btn-sm btn-outline-secondary' %>
114
+ <% end %>
115
+ <% end %>
116
+ <% end %>
117
+ <%
118
+ =end%>
91
119
 
92
120
  </div>
93
121
  </div>
94
-
95
122
  </div>
96
123
  </div>
97
124
  </header>
@@ -0,0 +1,36 @@
1
+ <% identifier = "Settings" %>
2
+
3
+ <% menu_items = [
4
+ session[:tenant_id].present? ? { label: session["kb_tenant_name"], path: kaui_engine.admin_tenant_path(session[:tenant_id]), controller_suffix: "#{session[:tenant_id]}", icon_path: 'kaui/setting/account.svg' } : nil,
5
+ { label: 'Tenants', path: kaui_engine.admin_tenants_path, controller_suffix: 'admin_tenants', icon_path: 'kaui/setting/tenants.svg' },
6
+ { label: 'Users', path: kaui_engine.admin_allowed_users_path, controller_suffix: 'admin_allowed_users', icon_path: 'kaui/setting/users.svg' },
7
+ { label: 'Tags', path: kaui_engine.tags_path, controller_suffix: 'tags', icon_path: 'kaui/setting/tags.svg' },
8
+ { label: 'Tag Definitions', path: kaui_engine.tag_definitions_path, controller_suffix: 'tag_definitions', icon_path: 'kaui/setting/tag-definitions.svg' },
9
+ { label: 'Custom Fields', path: kaui_engine.custom_fields_path, controller_suffix: 'custom_fields', icon_path: 'kaui/setting/custom-field.svg' }
10
+ ].compact %>
11
+
12
+ <% if kpm_plugin_installed %>
13
+ <% menu_items << { label: 'Plugins', path: "/kpm", controller_suffix: 'kpm', icon_path: 'kaui/setting/plugins.svg' } %>
14
+ <% installed_plugin_names.each do |plugin| %>
15
+ <% menu_items << { label: plugin[:name].humanize, path: plugin[:path], controller_suffix: plugin[:name].parameterize, icon_path: 'kaui/setting/plugins.svg' } %>
16
+ <% end %>
17
+ <% end %>
18
+
19
+ <% if menu_items.present? %>
20
+ <div class="setting-sidebar-area">
21
+ <div class="container">
22
+ <p><%= identifier %></p>
23
+
24
+ <% menu_items.each do |item| %>
25
+ <% css_class = request.path == item[:path] ? 'current' : 'non-current', "text-ellipsis" %>
26
+
27
+ <%= link_to item[:path], class: css_class do %>
28
+ <span class="icon">
29
+ <%= image_tag(item[:icon_path], size: "20x20") %>
30
+ </span>
31
+ <%= item[:label] %>
32
+ <% end %>
33
+ <% end %>
34
+ </div>
35
+ </div>
36
+ <% end %>
@@ -1,7 +1,7 @@
1
1
  <%= form_for @payment_method, :html => {:class => 'form-horizontal'} do |f| %>
2
2
  <%= f.hidden_field :account_id %>
3
3
 
4
- <div class="form-group">
4
+ <div class="form-group d-flex pb-3">
5
5
  <%= f.label :external_key, 'External key', :class => 'col-sm-3 control-label' %>
6
6
  <div class="col-sm-9">
7
7
  <%= f.text_field :external_key, :class => 'form-control' %>
@@ -10,19 +10,23 @@
10
10
  </div>
11
11
  </div>
12
12
  </div>
13
- <div class="form-group">
13
+ <div class="form-group d-flex pb-3 border-bottom mb-3">
14
14
  <%= f.label :plugin_name, 'Plugin name', :class => 'col-sm-3 control-label' %>
15
15
  <div class="col-sm-9">
16
16
  <%= f.text_field :plugin_name, :class => 'form-control', :required => true %>
17
17
  </div>
18
18
  </div>
19
- <div id="creditcard">
19
+ <div id="creditcard" class="new-creditcard-payment-method">
20
20
  <%= render :partial => 'new_creditcard_payment_method' %>
21
21
  </div>
22
- <div id="properties" class="col-sm-offset-3 col-sm-9">
23
- <%= render :partial => 'plugin_properties' %>
22
+ <div class="form-group d-flex pb-3 border-bottom mb-3 payment-method-form">
23
+ <div class="col-sm-3"></div>
24
+ <div id="properties" class="col-sm-offset-3 col-sm-9">
25
+ <%= render :partial => 'plugin_properties' %>
26
+ </div>
24
27
  </div>
25
- <div class="form-group">
28
+ <div class="form-group d-flex pb-3 border-bottom mb-3">
29
+ <div class="col-sm-3"></div>
26
30
  <div class="col-sm-offset-3 col-sm-9">
27
31
  <div class="checkbox">
28
32
  <%= f.label :is_default do %>
@@ -31,9 +35,26 @@
31
35
  </div>
32
36
  </div>
33
37
  </div>
34
- <div class="form-group">
35
- <div class="col-sm-offset-3 col-sm-9">
36
- <%= submit_tag 'Save', :class => 'btn btn-default' %>
37
- </div>
38
+ <div class="form-group d-flex justify-content-end pb-3">
39
+ <%= render "kaui/components/button/button", {
40
+ label: 'Close',
41
+ variant: "outline-secondary d-inline-flex align-items-center gap-1",
42
+ type: "button",
43
+ html_class: "kaui-button custom-hover mx-2",
44
+ html_options: {
45
+ id: "cancelButton",
46
+ onclick: "window.location.href='#{kaui_engine.account_path(@payment_method.account_id)}'"
47
+ }
48
+ } %>
49
+
50
+ <%= render "kaui/components/button/button", {
51
+ label: 'Save Method',
52
+ variant: "outline-secondary d-inline-flex align-items-center gap-1",
53
+ type: "submit",
54
+ html_class: "kaui-dropdown custom-hover",
55
+ html_options: {
56
+ id: "saveButton"
57
+ }
58
+ } %>
38
59
  </div>
39
- <% end %>
60
+ <% end %>