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
@@ -6,7 +6,10 @@
6
6
  /* global am5xy */
7
7
  /* global entityType */
8
8
 
9
- // Function to dispose of a root instance if it exists
9
+ /**
10
+ * Helper function to dispose existing Root instances
11
+ * @param {*} rootId
12
+ */
10
13
  function disposeRoot(rootId) {
11
14
  const rootElement = am5.registry.rootElements.find(root => root.dom.id === rootId);
12
15
  if (rootElement) {
@@ -14,6 +17,13 @@ function disposeRoot(rootId) {
14
17
  }
15
18
  }
16
19
 
20
+ /**
21
+ * Helper function to load or create a chart
22
+ * @param {*} div - div id
23
+ * @param {*} data - chart data
24
+ * @param {*} chart - chart type
25
+ * @returns {boolean|object} - returns true or the created amChart object
26
+ */
17
27
  function load_or_create_Chart(div, data, chart) {
18
28
  // Dispose existing Root instances
19
29
  disposeRoot(div);
@@ -43,6 +53,13 @@ function initCharts(data) {
43
53
  const chart = load_or_create_Chart(rootChartId, billboard.charts, 'chart');
44
54
  }
45
55
 
56
+ /**
57
+ * Helper function to create a chord chart
58
+ * @param {*} root - am5 Root object
59
+ * @param {*} data - chart data
60
+ * @param {*} id - div id
61
+ * @returns {object} - amChart object
62
+ */
46
63
  function createChordChart(root, data, id) {
47
64
  if (!data || !Array.isArray(data.series)) {
48
65
  console.log('Data is not in the expected format:', data);
@@ -124,6 +141,13 @@ function createChordChart(root, data, id) {
124
141
  series.appear(1000, 100);
125
142
  }
126
143
 
144
+ /**
145
+ * Helper function to create a bar chart
146
+ * @param {*} root - am5 Root object
147
+ * @param {*} data - chart data
148
+ * @param {*} id - div id
149
+ * @returns {object} - amChart object
150
+ */
127
151
  function createRattingBarChart(root, data, id) {
128
152
  if (!data || !Array.isArray(data.series)) {
129
153
  console.debug('Data is not in the expected format:', data);
@@ -0,0 +1,383 @@
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 allianceTable = $('#alliance-ledger-table');
8
+ const allianceSummaryTable = $('#alliance-ledger-summary-table');
9
+ const allianceDailyTable = $('#alliance-ledger-daily-table');
10
+ const allianceHourlyTable = $('#alliance-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 modalRequestViewCorporationLedgerDetails = $('#ledger-view-alliance-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.AllianceLedger,
43
+ })
44
+ .then((data) => {
45
+ if (data) {
46
+ /**
47
+ * DataTable for Corporation Ledger
48
+ * @type {*|jQuery}
49
+ */
50
+ const allianceDataTable = new DataTable(allianceTable, {
51
+ data: data.corporations,
52
+ language: aaLedgerSettings.dataTables.language,
53
+ layout: aaLedgerSettings.dataTables.layout,
54
+ ordering: aaLedgerSettings.dataTables.ordering,
55
+ columnControl: aaLedgerSettings.dataTables.columnControl,
56
+ order: [[5, 'desc']],
57
+ columnDefs: [
58
+ {
59
+ orderable: false,
60
+ targets: 6,
61
+ columnControl: [
62
+ {target: 0, content: []},
63
+ {target: 1, content: []}
64
+ ]
65
+ },
66
+ {
67
+ targets: [1,2,3,4,5],
68
+ type: 'num'
69
+ },
70
+ {
71
+ className: 'border-start',
72
+ targets: 5
73
+ }
74
+ ],
75
+ columns: [
76
+ {
77
+ data: {
78
+ display: (data) => data.corporation.icon + ' ' + data.corporation.entity_name + ' ' + data.corporation.popover,
79
+ sort: (data) => data.corporation.entity_name,
80
+ filter: (data) => data.corporation.entity_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.miscellaneous),
100
+ sort: (data) => data.ledger.miscellaneous,
101
+ filter: (data) => data.ledger.miscellaneous
102
+ }
103
+ },
104
+ {
105
+ data: {
106
+ display: (data) => _formatCurrencySpan(data.ledger.costs),
107
+ sort: (data) => data.ledger.costs,
108
+ filter: (data) => data.ledger.costs
109
+ }
110
+ },
111
+ {
112
+ data: {
113
+ display: (data) => _formatCurrencySpan(data.ledger.total),
114
+ sort: (data) => data.ledger.total,
115
+ filter: (data) => data.ledger.total
116
+ }
117
+ },
118
+ {
119
+ data: 'actions'
120
+ }
121
+ ],
122
+ initComplete: function() {
123
+ _bootstrapTooltip({selector: '#alliance-ledger-table'});
124
+ _bootstrapPopOver({selector: '#alliance-ledger-table'});
125
+ },
126
+ drawCallback: function () {
127
+ _bootstrapTooltip({selector: '#alliance-ledger-table'});
128
+ _bootstrapPopOver({selector: '#alliance-ledger-table'});
129
+ },
130
+ });
131
+
132
+ // Insert totals footer for alliance table
133
+ allianceTable.find('tfoot').html(data.information.footer_html);
134
+
135
+ /**
136
+ * Charts for Corporation Ledger
137
+ */
138
+ load_or_create_Chart(chartXY, data.billboard.xy_chart, 'bar');
139
+ load_or_create_Chart(chartChord, data.billboard.chord_chart, 'chart');
140
+ }
141
+ })
142
+ .catch((error) => {
143
+ console.error('Error fetching Corporation Ledger data:', error);
144
+ });
145
+
146
+ /**
147
+ * Modal :: View Ledger Details :: Table :: Summary Table DataTable
148
+ * Initialize DataTable for View Ledger Details Modal :: Summary Table
149
+ * @type {*|jQuery}
150
+ */
151
+ const summaryDataTable = new DataTable(allianceSummaryTable, {
152
+ data: null, // Loaded via API on modal open
153
+ language: aaLedgerSettings.dataTables.language,
154
+ layout: aaLedgerSettings.dataTables.layout,
155
+ ordering: aaLedgerSettings.dataTables.ordering,
156
+ columnControl: aaLedgerSettings.dataTables.columnControl,
157
+ order: [[0, 'asc']],
158
+
159
+ columnDefs: [
160
+ {
161
+ orderable: false,
162
+ targets: [2],
163
+ columnControl: [
164
+ {target: 0, content: []},
165
+ {target: 1, content: []}
166
+ ]
167
+ },
168
+ {
169
+ targets: [1],
170
+ type: 'num'
171
+ },
172
+ ],
173
+ columns: [
174
+ {
175
+ data: {
176
+ display: (data) => data.name,
177
+ sort: (data) => data.name,
178
+ filter: (data) => data.name
179
+ }
180
+ },
181
+ {
182
+ data: {
183
+ display: (data) => _formatCurrencySpan(data.amount),
184
+ sort: (data) => data.amount,
185
+ filter: (data) => data.amount
186
+ }
187
+ },
188
+ {
189
+ data:
190
+ {
191
+ display: (data) => data.ref_types,
192
+ }
193
+ },
194
+ ],
195
+ initComplete: function () {
196
+ _bootstrapTooltip({selector: '#alliance-ledger-summary-table'});
197
+ _bootstrapPopOver({selector: '#alliance-ledger-summary-table'});
198
+ },
199
+ drawCallback: function () {
200
+ _bootstrapTooltip({selector: '#alliance-ledger-summary-table'});
201
+ _bootstrapPopOver({selector: '#alliance-ledger-summary-table'});
202
+ },
203
+ });
204
+
205
+ /**
206
+ * Modal :: View Ledger Details :: Table :: Summary Table DataTable
207
+ * Initialize DataTable for View Ledger Details Modal :: Summary Table
208
+ * @type {*|jQuery}
209
+ */
210
+ const dailyDataTable = new DataTable(allianceDailyTable, {
211
+ data: null, // Loaded via API on modal open
212
+ language: aaLedgerSettings.dataTables.language,
213
+ layout: aaLedgerSettings.dataTables.layout,
214
+ ordering: aaLedgerSettings.dataTables.ordering,
215
+ columnControl: aaLedgerSettings.dataTables.columnControl,
216
+ order: [[0, 'asc']],
217
+ columnDefs: [
218
+ {
219
+ orderable: false,
220
+ targets: [2],
221
+ columnControl: [
222
+ {target: 0, content: []},
223
+ {target: 1, content: []}
224
+ ]
225
+ },
226
+ {
227
+ targets: [1],
228
+ type: 'num'
229
+ }
230
+ ],
231
+ columns: [
232
+ {
233
+ data: {
234
+ display: (data) => data.name,
235
+ sort: (data) => data.name,
236
+ filter: (data) => data.name
237
+ }
238
+ },
239
+ {
240
+ data: {
241
+ display: (data) => _formatCurrencySpan(data.amount),
242
+ sort: (data) => data.amount,
243
+ filter: (data) => data.amount
244
+ }
245
+ },
246
+ {
247
+ data:
248
+ {
249
+ display: (data) => data.ref_types,
250
+ }
251
+ },
252
+ ],
253
+ initComplete: function () {
254
+ _bootstrapTooltip({selector: '#alliance-ledger-daily-table'});
255
+ _bootstrapPopOver({selector: '#alliance-ledger-daily-table'});
256
+ },
257
+ drawCallback: function () {
258
+ _bootstrapTooltip({selector: '#alliance-ledger-daily-table'});
259
+ _bootstrapPopOver({selector: '#alliance-ledger-daily-table'});
260
+ },
261
+ });
262
+
263
+ /**
264
+ * Modal :: View Ledger Details :: Table :: Summary Table DataTable
265
+ * Initialize DataTable for View Ledger Details Modal :: Summary Table
266
+ * @type {*|jQuery}
267
+ */
268
+ const hourlyDataTable = new DataTable(allianceHourlyTable, {
269
+ data: null, // Loaded via API on modal open
270
+ language: aaLedgerSettings.dataTables.language,
271
+ layout: aaLedgerSettings.dataTables.layout,
272
+ ordering: aaLedgerSettings.dataTables.ordering,
273
+ columnControl: aaLedgerSettings.dataTables.columnControl,
274
+ order: [[0, 'asc']],
275
+ columnDefs: [
276
+ {
277
+ orderable: false,
278
+ targets: [2],
279
+ columnControl: [
280
+ {target: 0, content: []},
281
+ {target: 1, content: []}
282
+ ]
283
+ },
284
+ {
285
+ targets: [1],
286
+ type: 'num'
287
+ }
288
+ ],
289
+ columns: [
290
+ {
291
+ data: {
292
+ display: (data) => data.name,
293
+ sort: (data) => data.name,
294
+ filter: (data) => data.name
295
+ }
296
+ },
297
+ {
298
+ data: {
299
+ display: (data) => _formatCurrencySpan(data.amount),
300
+ sort: (data) => data.amount,
301
+ filter: (data) => data.amount
302
+ }
303
+ },
304
+ {
305
+ data:
306
+ {
307
+ display: (data) => data.ref_types,
308
+ }
309
+ },
310
+ ],
311
+ initComplete: function () {
312
+ _bootstrapTooltip({selector: '#alliance-ledger-hourly-table'});
313
+ _bootstrapPopOver({selector: '#alliance-ledger-hourly-table'});
314
+ },
315
+ drawCallback: function () {
316
+ _bootstrapTooltip({selector: '#alliance-ledger-hourly-table'});
317
+ _bootstrapPopOver({selector: '#alliance-ledger-hourly-table'});
318
+ },
319
+ });
320
+
321
+ /**
322
+ * Load Corporation Ledger Details Data into DataTables in the 'ledger-view-alliance-ledger-details' Modal
323
+ * @param {Object} tableData :: Data Object containing Summary, Daily, and Hourly Data Arrays
324
+ */
325
+
326
+ const _loadCorporationDetails = (tableData) => {
327
+ const dtSummary = allianceSummaryTable.DataTable();
328
+ dtSummary.clear().rows.add(tableData.summary).draw();
329
+ allianceSummaryTable.find('tfoot').html(tableData.total.summary);
330
+
331
+ const dtDaily = allianceDailyTable.DataTable();
332
+ dtDaily.clear().rows.add(tableData.daily).draw();
333
+ allianceDailyTable.find('tfoot').html(tableData.total.daily);
334
+
335
+ const dtHourly = allianceHourlyTable.DataTable();
336
+ dtHourly.clear().rows.add(tableData.hourly).draw();
337
+ allianceHourlyTable.find('tfoot').html(tableData.total.hourly);
338
+ };
339
+
340
+ /**
341
+ * Clear related DataTables on Close for the 'ledger-view-alliance-ledger-details' Modal
342
+ */
343
+ const _clearCorporationDetails = () => {
344
+ const dtSummary = allianceSummaryTable.DataTable();
345
+ dtSummary.clear().draw();
346
+ allianceSummaryTable.find('tfoot').html('');
347
+
348
+ const dtDaily = allianceDailyTable.DataTable();
349
+ dtDaily.clear().draw();
350
+ allianceDailyTable.find('tfoot').html('');
351
+
352
+ const dtHourly = allianceHourlyTable.DataTable();
353
+ dtHourly.clear().draw();
354
+ allianceHourlyTable.find('tfoot').html('');
355
+ };
356
+
357
+ /**
358
+ * Modal :: Corporation Ledger :: Table :: Info Button Click Handler
359
+ * @const {_loadCorporationDetails} :: Load Corporation Ledger Details Data into DataTables in the 'ledger-view-alliance-ledger-details' Modal
360
+ * @const {_clearCorporationDetails} :: Clear related DataTables on Close
361
+ * When opening, fetch data from the API Endpoint defined in the button's data-action attribute
362
+ * and load it into the Corporation Ledger Details DataTables related to the 'ledger-view-alliance-ledger-details' Modal
363
+ */
364
+ modalRequestViewCorporationLedgerDetails.on('show.bs.modal', (event) => {
365
+ const button = $(event.relatedTarget);
366
+ const url = button.data('action');
367
+
368
+ fetchGet({
369
+ url: url,
370
+ })
371
+ .then((data) => {
372
+ if (data) {
373
+ _loadCorporationDetails(data);
374
+ }
375
+ })
376
+ .catch((error) => {
377
+ console.error('Error fetching Payments Details Modal:', error);
378
+ });
379
+ })
380
+ .on('hide.bs.modal', () => {
381
+ _clearCorporationDetails();
382
+ });
383
+ });