aa-ledger 1.0.3__py3-none-any.whl → 2.0.0__py3-none-any.whl

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 (280) hide show
  1. {aa_ledger-1.0.3.dist-info → aa_ledger-2.0.0.dist-info}/METADATA +6 -6
  2. aa_ledger-2.0.0.dist-info/RECORD +267 -0
  3. {aa_ledger-1.0.3.dist-info → aa_ledger-2.0.0.dist-info}/WHEEL +1 -1
  4. ledger/__init__.py +2 -2
  5. ledger/admin.py +23 -18
  6. ledger/api/__init__.py +23 -7
  7. ledger/api/{ledger/admin.py → admin.py} +25 -31
  8. ledger/api/alliance.py +755 -0
  9. ledger/api/character.py +786 -0
  10. ledger/api/corporation.py +1141 -0
  11. ledger/api/{helpers.py → helpers/core.py} +33 -33
  12. ledger/api/helpers/icons.py +372 -0
  13. ledger/api/helpers/planetary_helper.py +354 -0
  14. ledger/api/planetary.py +354 -0
  15. ledger/api/schema.py +240 -15
  16. ledger/app_settings.py +18 -26
  17. ledger/auth_hooks.py +2 -2
  18. ledger/constants.py +50 -177
  19. ledger/decorators.py +2 -46
  20. ledger/forms.py +133 -39
  21. ledger/helpers/billboard.py +194 -144
  22. ledger/helpers/cache.py +105 -0
  23. ledger/helpers/discord.py +2 -4
  24. ledger/helpers/eveonline.py +160 -0
  25. ledger/helpers/ledger_data.py +23 -0
  26. ledger/helpers/ref_type.py +53 -78
  27. ledger/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  28. ledger/locale/cs_CZ/LC_MESSAGES/django.po +349 -193
  29. ledger/locale/de/LC_MESSAGES/django.mo +0 -0
  30. ledger/locale/de/LC_MESSAGES/django.po +528 -379
  31. ledger/locale/django.pot +717 -553
  32. ledger/locale/es/LC_MESSAGES/django.mo +0 -0
  33. ledger/locale/es/LC_MESSAGES/django.po +349 -194
  34. ledger/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  35. ledger/locale/fr_FR/LC_MESSAGES/django.po +349 -193
  36. ledger/locale/it_IT/LC_MESSAGES/django.mo +0 -0
  37. ledger/locale/it_IT/LC_MESSAGES/django.po +349 -193
  38. ledger/locale/ja/LC_MESSAGES/django.mo +0 -0
  39. ledger/locale/ja/LC_MESSAGES/django.po +348 -193
  40. ledger/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
  41. ledger/locale/ko_KR/LC_MESSAGES/django.po +349 -193
  42. ledger/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  43. ledger/locale/nl_NL/LC_MESSAGES/django.po +349 -193
  44. ledger/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  45. ledger/locale/pl_PL/LC_MESSAGES/django.po +350 -193
  46. ledger/locale/ru/LC_MESSAGES/django.mo +0 -0
  47. ledger/locale/ru/LC_MESSAGES/django.po +348 -193
  48. ledger/locale/sk/LC_MESSAGES/django.mo +0 -0
  49. ledger/locale/sk/LC_MESSAGES/django.po +348 -193
  50. ledger/locale/uk/LC_MESSAGES/django.mo +0 -0
  51. ledger/locale/uk/LC_MESSAGES/django.po +348 -193
  52. ledger/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  53. ledger/locale/zh_Hans/LC_MESSAGES/django.po +348 -193
  54. ledger/managers/character_audit_manager.py +28 -20
  55. ledger/managers/character_journal_manager.py +187 -358
  56. ledger/managers/character_mining_manager.py +64 -30
  57. ledger/managers/character_planetary_manager.py +185 -138
  58. ledger/managers/corporation_audit_manager.py +36 -27
  59. ledger/managers/corporation_journal_manager.py +94 -57
  60. ledger/managers/general_manager.py +12 -8
  61. ledger/migrations/0018_remove_characterplanet_ledger_char_planet__58a5b6_idx_and_more.py +44 -0
  62. ledger/migrations/0019_rename_characteraudit_characterowner_and_more.py +48 -0
  63. ledger/models/__init__.py +5 -11
  64. ledger/models/characteraudit.py +101 -109
  65. ledger/models/corporationaudit.py +94 -49
  66. ledger/models/general.py +105 -211
  67. ledger/models/helpers/update_manager.py +302 -0
  68. ledger/models/planetary.py +60 -205
  69. ledger/providers.py +101 -0
  70. ledger/static/ledger/css/{ledger.css → aa-ledger.css} +54 -28
  71. ledger/static/ledger/js/aa-ledger.js +124 -0
  72. ledger/static/ledger/js/charts.js +25 -1
  73. ledger/static/ledger/js/view-alliance-ledger.js +383 -0
  74. ledger/static/ledger/js/view-character-ledger.js +388 -0
  75. ledger/static/ledger/js/view-corporation-ledger.js +402 -0
  76. ledger/static/ledger/js/view-planetary.js +492 -0
  77. ledger/static/ledger/libs/amCharts/5.14.4/js/flow.js +2 -0
  78. ledger/static/ledger/libs/amCharts/5.14.4/js/index.js +2 -0
  79. ledger/static/ledger/libs/amCharts/5.14.4/js/percent.js +2 -0
  80. ledger/static/ledger/libs/amCharts/5.14.4/js/themes/Animated.js +2 -0
  81. ledger/static/ledger/libs/amCharts/5.14.4/js/themes/Dark.js +2 -0
  82. ledger/static/ledger/libs/amCharts/5.14.4/js/xy.js +2 -0
  83. ledger/static/ledger/libs/datatables/2.3.5/css/dataTables.bootstrap5.css +610 -0
  84. ledger/static/ledger/libs/datatables/2.3.5/js/dataTables.bootstrap5.js +122 -0
  85. ledger/static/ledger/libs/datatables/2.3.5/js/dataTables.js +14127 -0
  86. ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/css/columnControl.bootstrap5.css +516 -0
  87. ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/css/columnControl.dataTables.css +529 -0
  88. ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/js/columnControl.bootstrap5.js +73 -0
  89. ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/js/dataTables.columnControl.js +3090 -0
  90. ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/css/fixedHeader.bootstrap5.css +20 -0
  91. ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/js/dataTables.fixedHeader.js +1203 -0
  92. ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/js/fixedHeader.bootstrap5.js +59 -0
  93. ledger/tasks.py +157 -146
  94. ledger/templates/ledger/base.html +59 -21
  95. ledger/templates/ledger/bundles/aa-ledger-css.html +3 -0
  96. ledger/templates/ledger/bundles/aa-ledger-js.html +3 -0
  97. ledger/templates/ledger/bundles/view-alliance-ledger-js.html +14 -0
  98. ledger/templates/ledger/bundles/view-character-ledger-js.html +15 -0
  99. ledger/templates/ledger/bundles/view-character-planetary-css.html +3 -0
  100. ledger/templates/ledger/bundles/view-character-planetary-js.html +4 -0
  101. ledger/templates/ledger/bundles/view-corporation-ledger-js.html +15 -0
  102. ledger/templates/ledger/partials/modal/confirm.html +0 -1
  103. ledger/templates/ledger/partials/modal/request-accept-delete-alliance.html +38 -0
  104. ledger/templates/ledger/partials/modal/request-accept-delete-character.html +38 -0
  105. ledger/templates/ledger/partials/modal/request-accept-delete-corporation.html +38 -0
  106. ledger/templates/ledger/partials/modal/request-accept-switch-notification.html +38 -0
  107. ledger/templates/ledger/partials/modal/request-view-alliance-details.html +26 -0
  108. ledger/templates/ledger/partials/modal/request-view-character-details.html +26 -0
  109. ledger/templates/ledger/partials/modal/request-view-corporation-details.html +26 -0
  110. ledger/templates/ledger/partials/modal/request-view-extractor.html +32 -0
  111. ledger/templates/ledger/partials/modal/request-view-factory.html +31 -0
  112. ledger/templates/ledger/partials/{menu → navigation}/administration.html +8 -0
  113. ledger/templates/ledger/partials/{menu → navigation}/navigation.html +2 -2
  114. ledger/templates/ledger/partials/{administration → view-alliance-administration}/alliance_corporations.html +3 -3
  115. ledger/templates/ledger/partials/view-alliance-administration/dashboard.html +81 -0
  116. ledger/templates/ledger/partials/view-alliance-ledger/alliance-billboard.html +25 -0
  117. ledger/templates/ledger/partials/view-alliance-ledger/alliance-ledger-details.html +21 -0
  118. ledger/templates/ledger/partials/view-alliance-ledger/alliance-table.html +24 -0
  119. ledger/templates/ledger/partials/view-alliance-ledger/information/daily.html +18 -0
  120. ledger/templates/ledger/partials/view-alliance-ledger/information/hourly.html +18 -0
  121. ledger/templates/ledger/partials/view-alliance-ledger/information/summary.html +19 -0
  122. ledger/templates/ledger/partials/{administration → view-character-administration}/character.html +1 -9
  123. ledger/templates/ledger/partials/{administration → view-character-administration}/dashboard.html +0 -34
  124. ledger/templates/ledger/partials/view-character-ledger/character-billboard.html +25 -0
  125. ledger/templates/ledger/partials/view-character-ledger/character-ledger-details.html +21 -0
  126. ledger/templates/ledger/partials/view-character-ledger/character-table.html +25 -0
  127. ledger/templates/ledger/partials/view-character-ledger/information/daily.html +18 -0
  128. ledger/templates/ledger/partials/view-character-ledger/information/hourly.html +18 -0
  129. ledger/templates/ledger/partials/view-character-ledger/information/summary.html +19 -0
  130. ledger/templates/ledger/partials/view-character-planetary/extractor-table.html +24 -0
  131. ledger/templates/ledger/partials/view-character-planetary/factory-table.html +24 -0
  132. ledger/templates/ledger/partials/view-character-planetary/planetary-table.html +22 -0
  133. ledger/templates/ledger/partials/view-character-planetary/storage-table.html +23 -0
  134. ledger/templates/ledger/partials/{administration → view-corporation-administration}/corporation.html +5 -13
  135. ledger/templates/ledger/partials/{administration → view-corporation-administration}/corporation_characters.html +1 -1
  136. ledger/templates/ledger/partials/view-corporation-administration/dashboard.html +81 -0
  137. ledger/templates/ledger/partials/view-corporation-ledger/corporation-billboard.html +25 -0
  138. ledger/templates/ledger/partials/view-corporation-ledger/corporation-ledger-details.html +21 -0
  139. ledger/templates/ledger/partials/view-corporation-ledger/corporation-table.html +26 -0
  140. ledger/templates/ledger/partials/view-corporation-ledger/information/daily.html +18 -0
  141. ledger/templates/ledger/partials/view-corporation-ledger/information/hourly.html +18 -0
  142. ledger/templates/ledger/partials/view-corporation-ledger/information/summary.html +19 -0
  143. ledger/templates/ledger/view-administration.html +62 -0
  144. ledger/templates/ledger/view-alliance-administration.html +49 -0
  145. ledger/templates/ledger/view-alliance-ledger.html +72 -0
  146. ledger/templates/ledger/view-alliance-overview.html +131 -0
  147. ledger/templates/ledger/view-character-administration.html +42 -0
  148. ledger/templates/ledger/view-character-ledger.html +73 -0
  149. ledger/templates/ledger/view-character-overview.html +135 -0
  150. ledger/templates/ledger/view-character-planetary-overview.html +135 -0
  151. ledger/templates/ledger/view-character-planetary.html +73 -0
  152. ledger/templates/ledger/view-corporation-administration.html +42 -0
  153. ledger/templates/ledger/view-corporation-ledger.html +73 -0
  154. ledger/templates/ledger/view-corporation-overview.html +131 -0
  155. ledger/templatetags/ledger.py +3 -5
  156. ledger/tests/__init__.py +187 -0
  157. ledger/tests/test_admin.py +164 -68
  158. ledger/tests/test_auth_hook.py +31 -13
  159. ledger/tests/test_decarators.py +14 -79
  160. ledger/tests/test_discord_installed.py +0 -1
  161. ledger/tests/test_helpers/test_ledger_data.py +19 -0
  162. ledger/tests/test_managers/test_character_audit_manager.py +111 -69
  163. ledger/tests/test_managers/test_character_journal_manager.py +48 -208
  164. ledger/tests/test_managers/test_character_mining_manager.py +37 -16
  165. ledger/tests/test_managers/test_corporation_division_manager.py +66 -28
  166. ledger/tests/test_managers/test_corporation_journal_manager.py +39 -42
  167. ledger/tests/test_managers/test_general_manager.py +78 -18
  168. ledger/tests/test_managers/test_planetary_manager.py +73 -32
  169. ledger/tests/test_models/test_characteraudit.py +58 -74
  170. ledger/tests/test_models/test_characterminingledger.py +20 -26
  171. ledger/tests/test_models/test_characterwalletjournal.py +10 -33
  172. ledger/tests/test_models/test_corporationaudit.py +41 -35
  173. ledger/tests/test_models/test_corporationwalletjournal.py +35 -32
  174. ledger/tests/test_models/test_general.py +44 -11
  175. ledger/tests/test_models/test_planetary.py +14 -80
  176. ledger/tests/test_templatetags.py +2 -7
  177. ledger/tests/test_views/corporation/test_add_corp.py +16 -35
  178. ledger/tests/test_views/corporation/test_delete_corporation.py +66 -42
  179. ledger/tests/test_views/test_access.py +512 -545
  180. ledger/tests/test_views/test_add_ally.py +57 -46
  181. ledger/tests/test_views/test_add_char.py +21 -33
  182. ledger/tests/test_views/test_delete_character.py +24 -21
  183. ledger/tests/testdata/README_ESI_STUB.md +430 -0
  184. ledger/tests/testdata/esi_stub_openapi.py +511 -0
  185. ledger/tests/testdata/integrations/__init__.py +0 -0
  186. ledger/tests/testdata/{load_eveuniverse.py → integrations/eveuniverse.py} +0 -1
  187. ledger/tests/testdata/integrations/planetary.py +13 -0
  188. ledger/tests/testdata/json/factory.json +281 -0
  189. ledger/tests/testdata/json/inactive.json +281 -0
  190. ledger/tests/testdata/json/pins.json +175 -272
  191. ledger/tests/testdata/json/route.json +95 -528
  192. ledger/tests/testdata/test_esi_stub.py +468 -0
  193. ledger/tests/testdata/utils.py +601 -0
  194. ledger/thirdparty/charlink_hook.py +60 -30
  195. ledger/urls.py +0 -135
  196. ledger/views/alliance/add_ally.py +2 -4
  197. ledger/views/alliance/alliance_ledger.py +64 -147
  198. ledger/views/character/add_char.py +8 -10
  199. ledger/views/character/character_ledger.py +60 -126
  200. ledger/views/character/planetary.py +5 -98
  201. ledger/views/corporation/add_corp.py +10 -12
  202. ledger/views/corporation/corporation_ledger.py +65 -327
  203. ledger/views/index.py +92 -30
  204. aa_ledger-1.0.3.dist-info/RECORD +0 -236
  205. ledger/api/api_helper/planetary_helper.py +0 -107
  206. ledger/api/ledger/__init__.py +0 -7
  207. ledger/api/ledger/planetary.py +0 -231
  208. ledger/helpers/alliance.py +0 -317
  209. ledger/helpers/character.py +0 -251
  210. ledger/helpers/core.py +0 -665
  211. ledger/helpers/corporation.py +0 -427
  212. ledger/helpers/data_exporter.py +0 -452
  213. ledger/static/ledger/js/planetary-confirm.js +0 -66
  214. ledger/static/ledger/js/planetary.js +0 -143
  215. ledger/templates/ledger/admin.html +0 -43
  216. ledger/templates/ledger/allyledger/admin/alliance_administration.html +0 -46
  217. ledger/templates/ledger/allyledger/admin/alliance_overview.html +0 -108
  218. ledger/templates/ledger/allyledger/alliance_ledger.html +0 -86
  219. ledger/templates/ledger/bundles/character-ledger-bundles.html +0 -66
  220. ledger/templates/ledger/bundles/corporation-ledger-bundles.html +0 -75
  221. ledger/templates/ledger/bundles/ledger-bundles.html +0 -23
  222. ledger/templates/ledger/bundles/ledger-css.html +0 -3
  223. ledger/templates/ledger/bundles/planetary-bundles.html +0 -50
  224. ledger/templates/ledger/bundles/table-css.html +0 -3
  225. ledger/templates/ledger/charledger/admin/character_administration.html +0 -39
  226. ledger/templates/ledger/charledger/admin/character_overview.html +0 -106
  227. ledger/templates/ledger/charledger/character_ledger.html +0 -94
  228. ledger/templates/ledger/charledger/planetary/admin/planetary_overview.html +0 -123
  229. ledger/templates/ledger/charledger/planetary/planetary_ledger.html +0 -54
  230. ledger/templates/ledger/corpledger/admin/corporation_administration.html +0 -39
  231. ledger/templates/ledger/corpledger/admin/corporation_overview.html +0 -108
  232. ledger/templates/ledger/corpledger/corporation_ledger.html +0 -129
  233. ledger/templates/ledger/data-export.html +0 -78
  234. ledger/templates/ledger/error.html +0 -31
  235. ledger/templates/ledger/partials/form/error-message.html +0 -1
  236. ledger/templates/ledger/partials/information/daily.html +0 -56
  237. ledger/templates/ledger/partials/information/day.html +0 -48
  238. ledger/templates/ledger/partials/information/error.html +0 -8
  239. ledger/templates/ledger/partials/information/hourly.html +0 -53
  240. ledger/templates/ledger/partials/information/summary.html +0 -88
  241. ledger/templates/ledger/partials/information/view_character_content.html +0 -35
  242. ledger/templates/ledger/partials/modal/switchalarm_confirm.html +0 -39
  243. ledger/templates/ledger/partials/modal/view_extractor.html +0 -48
  244. ledger/templates/ledger/partials/modal/view_factory.html +0 -123
  245. ledger/templates/ledger/partials/table/char-ledger.html +0 -85
  246. ledger/templates/ledger/partials/table/corp-ledger.html +0 -66
  247. ledger/templates/ledger/partials/table/planetary.html +0 -18
  248. ledger/templates/ledger/partials/thirdparty/billboard.html +0 -22
  249. ledger/templates/ledger/partials/view/card.html +0 -160
  250. ledger/templates/ledger/permission.html +0 -2
  251. ledger/tests/test_helpers/test_billboard.py +0 -11
  252. ledger/tests/test_helpers/test_data_exporter.py +0 -207
  253. ledger/tests/test_tasks.py +0 -282
  254. ledger/tests/test_view_helpers/test_core.py +0 -47
  255. ledger/tests/test_views/corporation/test_corporation.py +0 -267
  256. ledger/tests/test_views/test_planetary.py +0 -137
  257. ledger/tests/testdata/esi_stub.py +0 -109
  258. ledger/tests/testdata/esi_stub_migration.py +0 -80
  259. ledger/tests/testdata/generate_characteraudit.py +0 -106
  260. ledger/tests/testdata/generate_corporationaudit.py +0 -74
  261. ledger/tests/testdata/generate_events.py +0 -31
  262. ledger/tests/testdata/generate_miningledger.py +0 -13
  263. ledger/tests/testdata/generate_planets.py +0 -48
  264. ledger/tests/testdata/generate_walletjournal.py +0 -42
  265. ledger/tests/testdata/json/czarno-pins.json +0 -240
  266. ledger/tests/testdata/json/czarno-routes.json +0 -165
  267. ledger/tests/testdata/json/pins2.json +0 -538
  268. {aa_ledger-1.0.3.dist-info → aa_ledger-2.0.0.dist-info}/licenses/LICENSE +0 -0
  269. /ledger/{tests/test_view_helpers → api/helpers}/__init__.py +0 -0
  270. /ledger/templates/ledger/bundles/{ally-administration-bundles.html → view-alliance-administration-js.html} +0 -0
  271. /ledger/templates/ledger/bundles/{char-administration-bundles.html → view-character-administration-js.html} +0 -0
  272. /ledger/templates/ledger/bundles/{corp-administration-bundles.html → view-corporation-administration-js.html} +0 -0
  273. /ledger/templates/ledger/partials/{administration → view-alliance-administration}/alliance.html +0 -0
  274. /ledger/tests/testdata/{esi.json → esi_test_data.json} +0 -0
  275. /ledger/tests/testdata/{allianceauth.json → integrations/allianceauth.json} +0 -0
  276. /ledger/tests/testdata/{load_allianceauth.py → integrations/allianceauth.py} +0 -0
  277. /ledger/tests/testdata/{eveentity.json → integrations/eveentity.json} +0 -0
  278. /ledger/tests/testdata/{load_eveentity.py → integrations/eveentity.py} +0 -0
  279. /ledger/tests/testdata/{eveuniverse.json → integrations/eveuniverse.json} +0 -0
  280. /ledger/tests/testdata/{planetary.json → integrations/planetary.json} +0 -0
