eegdash 0.4.0.dev153__tar.gz → 0.4.0.dev173498563__tar.gz

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.

Potentially problematic release.


This version of eegdash might be problematic. Click here for more details.

Files changed (75) hide show
  1. {eegdash-0.4.0.dev153/eegdash.egg-info → eegdash-0.4.0.dev173498563}/PKG-INFO +1 -1
  2. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/docs/source/dataset_summary/bubble.rst +2 -0
  3. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/docs/source/dataset_summary/kde.rst +3 -1
  4. eegdash-0.4.0.dev173498563/docs/source/dataset_summary/sankey.rst +20 -0
  5. eegdash-0.4.0.dev173498563/docs/source/dataset_summary/table.rst +27 -0
  6. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/docs/source/dataset_summary.rst +10 -6
  7. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/docs/source/index.rst +4 -1
  8. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/__init__.py +1 -1
  9. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/dataset/dataset_summary.csv +1 -1
  10. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563/eegdash.egg-info}/PKG-INFO +1 -1
  11. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash.egg-info/SOURCES.txt +1 -0
  12. eegdash-0.4.0.dev153/docs/source/dataset_summary/table.rst +0 -174
  13. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/LICENSE +0 -0
  14. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/MANIFEST.in +0 -0
  15. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/README.md +0 -0
  16. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/docs/Makefile +0 -0
  17. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/docs/source/_templates/autosummary/module.rst +0 -0
  18. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/docs/source/api/api.rst +0 -0
  19. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/docs/source/api/api_core.rst +0 -0
  20. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/docs/source/api/api_features.rst +0 -0
  21. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/docs/source/conf.py +0 -0
  22. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/docs/source/install/install.rst +0 -0
  23. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/docs/source/install/install_pip.rst +0 -0
  24. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/docs/source/install/install_source.rst +0 -0
  25. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/docs/source/sg_execution_times.rst +0 -0
  26. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/docs/source/user_guide.rst +0 -0
  27. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/api.py +0 -0
  28. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/bids_eeg_metadata.py +0 -0
  29. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/const.py +0 -0
  30. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/data_utils.py +0 -0
  31. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/dataset/__init__.py +0 -0
  32. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/dataset/dataset.py +0 -0
  33. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/dataset/registry.py +0 -0
  34. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/downloader.py +0 -0
  35. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/features/__init__.py +0 -0
  36. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/features/datasets.py +0 -0
  37. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/features/decorators.py +0 -0
  38. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/features/extractors.py +0 -0
  39. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/features/feature_bank/__init__.py +0 -0
  40. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/features/feature_bank/complexity.py +0 -0
  41. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/features/feature_bank/connectivity.py +0 -0
  42. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/features/feature_bank/csp.py +0 -0
  43. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/features/feature_bank/dimensionality.py +0 -0
  44. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/features/feature_bank/signal.py +0 -0
  45. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/features/feature_bank/spectral.py +0 -0
  46. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/features/feature_bank/utils.py +0 -0
  47. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/features/inspect.py +0 -0
  48. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/features/serialization.py +0 -0
  49. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/features/utils.py +0 -0
  50. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/hbn/__init__.py +0 -0
  51. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/hbn/preprocessing.py +0 -0
  52. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/hbn/windows.py +0 -0
  53. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/logging.py +0 -0
  54. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/mongodb.py +0 -0
  55. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/paths.py +0 -0
  56. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash/utils.py +0 -0
  57. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash.egg-info/dependency_links.txt +0 -0
  58. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash.egg-info/requires.txt +0 -0
  59. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/eegdash.egg-info/top_level.txt +0 -0
  60. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/pyproject.toml +0 -0
  61. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/setup.cfg +0 -0
  62. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/tests/test_api.py +0 -0
  63. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/tests/test_bids_dependencies.py +0 -0
  64. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/tests/test_cache_folder_suffix.py +0 -0
  65. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/tests/test_challenge_kwargs.py +0 -0
  66. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/tests/test_correctness.py +0 -0
  67. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/tests/test_dataset.py +0 -0
  68. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/tests/test_dataset_registration.py +0 -0
  69. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/tests/test_downloader.py +0 -0
  70. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/tests/test_eegdash.py +0 -0
  71. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/tests/test_init.py +0 -0
  72. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/tests/test_minirelease.py +0 -0
  73. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/tests/test_mongo_connection.py +0 -0
  74. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/tests/test_offline.py +0 -0
  75. {eegdash-0.4.0.dev153 → eegdash-0.4.0.dev173498563}/tests/test_query.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eegdash
