diff --git a/src/components/Container/StatsPage.stories.js b/src/components/Container/StatsPage.stories.js index 50434e30a..0e7b692d5 100644 --- a/src/components/Container/StatsPage.stories.js +++ b/src/components/Container/StatsPage.stories.js @@ -1,8 +1,8 @@ import StatsPage from './StatsPage.vue'; import StatsEditorialPage from '@/components/Container/StatsEditorialPage.vue'; import StatsPublicationsPage from '@/components/Container/StatsPublicationsPage.vue'; -import ArticleStatsMock from '@/components/TableNext/mocks/articleStats.js'; -import ArticleStatsColumnsMock from '@/components/TableNext/mocks/articleStatsColumns.js'; +import ArticleStatsMock from '@/components/Table/mocks/articleStats.js'; +import ArticleStatsColumnsMock from '@/components/Table/mocks/articleStatsColumns.js'; import debounce from 'debounce'; export default { diff --git a/src/components/Container/StatsPage.vue b/src/components/Container/StatsPage.vue index f20c15c0c..f5818879c 100644 --- a/src/components/Container/StatsPage.vue +++ b/src/components/Container/StatsPage.vue @@ -4,12 +4,12 @@ import DateRange from '@/components/DateRange/DateRange.vue'; import PkpFilter from '@/components/Filter/Filter.vue'; import Pagination from '@/components/Pagination/Pagination.vue'; import PkpHeader from '@/components/Header/Header.vue'; -import PkpTable from '@/components/TableNext/Table.vue'; -import TableCell from '@/components/TableNext/TableCell.vue'; -import TableColumn from '@/components/TableNext/TableColumn.vue'; -import TableHeader from '@/components/TableNext/TableHeader.vue'; -import TableBody from '@/components/TableNext/TableBody.vue'; -import TableRow from '@/components/TableNext/TableRow.vue'; +import PkpTable from '@/components/Table/Table.vue'; +import TableCell from '@/components/Table/TableCell.vue'; +import TableColumn from '@/components/Table/TableColumn.vue'; +import TableHeader from '@/components/Table/TableHeader.vue'; +import TableBody from '@/components/Table/TableBody.vue'; +import TableRow from '@/components/Table/TableRow.vue'; import ajaxError from '@/mixins/ajaxError'; export default { @@ -486,7 +486,7 @@ export default { } } -.pkpStats__table .pkpTable.-isLoading tbody { +.pkpStats__table .-isLoading tbody { opacity: 0.5; } diff --git a/src/components/Container/StatsPublicationsPage.vue b/src/components/Container/StatsPublicationsPage.vue index 994e71219..6a1a6493b 100644 --- a/src/components/Container/StatsPublicationsPage.vue +++ b/src/components/Container/StatsPublicationsPage.vue @@ -611,13 +611,6 @@ export default { padding-top: 0; } -.pkpStats__reportParams { - th { - font-weight: @bold; - border-right: @grid-border; - } -} - .pkpStats__reportAction { margin: 2rem 0; } diff --git a/src/components/Container/SubmissionWizardPage.vue b/src/components/Container/SubmissionWizardPage.vue index 2bc0c9976..cc49e8a61 100644 --- a/src/components/Container/SubmissionWizardPage.vue +++ b/src/components/Container/SubmissionWizardPage.vue @@ -960,13 +960,6 @@ ul.submissionWizard__reviewPanel__item__value { list-style: none; } -// A table used for a review -.submissionWizard__reviewPanel__body { - .pkpTable { - border: none; - } -} - .submissionWizard__reviewPanel__citation + .submissionWizard__reviewPanel__citation { margin-top: 1rem; diff --git a/src/components/ListPanel/contributors/ContributorsPreviewModal.vue b/src/components/ListPanel/contributors/ContributorsPreviewModal.vue index 9496b7576..428eeb702 100644 --- a/src/components/ListPanel/contributors/ContributorsPreviewModal.vue +++ b/src/components/ListPanel/contributors/ContributorsPreviewModal.vue @@ -7,35 +7,47 @@

{{ t('contributor.listPanel.preview.description') }}

- - - - - - - - - - - - - - - - - - - - - -
{{ t('contributor.listPanel.preview.format') }}{{ t('contributor.listPanel.preview.display') }}
{{ t('contributor.listPanel.preview.abbreviated') }}{{ publication.authorsStringShort }}
+ + + + {{ t('contributor.listPanel.preview.format') }} + + + {{ t('contributor.listPanel.preview.display') }} + + + + + + {{ t('contributor.listPanel.preview.abbreviated') }} + + {{ publication.authorsStringShort }} + + + {{ t('contributor.listPanel.preview.publicationLists') }} - {{ publication.authorsStringIncludeInBrowse }}
{{ t('contributor.listPanel.preview.full') }}{{ publication.authorsString }}
+ + + {{ publication.authorsStringIncludeInBrowse }} + + + + {{ t('contributor.listPanel.preview.full') }} + {{ publication.authorsString }} + + + diff --git a/src/components/Table/Table.mdx b/src/components/Table/Table.mdx new file mode 100644 index 000000000..a2667d14b --- /dev/null +++ b/src/components/Table/Table.mdx @@ -0,0 +1,62 @@ +import {Primary, Controls, Stories, Meta, ArgTypes} from '@storybook/blocks'; + +import * as TableStories from './Table.stories.js'; +import TableColumn from './TableColumn.vue'; +import TableCell from './TableCell.vue'; + + + +# Table + +## Usage + +Use the `Table` component to display tabular data when the user will sort, search, filter, or if interactive elements such as a button appear within the table. + +## Accessibility + +### General Guidelines + +To ensure the `Table` component is accessible: + +- The `aria-labelledby` and `aria-describedby` attributes are automatically linked when using the `label` and `description` slots, or they can be manually set with the `labelledBy` and `describedBy` props if using external labels and description for the table. +- If neither `labelledBy`/`describedBy` props nor `label`/`description` slots are provided, use the `ariaLabel` prop to provide accessible information about the table. +- One column should be [rowheader](https://www.w3.org/TR/wai-aria-1.1/#rowheader) to improve screen reader experience. It's a prop on TableCell, not on TableColumn as one would expect as it allows for significantly easier implementation. + +### Slots and ARIA Attributes + +If the table has a label or description, ensure that: + +- The `labelledBy` and `describedBy` props point to the correct element IDs, especially if the label or description is external to the component. +- If you're using the `label` or `description` slots, the component will automatically assign IDs and link them to the table via `aria-labelledby` and `aria-describedby`. + +## Slots + +### `label` + +This slot is used to provide a custom label for the table. + +### `description` + +Use this slot to provide additional information or context about the table's content. + +### `top-controls` + +The `top-controls` slot is used to add buttons or other interactive elements that appear above the table. + +### `bottom-controls` + +The `bottom-controls` slot is used for adding controls below the table, such as pagination controls, summary information, or other actionable elements. + +## Table Props + + + +## TableColumn Props + + + +## TableCell Props + + + + diff --git a/src/components/TableNext/Table.stories.js b/src/components/Table/Table.stories.js similarity index 98% rename from src/components/TableNext/Table.stories.js rename to src/components/Table/Table.stories.js index 8c470aa16..acb3219b3 100644 --- a/src/components/TableNext/Table.stories.js +++ b/src/components/Table/Table.stories.js @@ -11,7 +11,7 @@ import TablePagination from './TablePagination.vue'; import ButtonRow from '@/components/ButtonRow/ButtonRow.vue'; import {http, HttpResponse} from 'msw'; -import articleStats from '@/components/TableNext/mocks/articleStats.js'; +import articleStats from '@/components/Table/mocks/articleStats.js'; import {useSorting} from '@/composables/useSorting'; import {useFetchPaginated} from '@/composables/useFetchPaginated'; diff --git a/src/components/Table/Table.vue b/src/components/Table/Table.vue index 795b12415..3cf814601 100644 --- a/src/components/Table/Table.vue +++ b/src/components/Table/Table.vue @@ -1,443 +1,75 @@ - - - +provide('tableContext', tableContext); + diff --git a/src/components/TableNext/TableBody.vue b/src/components/Table/TableBody.vue similarity index 84% rename from src/components/TableNext/TableBody.vue rename to src/components/Table/TableBody.vue index aa96fad31..52040ad5f 100644 --- a/src/components/TableNext/TableBody.vue +++ b/src/components/Table/TableBody.vue @@ -27,9 +27,9 @@ const {t} = useLocalize(); const tableContext = inject('tableContext'); const noContent = computed(() => { - const defaultSlot = slots.default(); + const defaultSlot = slots.default ? slots.default() : []; - return !defaultSlot?.[0]?.children?.length; + return !defaultSlot?.[0]?.children?.length && !defaultSlot?.[0]?.type?.render; }); const emptyText = computed(() => { diff --git a/src/components/Table/TableCell.vue b/src/components/Table/TableCell.vue index 4beeaf158..212c26f6e 100644 --- a/src/components/Table/TableCell.vue +++ b/src/components/Table/TableCell.vue @@ -1,86 +1,44 @@ - - - diff --git a/src/components/TableNext/TableColumn.vue b/src/components/Table/TableColumn.vue similarity index 100% rename from src/components/TableNext/TableColumn.vue rename to src/components/Table/TableColumn.vue diff --git a/src/components/TableNext/TableHeader.vue b/src/components/Table/TableHeader.vue similarity index 100% rename from src/components/TableNext/TableHeader.vue rename to src/components/Table/TableHeader.vue diff --git a/src/components/TableNext/TablePagination.vue b/src/components/Table/TablePagination.vue similarity index 100% rename from src/components/TableNext/TablePagination.vue rename to src/components/Table/TablePagination.vue diff --git a/src/components/TableNext/TableRow.vue b/src/components/Table/TableRow.vue similarity index 100% rename from src/components/TableNext/TableRow.vue rename to src/components/Table/TableRow.vue diff --git a/src/components/TableNext/Table.mdx b/src/components/TableNext/Table.mdx deleted file mode 100644 index dec749af7..000000000 --- a/src/components/TableNext/Table.mdx +++ /dev/null @@ -1,33 +0,0 @@ -import {Primary, Controls, Stories, Meta, ArgTypes} from '@storybook/blocks'; - -import * as TableStories from './Table.stories.js'; -import TableColumn from './TableColumn.vue'; -import TableCell from './TableCell.vue'; - - - -# Table - -## Usage - -Use the `Table` component to display tabular data when the user will sort, search, filter, or if interactive elements such as a button appear within the table. - -## Accessibility - -Table component requires aria-label attribute to describe content of table. - -One column should be [rowheader](https://www.w3.org/TR/wai-aria-1.1/#rowheader) to improve screen reader experience. Its prop on TableCell, not on TableColumn as one would expect as it allows for significantly easier implementation. - -## Table Props - - - -## TableColumn Props - - - -# TableCell Props - - - - diff --git a/src/components/TableNext/Table.vue b/src/components/TableNext/Table.vue deleted file mode 100644 index e36913982..000000000 --- a/src/components/TableNext/Table.vue +++ /dev/null @@ -1,77 +0,0 @@ - - - diff --git a/src/components/TableNext/TableCell.vue b/src/components/TableNext/TableCell.vue deleted file mode 100644 index 212c26f6e..000000000 --- a/src/components/TableNext/TableCell.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - diff --git a/src/components/TableNext/mocks/articleStats.js b/src/components/TableNext/mocks/articleStats.js deleted file mode 100644 index 1815c5e19..000000000 --- a/src/components/TableNext/mocks/articleStats.js +++ /dev/null @@ -1,893 +0,0 @@ -function getRandomTitle(str) { - let title = str - .split(' ') - .sort((a, b) => (Math.random() > 0.5 ? -1 : 1)) - .join(' '); - const trimLength = Math.floor(Math.random() * 20); - title = title.charAt(0).toUpperCase() + title.slice(1); - return title.substr(0, title.length - trimLength); -} - -const baseTitle = - 'tortor ultrices dolor diam dignissim ante nulla et morbi imperdiet'; -const sectionIds = [1, 2, 3]; -const baseStat = { - total: 0, - views: 0, - downloads: 0, - object: { - id: 1, - fullTitle: { - en: getRandomTitle(baseTitle), - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, -}; - -let stats = []; -for (let i = 1; i < 61; i++) { - let stat = { - ...baseStat, - object: { - ...baseStat.object, - id: i, - fullTitle: { - en: getRandomTitle(baseTitle), - }, - sectionId: sectionIds[Math.floor(Math.random() * sectionIds.length)], - }, - views: Math.floor(Math.random() * 10000) + 1, - downloads: Math.floor(Math.random() * 1000) + 1, - }; - - stat.total = stat.views + stat.downloads; - - stats.push(stat); -} - -// use fixed stats to stabilize visual comparisons -stats = [ - { - total: 8564, - views: 7945, - downloads: 619, - object: { - id: 1, - fullTitle: { - en: 'Nulla et ultrices tortor imperdiet ante diam dignissim', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 1170, - views: 560, - downloads: 610, - object: { - id: 2, - fullTitle: { - en: 'Ante dignissim imperdiet diam dolor ultrices et null', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 9607, - views: 9392, - downloads: 215, - object: { - id: 3, - fullTitle: { - en: 'Nulla imperdiet ultrices et dignissim tortor morbi d', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 3453, - views: 2732, - downloads: 721, - object: { - id: 4, - fullTitle: { - en: 'Et morbi nulla dignissim tortor ante diam dolor u', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 2541, - views: 1782, - downloads: 759, - object: { - id: 5, - fullTitle: { - en: 'Nulla dignissim tortor ante et ultrices morbi dolor diam ', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 5116, - views: 4512, - downloads: 604, - object: { - id: 6, - fullTitle: { - en: 'Ultrices nulla tortor morbi ante dignissim dolo', - }, - sectionId: 2, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 7468, - views: 6697, - downloads: 771, - object: { - id: 7, - fullTitle: { - en: 'Nulla ante dignissim diam imperdiet morbi dolor ultrices tortor e', - }, - sectionId: 2, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 3678, - views: 3450, - downloads: 228, - object: { - id: 8, - fullTitle: { - en: 'Morbi ante tortor imperdiet ultrices nulla dignissim dolor et dia', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 1421, - views: 937, - downloads: 484, - object: { - id: 9, - fullTitle: { - en: 'Nulla tortor ultrices diam imperdiet et dignissim morbi dolor ', - }, - sectionId: 2, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 7490, - views: 6772, - downloads: 718, - object: { - id: 10, - fullTitle: { - en: 'Diam dolor imperdiet dignissim morbi et tortor ultrices nulla ante', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 2440, - views: 1904, - downloads: 536, - object: { - id: 11, - fullTitle: { - en: 'Tortor nulla diam imperdiet dolor ante et ultrices mor', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 3924, - views: 3714, - downloads: 210, - object: { - id: 12, - fullTitle: { - en: 'Dignissim diam ante morbi dolor ultrices nulla imperdiet et ', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 2425, - views: 2329, - downloads: 96, - object: { - id: 13, - fullTitle: { - en: 'Nulla imperdiet et dolor ultrices diam dignissim tortor ant', - }, - sectionId: 2, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 10104, - views: 9617, - downloads: 487, - object: { - id: 14, - fullTitle: { - en: 'Dignissim ante diam tortor imperdiet ultrices nulla', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 1205, - views: 1053, - downloads: 152, - object: { - id: 15, - fullTitle: { - en: 'Diam dolor et nulla ultrices ante morbi imperdiet digni', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 1389, - views: 1345, - downloads: 44, - object: { - id: 16, - fullTitle: { - en: 'Ante dolor et imperdiet diam dignissim tortor ultr', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 5861, - views: 5300, - downloads: 561, - object: { - id: 17, - fullTitle: { - en: 'Nulla tortor dolor et dignissim diam ultrices ante morbi i', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 2914, - views: 2125, - downloads: 789, - object: { - id: 18, - fullTitle: { - en: 'Diam nulla tortor ante dolor et ultrices morbi imperdiet dig', - }, - sectionId: 2, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 5439, - views: 4950, - downloads: 489, - object: { - id: 19, - fullTitle: { - en: 'Tortor nulla ultrices dolor ante dignissim morbi diam imperdiet', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 6822, - views: 6723, - downloads: 99, - object: { - id: 20, - fullTitle: { - en: 'Ultrices nulla et dolor ante dignissim morbi tortor imp', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 2535, - views: 2262, - downloads: 273, - object: { - id: 21, - fullTitle: { - en: 'Tortor morbi nulla ante ultrices diam dolor et imperdiet', - }, - sectionId: 2, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 3319, - views: 2988, - downloads: 331, - object: { - id: 22, - fullTitle: { - en: 'Diam ante dolor dignissim nulla morbi et imperdiet ultrices tort', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 891, - views: 475, - downloads: 416, - object: { - id: 23, - fullTitle: { - en: 'Tortor et morbi ante diam ultrices dolor dignissim imperdiet ', - }, - sectionId: 2, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 5976, - views: 5882, - downloads: 94, - object: { - id: 24, - fullTitle: { - en: 'Et nulla imperdiet ante tortor morbi diam ultrices digniss', - }, - sectionId: 2, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 9086, - views: 9076, - downloads: 10, - object: { - id: 25, - fullTitle: { - en: 'Diam imperdiet ante nulla morbi tortor dignissim et ultrices d', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 5547, - views: 4979, - downloads: 568, - object: { - id: 26, - fullTitle: { - en: 'Morbi ultrices dolor tortor dignissim ante et imperdiet d', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 3019, - views: 2223, - downloads: 796, - object: { - id: 27, - fullTitle: { - en: 'Diam dolor ultrices tortor dignissim ante et nulla morbi imperdi', - }, - sectionId: 2, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 3078, - views: 2595, - downloads: 483, - object: { - id: 28, - fullTitle: { - en: 'Ante nulla diam dolor morbi ultrices dignissim tortor et i', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 7242, - views: 6650, - downloads: 592, - object: { - id: 29, - fullTitle: { - en: 'Nulla dignissim tortor ultrices et ante diam do', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 10052, - views: 9717, - downloads: 335, - object: { - id: 30, - fullTitle: { - en: 'Tortor ultrices nulla ante dolor dignissim et morbi imperdiet d', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 6362, - views: 5870, - downloads: 492, - object: { - id: 31, - fullTitle: { - en: 'Tortor ultrices morbi ante imperdiet et dolor n', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 6481, - views: 5833, - downloads: 648, - object: { - id: 32, - fullTitle: { - en: 'Tortor ante morbi ultrices dolor diam et imperdiet nulla digni', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 1250, - views: 537, - downloads: 713, - object: { - id: 33, - fullTitle: { - en: 'Ante imperdiet diam dignissim dolor et ultrices tortor nulla mo', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 2149, - views: 1463, - downloads: 686, - object: { - id: 34, - fullTitle: { - en: 'Ante diam dolor nulla ultrices dignissim et tortor imperdiet morbi', - }, - sectionId: 2, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 2067, - views: 1855, - downloads: 212, - object: { - id: 35, - fullTitle: { - en: 'Tortor imperdiet morbi ultrices dignissim diam ', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 9446, - views: 8582, - downloads: 864, - object: { - id: 36, - fullTitle: { - en: 'Tortor ultrices dolor dignissim morbi diam nulla et', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 4692, - views: 4453, - downloads: 239, - object: { - id: 37, - fullTitle: { - en: 'Diam tortor imperdiet ante et ultrices dignissim morbi ', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 4901, - views: 4775, - downloads: 126, - object: { - id: 38, - fullTitle: { - en: 'Dolor ante nulla ultrices et diam tortor morbi dignissim imp', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 4945, - views: 4803, - downloads: 142, - object: { - id: 39, - fullTitle: { - en: 'Nulla ultrices morbi et dignissim tortor imperdiet dolor ante ', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 5948, - views: 5088, - downloads: 860, - object: { - id: 40, - fullTitle: { - en: 'Ultrices dolor morbi diam ante tortor imperdiet nulla et dignis', - }, - sectionId: 2, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 5239, - views: 4731, - downloads: 508, - object: { - id: 41, - fullTitle: { - en: 'Dignissim nulla imperdiet dolor morbi ante diam ultr', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 6611, - views: 6304, - downloads: 307, - object: { - id: 42, - fullTitle: { - en: 'Diam nulla dolor imperdiet tortor ante ultrices et morbi dignissi', - }, - sectionId: 2, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 6626, - views: 5827, - downloads: 799, - object: { - id: 43, - fullTitle: { - en: 'Ante et dignissim imperdiet tortor morbi ultrices diam ', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 8275, - views: 7685, - downloads: 590, - object: { - id: 44, - fullTitle: { - en: 'Dignissim et diam nulla dolor morbi ultrices imperdiet ante t', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 6467, - views: 5609, - downloads: 858, - object: { - id: 45, - fullTitle: { - en: 'Tortor ultrices et nulla dignissim morbi imperdiet diam a', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 680, - views: 349, - downloads: 331, - object: { - id: 46, - fullTitle: { - en: 'Dolor ante nulla dignissim morbi et diam imperdiet ', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 10596, - views: 9906, - downloads: 690, - object: { - id: 47, - fullTitle: { - en: 'Nulla diam dolor ultrices tortor imperdiet et digniss', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 4319, - views: 4233, - downloads: 86, - object: { - id: 48, - fullTitle: { - en: 'Et ultrices ante diam morbi tortor nulla digniss', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 5177, - views: 4344, - downloads: 833, - object: { - id: 49, - fullTitle: { - en: 'Imperdiet dignissim morbi nulla diam dolor ultrices ante et', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 3156, - views: 2966, - downloads: 190, - object: { - id: 50, - fullTitle: { - en: 'Ultrices ante morbi nulla dolor tortor diam imperdiet', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 2808, - views: 2117, - downloads: 691, - object: { - id: 51, - fullTitle: { - en: 'Nulla tortor ante et ultrices imperdiet diam dolor dignis', - }, - sectionId: 2, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 2327, - views: 1581, - downloads: 746, - object: { - id: 52, - fullTitle: { - en: 'Dolor et ultrices diam dignissim tortor nulla ante imperdiet morb', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 711, - views: 310, - downloads: 401, - object: { - id: 53, - fullTitle: { - en: 'Nulla morbi ante tortor imperdiet et ultrices dignissim dolor ', - }, - sectionId: 2, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 5100, - views: 5015, - downloads: 85, - object: { - id: 54, - fullTitle: { - en: 'Diam et ultrices ante morbi dignissim tortor dolor imperdiet ', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 6647, - views: 6104, - downloads: 543, - object: { - id: 55, - fullTitle: { - en: 'Et diam tortor imperdiet morbi dolor dignissim ante nulla ultr', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 9420, - views: 9240, - downloads: 180, - object: { - id: 56, - fullTitle: { - en: 'Tortor ultrices imperdiet dolor nulla dignissim morbi d', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 3323, - views: 2562, - downloads: 761, - object: { - id: 57, - fullTitle: { - en: 'Et tortor nulla imperdiet morbi ultrices dolor diam dig', - }, - sectionId: 3, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 1466, - views: 569, - downloads: 897, - object: { - id: 58, - fullTitle: { - en: 'Morbi dolor ultrices diam et imperdiet ante tortor dignissim', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 3115, - views: 2861, - downloads: 254, - object: { - id: 59, - fullTitle: { - en: 'Tortor ultrices morbi imperdiet dolor diam nulla et ', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, - { - total: 3050, - views: 2500, - downloads: 550, - object: { - id: 60, - fullTitle: { - en: 'Ante nulla et tortor morbi ultrices dolor diam imperdiet digniss', - }, - sectionId: 1, - authorString: 'Carlo Corino', - urlPublished: '/example/1', - }, - }, -]; -export default stats; diff --git a/src/components/TableNext/mocks/articleStatsColumns.js b/src/components/TableNext/mocks/articleStatsColumns.js deleted file mode 100644 index 6f1186f3f..000000000 --- a/src/components/TableNext/mocks/articleStatsColumns.js +++ /dev/null @@ -1,54 +0,0 @@ -export default [ - { - name: 'id', - label: 'ID', - value(row) { - return row.object.id; - }, - }, - { - name: 'title', - label: 'Title', - isRowHeader: true, - value(row) { - return row.object.fullTitle.en; - }, - }, - { - name: 'author', - label: 'Contributors', - value(row) { - return row.object.authorString; - }, - }, - { - name: 'abstractViews', - label: 'Abstract Views', - value: 'abstractViews', - }, - { - name: 'galleyViews', - label: 'Galley Views', - value: 'galleyViews', - }, - { - name: 'pdf', - label: 'PDF', - value: 'pdf', - }, - { - name: 'html', - label: 'HTML', - value: 'html', - }, - { - name: 'other', - label: 'Other', - value: 'other', - }, - { - name: 'total', - label: 'Total', - value: 'total', - }, -]; diff --git a/src/managers/FileManager/FileManager.vue b/src/managers/FileManager/FileManager.vue index 090ddce12..2b5766190 100644 --- a/src/managers/FileManager/FileManager.vue +++ b/src/managers/FileManager/FileManager.vue @@ -59,10 +59,10 @@ import {inject} from 'vue'; import {useFileManagerStore} from './fileManagerStore.js'; import {FileManagerConfigurations} from './useFileManagerConfig.js'; import PkpButton from '@/components/Button/Button.vue'; -import PkpTable from '@/components/TableNext/Table.vue'; -import TableHeader from '@/components/TableNext/TableHeader.vue'; -import TableBody from '@/components/TableNext/TableBody.vue'; -import TableColumn from '@/components/TableNext/TableColumn.vue'; +import PkpTable from '@/components/Table/Table.vue'; +import TableHeader from '@/components/Table/TableHeader.vue'; +import TableBody from '@/components/Table/TableBody.vue'; +import TableColumn from '@/components/Table/TableColumn.vue'; import FileManagerTableRow from './FileManagerTableRow.vue'; const props = defineProps({ diff --git a/src/managers/FileManager/FileManagerTableRow.vue b/src/managers/FileManager/FileManagerTableRow.vue index eda9e44de..36be25c35 100644 --- a/src/managers/FileManager/FileManagerTableRow.vue +++ b/src/managers/FileManager/FileManagerTableRow.vue @@ -48,8 +48,8 @@