diff --git a/docs/ColumnSearch.js b/docs/ColumnSearch.js new file mode 100644 index 00000000000..bafe737a09b --- /dev/null +++ b/docs/ColumnSearch.js @@ -0,0 +1,35 @@ +// adapted from https://datatables.net/examples/api/multi_filter_select.html +class ColumnSearch { + + #column; + #select; + + constructor(column) { + this.#column = column; + const clazz = this; + $('
').appendTo($(this.#column.header())); + this.#select = $('') + .appendTo($(this.#column.header())) + .on( + 'change', + function () { + const val = $.fn.dataTable.util.escapeRegex($(this).val()); + clazz.#column + .search(val ? '^' + val + '$' : '', true, false) + .draw(); + }); + } + + columnContentUpdated() { + this.#select.empty(); + this.#select.append(''); + const clazz = this; + this.#column + .data() + .unique() + .sort() + .each(function (d, _) { + clazz.#select.append(''); + }); + } +} \ No newline at end of file diff --git a/docs/batchCodeTable.html b/docs/batchCodeTable.html index 002016d9ad5..ec29179045a 100644 --- a/docs/batchCodeTable.html +++ b/docs/batchCodeTable.html @@ -1,25 +1,33 @@ + - - -Batch Codes of Coronavirus 2019 Vaccines - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + -Fork me on GitHub -

Batch Codes of Coronavirus 2019 Vaccines

-

- -

-

-

-Check out your batch code (Last updated: January 27, 2023) + Fork me on GitHub +

Batch Codes of Coronavirus 2019 Vaccines

+

+

- - - - - - - - - - - - - - - -
BatchAdverse Reaction ReportsDeathsDisabilitiesLife Threatening IllnessesCompanyCountriesSevere reportsLethality
-

Data Source: -Vaccine Adverse Event Reporting System +

+

+ Check out your batch code (Last updated: January 27, 2023) +

+ + + + + + + + + + + + + + + +
BatchAdverse Reaction ReportsDeathsDisabilitiesLife Threatening IllnessesCompanyCountriesSevere reportsLethality
+

Data Source: + Vaccine Adverse Event Reporting System (VAERS) -

- - + + \ No newline at end of file diff --git a/docs/batchCodeTable.js b/docs/batchCodeTable.js index bec9c6004cf..037d0ca83dc 100644 --- a/docs/batchCodeTable.js +++ b/docs/batchCodeTable.js @@ -4,6 +4,7 @@ class BatchCodeTableInitializer { #countrySelect; #batchCodeTableElement; #batchCodeTable; + #columnSearch; constructor({ heading, countrySelect, batchCodeTableElement }) { this.#heading = heading; @@ -13,6 +14,7 @@ class BatchCodeTableInitializer { initialize() { this.#batchCodeTable = this.#createEmptyBatchCodeTable(); + this.#columnSearch = new ColumnSearch(this.#batchCodeTable.column(this.#getColumnIndex('Company'))); this.#countrySelect.addEventListener('change', event => this.#displayCountry(event.target.value)); this.#displayCountry('Global'); this.#initializeHistogramView(); @@ -48,7 +50,6 @@ class BatchCodeTableInitializer { this.#getColumnIndex('Deaths'), this.#getColumnIndex('Disabilities'), this.#getColumnIndex('Life Threatening Illnesses'), - this.#getColumnIndex('Company'), this.#getColumnIndex('Countries'), this.#getColumnIndex('Severe reports'), this.#getColumnIndex('Lethality') @@ -56,7 +57,7 @@ class BatchCodeTableInitializer { }, { orderable: false, - targets: this.#getColumnIndex('Countries') + targets: [this.#getColumnIndex('Countries'), this.#getColumnIndex('Company')] }, { render: (data, type, row) => { @@ -105,6 +106,7 @@ class BatchCodeTableInitializer { }) .then(json => { this.#setTableRows(json.data); + this.#columnSearch.columnContentUpdated(); this.#selectInput(); this.#displayControlColumn(country == 'Global'); }); diff --git a/src/help.txt b/src/help.txt index 8a58afecd45..ec1ae7a154f 100644 --- a/src/help.txt +++ b/src/help.txt @@ -4,7 +4,6 @@ FK-FIXME: FK-TODO: - Histogramme auch speziell für die einzelnen Länder berechnen und anzeigen. -- make Company column searchable: https://datatables.net/examples/api/multi_filter_select.html anacron job: sudo cp src/intensivstationen_howbadismybatch.sh /etc/cron.daily/intensivstationen_howbadismybatch @@ -21,3 +20,17 @@ www.HowBadIsMyBatch.info https://datatables.net/examples/api/row_details.html https://www.datatables.net/blog/2017-03-31 + +Profiling: +========== +from SymptomByBatchcodeTableFactory import SymptomByBatchcodeTableFactory +import cProfile +cProfile.run( + 'SymptomByBatchcodeTableFactory.createSymptomByBatchcodeTable(international_VAERSVAX_Covid19, international_VAERSSYMPTOMS)', + 'tmp/restats') + +import pstats +from pstats import SortKey + +p = pstats.Stats('tmp/restats') +p.strip_dirs().sort_stats(SortKey.CUMULATIVE).print_stats()