3
- Version: 0.4.0.dev153
3
+ Version: 0.4.0.dev173498563
4
4
  Summary: EEG data for machine learning
5
5
  Author-email: Young Truong <dt.young112@gmail.com>, Arnaud Delorme <adelorme@gmail.com>, Aviv Dotan <avivd220@gmail.com>, Oren Shriki <oren70@gmail.com>, Bruno Aristimunha <b.aristimunha@gmail.com>
6
6
  License-Expression: GPL-3.0-only
@@ -1,3 +1,5 @@
1
+ .. title:: Dataset landscape
2
+
1
3
  .. rubric:: Dataset landscape
2
4
 
3
5
  .. raw:: html
@@ -1,4 +1,6 @@
1
- .. rubric:: Participant Distribution by Modality
1
+ .. title:: Participant Distribution by Modality
2
+
3
+ .. rubric:: Distribution of Sample Sizes Varies by Experimental Modality
2
4
 
3
5
  .. raw:: html
4
6
 
@@ -0,0 +1,20 @@
1
+ .. title:: Dataset flow
2
+
3
+ .. rubric:: Sankey diagrams of EEGDash Datasets by Population, Modality, and Cognitive Domain
4
+
5
+ .. raw:: html
6
+
7
+ <figure class="eegdash-figure" style="margin: 0 0 1.25rem 0;">
8
+
9
+ .. raw:: html
10
+ :file: ../_static/dataset_generated/dataset_sankey.html
11
+
12
+ .. raw:: html
13
+
14
+ <figcaption class="eegdash-caption">
15
+ Figure: Dataset flow across population, modality, and cognitive domain.
16
+ Link thickness is proportional to the total number of subjects, and the tooltip
17
+ reports both subject and dataset counts. Hover and click legend entries to
18
+ explore specific segments.
19
+ </figcaption>
20
+ </figure>
@@ -0,0 +1,27 @@
1
+ .. title:: EEG Datasets Table
2
+
3
+ .. rubric:: EEG Datasets Table
4
+
5
+ The data in EEG-DaSh originates from a collaboration involving 25 laboratories, encompassing 27,053 participants. This extensive collection includes M-EEG data, which is a combination of EEG and MEG signals. The data is sourced from various studies conducted by these labs,
6
+ involving both healthy subjects and clinical populations with conditions such as ADHD, depression, schizophrenia, dementia, autism, and psychosis. Additionally, data spans different mental states like sleep, meditation, and cognitive tasks.
7
+
8
+ In addition, EEG-DaSh will incorporate a subset of the data converted from `NEMAR <https://nemar.org/>`__, which includes 330 MEEG BIDS-formatted datasets, further expanding the archive with well-curated, standardized neuroelectromagnetic data.
9
+
10
+ .. raw:: html
11
+
12
+ <figure class="eegdash-figure" style="margin: 0 0 1.25rem 0;">
13
+
14
+ .. raw:: html
15
+ :file: ../_static/dataset_generated/dataset_summary_table.html
16
+
17
+ .. raw:: html
18
+
19
+ <figcaption class="eegdash-caption">
20
+ Table: Sortable catalogue of EEG‑DaSh datasets. Use the “Filters” button to open column filters;
21
+ click a column header to jump directly to a filter pane. The Total row is pinned at the bottom.
22
+ * means that we use the median value across multiple recordings in the dataset, and empty cells
23
+ when the metainformation is not extracted yet.
24
+ </figcaption>
25
+ </figure>
26
+
27
+ Pathology, modality, and dataset type now surface as consistent color-coded tags so you can scan the table at a glance.
@@ -10,13 +10,11 @@
10
10
 
11
11
  .. rst-class:: dataset-summary-article
12
12
 
13
- Datasets
14
- =========
13
+ Datasets Catalog
14
+ ================
15
15
 
16
16
  To leverage recent and ongoing advancements in large-scale computational methods and to ensure the preservation of scientific data generated from publicly funded research, the EEG-DaSh data archive will create a data-sharing resource for MEEG (EEG, MEG) data contributed by collaborators for machine learning (ML) and deep learning (DL) applications.
