aa-fleetfinder 0.1.0a12__py3-none-any.whl → 3.0.0b2__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 (89) hide show
  1. aa_fleetfinder-3.0.0b2.dist-info/METADATA +820 -0
  2. aa_fleetfinder-3.0.0b2.dist-info/RECORD +86 -0
  3. {aa_fleetfinder-0.1.0a12.dist-info → aa_fleetfinder-3.0.0b2.dist-info}/WHEEL +1 -2
  4. fleetfinder/__init__.py +19 -0
  5. fleetfinder/app_settings.py +20 -0
  6. fleetfinder/apps.py +22 -0
  7. fleetfinder/auth_hooks.py +58 -0
  8. fleetfinder/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  9. fleetfinder/locale/cs_CZ/LC_MESSAGES/django.po +296 -0
  10. fleetfinder/locale/de/LC_MESSAGES/django.mo +0 -0
  11. fleetfinder/locale/de/LC_MESSAGES/django.po +306 -0
  12. fleetfinder/locale/django.pot +303 -0
  13. fleetfinder/locale/es/LC_MESSAGES/django.mo +0 -0
  14. fleetfinder/locale/es/LC_MESSAGES/django.po +319 -0
  15. fleetfinder/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  16. fleetfinder/locale/fr_FR/LC_MESSAGES/django.po +314 -0
  17. fleetfinder/locale/it_IT/LC_MESSAGES/django.mo +0 -0
  18. fleetfinder/locale/it_IT/LC_MESSAGES/django.po +294 -0
  19. fleetfinder/locale/ja/LC_MESSAGES/django.mo +0 -0
  20. fleetfinder/locale/ja/LC_MESSAGES/django.po +303 -0
  21. fleetfinder/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
  22. fleetfinder/locale/ko_KR/LC_MESSAGES/django.po +337 -0
  23. fleetfinder/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  24. fleetfinder/locale/nl_NL/LC_MESSAGES/django.po +294 -0
  25. fleetfinder/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  26. fleetfinder/locale/pl_PL/LC_MESSAGES/django.po +298 -0
  27. fleetfinder/locale/ru/LC_MESSAGES/django.mo +0 -0
  28. fleetfinder/locale/ru/LC_MESSAGES/django.po +319 -0
  29. fleetfinder/locale/sk/LC_MESSAGES/django.mo +0 -0
  30. fleetfinder/locale/sk/LC_MESSAGES/django.po +294 -0
  31. fleetfinder/locale/uk/LC_MESSAGES/django.mo +0 -0
  32. fleetfinder/locale/uk/LC_MESSAGES/django.po +310 -0
  33. fleetfinder/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  34. fleetfinder/locale/zh_Hans/LC_MESSAGES/django.po +319 -0
  35. fleetfinder/migrations/0001_initial.py +72 -0
  36. fleetfinder/migrations/0002_esi_error_handling_and_verbose_names.py +92 -0
  37. fleetfinder/migrations/0003_alter_fleet_fleet_commander_alter_fleet_groups_and_more.py +46 -0
  38. fleetfinder/migrations/__init__.py +0 -0
  39. fleetfinder/models.py +95 -0
  40. fleetfinder/providers.py +32 -0
  41. fleetfinder/static/fleetfinder/css/fleetfinder.css +31 -0
  42. fleetfinder/static/fleetfinder/css/fleetfinder.min.css +2 -0
  43. fleetfinder/static/fleetfinder/css/fleetfinder.min.css.map +1 -0
  44. fleetfinder/static/fleetfinder/js/fleetfinder-dashboard.js +86 -0
  45. fleetfinder/static/fleetfinder/js/fleetfinder-dashboard.min.js +2 -0
  46. fleetfinder/static/fleetfinder/js/fleetfinder-dashboard.min.js.map +1 -0
  47. fleetfinder/static/fleetfinder/js/fleetfinder-fleet-details.js +154 -0
  48. fleetfinder/static/fleetfinder/js/fleetfinder-fleet-details.min.js +2 -0
  49. fleetfinder/static/fleetfinder/js/fleetfinder-fleet-details.min.js.map +1 -0
  50. fleetfinder/static/fleetfinder/js/fleetfinder.js +23 -0
  51. fleetfinder/static/fleetfinder/js/fleetfinder.min.js +2 -0
  52. fleetfinder/static/fleetfinder/js/fleetfinder.min.js.map +1 -0
  53. fleetfinder/static/fleetfinder/libs/slim-select/2.6.0/css/slimselect.css +477 -0
  54. fleetfinder/static/fleetfinder/libs/slim-select/2.6.0/css/slimselect.min.css +2 -0
  55. fleetfinder/static/fleetfinder/libs/slim-select/2.6.0/css/slimselect.min.css.map +1 -0
  56. fleetfinder/static/fleetfinder/libs/slim-select/2.6.0/js/slimselect.min.js +1 -0
  57. fleetfinder/tasks.py +554 -0
  58. fleetfinder/templates/fleetfinder/base.html +43 -0
  59. fleetfinder/templates/fleetfinder/bundles/css/fleetfinder-css.html +3 -0
  60. fleetfinder/templates/fleetfinder/bundles/css/slim-select-css.html +3 -0
  61. fleetfinder/templates/fleetfinder/bundles/js/fleetfinder-js.html +9 -0
  62. fleetfinder/templates/fleetfinder/bundles/js/slim-select-js.html +3 -0
  63. fleetfinder/templates/fleetfinder/create-fleet.html +42 -0
  64. fleetfinder/templates/fleetfinder/dashboard.html +53 -0
  65. fleetfinder/templates/fleetfinder/edit-fleet.html +42 -0
  66. fleetfinder/templates/fleetfinder/fleet-details.html +102 -0
  67. fleetfinder/templates/fleetfinder/join-fleet.html +68 -0
  68. fleetfinder/templates/fleetfinder/modals/kick-fleet-member.html +46 -0
  69. fleetfinder/templates/fleetfinder/partials/body/form-fleet-details.html +50 -0
  70. fleetfinder/templates/fleetfinder/partials/footer/app-translation-footer.html +11 -0
  71. fleetfinder/templates/fleetfinder/partials/header/header-nav-left.html +9 -0
  72. fleetfinder/templates/fleetfinder/partials/header/header-nav-right.html +18 -0
  73. fleetfinder/templatetags/__init__.py +3 -0
  74. fleetfinder/templatetags/fleetfinder.py +33 -0
  75. fleetfinder/tests/__init__.py +41 -0
  76. fleetfinder/tests/test_access.py +74 -0
  77. fleetfinder/tests/test_auth_hooks.py +79 -0
  78. fleetfinder/tests/test_settings.py +38 -0
  79. fleetfinder/tests/test_tasks.py +1116 -0
  80. fleetfinder/tests/test_templatetags.py +65 -0
  81. fleetfinder/tests/test_user_agent.py +88 -0
  82. fleetfinder/tests/test_views.py +1184 -0
  83. fleetfinder/tests/utils.py +58 -0
  84. fleetfinder/urls.py +45 -0
  85. fleetfinder/views.py +631 -0
  86. aa_fleetfinder-0.1.0a12.dist-info/METADATA +0 -50
  87. aa_fleetfinder-0.1.0a12.dist-info/RECORD +0 -5
  88. aa_fleetfinder-0.1.0a12.dist-info/top_level.txt +0 -1
  89. {aa_fleetfinder-0.1.0a12.dist-info → aa_fleetfinder-3.0.0b2.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,2 @@
1
+ @media all{.aa-fleetfinder .eve-character-portrait,.aa-fleetfinder .eve-type-icon{margin-right:.5rem}.aa-fleetfinder .table-vertical-middle td{vertical-align:middle}.aa-fleetfinder .ss-main{appearance:none;background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);color:var(--bs-body-color);font-size:1rem;font-weight:400;line-height:1.5;min-height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}}
2
+ /*# sourceMappingURL=fleetfinder.min.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["fleetfinder.css"],"names":[],"mappings":"AAAA,A,WACI,uC,CACA,8B,CACI,kB,CAGJ,yC,CACI,qB,CAMJ,wB,CACI,e,CACA,2B,CACA,0D,CACA,qC,CACA,0B,CACA,c,CACA,e,CACA,e,CACA,qC,CACA,sB,CACA,oE,CACA,Y","file":"fleetfinder.css","sourcesContent":["@media all {\n .aa-fleetfinder .eve-character-portrait,\n .aa-fleetfinder .eve-type-icon {\n margin-right: 0.5rem;\n }\n\n .aa-fleetfinder .table-vertical-middle td {\n vertical-align: middle;\n }\n\n /* Slim Select\n --------------------------------------------------------------------------------- */\n\n .aa-fleetfinder .ss-main {\n appearance: none;\n background-clip: padding-box;\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n color: var(--bs-body-color);\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n min-height: calc(1.5em + .75rem + 2px);\n padding: .375rem .75rem;\n transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;\n width: 100%;\n }\n\n /* END Slim Select\n --------------------------------------------------------------------------------- */\n}\n"]}
@@ -0,0 +1,86 @@
1
+ /* global aaFleetFinderSettings, aaFleetFinderSettingsOverride, objectDeepMerge, fetchGet, fleetfinderBootstrapTooltip, DataTable */
2
+
3
+ $(document).ready(() => {
4
+ 'use strict';
5
+
6
+ const fleetFinderSettings = objectDeepMerge(aaFleetFinderSettings, aaFleetFinderSettingsOverride);
7
+
8
+ const table_fleet_overview = $('#table_available-fleets');
9
+ let dataTable = null;
10
+
11
+ /**
12
+ * Initialize or update the datatable.
13
+ * If the table already exists, it will be updated with new data.
14
+ * If it does not exist, a new DataTable will be created.
15
+ *
16
+ * @param {Object} data - The fleet data to populate the table.
17
+ */
18
+ const initializeOrUpdateTable = (data) => {
19
+ if (dataTable) {
20
+ // Update existing table
21
+ dataTable.clear().rows.add(data).draw();
22
+ } else {
23
+ // Initialize new table
24
+ dataTable = table_fleet_overview.DataTable({
25
+ language: {
26
+ url: fleetFinderSettings.dataTables.languageUrl
27
+ },
28
+ data: data,
29
+ columns: [
30
+ {
31
+ data: 'fleet_commander',
32
+ render: {
33
+ _: 'html',
34
+ sort: 'sort'
35
+ }
36
+ },
37
+ {
38
+ data: 'fleet_name'
39
+ },
40
+ {
41
+ data: 'created_at',
42
+ },
43
+ {
44
+ data: 'actions',
45
+ className: 'text-end',
46
+ },
47
+ ],
48
+ columnDefs: [
49
+ {
50
+ targets: 2,
51
+ render: DataTable.render.date(
52
+ fleetFinderSettings.dataTables.datetimeFormat
53
+ )
54
+ },
55
+ {
56
+ orderable: false,
57
+ targets: [3]
58
+ },
59
+ ],
60
+ order: [[0, 'asc']],
61
+ paging: false,
62
+ initComplete: () => {
63
+ // Initialize Bootstrap tooltips
64
+ fleetfinderBootstrapTooltip({selector: '#table_available-fleets'});
65
+ }
66
+ });
67
+ }
68
+ };
69
+
70
+ /**
71
+ * Fetch and update fleet data
72
+ */
73
+ const fetchFleetData = () => {
74
+ fetchGet({url: fleetFinderSettings.dataTables.url.dashboard})
75
+ .then(initializeOrUpdateTable)
76
+ .catch((error) => {
77
+ console.error('Error fetching fleet data:', error);
78
+ });
79
+ };
80
+
81
+ // Initial load
82
+ fetchFleetData();
83
+
84
+ // Refresh every 30 seconds
85
+ setInterval(fetchFleetData, 30000);
86
+ });
@@ -0,0 +1,2 @@
1
+ $(document).ready(()=>{'use strict';const e=objectDeepMerge(aaFleetFinderSettings,aaFleetFinderSettingsOverride),a=$('#table_available-fleets');let t=null;const r=r=>{t?t.clear().rows.add(r).draw():t=a.DataTable({language:{url:e.dataTables.languageUrl},data:r,columns:[{data:'fleet_commander',render:{_:'html',sort:'sort'}},{data:'fleet_name'},{data:'created_at'},{data:'actions',className:'text-end'}],columnDefs:[{targets:2,render:DataTable.render.date(e.dataTables.datetimeFormat)},{orderable:!1,targets:[3]}],order:[[0,'asc']],paging:!1,initComplete:()=>{fleetfinderBootstrapTooltip({selector:'#table_available-fleets'})}})},l=()=>{fetchGet({url:e.dataTables.url.dashboard}).then(r).catch(e=>{console.error('Error fetching fleet data:',e)})};l(),setInterval(l,3e4)});
2
+ //# sourceMappingURL=fleetfinder-dashboard.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["$","document","ready","fleetFinderSettings","objectDeepMerge","aaFleetFinderSettings","aaFleetFinderSettingsOverride","table_fleet_overview","dataTable","initializeOrUpdateTable","data","clear","rows","add","draw","DataTable","language","url","dataTables","languageUrl","columns","render","_","sort","className","columnDefs","targets","date","datetimeFormat","orderable","order","paging","initComplete","fleetfinderBootstrapTooltip","selector","fetchFleetData","fetchGet","dashboard","then","catch","error","console","setInterval"],"sources":["fleetfinder-dashboard.js"],"mappings":"AAEAA,EAAEC,UAAUC,MAAM,KACd,aAEA,MAAMC,EAAsBC,gBAAgBC,sBAAuBC,+BAE7DC,EAAuBP,EAAE,2BAC/B,IAAIQ,EAAY,KAShB,MAAMC,EAA2BC,IACzBF,EAEAA,EAAUG,QAAQC,KAAKC,IAAIH,GAAMI,OAGjCN,EAAYD,EAAqBQ,UAAU,CACvCC,SAAU,CACNC,IAAKd,EAAoBe,WAAWC,aAExCT,KAAMA,EACNU,QAAS,CACL,CACIV,KAAM,kBACNW,OAAQ,CACJC,EAAG,OACHC,KAAM,SAGd,CACIb,KAAM,cAEV,CACIA,KAAM,cAEV,CACIA,KAAM,UACNc,UAAW,aAGnBC,WAAY,CACR,CACIC,QAAS,EACTL,OAAQN,UAAUM,OAAOM,KACrBxB,EAAoBe,WAAWU,iBAGvC,CACIC,WAAW,EACXH,QAAS,CAAC,KAGlBI,MAAO,CAAC,CAAC,EAAG,QACZC,QAAQ,EACRC,aAAc,KAEVC,4BAA4B,CAACC,SAAU,gCASjDC,EAAiB,KACnBC,SAAS,CAACnB,IAAKd,EAAoBe,WAAWD,IAAIoB,YAC7CC,KAAK7B,GACL8B,MAAOC,IACJC,QAAQD,MAAM,6BAA8BA,MAKxDL,IAGAO,YAAYP,EAAgB","ignoreList":[]}
@@ -0,0 +1,154 @@
1
+ /* global objectDeepMerge, aaFleetFinderSettings, aaFleetFinderSettingsOverride, fetchGet, fetchPost, fleetfinderBootstrapTooltip */
2
+
3
+ $(document).ready(() => {
4
+ 'use strict';
5
+
6
+ const fleetFinderSettings = objectDeepMerge(aaFleetFinderSettings, aaFleetFinderSettingsOverride);
7
+
8
+ /* DataTables
9
+ ------------------------------------------------------------------------- */
10
+ const elements = {
11
+ tableFleetMembers: $('#table-fleet-members'),
12
+ tableFleetComposition: $('#table-fleet-composition'),
13
+ kickFleetMemberModal: $('#kick-fleet-member'),
14
+ kickFleetMemberCharacterName: $('#kick-fleet-member-character-name'),
15
+ modalButtonConfirmKickFleetMember: $('#modal-button-confirm-kick-fleet-member'),
16
+ warning: $('#fleetfinder-fleet-details-warning')
17
+ };
18
+ const dataTableConfig = {
19
+ language: {
20
+ url: fleetFinderSettings.dataTables.languageUrl
21
+ },
22
+ paging: false,
23
+ destroy: true
24
+ };
25
+
26
+ const populateDatatables = () => {
27
+ fetchGet({
28
+ url: fleetFinderSettings.dataTables.url.fleetDetails,
29
+ })
30
+ .then((data) => {
31
+ if (data.error) {
32
+ elements.warning.removeClass('d-none').text(data.error);
33
+
34
+ return;
35
+ }
36
+
37
+ elements.warning.addClass('d-none');
38
+
39
+ elements.tableFleetMembers.DataTable({
40
+ ...dataTableConfig,
41
+ data: data.fleet_member,
42
+ columns: [
43
+ {
44
+ render: (data, type, row) => {
45
+ const fwIcon = '<i class="fa-solid fa-star"></i>';
46
+
47
+ return row.is_fleet_boss ? `${row.character_name} <sup data-bs-tooltip="aa-fleetfinder" title="${fleetFinderSettings.l10n.fleetBoss}"><small>${fwIcon}</small></sup>` : row.character_name;
48
+ }
49
+ },
50
+ {data: 'ship_type_name'},
51
+ {data: 'solar_system_name'},
52
+ {
53
+ render: (data, type, row) => {
54
+ const fwIcon = '<i class="fa-solid fa-user-minus"></i>';
55
+ const dataAttributes = Object.entries({
56
+ 'data-character-id': row.character_id,
57
+ 'data-character-name': row.character_name,
58
+ 'data-bs-toggle': 'modal',
59
+ 'data-bs-target': '#kick-fleet-member',
60
+ 'data-bs-tooltip': 'aa-fleetfinder'
61
+ }).map(([key, value]) => {
62
+ return `${key}="${value}"`;
63
+ }).join(' ');
64
+
65
+ return row.is_fleet_boss ? '' : `<button type="button" class="btn btn-sm btn-danger" ${dataAttributes} title="${fleetFinderSettings.l10n.kickMemberFromFleet}">${fwIcon}</button>`;
66
+ },
67
+ orderable: false,
68
+ searchable: false,
69
+ width: '50px',
70
+ className: 'text-end'
71
+ }
72
+ ],
73
+ createdRow: (row, data, rowIndex) => {
74
+ $(row).attr('data-row-id', rowIndex);
75
+ $(row).attr('data-character-id', data.character_id);
76
+ },
77
+ initComplete: () => {
78
+ // Initialize Bootstrap tooltips
79
+ fleetfinderBootstrapTooltip({selector: '#table-fleet-members'});
80
+ }
81
+ });
82
+
83
+ elements.tableFleetComposition.DataTable({
84
+ ...dataTableConfig,
85
+ data: data.fleet_composition,
86
+ columns: [
87
+ {data: 'ship_type_name'},
88
+ {data: 'number', className: 'text-right', width: '100px'}
89
+ ],
90
+ order: [[1, 'desc']]
91
+ });
92
+ })
93
+ .catch((error) => {
94
+ console.error('Error fetching fleet details:', error);
95
+ });
96
+ };
97
+
98
+ populateDatatables();
99
+
100
+ setInterval(populateDatatables, 30000);
101
+
102
+ /* Modals
103
+ ------------------------------------------------------------------------- */
104
+ // Handle the kick fleet member modal
105
+ elements.kickFleetMemberModal
106
+ .on('show.bs.modal', (event) => {
107
+ const button = $(event.relatedTarget);
108
+ const characterId = button.data('character-id');
109
+ const characterName = button.data('character-name');
110
+ const link = fleetFinderSettings.dataTables.url.kickFleetMember;
111
+
112
+ // Populate the modal content
113
+ $('#kick-fleet-member-character-name').text(characterName);
114
+
115
+ $('#modal-button-confirm-kick-fleet-member')
116
+ // Remove any previous click handlers to avoid multiple bindings
117
+ .off('click.kickMember')
118
+ // Bind the click event for the confirmation button
119
+ .on('click.kickMember', () => {
120
+ fetchPost({
121
+ url: link,
122
+ csrfToken: fleetFinderSettings.csrfToken,
123
+ payload: {
124
+ memberId: characterId
125
+ },
126
+ responseIsJson: true
127
+ })
128
+ .then(() => {
129
+ populateDatatables();
130
+
131
+ $('#kick-fleet-member').modal('hide');
132
+ })
133
+ .catch((error) => {
134
+ console.error('Error kicking fleet member:', error);
135
+
136
+ $('#kick-fleet-member .modal-kick-fleet-member-error')
137
+ .removeClass('d-none')
138
+ .find('.modal-kick-fleet-member-error-message')
139
+ .text(error || fleetFinderSettings.l10n.unknownError);
140
+ });
141
+ });
142
+ })
143
+ .on('hide.bs.modal', () => {
144
+ // Reset modal content
145
+ $('#kick-fleet-member-character-name').empty();
146
+ $('#kick-fleet-member .modal-kick-fleet-member-error')
147
+ .addClass('d-none')
148
+ .find('.modal-kick-fleet-member-error-message')
149
+ .empty();
150
+
151
+ // Clean up event handler
152
+ $('#modal-button-confirm-kick-fleet-member').off('click.kickMember');
153
+ });
154
+ });
@@ -0,0 +1,2 @@
1
+ $(document).ready(()=>{'use strict';const e=objectDeepMerge(aaFleetFinderSettings,aaFleetFinderSettingsOverride),t={tableFleetMembers:$('#table-fleet-members'),tableFleetComposition:$('#table-fleet-composition'),kickFleetMemberModal:$('#kick-fleet-member'),kickFleetMemberCharacterName:$('#kick-fleet-member-character-name'),modalButtonConfirmKickFleetMember:$('#modal-button-confirm-kick-fleet-member'),warning:$('#fleetfinder-fleet-details-warning')},a={language:{url:e.dataTables.languageUrl},paging:!1,destroy:!0},r=()=>{fetchGet({url:e.dataTables.url.fleetDetails}).then(r=>{r.error?t.warning.removeClass('d-none').text(r.error):(t.warning.addClass('d-none'),t.tableFleetMembers.DataTable({...a,data:r.fleet_member,columns:[{render:(t,a,r)=>{const l='<i class="fa-solid fa-star"></i>';return r.is_fleet_boss?`${r.character_name} <sup data-bs-tooltip="aa-fleetfinder" title="${e.l10n.fleetBoss}"><small>${l}</small></sup>`:r.character_name}},{data:'ship_type_name'},{data:'solar_system_name'},{render:(t,a,r)=>{const l='<i class="fa-solid fa-user-minus"></i>',m=Object.entries({'data-character-id':r.character_id,'data-character-name':r.character_name,'data-bs-toggle':'modal','data-bs-target':'#kick-fleet-member','data-bs-tooltip':'aa-fleetfinder'}).map(([e,t])=>`${e}="${t}"`).join(' ');return r.is_fleet_boss?'':`<button type="button" class="btn btn-sm btn-danger" ${m} title="${e.l10n.kickMemberFromFleet}">${l}</button>`},orderable:!1,searchable:!1,width:'50px',className:'text-end'}],createdRow:(e,t,a)=>{$(e).attr('data-row-id',a),$(e).attr('data-character-id',t.character_id)},initComplete:()=>{fleetfinderBootstrapTooltip({selector:'#table-fleet-members'})}}),t.tableFleetComposition.DataTable({...a,data:r.fleet_composition,columns:[{data:'ship_type_name'},{data:'number',className:'text-right',width:'100px'}],order:[[1,'desc']]}))}).catch(e=>{console.error('Error fetching fleet details:',e)})};r(),setInterval(r,3e4),t.kickFleetMemberModal.on('show.bs.modal',t=>{const a=$(t.relatedTarget),l=a.data('character-id'),m=a.data('character-name'),o=e.dataTables.url.kickFleetMember;$('#kick-fleet-member-character-name').text(m),$('#modal-button-confirm-kick-fleet-member').off('click.kickMember').on('click.kickMember',()=>{fetchPost({url:o,csrfToken:e.csrfToken,payload:{memberId:l},responseIsJson:!0}).then(()=>{r(),$('#kick-fleet-member').modal('hide')}).catch(t=>{console.error('Error kicking fleet member:',t),$('#kick-fleet-member .modal-kick-fleet-member-error').removeClass('d-none').find('.modal-kick-fleet-member-error-message').text(t||e.l10n.unknownError)})})}).on('hide.bs.modal',()=>{$('#kick-fleet-member-character-name').empty(),$('#kick-fleet-member .modal-kick-fleet-member-error').addClass('d-none').find('.modal-kick-fleet-member-error-message').empty(),$('#modal-button-confirm-kick-fleet-member').off('click.kickMember')})});
2
+ //# sourceMappingURL=fleetfinder-fleet-details.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["$","document","ready","fleetFinderSettings","objectDeepMerge","aaFleetFinderSettings","aaFleetFinderSettingsOverride","elements","tableFleetMembers","tableFleetComposition","kickFleetMemberModal","kickFleetMemberCharacterName","modalButtonConfirmKickFleetMember","warning","dataTableConfig","language","url","dataTables","languageUrl","paging","destroy","populateDatatables","fetchGet","fleetDetails","then","data","error","removeClass","text","addClass","DataTable","fleet_member","columns","render","type","row","fwIcon","is_fleet_boss","character_name","l10n","fleetBoss","dataAttributes","Object","entries","character_id","map","key","value","join","kickMemberFromFleet","orderable","searchable","width","className","createdRow","rowIndex","attr","initComplete","fleetfinderBootstrapTooltip","selector","fleet_composition","order","catch","console","setInterval","on","event","button","relatedTarget","characterId","characterName","link","kickFleetMember","off","fetchPost","csrfToken","payload","memberId","responseIsJson","modal","find","unknownError","empty"],"sources":["fleetfinder-fleet-details.js"],"mappings":"AAEAA,EAAEC,UAAUC,MAAM,KACd,aAEA,MAAMC,EAAsBC,gBAAgBC,sBAAuBC,+BAI7DC,EAAW,CACbC,kBAAmBR,EAAE,wBACrBS,sBAAuBT,EAAE,4BACzBU,qBAAsBV,EAAE,sBACxBW,6BAA8BX,EAAE,qCAChCY,kCAAmCZ,EAAE,2CACrCa,QAASb,EAAE,uCAETc,EAAkB,CACpBC,SAAU,CACNC,IAAKb,EAAoBc,WAAWC,aAExCC,QAAQ,EACRC,SAAS,GAGPC,EAAqB,KACvBC,SAAS,CACLN,IAAKb,EAAoBc,WAAWD,IAAIO,eAEvCC,KAAMC,IACCA,EAAKC,MACLnB,EAASM,QAAQc,YAAY,UAAUC,KAAKH,EAAKC,QAKrDnB,EAASM,QAAQgB,SAAS,UAE1BtB,EAASC,kBAAkBsB,UAAU,IAC9BhB,EACHW,KAAMA,EAAKM,aACXC,QAAS,CACL,CACIC,OAAQ,CAACR,EAAMS,EAAMC,KACjB,MAAMC,EAAS,mCAEf,OAAOD,EAAIE,cAAgB,GAAGF,EAAIG,+DAA+DnC,EAAoBoC,KAAKC,qBAAqBJ,kBAAyBD,EAAIG,iBAGpL,CAACb,KAAM,kBACP,CAACA,KAAM,qBACP,CACIQ,OAAQ,CAACR,EAAMS,EAAMC,KACjB,MAAMC,EAAS,yCACTK,EAAiBC,OAAOC,QAAQ,CAClC,oBAAqBR,EAAIS,aACzB,sBAAuBT,EAAIG,eAC3B,iBAAkB,QAClB,iBAAkB,qBAClB,kBAAmB,mBACpBO,IAAI,EAAEC,EAAKC,KACH,GAAGD,MAAQC,MACnBC,KAAK,KAER,OAAOb,EAAIE,cAAgB,GAAK,uDAAuDI,YAAyBtC,EAAoBoC,KAAKU,wBAAwBb,cAErKc,WAAW,EACXC,YAAY,EACZC,MAAO,OACPC,UAAW,aAGnBC,WAAY,CAACnB,EAAKV,EAAM8B,KACpBvD,EAAEmC,GAAKqB,KAAK,cAAeD,GAC3BvD,EAAEmC,GAAKqB,KAAK,oBAAqB/B,EAAKmB,eAE1Ca,aAAc,KAEVC,4BAA4B,CAACC,SAAU,4BAI/CpD,EAASE,sBAAsBqB,UAAU,IAClChB,EACHW,KAAMA,EAAKmC,kBACX5B,QAAS,CACL,CAACP,KAAM,kBACP,CAACA,KAAM,SAAU4B,UAAW,aAAcD,MAAO,UAErDS,MAAO,CAAC,CAAC,EAAG,cAGnBC,MAAOpC,IACJqC,QAAQrC,MAAM,gCAAiCA,MAI3DL,IAEA2C,YAAY3C,EAAoB,KAKhCd,EAASG,qBACJuD,GAAG,gBAAkBC,IAClB,MAAMC,EAASnE,EAAEkE,EAAME,eACjBC,EAAcF,EAAO1C,KAAK,gBAC1B6C,EAAgBH,EAAO1C,KAAK,kBAC5B8C,EAAOpE,EAAoBc,WAAWD,IAAIwD,gBAGhDxE,EAAE,qCAAqC4B,KAAK0C,GAE5CtE,EAAE,2CAEGyE,IAAI,oBAEJR,GAAG,mBAAoB,KACpBS,UAAU,CACN1D,IAAKuD,EACLI,UAAWxE,EAAoBwE,UAC/BC,QAAS,CACLC,SAAUR,GAEdS,gBAAgB,IAEftD,KAAK,KACFH,IAEArB,EAAE,sBAAsB+E,MAAM,UAEjCjB,MAAOpC,IACJqC,QAAQrC,MAAM,8BAA+BA,GAE7C1B,EAAE,qDACG2B,YAAY,UACZqD,KAAK,0CACLpD,KAAKF,GAASvB,EAAoBoC,KAAK0C,oBAI/DhB,GAAG,gBAAiB,KAEjBjE,EAAE,qCAAqCkF,QACvClF,EAAE,qDACG6B,SAAS,UACTmD,KAAK,0CACLE,QAGLlF,EAAE,2CAA2CyE,IAAI","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ /* global bootstrap */
2
+
3
+ /* jshint -W097 */
4
+ 'use strict';
5
+
6
+ /**
7
+ * Bootstrap tooltip
8
+ *
9
+ * @param {string} [selector=body] Selector for the tooltip elements, defaults to 'body'
10
+ * to apply to all elements with the data-bs-tooltip attribute.
11
+ * Example: 'body', '.my-tooltip-class', '#my-tooltip-id'
12
+ * If you want to apply it to a specific element, use that element's selector.
13
+ * If you want to apply it to all elements with the data-bs-tooltip attribute,
14
+ * use 'body' or leave it empty.
15
+ * @param {string} [namespace=aa-fleetfinderl] Namespace for the tooltip
16
+ * @returns {void}
17
+ */
18
+ const fleetfinderBootstrapTooltip = ({selector = 'body', namespace = 'aa-fleetfinder'}) => { // eslint-disable-line no-unused-vars
19
+ document.querySelectorAll(`${selector} [data-bs-tooltip="${namespace}"]`)
20
+ .forEach((tooltipTriggerEl) => {
21
+ return new bootstrap.Tooltip(tooltipTriggerEl);
22
+ });
23
+ };
@@ -0,0 +1,2 @@
1
+ 'use strict';const fleetfinderBootstrapTooltip=({selector:t='body',namespace:e='aa-fleetfinder'})=>{document.querySelectorAll(`${t} [data-bs-tooltip="${e}"]`).forEach(t=>new bootstrap.Tooltip(t))};
2
+ //# sourceMappingURL=fleetfinder.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fleetfinderBootstrapTooltip","selector","namespace","document","querySelectorAll","forEach","tooltipTriggerEl","bootstrap","Tooltip"],"sources":["fleetfinder.js"],"mappings":"AAGA,aAcA,MAAMA,4BAA8B,EAAEC,WAAW,OAAQC,YAAY,qBACjEC,SAASC,iBAAiB,GAAGH,uBAA8BC,OACtDG,QAASC,GACC,IAAIC,UAAUC,QAAQF","ignoreList":[]}