@@ -0,0 +1,388 @@
1
+ /* global aaLedgerSettings, aaLedgerSettingsOverride, _bootstrapTooltip, _bootstrapPopOver, fetchGet, fetchPost, bootstrap, DataTable, moment, numberFormatter, load_or_create_Chart */
2
+
3
+ $(document).ready(() => {
4
+ /**
5
+ * Table :: IDs
6
+ */
7
+ const characterTable = $('#character-ledger-table');
8
+ const characterSummaryTable = $('#character-ledger-summary-table');
9
+ const characterDailyTable = $('#character-ledger-daily-table');
10
+ const characterHourlyTable = $('#character-ledger-hourly-table');
11
+
12
+ /**
13
+ * Helper: format currency with classes
14
+ */
15
+ const _formatCurrencySpan = (value, positiveClass = 'text-success') => {
16
+ const cls = value > 0 ? positiveClass : (value < 0 ? 'text-danger' : '');
17
+ console.log(aaLedgerSettings.locale);
18
+ const formatted = numberFormatter({
19
+ value: value,
20
+ language: aaLedgerSettings.locale,
21
+ options: {
22
+ style: 'currency',
23
+ currency: 'ISK',
24
+ maximumFractionDigits: 0
25
+ }
26
+ });
27
+ return `<span class="${cls}">${formatted}</span>`;
28
+ };
29
+
30
+ /**
31
+ * Modals :: IDs
32
+ */
33
+ const modalRequestViewCharacterLedgerDetails = $('#ledger-view-character-ledger-details');
34
+
35
+ /**
36
+ * Chart :: IDs
37
+ */
38
+ const chartChord = 'chord-chart';
39
+ const chartXY = 'xy-chart';
40
+
41
+ fetchGet({
42
+ url: aaLedgerSettings.url.CharacterLedger,
43
+ })
44
+ .then((data) => {
45
+ if (data) {
46
+ /**
47
+ * DataTable for Character Ledger
48
+ * @type {*|jQuery}
49
+ */
50
+ const characterDataTable = new DataTable(characterTable, {
51
+ data: data.characters,
52
+ language: aaLedgerSettings.dataTables.language,
53
+ layout: aaLedgerSettings.dataTables.layout,
54
+ ordering: aaLedgerSettings.dataTables.ordering,
55
+ columnControl: aaLedgerSettings.dataTables.columnControl,
56
+ order: [[6, 'desc']],
57
+ columnDefs: [
58
+ {
59
+ orderable: false,
60
+ targets: 7,
61
+ columnControl: [
62
+ {target: 0, content: []},
63
+ {target: 1, content: []}
64
+ ]
65
+ },
66
+ {
67
+ targets: [1,2,3,4,5,6],
68
+ type: 'num'
69
+ },
70
+ {
71
+ className: 'border-start',
72
+ targets: 6
73
+ }
74
+ ],
75
+ columns: [
76
+ {
77
+ data: {
78
+ display: (data) => data.character.icon + ' ' + data.character.character_name,
79
+ sort: (data) => data.character.character_name,
80
+ filter: (data) => data.character.character_name
81
+ }
82
+ },
83
+ {
84
+ data: {
85
+ display: (data) => _formatCurrencySpan(data.ledger.bounty),
86
+ sort: (data) => data.ledger.bounty,
87
+ filter: (data) => data.ledger.bounty
88
+ }
89
+ },
90
+ {
91
+ data: {
92
+ display: (data) => _formatCurrencySpan(data.ledger.ess),
93
+ sort: (data) => data.ledger.ess,
94
+ filter: (data) => data.ledger.ess
95
+ }
96
+ },
97
+ {
98
+ data: {
99
+ display: (data) => _formatCurrencySpan(data.ledger.mining, 'text-info'),
100
+ sort: (data) => data.ledger.mining,
101
+ filter: (data) => data.ledger.mining
102
+ }
103
+ },
104
+ {
105
+ data: {
106
+ display: (data) => _formatCurrencySpan(data.ledger.miscellaneous),
107
+ sort: (data) => data.ledger.miscellaneous,
108
+ filter: (data) => data.ledger.miscellaneous
109
+ }
110
+ },
111
+ {
112
+ data: {
113
+ display: (data) => _formatCurrencySpan(data.ledger.costs),
114
+ sort: (data) => data.ledger.costs,
115
+ filter: (data) => data.ledger.costs
116
+ }
117
+ },
118
+ {
119
+ data: {
120
+ display: (data) => _formatCurrencySpan(data.ledger.total),
121
+ sort: (data) => data.ledger.total,
122
+ filter: (data) => data.ledger.total
123
+ }
124
+ },
125
+ {
126
+ data: 'actions'
127
+ }
128
+ ],
129
+ initComplete: function() {
130
+ _bootstrapTooltip({selector: '#character-ledger-table'});
131
+ },
132
+ drawCallback: function () {
133
+ _bootstrapTooltip({selector: '#character-ledger-table'});
134
+ },
135
+ });
136
+
137
+ // Insert totals footer for character table
138
+ characterTable.find('tfoot').html(data.information.footer_html);
139
+
140
+ /**
141
+ * Charts for Character Ledger
142
+ */
143
+ load_or_create_Chart(chartXY, data.billboard.xy_chart, 'bar');
144
+ load_or_create_Chart(chartChord, data.billboard.chord_chart, 'chart');
145
+ }
146
+ })
147
+ .catch((error) => {
148
+ console.error('Error fetching Character Ledger data:', error);
149
+ });
150
+
151
+ /**
152
+ * Modal :: View Ledger Details :: Table :: Summary Table DataTable
153
+ * Initialize DataTable for View Ledger Details Modal :: Summary Table
154
+ * @type {*|jQuery}
155
+ */
156
+ const summaryDataTable = new DataTable(characterSummaryTable, {
157
+ data: null, // Loaded via API on modal open
158
+ language: aaLedgerSettings.dataTables.language,
159
+ layout: aaLedgerSettings.dataTables.layout,
160
+ ordering: aaLedgerSettings.dataTables.ordering,
161
+ columnControl: aaLedgerSettings.dataTables.columnControl,
162
+ order: [[0, 'asc']],
163
+
164
+ columnDefs: [
165
+ {
166
+ orderable: false,
167
+ targets: [2],
168
+ columnControl: [
169
+ {target: 0, content: []},
170
+ {target: 1, content: []}
171
+ ]
172
+ },
173
+ {
174
+ targets: [1],
175
+ type: 'num'
176
+ },
177
+ ],
178
+ columns: [
179
+ {
180
+ data: {
181
+ display: (data) => data.name,
182
+ sort: (data) => data.name,
183
+ filter: (data) => data.name
184
+ }
185
+ },
186
+ {
187
+ data: {
188
+ display: (data) => _formatCurrencySpan(data.amount),
189
+ sort: (data) => data.amount,
190
+ filter: (data) => data.amount
191
+ }
192
+ },
193
+ {
194
+ data:
195
+ {
196
+ display: (data) => data.ref_types,
197
+ }
198
+ },
199
+ ],
200
+ initComplete: function () {
201
+ _bootstrapTooltip({selector: '#character-ledger-summary-table'});
202
+ _bootstrapPopOver({selector: '#character-ledger-summary-table'});
203
+ },
204
+ drawCallback: function () {
205
+ _bootstrapTooltip({selector: '#character-ledger-summary-table'});
206
+ _bootstrapPopOver({selector: '#character-ledger-summary-table'});
207
+ },
208
+ });
209
+
210
+ /**
211
+ * Modal :: View Ledger Details :: Table :: Summary Table DataTable
212
+ * Initialize DataTable for View Ledger Details Modal :: Summary Table
213
+ * @type {*|jQuery}
214
+ */
215
+ const dailyDataTable = new DataTable(characterDailyTable, {
216
+ data: null, // Loaded via API on modal open
217
+ language: aaLedgerSettings.dataTables.language,
218
+ layout: aaLedgerSettings.dataTables.layout,
219
+ ordering: aaLedgerSettings.dataTables.ordering,
220
+ columnControl: aaLedgerSettings.dataTables.columnControl,
221
+ order: [[0, 'asc']],
222
+ columnDefs: [
223
+ {
224
+ orderable: false,
225
+ targets: [2],
226
+ columnControl: [
227
+ {target: 0, content: []},
228
+ {target: 1, content: []}
229
+ ]
230
+ },
231
+ {
232
+ targets: [1],
233
+ type: 'num'
234
+ }
235
+ ],
236
+ columns: [
237
+ {
238
+ data: {
239
+ display: (data) => data.name,
240
+ sort: (data) => data.name,
241
+ filter: (data) => data.name
242
+ }
243
+ },
244
+ {
245
+ data: {
246
+ display: (data) => _formatCurrencySpan(data.amount),
247
+ sort: (data) => data.amount,
248
+ filter: (data) => data.amount
249
+ }
250
+ },
251
+ {
252
+ data:
253
+ {
254
+ display: (data) => data.ref_types,
255
+ }
256
+ },
257
+ ],
258
+ initComplete: function () {
259
+ _bootstrapTooltip({selector: '#character-ledger-daily-table'});
260
+ _bootstrapPopOver({selector: '#character-ledger-daily-table'});
261
+ },
262
+ drawCallback: function () {
263
+ _bootstrapTooltip({selector: '#character-ledger-daily-table'});
264
+ _bootstrapPopOver({selector: '#character-ledger-daily-table'});
265
+ },
266
+ });
267
+
268
+ /**
269
+ * Modal :: View Ledger Details :: Table :: Summary Table DataTable
270
+ * Initialize DataTable for View Ledger Details Modal :: Summary Table
271
+ * @type {*|jQuery}
272
+ */
273
+ const hourlyDataTable = new DataTable(characterHourlyTable, {
274
+ data: null, // Loaded via API on modal open
275
+ language: aaLedgerSettings.dataTables.language,
276
+ layout: aaLedgerSettings.dataTables.layout,
277
+ ordering: aaLedgerSettings.dataTables.ordering,
278
+ columnControl: aaLedgerSettings.dataTables.columnControl,
279
+ order: [[0, 'asc']],
280
+ columnDefs: [
281
+ {
282
+ orderable: false,
283
+ targets: [2],
284
+ columnControl: [
285
+ {target: 0, content: []},
286
+ {target: 1, content: []}
287
+ ]
288
+ },
289
+ {
290
+ targets: [1],
291
+ type: 'num'
292
+ }
293
+ ],
294
+ columns: [
295
+ {
296
+ data: {
297
+ display: (data) => data.name,
298
+ sort: (data) => data.name,
299
+ filter: (data) => data.name
300
+ }
301
+ },
302
+ {
303
+ data: {
304
+ display: (data) => _formatCurrencySpan(data.amount),
305
+ sort: (data) => data.amount,
306
+ filter: (data) => data.amount
307
+ }
308
+ },
309
+ {
310
+ data:
311
+ {
312
+ display: (data) => data.ref_types,
313
+ }
314
+ },
315
+ ],
316
+ initComplete: function () {
317
+ _bootstrapTooltip({selector: '#character-ledger-hourly-table'});
318
+ _bootstrapPopOver({selector: '#character-ledger-hourly-table'});
319
+ },
320
+ drawCallback: function () {
321
+ _bootstrapTooltip({selector: '#character-ledger-hourly-table'});
322
+ _bootstrapPopOver({selector: '#character-ledger-hourly-table'});
323
+ },
324
+ });
325
+
326
+ /**
327
+ * Load Character Ledger Details Data into DataTables in the 'ledger-view-character-ledger-details' Modal
328
+ * @param {Object} tableData :: Data Object containing Summary, Daily, and Hourly Data Arrays
329
+ */
330
+
331
+ const _loadCharacterDetails = (tableData) => {
332
+ const dtSummary = characterSummaryTable.DataTable();
333
+ dtSummary.clear().rows.add(tableData.summary).draw();
334
+ characterSummaryTable.find('tfoot').html(tableData.total.summary);
335
+
336
+ const dtDaily = characterDailyTable.DataTable();
337
+ dtDaily.clear().rows.add(tableData.daily).draw();
338
+ characterDailyTable.find('tfoot').html(tableData.total.daily);
339
+
340
+ const dtHourly = characterHourlyTable.DataTable();
341
+ dtHourly.clear().rows.add(tableData.hourly).draw();
342
+ characterHourlyTable.find('tfoot').html(tableData.total.hourly);
343
+ };
344
+
345
+ /**
346
+ * Clear related DataTables on Close for the 'ledger-view-character-ledger-details' Modal
347
+ */
348
+ const _clearCharacterDetails = () => {
349
+ const dtSummary = characterSummaryTable.DataTable();
350
+ dtSummary.clear().draw();
351
+ characterSummaryTable.find('tfoot').html('');
352
+
353
+ const dtDaily = characterDailyTable.DataTable();
354
+ dtDaily.clear().draw();
355
+ characterDailyTable.find('tfoot').html('');
356
+
357
+ const dtHourly = characterHourlyTable.DataTable();
358
+ dtHourly.clear().draw();
359
+ characterHourlyTable.find('tfoot').html('');
360
+ };
361
+
362
+ /**
363
+ * Modal :: Character Ledger :: Table :: Info Button Click Handler
364
+ * @const {_loadCharacterDetails} :: Load Character Ledger Details Data into DataTables in the 'ledger-view-character-ledger-details' Modal
365
+ * @const {_clearCharacterDetails} :: Clear related DataTables on Close
366
+ * When opening, fetch data from the API Endpoint defined in the button's data-action attribute
367
+ * and load it into the Character Ledger Details DataTables related to the 'ledger-view-character-ledger-details' Modal
368
+ */
369
+ modalRequestViewCharacterLedgerDetails.on('show.bs.modal', (event) => {
370
+ const button = $(event.relatedTarget);
371
+ const url = button.data('action');
372
+
373
+ fetchGet({
374
+ url: url,
375
+ })
376
+ .then((data) => {
377
+ if (data) {
378
+ _loadCharacterDetails(data);
379
+ }
380
+ })
381
+ .catch((error) => {
382
+ console.error('Error fetching Payments Details Modal:', error);
383
+ });
384
+ })
385
+ .on('hide.bs.modal', () => {
386
+ _clearCharacterDetails();
387
+ });
388
+ });