17
17
 
18
- The archive is currently still in :bdg-danger:`beta testing` mode, so be kind.
19
-
20
18
  .. raw:: html
21
19
 
22
20
  <script src="https://cdn.plot.ly/plotly-3.1.0.min.js"></script>
@@ -27,10 +25,16 @@ The archive is currently still in :bdg-danger:`beta testing` mode, so be kind.
27
25
 
28
26
  .. include:: dataset_summary/table.rst
29
27
 
30
- .. tab-item:: Participant KDE
28
+ .. tab-item:: Participant Distribution
31
29
 
32
30
  .. include:: dataset_summary/kde.rst
33
31
 
34
- .. tab-item:: Landscape
32
+ .. tab-item:: Dataset Flow
33
+
34
+ .. include:: dataset_summary/sankey.rst
35
+
36
+ .. tab-item:: Scatter of Sample Size vs. Recording Duration
35
37
 
36
38
  .. include:: dataset_summary/bubble.rst
39
+
40
+ The archive is currently still in :bdg-danger:`beta testing` mode, so be kind.
@@ -20,11 +20,14 @@ EEG Dash Homepage
20
20
 
21
21
 
22
22
  .. rst-class:: h4 text-center font-weight-light my-4
23
-
24
23
  The EEG-DaSh data archive will establish a data-sharing resource for MEEG (EEG, MEG) data, enabling
25
24
  large-scale computational advancements to preserve and share scientific data from publicly funded
26
25
  research for machine learning and deep learning applications.
27
26
 
27
+ .. rst-class:: text-center
28
+
29
+ **Note:** The "DaSh" in EEG-DaSh stands for **Data Share**.
30
+
28
31
  The EEG-DaSh data archive is a collaborative effort led by the University of California, San Diego (UCSD) and Ben-Gurion University of the Negev (BGU) and partially funded by the National Science Foundation (NSF). All are welcome to contribute to the https://github.com/sccn/EEGDash project.
29
32
 
30
33
  The archive is currently still in :bdg-danger:`beta testing` mode, so be kind.
@@ -18,4 +18,4 @@ _init_mongo_client()
18
18
 
19
19
  __all__ = ["EEGDash", "EEGDashDataset", "EEGChallengeDataset", "preprocessing"]
20
20
 
21
- __version__ = "0.4.0.dev153"
21
+ __version__ = "0.4.0.dev173498563"
@@ -198,7 +198,7 @@
198
198
  197,ds003751,38,38,1,128,250,19.95,4.71 GB,5057922307,0,ds003751,Healthy,other,Multisensory,Affect
199
199
  198,ds003421,80,20,1,257,1000,11.604,76.77 GB,82433418198,0,ds003421,Healthy,10-20,Multisensory,Decision-making
200
200
  199,ds002158,117,20,1,,,0.0,428.59 GB,460190030981,0,ds002158,Healthy,10-20,Visual,Affect
201
- 200,ds004951,23,11,1,63,1000,29.563,22.00 GB,23627352274,0,ds004951,?,,Tactile,Learning
201
+ 200,ds004951,23,11,1,63,1000,29.563,22.00 GB,23627352274,0,ds004951,,,Tactile,Learning
202
202
  201,ds004802,38,38,1,65,"2048,512",0.0,29.34 GB,31504070800,0,ds004802,Other,,Visual,Affect
203
203
  202,ds004816,20,20,1,63,1000,0.0,23.31 GB,25028989553,0,ds004816,Healthy,,Visual,Attention
204
204
  203,ds005873,2850,125,1,2,256,11935.09,117.21 GB,125851664268,0,,,,,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eegdash
3
- Version: 0.4.0.dev153
3
+ Version: 0.4.0.dev173498563
4
4
  Summary: EEG data for machine learning
5
5
  Author-email: Young Truong <dt.young112@gmail.com>, Arnaud Delorme <adelorme@gmail.com>, Aviv Dotan <avivd220@gmail.com>, Oren Shriki <oren70@gmail.com>, Bruno Aristimunha <b.aristimunha@gmail.com>
6
6
  License-Expression: GPL-3.0-only
@@ -14,6 +14,7 @@ docs/source/api/api_core.rst
14
14
  docs/source/api/api_features.rst
15
15
  docs/source/dataset_summary/bubble.rst
16
16
  docs/source/dataset_summary/kde.rst
17
+ docs/source/dataset_summary/sankey.rst
17
18
  docs/source/dataset_summary/table.rst
18
19
  docs/source/install/install.rst
19
20
  docs/source/install/install_pip.rst
@@ -1,174 +0,0 @@
1
- .. rubric:: EEG Datasets Table
2
-
3
- The data in EEG-DaSh originates from a collaboration involving 25 laboratories, encompassing 27,053 participants. This extensive collection includes M-EEG data, which is a combination of EEG and MEG signals. The data is sourced from various studies conducted by these labs,
4
- involving both healthy subjects and clinical populations with conditions such as ADHD, depression, schizophrenia, dementia, autism, and psychosis. Additionally, data spans different mental states like sleep, meditation, and cognitive tasks.
5
-
6
- In addition, EEG-DaSh will incorporate a subset of the data converted from `NEMAR <https://nemar.org/>`__, which includes 330 MEEG BIDS-formatted datasets, further expanding the archive with well-curated, standardized neuroelectromagnetic data.
7
-
8
- .. raw:: html
9
-
10
- <figure class="eegdash-figure" style="margin: 0 0 1.25rem 0;">
11
-
12
- .. raw:: html
13
- :file: ../_static/dataset_generated/dataset_summary_table.html
14
-
15
- .. raw:: html
16
-
17
- <figcaption class="eegdash-caption">
18
- Table: Sortable catalogue of EEG‑DaSh datasets. Use the “Filters” button to open column filters;
19
- click a column header to jump directly to a filter pane. The Total row is pinned at the bottom.
20
- * means that we use the median value across multiple recordings in the dataset, and empty cells
21
- when the metainformation is not extracted yet.
22
- </figcaption>
23
- </figure>
24
-
25
- Pathology, modality, and dataset type now surface as consistent color-coded tags so you can scan the table at a glance and reuse the same visual language as the model catalog.
26
-
27
- .. raw:: html
28
-
29
- <!-- jQuery + DataTables core -->
30
- <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
31
- <link rel="stylesheet" href="https://cdn.datatables.net/v/bm/dt-1.13.4/datatables.min.css"/>
32
- <script src="https://cdn.datatables.net/v/bm/dt-1.13.4/datatables.min.js"></script>
33
-
34
- <!-- Buttons + SearchPanes (+ Select required by SearchPanes) -->
35
- <link rel="stylesheet" href="https://cdn.datatables.net/buttons/2.4.2/css/buttons.dataTables.min.css">
36
- <script src="https://cdn.datatables.net/buttons/2.4.2/js/dataTables.buttons.min.js"></script>
37
- <link rel="stylesheet" href="https://cdn.datatables.net/select/1.7.0/css/select.dataTables.min.css">
38
- <link rel="stylesheet" href="https://cdn.datatables.net/searchpanes/2.3.1/css/searchPanes.dataTables.min.css">
39
- <script src="https://cdn.datatables.net/select/1.7.0/js/dataTables.select.min.js"></script>
40
- <script src="https://cdn.datatables.net/searchpanes/2.3.1/js/dataTables.searchPanes.min.js"></script>
41
-
42
- <style>
43
- /* Styling for the Total row (placed in tfoot) */
44
- table.sd-table tfoot td {
45
- font-weight: 600;
46
- border-top: 2px solid rgba(0,0,0,0.2);
47
- background: #f9fafb;
48
- /* Match body cell padding to keep perfect alignment */
49
- padding: 8px 10px !important;
50
- vertical-align: middle;
51
- }
52
-
53
- /* Right-align numeric-like columns (2..8) consistently for body & footer */
54
- table.sd-table tbody td:nth-child(n+2),
55
- table.sd-table tfoot td:nth-child(n+2) {
56
- text-align: right;
57
- }
58
- /* Keep first column (Dataset/Total) left-aligned */
59
- table.sd-table tbody td:first-child,
60
- table.sd-table tfoot td:first-child {
61
- text-align: left;
62
- }
63
- </style>
64
-
65
- <script>
66
- // Helper: robustly extract values for SearchPanes when needed
67
- function tagsArrayFromHtml(html) {
68
- if (html == null) return [];
69
- // If it's numeric or plain text, just return as a single value
70
- if (typeof html === 'number') return [String(html)];
71
- if (typeof html === 'string' && html.indexOf('<') === -1) return [html.trim()];
72
- // Else parse any .tag elements inside HTML
73
- var tmp = document.createElement('div');
74
- tmp.innerHTML = html;
75
- var tags = Array.from(tmp.querySelectorAll('.tag')).map(function(el){
76
- return (el.textContent || '').trim();
77
- });
78
- return tags.length ? tags : [tmp.textContent.trim()];
79
- }
80
-
81
- // Helper: parse human-readable sizes like "4.31 GB" into bytes (number)
82
- function parseSizeToBytes(text) {
83
- if (!text) return 0;
84
- var s = String(text).trim();
85
- var m = s.match(/([\d,.]+)\s*(TB|GB|MB|KB|B)/i);
86
- if (!m) return 0;
87
- var value = parseFloat(m[1].replace(/,/g, ''));
88
- var unit = m[2].toUpperCase();
89
- var factor = { B:1, KB:1024, MB:1024**2, GB:1024**3, TB:1024**4 }[unit] || 1;
90
- return value * factor;
91
- }
92
-
93
- $(function () {
94
- var $table = $('#datasets-table');
95
- if (!$table.length) {
96
- return;
97
- }
98
- if ($.fn.DataTable && $.fn.DataTable.isDataTable($table[0])) {
99
- return;
100
- }
101
-
102
- // 1) Move the "Total" row into <tfoot> so sorting/filtering never moves it
103
- var $tbody = $table.find('tbody');
104
- var $total = $tbody.find('tr').filter(function(){
105
- return $(this).find('td').eq(0).text().trim() === 'Total';
106
- });
107
- if ($total.length) {
108
- var $tfoot = $table.find('tfoot');
109
- if (!$tfoot.length) $tfoot = $('<tfoot/>').appendTo($table);
110
- $total.appendTo($tfoot);
111
- }
112
-
113
- // 2) Initialize DataTable with SearchPanes button
114
- var FILTER_COLS = [1,2,3,4,5,6];
115
- // Detect the index of the size column by header text
116
- var sizeIdx = (function(){
117
- var idx = -1;
118
- $table.find('thead th').each(function(i){
119
- var t = $(this).text().trim().toLowerCase();
120
- if (t === 'size on disk' || t === 'size') idx = i;
121
- });
122
- return idx;
123
- })();
124
-
125
- var table = $table.DataTable({
126
- dom: 'Blfrtip',
127
- paging: false,
128
- searching: true,
129
- info: false,
130
- language: {
131
- search: 'Filter dataset:',
132
- searchPanes: { collapse: { 0: 'Filters', _: 'Filters (%d)' } }
133
- },
134
- buttons: [{
135
- extend: 'searchPanes',
136
- text: 'Filters',
137
- config: { cascadePanes: true, viewTotal: true, layout: 'columns-4', initCollapsed: false }
138
- }],
139
- columnDefs: (function(){
140
- var defs = [
141
- { searchPanes: { show: true }, targets: FILTER_COLS }
142
- ];
143
- if (sizeIdx !== -1) {
144
- defs.push({
145
- targets: sizeIdx,
146
- render: function(data, type) {
147
- if (type === 'sort' || type === 'type') {
148
- return parseSizeToBytes(data);
149
- }
150
- return data;
151
- }
152
- });
153
- }
154
- return defs;
155
- })()
156
- });
157
-
158
- // 3) UX: click a header to open the relevant filter pane
159
- $table.find('thead th').each(function (i) {
160
- if ([1,2,3,4].indexOf(i) === -1) return;
161
- $(this).css('cursor','pointer').attr('title','Click to filter this column');
162
- $(this).on('click', function () {
163
- table.button('.buttons-searchPanes').trigger();
164
- setTimeout(function () {
165
- var idx = [1,2,3,4].indexOf(i);
166
- var $container = $(table.searchPanes.container());
167
- var $pane = $container.find('.dtsp-pane').eq(idx);
168
- var $title = $pane.find('.dtsp-title');
169
- if ($title.length) $title.trigger('click');
170
- }, 0);
171
- });
172
- });
173
- });
174
- </script>