@conduction/nextcloud-vue 2.56.0-beta.36 → 2.56.0-beta.38
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.
- package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue.js +1 -1
- package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js +131 -3
- package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js.map +1 -1
- package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js +54 -18
- package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js.map +1 -1
- package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue.js +1 -1
- package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue2.js +3 -2
- package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue2.js.map +1 -1
- package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue3.js.map +1 -1
- package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue.js +1 -1
- package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue2.js +5 -4
- package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue2.js.map +1 -1
- package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue3.js.map +1 -1
- package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue.js +1 -1
- package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue2.js +2 -1
- package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue2.js.map +1 -1
- package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue3.js.map +1 -1
- package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue.js +1 -1
- package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js +2 -1
- package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js.map +1 -1
- package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue3.js.map +1 -1
- package/dist/esm/components/CnBoardView/CnBoardView.vue.js +1 -1
- package/dist/esm/components/CnBoardView/CnBoardView.vue2.js +376 -6
- package/dist/esm/components/CnBoardView/CnBoardView.vue2.js.map +1 -1
- package/dist/esm/components/CnBoardView/CnBoardView.vue3.js +146 -71
- package/dist/esm/components/CnBoardView/CnBoardView.vue3.js.map +1 -1
- package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue.js +1 -1
- package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue2.js +2 -1
- package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue2.js.map +1 -1
- package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue3.js.map +1 -1
- package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue.js +1 -1
- package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue2.js +2 -1
- package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js +6 -5
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue.js +1 -1
- package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue2.js +2 -1
- package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue2.js.map +1 -1
- package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue3.js.map +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationThread.vue.js +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationThread.vue2.js +2 -1
- package/dist/esm/components/CnConversationThread/CnConversationThread.vue2.js.map +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationThread.vue3.js.map +1 -1
- package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue.js +1 -1
- package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue2.js +2 -1
- package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +47 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +22 -12
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue.js +1 -1
- package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue2.js +3 -1
- package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue2.js.map +1 -1
- package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailHeaderChips.vue2.js +2 -1
- package/dist/esm/components/CnDetailPage/CnDetailHeaderChips.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailHeaderChips.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +23 -4
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue.js +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +3 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
- package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue.js +1 -1
- package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue2.js +2 -1
- package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue2.js.map +1 -1
- package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue3.js.map +1 -1
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js +1 -1
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js +18 -5
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue.js +1 -1
- package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue2.js +3 -1
- package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue2.js.map +1 -1
- package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue3.js.map +1 -1
- package/dist/esm/components/CnFileManager/CnFileManager.vue.js +1 -1
- package/dist/esm/components/CnFileManager/CnFileManager.vue2.js +3 -1
- package/dist/esm/components/CnFileManager/CnFileManager.vue2.js.map +1 -1
- package/dist/esm/components/CnFileManager/CnFileManager.vue3.js.map +1 -1
- package/dist/esm/components/CnFilePreview/CnFilePreview.vue.js +1 -1
- package/dist/esm/components/CnFilePreview/CnFilePreview.vue2.js +2 -1
- package/dist/esm/components/CnFilePreview/CnFilePreview.vue2.js.map +1 -1
- package/dist/esm/components/CnFilePreview/CnFilePreview.vue3.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue.js +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +49 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +3 -3
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
- package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue.js +1 -1
- package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue2.js +2 -1
- package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue2.js.map +1 -1
- package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +571 -77
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +191 -82
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/useSelfFetchList.js +11 -2
- package/dist/esm/components/CnIndexPage/useSelfFetchList.js.map +1 -1
- package/dist/esm/components/CnNotesCard/CnNotesCard.vue.js +1 -1
- package/dist/esm/components/CnNotesCard/CnNotesCard.vue2.js +2 -1
- package/dist/esm/components/CnNotesCard/CnNotesCard.vue2.js.map +1 -1
- package/dist/esm/components/CnNotesCard/CnNotesCard.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue.js +1 -1
- package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue2.js +3 -2
- package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue.js +1 -1
- package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue2.js +28 -0
- package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue3.js +82 -75
- package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue.js +1 -1
- package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue2.js +5 -4
- package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue.js +1 -1
- package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue2.js +2 -1
- package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue.js +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue2.js +2 -1
- package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue.js +1 -1
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue2.js +2 -1
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue.js +1 -1
- package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue2.js +2 -1
- package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue3.js.map +1 -1
- package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue.js +1 -1
- package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue2.js +2 -1
- package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue2.js.map +1 -1
- package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue3.js.map +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js +70 -2
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue.js +1 -1
- package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue2.js +67 -5
- package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue2.js.map +1 -1
- package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue3.js +181 -124
- package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue3.js.map +1 -1
- package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue.js +1 -1
- package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue2.js +2 -1
- package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue2.js.map +1 -1
- package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue3.js.map +1 -1
- package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue2.js +2 -0
- package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue3.js +2 -2
- package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue3.js.map +1 -1
- package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue.js +1 -1
- package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue2.js +5 -1
- package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue2.js.map +1 -1
- package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue3.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue.js +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js +134 -10
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js +6 -2
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue.js +1 -1
- package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue2.js +2 -1
- package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue2.js.map +1 -1
- package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue3.js.map +1 -1
- package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue.js +1 -1
- package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue2.js +2 -1
- package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue2.js.map +1 -1
- package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue3.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue.js +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +6 -3
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnTasksCard/CnTasksCard.vue.js +1 -1
- package/dist/esm/components/CnTasksCard/CnTasksCard.vue2.js +2 -1
- package/dist/esm/components/CnTasksCard/CnTasksCard.vue2.js.map +1 -1
- package/dist/esm/components/CnTasksCard/CnTasksCard.vue3.js.map +1 -1
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js +1 -1
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js +2 -1
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue.js +1 -1
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue2.js +140 -7
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnTranslatedBadge/CnTranslatedBadge.vue.js +1 -1
- package/dist/esm/components/CnTranslatedBadge/CnTranslatedBadge.vue2.js +2 -1
- package/dist/esm/components/CnTranslatedBadge/CnTranslatedBadge.vue2.js.map +1 -1
- package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue.js +1 -1
- package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue2.js +2 -1
- package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue2.js.map +1 -1
- package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue3.js.map +1 -1
- package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue.js +1 -1
- package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue2.js +37 -9
- package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue2.js.map +1 -1
- package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue3.js +6 -5
- package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue2.js +53 -1
- package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue2.js.map +1 -1
- package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue3.js +3 -2
- package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue.js +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +135 -0
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue.js +1 -1
- package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue2.js +19 -0
- package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue2.js.map +1 -1
- package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue3.js +37 -19
- package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue3.js.map +1 -1
- package/dist/esm/composables/useListView.js +21 -0
- package/dist/esm/composables/useListView.js.map +1 -1
- package/dist/esm/dialogs/CnNoteHistoryDialog.vue.js +1 -1
- package/dist/esm/dialogs/CnNoteHistoryDialog.vue2.js +2 -1
- package/dist/esm/dialogs/CnNoteHistoryDialog.vue2.js.map +1 -1
- package/dist/esm/dialogs/CnNoteHistoryDialog.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/activity/CnActivityCard.vue.js +1 -1
- package/dist/esm/integrations/builtin/activity/CnActivityCard.vue2.js +3 -2
- package/dist/esm/integrations/builtin/activity/CnActivityCard.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/activity/CnActivityCard.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/activity/CnActivityTab.vue.js +1 -1
- package/dist/esm/integrations/builtin/activity/CnActivityTab.vue2.js +4 -3
- package/dist/esm/integrations/builtin/activity/CnActivityTab.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/activity/CnActivityTab.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue.js +1 -1
- package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue2.js +3 -2
- package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue.js +1 -1
- package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue2.js +2 -1
- package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue.js +1 -1
- package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue2.js +6 -5
- package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue.js +1 -1
- package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue2.js +2 -1
- package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue.js +1 -1
- package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue2.js +2 -1
- package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/deck/CnDeckTab.vue.js +1 -1
- package/dist/esm/integrations/builtin/deck/CnDeckTab.vue2.js +2 -1
- package/dist/esm/integrations/builtin/deck/CnDeckTab.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/deck/CnDeckTab.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/email/CnEmailCard.vue.js +1 -1
- package/dist/esm/integrations/builtin/email/CnEmailCard.vue2.js +2 -1
- package/dist/esm/integrations/builtin/email/CnEmailCard.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/email/CnEmailCard.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue.js +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js +2 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue.js +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue2.js +2 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue.js +1 -1
- package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue2.js +2 -1
- package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue3.js.map +1 -1
- package/dist/esm/l10n/en.json.js +57 -2
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +78 -2
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/library-style.js +1 -1
- package/dist/esm/nextcloud-vue.css +1541 -1166
- package/dist/esm/store/useObjectStore.js +23 -4
- package/dist/esm/store/useObjectStore.js.map +1 -1
- package/dist/esm/utils/boardColumns.js +58 -2
- package/dist/esm/utils/boardColumns.js.map +1 -1
- package/dist/esm/utils/boardReferenceColumns.js +330 -0
- package/dist/esm/utils/boardReferenceColumns.js.map +1 -0
- package/dist/esm/utils/buildManifest.js +4 -1
- package/dist/esm/utils/buildManifest.js.map +1 -1
- package/dist/esm/utils/schema.js +5 -4
- package/dist/esm/utils/schema.js.map +1 -1
- package/dist/esm/utils/userLocale.js +30 -0
- package/dist/esm/utils/userLocale.js.map +1 -0
- package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
- package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
- package/dist/esm/utils/widgetDispatch.js +8 -2
- package/dist/esm/utils/widgetDispatch.js.map +1 -1
- package/dist/nextcloud-vue.cjs.js +30291 -27618
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +1541 -1166
- package/l10n/en.json +57 -2
- package/l10n/nl.json +78 -2
- package/package.json +1 -1
- package/src/components/CnAdminSettingsShell/CnAdminSettingsShell.vue +160 -8
- package/src/components/CnAdvancedFormDialog/CnMetadataTab.vue +3 -2
- package/src/components/CnAdvancedFormDialog/CnPropertyValueCell.vue +5 -4
- package/src/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue +2 -1
- package/src/components/CnAuditTrailCard/CnAuditTrailCard.vue +2 -1
- package/src/components/CnBoardView/CnBoardView.vue +433 -12
- package/src/components/CnCalendarEventPicker/CnCalendarEventPicker.vue +2 -1
- package/src/components/CnCalendarWidget/CnCalendarWidget.vue +2 -1
- package/src/components/CnChartWidget/CnChartWidget.vue +6 -5
- package/src/components/CnCollectivePagePicker/CnCollectivePagePicker.vue +2 -1
- package/src/components/CnConversationThread/CnConversationThread.vue +2 -1
- package/src/components/CnCountdownWidget/CnCountdownWidget.vue +2 -1
- package/src/components/CnDashboardPage/CnDashboardPage.vue +59 -3
- package/src/components/CnDataMatrix/CnDataMatrix.vue +2 -1
- package/src/components/CnDetailPage/CnDetailHeaderChips.vue +2 -1
- package/src/components/CnDetailPage/CnDetailPage.md +1 -1
- package/src/components/CnDetailPage/CnDetailPage.vue +23 -4
- package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +3 -1
- package/src/components/CnEmailPicker/CnEmailPicker.vue +2 -1
- package/src/components/CnFactsWidget/CnFactsWidget.vue +18 -5
- package/src/components/CnFederationStatus/CnFederationStatus.vue +3 -1
- package/src/components/CnFileManager/CnFileManager.vue +2 -1
- package/src/components/CnFilePreview/CnFilePreview.vue +2 -1
- package/src/components/CnFilesBrowser/CnFilesBrowser.vue +54 -6
- package/src/components/CnFollowToggle/CnFollowToggle.vue +2 -1
- package/src/components/CnIndexPage/CnIndexPage.vue +610 -25
- package/src/components/CnIndexPage/useSelfFetchList.js +10 -1
- package/src/components/CnNotesCard/CnNotesCard.vue +2 -1
- package/src/components/CnObjectCalendar/CnObjectCalendar.vue +3 -2
- package/src/components/CnObjectDataWidget/CnObjectDataWidget.vue +36 -0
- package/src/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue +5 -4
- package/src/components/CnObjectSidebar/CnAuditTrailTab.vue +2 -1
- package/src/components/CnObjectSidebar/CnFlowTasksPanel.vue +2 -1
- package/src/components/CnObjectSidebar/CnNotesTab.vue +2 -1
- package/src/components/CnObjectSidebar/CnTasksTab.vue +2 -1
- package/src/components/CnPropertySourceField/CnPropertySourceField.vue +2 -1
- package/src/components/CnRecordListWidget/CnRecordListWidget.vue +70 -2
- package/src/components/CnRegisterMapping/CnRegisterMapping.md +5 -0
- package/src/components/CnRegisterMapping/CnRegisterMapping.vue +231 -96
- package/src/components/CnRoadmapItem/CnRoadmapItem.vue +2 -1
- package/src/components/CnSchemaFormDialog/CnSchemaFormDialog.vue +4 -2
- package/src/components/CnSettingsPage/CnSettingsPage.vue +5 -1
- package/src/components/CnStatWidget/CnStatWidget.vue +136 -11
- package/src/components/CnStatsBlock/CnStatsBlock.vue +2 -1
- package/src/components/CnSummaryAggregates/CnSummaryAggregates.vue +2 -1
- package/src/components/CnTabsWidget/CnTabsWidget.vue +6 -3
- package/src/components/CnTasksCard/CnTasksCard.vue +2 -1
- package/src/components/CnTimelineWidget/CnTimelineWidget.vue +2 -1
- package/src/components/CnToggleTableWidget/CnToggleTableWidget.vue +140 -7
- package/src/components/CnTranslatedBadge/CnTranslatedBadge.vue +2 -1
- package/src/components/CnVersionHistory/CnVersionHistory.vue +2 -1
- package/src/components/CnVersionInfoCard/CnVersionInfoCard.md +2 -1
- package/src/components/CnVersionInfoCard/CnVersionInfoCard.vue +42 -13
- package/src/components/CnWidgetCardGrid/CnWidgetCardGrid.vue +55 -2
- package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +135 -0
- package/src/components/CnWidgetWrapper/CnWidgetWrapper.md +10 -0
- package/src/components/CnWidgetWrapper/CnWidgetWrapper.vue +44 -1
- package/src/composables/useListView.js +21 -0
- package/src/css/board.css +105 -4
- package/src/css/dialog.css +4 -2
- package/src/css/index-page.css +49 -0
- package/src/css/look-board.css +77 -7
- package/src/dialogs/CnNoteHistoryDialog.vue +2 -1
- package/src/integrations/builtin/activity/CnActivityCard.vue +3 -2
- package/src/integrations/builtin/activity/CnActivityTab.vue +4 -3
- package/src/integrations/builtin/analytics/CnAnalyticsTab.vue +3 -2
- package/src/integrations/builtin/calendar/CnCalendarCard.vue +2 -1
- package/src/integrations/builtin/calendar/CnCalendarTab.vue +6 -5
- package/src/integrations/builtin/contactmoment/CnContactmomentCard.vue +2 -1
- package/src/integrations/builtin/cospend/CnCospendTab.vue +2 -1
- package/src/integrations/builtin/deck/CnDeckTab.vue +2 -1
- package/src/integrations/builtin/email/CnEmailCard.vue +2 -1
- package/src/integrations/builtin/field-inspection/CnFieldInspectionCard.vue +2 -1
- package/src/integrations/builtin/field-inspection/CnFieldInspectionTab.vue +2 -1
- package/src/integrations/builtin/photos/CnPhotosTab.vue +2 -1
- package/src/schemas/app-manifest-v2.schema.json +116 -5
- package/src/store/useObjectStore.js +23 -4
- package/src/utils/boardColumns.js +57 -1
- package/src/utils/boardReferenceColumns.js +326 -0
- package/src/utils/buildManifest.js +4 -1
- package/src/utils/schema.js +5 -4
- package/src/utils/userLocale.js +26 -0
- package/src/utils/validateManifestV2.compiled.js +3 -3
- package/src/utils/widgetDispatch.js +8 -2
|
@@ -26,6 +26,15 @@ function resolveInitialQuickFilterIndex(quickFilters) {
|
|
|
26
26
|
* @param {Array<object>} filterMaps Already route-resolved filter maps.
|
|
27
27
|
* @return {object} The merged filter (scalar when a key has one value, array when many).
|
|
28
28
|
*/
|
|
29
|
+
/**
|
|
30
|
+
* Rows one board fetch asks for. A board shows every matching row at once,
|
|
31
|
+
* so it loads far more than a table page (OpenRegister serves up to 1000);
|
|
32
|
+
* past this the board offers "Load more".
|
|
33
|
+
*
|
|
34
|
+
* @type {number}
|
|
35
|
+
*/
|
|
36
|
+
export const BOARD_PAGE_SIZE = 500
|
|
37
|
+
|
|
29
38
|
/**
|
|
30
39
|
* The sort a quick filter sets while it is active (`sort: { key, order }`, or a
|
|
31
40
|
* list of those for a multi-column order), as sort keys, or null when it sets
|
|
@@ -236,7 +245,7 @@ export function useSelfFetchList(props, instance, inject, extras = {}) {
|
|
|
236
245
|
defaultSortKeys: initialSortKeys,
|
|
237
246
|
defaultActiveFilters: initialActiveFilters,
|
|
238
247
|
defaultSearchTerm: initialSearchTerm,
|
|
239
|
-
defaultPageSize: (props.pagination && props.pagination.limit) || undefined,
|
|
248
|
+
defaultPageSize: props.viewMode === 'board' ? BOARD_PAGE_SIZE : ((props.pagination && props.pagination.limit) || undefined),
|
|
240
249
|
defaultVisibleColumns: configuredColumnKeys.length ? configuredColumnKeys : null,
|
|
241
250
|
// `pages[].config.extend` → OpenRegister's repeated `_extend[]`. A
|
|
242
251
|
// getter so a reactive change re-scopes the next fetch, matching how
|
|
@@ -158,6 +158,7 @@ import { useFileComments } from '../../composables/useFileComments.js'
|
|
|
158
158
|
import { buildHeaders, prefixUrl } from '../../utils/index.js'
|
|
159
159
|
import { extractMentionedGroupIds, extractMentionedIds } from '../../utils/mentions.js'
|
|
160
160
|
import { quoteFor, supportsReplies, threadNotes, threadRootId } from '../../utils/noteThreads.js'
|
|
161
|
+
import { userLocale } from '../../utils/userLocale.js'
|
|
161
162
|
|
|
162
163
|
/**
|
|
163
164
|
* CnNotesCard — Inline notes widget for detail pages.
|
|
@@ -655,7 +656,7 @@ export default {
|
|
|
655
656
|
return ''
|
|
656
657
|
}
|
|
657
658
|
try {
|
|
658
|
-
return new Date(dateStr).toLocaleString(
|
|
659
|
+
return new Date(dateStr).toLocaleString(userLocale(), {
|
|
659
660
|
year: 'numeric',
|
|
660
661
|
month: 'short',
|
|
661
662
|
day: 'numeric',
|
|
@@ -95,6 +95,7 @@ import { translate as t } from '@nextcloud/l10n'
|
|
|
95
95
|
import { NcButton, NcLoadingIcon } from '@nextcloud/vue'
|
|
96
96
|
import ChevronLeft from 'vue-material-design-icons/ChevronLeft.vue'
|
|
97
97
|
import ChevronRight from 'vue-material-design-icons/ChevronRight.vue'
|
|
98
|
+
import { userLocale } from '../../utils/userLocale.js'
|
|
98
99
|
|
|
99
100
|
/**
|
|
100
101
|
* CnObjectCalendar — plots objects on a month calendar by a date property.
|
|
@@ -210,7 +211,7 @@ export default {
|
|
|
210
211
|
|
|
211
212
|
computed: {
|
|
212
213
|
monthLabel() {
|
|
213
|
-
return this.internalDate.toLocaleDateString(
|
|
214
|
+
return this.internalDate.toLocaleDateString(userLocale(), { month: 'long', year: 'numeric' })
|
|
214
215
|
},
|
|
215
216
|
|
|
216
217
|
prevMonthLabel() {
|
|
@@ -460,7 +461,7 @@ export default {
|
|
|
460
461
|
* @return {string}
|
|
461
462
|
*/
|
|
462
463
|
dayLabel(day) {
|
|
463
|
-
const date = this.parseDate(day.iso).toLocaleDateString(
|
|
464
|
+
const date = this.parseDate(day.iso).toLocaleDateString(userLocale(), { weekday: 'long', day: 'numeric', month: 'long', year: 'numeric' })
|
|
464
465
|
return day.objects.length === 0 ? date : `${date}, ${t('nextcloud-vue', '{count} records', { count: day.objects.length })}`
|
|
465
466
|
},
|
|
466
467
|
|
|
@@ -291,6 +291,14 @@
|
|
|
291
291
|
<CnGroupNameCell :gid="gid" />
|
|
292
292
|
</template>
|
|
293
293
|
</span>
|
|
294
|
+
<!-- A Nextcloud user (or list): the display name, the
|
|
295
|
+
uid while it loads or when it cannot be found. -->
|
|
296
|
+
<span
|
|
297
|
+
v-else-if="isUserPicker(field) && userIdsOf(field).length"
|
|
298
|
+
class="cn-object-data-widget__users"
|
|
299
|
+
:title="userIdsOf(field).join(', ')">
|
|
300
|
+
{{ userIdsOf(field).map((uid) => personLabel(field, uid)).join(', ') }}
|
|
301
|
+
</span>
|
|
294
302
|
<img v-else-if="isImageField(field) && rawOf(field)"
|
|
295
303
|
:src="rawOf(field)"
|
|
296
304
|
:alt="field.label"
|
|
@@ -1132,12 +1140,14 @@ export default {
|
|
|
1132
1140
|
}
|
|
1133
1141
|
// Resolve relation display names whenever the object changes.
|
|
1134
1142
|
this.resolveRelations()
|
|
1143
|
+
this.resolveUserNames()
|
|
1135
1144
|
},
|
|
1136
1145
|
},
|
|
1137
1146
|
|
|
1138
1147
|
schema: {
|
|
1139
1148
|
handler() {
|
|
1140
1149
|
this.resolveRelations()
|
|
1150
|
+
this.resolveUserNames()
|
|
1141
1151
|
},
|
|
1142
1152
|
},
|
|
1143
1153
|
|
|
@@ -1161,6 +1171,7 @@ export default {
|
|
|
1161
1171
|
|
|
1162
1172
|
mounted() {
|
|
1163
1173
|
this.resolveRelations()
|
|
1174
|
+
this.resolveUserNames()
|
|
1164
1175
|
this.publishPanelActions()
|
|
1165
1176
|
this.observeCell()
|
|
1166
1177
|
this.scheduleFit()
|
|
@@ -2189,6 +2200,31 @@ export default {
|
|
|
2189
2200
|
return list.filter((v) => typeof v === 'string' && v !== '')
|
|
2190
2201
|
},
|
|
2191
2202
|
|
|
2203
|
+
/**
|
|
2204
|
+
* The uids a user field holds, for the display mode. The same list
|
|
2205
|
+
* shape a group field holds.
|
|
2206
|
+
*
|
|
2207
|
+
* @spec openspec/changes/a-user-field-reads-its-display-name/specs/data-display/spec.md#requirement-a-user-field-shows-the-users-display-name
|
|
2208
|
+
* @param {object} field Field descriptor.
|
|
2209
|
+
* @return {string[]}
|
|
2210
|
+
*/
|
|
2211
|
+
userIdsOf(field) {
|
|
2212
|
+
return this.groupIdsOf(field)
|
|
2213
|
+
},
|
|
2214
|
+
|
|
2215
|
+
/**
|
|
2216
|
+
* Look up the display names of every user field's value, so the read
|
|
2217
|
+
* mode shows "Thomas Kuiper" rather than `thomas.kuiper`. Each uid is
|
|
2218
|
+
* asked once per widget.
|
|
2219
|
+
*
|
|
2220
|
+
* @spec openspec/changes/a-user-field-reads-its-display-name/specs/data-display/spec.md#requirement-a-user-field-shows-the-users-display-name
|
|
2221
|
+
* @return {Promise<void>}
|
|
2222
|
+
*/
|
|
2223
|
+
async resolveUserNames() {
|
|
2224
|
+
const fields = (this.resolvedFields || []).filter((field) => this.isUserPicker(field))
|
|
2225
|
+
await Promise.all(fields.map((field) => this.resolvePersonLabels(field, this.rawOf(field))))
|
|
2226
|
+
},
|
|
2227
|
+
|
|
2192
2228
|
/**
|
|
2193
2229
|
* The display name of a group id or uid, falling back to the id.
|
|
2194
2230
|
*
|
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
<script>
|
|
56
56
|
import { translatePlural as n, translate as t } from '@nextcloud/l10n'
|
|
57
57
|
import { generateUrl } from '@nextcloud/router'
|
|
58
|
+
import { userLocale } from '../../utils/userLocale.js'
|
|
58
59
|
import { CnDetailCard } from '../CnDetailCard/index.js'
|
|
59
60
|
import { CnDetailGrid } from '../CnDetailGrid/index.js'
|
|
60
61
|
|
|
@@ -516,7 +517,7 @@ export default {
|
|
|
516
517
|
if (Number.isNaN(date.getTime())) {
|
|
517
518
|
return String(value)
|
|
518
519
|
}
|
|
519
|
-
return date.toLocaleDateString(
|
|
520
|
+
return date.toLocaleDateString(userLocale(), {
|
|
520
521
|
day: '2-digit',
|
|
521
522
|
month: '2-digit',
|
|
522
523
|
year: 'numeric',
|
|
@@ -530,11 +531,11 @@ export default {
|
|
|
530
531
|
if (Number.isNaN(date.getTime())) {
|
|
531
532
|
return String(value)
|
|
532
533
|
}
|
|
533
|
-
return date.toLocaleDateString(
|
|
534
|
+
return date.toLocaleDateString(userLocale(), {
|
|
534
535
|
day: '2-digit',
|
|
535
536
|
month: '2-digit',
|
|
536
537
|
year: 'numeric',
|
|
537
|
-
}) + ', ' + date.toLocaleTimeString(
|
|
538
|
+
}) + ', ' + date.toLocaleTimeString(userLocale(), {
|
|
538
539
|
hour: '2-digit',
|
|
539
540
|
minute: '2-digit',
|
|
540
541
|
second: '2-digit',
|
|
@@ -579,7 +580,7 @@ export default {
|
|
|
579
580
|
if (holder && hasUntil) {
|
|
580
581
|
return t('nextcloud-vue', 'Locked by {user} until {date}', {
|
|
581
582
|
user: holder,
|
|
582
|
-
date: until.toLocaleString(),
|
|
583
|
+
date: until.toLocaleString(userLocale()),
|
|
583
584
|
})
|
|
584
585
|
}
|
|
585
586
|
|
|
@@ -146,6 +146,7 @@ import CnConfirmDialog from '../../dialogs/CnConfirmDialog.vue'
|
|
|
146
146
|
import { useRestoreVersion } from '../../composables/useRestoreVersion.js'
|
|
147
147
|
import { buildHeaders } from '../../utils/index.js'
|
|
148
148
|
import { isLockedByCurrentUser, isObjectLocked, lockHolder } from '../../utils/objectLock.js'
|
|
149
|
+
import { userLocale } from '../../utils/userLocale.js'
|
|
149
150
|
|
|
150
151
|
export default {
|
|
151
152
|
name: 'CnAuditTrailTab',
|
|
@@ -426,7 +427,7 @@ export default {
|
|
|
426
427
|
return ''
|
|
427
428
|
}
|
|
428
429
|
try {
|
|
429
|
-
return new Date(dateStr).toLocaleString(
|
|
430
|
+
return new Date(dateStr).toLocaleString(userLocale(), {
|
|
430
431
|
year: 'numeric',
|
|
431
432
|
month: 'short',
|
|
432
433
|
day: 'numeric',
|
|
@@ -118,6 +118,7 @@ import { taskDeepLink, taskDueLabel } from '../../composables/indexSources.js'
|
|
|
118
118
|
import { useTaskInboxStore } from '../../composables/useTaskInboxStore.js'
|
|
119
119
|
import { searchGroupSharees } from '../../utils/searchGroupSharees.js'
|
|
120
120
|
import { searchNextcloudUsers } from '../../utils/userAutocomplete.js'
|
|
121
|
+
import { userLocale } from '../../utils/userLocale.js'
|
|
121
122
|
|
|
122
123
|
/** The verbs this panel has a control for, in the order a row shows them. */
|
|
123
124
|
const VERBS = ['claim', 'unclaim', 'reassign', 'complete', 'cancel']
|
|
@@ -239,7 +240,7 @@ export default {
|
|
|
239
240
|
return label
|
|
240
241
|
}
|
|
241
242
|
const d = new Date(task.dueAt)
|
|
242
|
-
const date = Number.isNaN(d.getTime()) ? String(task.dueAt) : d.toLocaleDateString()
|
|
243
|
+
const date = Number.isNaN(d.getTime()) ? String(task.dueAt) : d.toLocaleDateString(userLocale())
|
|
243
244
|
return this.isOverdue(task) ? t('nextcloud-vue', 'Overdue: {date}', { date }) : date
|
|
244
245
|
},
|
|
245
246
|
|
|
@@ -169,6 +169,7 @@ import { buildHeaders, prefixUrl } from '../../utils/index.js'
|
|
|
169
169
|
import { extractMentionedGroupIds, extractMentionedIds } from '../../utils/mentions.js'
|
|
170
170
|
import { quoteFor, supportsReplies, threadNotes, threadRootId } from '../../utils/noteThreads.js'
|
|
171
171
|
import { searchNextcloudUsers } from '../../utils/userAutocomplete.js'
|
|
172
|
+
import { userLocale } from '../../utils/userLocale.js'
|
|
172
173
|
|
|
173
174
|
export default {
|
|
174
175
|
name: 'CnNotesTab',
|
|
@@ -595,7 +596,7 @@ export default {
|
|
|
595
596
|
return ''
|
|
596
597
|
}
|
|
597
598
|
try {
|
|
598
|
-
return new Date(dateStr).toLocaleString(
|
|
599
|
+
return new Date(dateStr).toLocaleString(userLocale(), {
|
|
599
600
|
year: 'numeric',
|
|
600
601
|
month: 'short',
|
|
601
602
|
day: 'numeric',
|
|
@@ -145,6 +145,7 @@ import Pencil from 'vue-material-design-icons/Pencil.vue'
|
|
|
145
145
|
import Plus from 'vue-material-design-icons/Plus.vue'
|
|
146
146
|
import CnFlowTasksPanel from './CnFlowTasksPanel.vue'
|
|
147
147
|
import { buildHeaders, prefixUrl } from '../../utils/index.js'
|
|
148
|
+
import { userLocale } from '../../utils/userLocale.js'
|
|
148
149
|
|
|
149
150
|
export default {
|
|
150
151
|
name: 'CnTasksTab',
|
|
@@ -471,7 +472,7 @@ export default {
|
|
|
471
472
|
return ''
|
|
472
473
|
}
|
|
473
474
|
try {
|
|
474
|
-
return new Date(dateStr).toLocaleDateString(
|
|
475
|
+
return new Date(dateStr).toLocaleDateString(userLocale(), {
|
|
475
476
|
day: 'numeric',
|
|
476
477
|
month: 'short',
|
|
477
478
|
})
|
|
@@ -45,6 +45,7 @@ import { translate as t } from '@nextcloud/l10n'
|
|
|
45
45
|
import { generateUrl } from '@nextcloud/router'
|
|
46
46
|
import { NcSelect, NcTextField } from '@nextcloud/vue'
|
|
47
47
|
import { isAppInstalled } from '../../utils/appInstalled.js'
|
|
48
|
+
import { userLocale } from '../../utils/userLocale.js'
|
|
48
49
|
|
|
49
50
|
const BASE = '/apps/integriq/api/property-sources'
|
|
50
51
|
|
|
@@ -207,7 +208,7 @@ export default {
|
|
|
207
208
|
methods: {
|
|
208
209
|
formatTime(iso) {
|
|
209
210
|
const d = new Date(iso)
|
|
210
|
-
return Number.isNaN(d.getTime()) ? String(iso) : d.toLocaleString()
|
|
211
|
+
return Number.isNaN(d.getTime()) ? String(iso) : d.toLocaleString(userLocale())
|
|
211
212
|
},
|
|
212
213
|
|
|
213
214
|
url(path) {
|
|
@@ -141,9 +141,11 @@
|
|
|
141
141
|
import { subscribe, unsubscribe } from '@nextcloud/event-bus'
|
|
142
142
|
import { translate as t } from '@nextcloud/l10n'
|
|
143
143
|
import { NcLoadingIcon } from '@nextcloud/vue'
|
|
144
|
+
import { inject, ref } from 'vue'
|
|
144
145
|
import ChevronRight from 'vue-material-design-icons/ChevronRight.vue'
|
|
145
146
|
import CnIcon from '../CnIcon/CnIcon.vue'
|
|
146
147
|
import CnStatusBadge from '../CnStatusBadge/CnStatusBadge.vue'
|
|
148
|
+
import { useEndpointSource } from '../../composables/useEndpointSource.js'
|
|
147
149
|
import { actionLink, dispatchAction, interpolateActionTarget } from '../../utils/actionsDispatcher.js'
|
|
148
150
|
import { isBadgeVariant } from '../../utils/badgeVariants.js'
|
|
149
151
|
import { ageInDays } from '../../utils/boardDate.js'
|
|
@@ -180,7 +182,8 @@ function unwrap(value) {
|
|
|
180
182
|
* objects filtered on a reference to this record. The source keys are those of
|
|
181
183
|
* `object-list` (`register`, `schema`, `filter` with the `@objectId` /
|
|
182
184
|
* `@object.<field>` / `@workspace.<key>` tokens, `sort`, `limit`, `extend`,
|
|
183
|
-
* `rowRoute`, `pageControls`)
|
|
185
|
+
* `rowRoute`, `pageControls`), or `endpointSource` (an app endpoint whose
|
|
186
|
+
* payload, after `responsePath`, is the array of rows, as on the object table); `avatar` puts a circle with the initials of a name
|
|
184
187
|
* template before the title; what differs is the drawing: `presentation` is `rows`, `feed`
|
|
185
188
|
* or `inline`, and each line is a template (`"{identifier} · {caseTypeName}"`,
|
|
186
189
|
* `"Termijn {deadline|date}"`).
|
|
@@ -213,7 +216,9 @@ export default {
|
|
|
213
216
|
* The list config: `{ register, schema, filter?, sort?, limit?, extend?,
|
|
214
217
|
* presentation?, title?, meta?, text?, label?, pill?, trailing?, icon?,
|
|
215
218
|
* rowRoute?, rowIdField?, headerLink?, headerNote?, emptyText?, errorText?,
|
|
216
|
-
* valueLabels? }`. `
|
|
219
|
+
* valueLabels?, endpointSource? }`. `endpointSource` (`{ url, method?,
|
|
220
|
+
* params?, responsePath? }`) reads the rows from an app endpoint instead
|
|
221
|
+
* of `register` / `schema`. `valueLabels` maps a field's stored values to the labels
|
|
217
222
|
* the templates show.
|
|
218
223
|
*
|
|
219
224
|
* @type {object}
|
|
@@ -238,6 +243,28 @@ export default {
|
|
|
238
243
|
|
|
239
244
|
emits: ['header'],
|
|
240
245
|
|
|
246
|
+
setup(props) {
|
|
247
|
+
const objectCtxRaw = inject('cnObjectContext', null)
|
|
248
|
+
const workspaceRaw = inject('cnWorkspaceContext', null)
|
|
249
|
+
const appConfigRaw = inject('cnAppConfig', ref({}))
|
|
250
|
+
const { data, loading, error } = useEndpointSource(
|
|
251
|
+
() => props.content?.endpointSource || null,
|
|
252
|
+
{
|
|
253
|
+
ctx: () => {
|
|
254
|
+
const injected = unwrap(objectCtxRaw) || {}
|
|
255
|
+
return {
|
|
256
|
+
...injected,
|
|
257
|
+
objectId: props.objectId ?? injected.objectId ?? props.objectData?.id ?? null,
|
|
258
|
+
object: props.objectData || injected.object || null,
|
|
259
|
+
workspace: unwrap(workspaceRaw) || {},
|
|
260
|
+
config: unwrapAppConfig(appConfigRaw) || {},
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
},
|
|
264
|
+
)
|
|
265
|
+
return { epData: data, epLoading: loading, epError: error }
|
|
266
|
+
},
|
|
267
|
+
|
|
241
268
|
data() {
|
|
242
269
|
return {
|
|
243
270
|
rows: [],
|
|
@@ -294,6 +321,22 @@ export default {
|
|
|
294
321
|
return { config: unwrapAppConfig(this.cnAppConfig) }
|
|
295
322
|
},
|
|
296
323
|
|
|
324
|
+
/**
|
|
325
|
+
* Whether the rows come from `endpointSource` rather than OpenRegister.
|
|
326
|
+
*
|
|
327
|
+
* @return {boolean}
|
|
328
|
+
* @spec openspec/changes/endpoint-source-card-grid-record-list/specs/dashboard-page/spec.md#requirement-a-record-list-and-a-card-grid-can-read-an-endpoint
|
|
329
|
+
*/
|
|
330
|
+
endpointActive() {
|
|
331
|
+
const source = this.content?.endpointSource
|
|
332
|
+
return Boolean(source && typeof source === 'object' && source.url)
|
|
333
|
+
},
|
|
334
|
+
|
|
335
|
+
/** @return {string} The endpoint read's state, to copy into the list when it changes. */
|
|
336
|
+
endpointKey() {
|
|
337
|
+
return this.endpointActive ? JSON.stringify([this.epData, this.epLoading, this.epError]) : ''
|
|
338
|
+
},
|
|
339
|
+
|
|
297
340
|
/** @return {number} The fetch cap. */
|
|
298
341
|
limit() {
|
|
299
342
|
const value = Number(this.content?.limit)
|
|
@@ -398,6 +441,10 @@ export default {
|
|
|
398
441
|
requestKey() {
|
|
399
442
|
this.fetchRows()
|
|
400
443
|
},
|
|
444
|
+
|
|
445
|
+
endpointKey() {
|
|
446
|
+
this.fetchRows()
|
|
447
|
+
},
|
|
401
448
|
},
|
|
402
449
|
|
|
403
450
|
mounted() {
|
|
@@ -854,6 +901,23 @@ export default {
|
|
|
854
901
|
return { rows, total: typeof head.total === 'number' ? head.total : rows.length }
|
|
855
902
|
},
|
|
856
903
|
|
|
904
|
+
/**
|
|
905
|
+
* Copy the endpoint read into the list: its payload must be an array of
|
|
906
|
+
* rows (anything else is an empty list), and a failed read is an error.
|
|
907
|
+
*
|
|
908
|
+
* @spec openspec/changes/endpoint-source-card-grid-record-list/specs/dashboard-page/spec.md#requirement-a-record-list-and-a-card-grid-can-read-an-endpoint
|
|
909
|
+
*/
|
|
910
|
+
takeEndpointRows() {
|
|
911
|
+
this.rows = Array.isArray(this.epData) ? this.epData : []
|
|
912
|
+
this.total = this.rows.length
|
|
913
|
+
this.loading = this.epLoading === true
|
|
914
|
+
this.error = Boolean(this.epError)
|
|
915
|
+
this.lenses = {}
|
|
916
|
+
if (!this.loading) {
|
|
917
|
+
this.emitHeader()
|
|
918
|
+
}
|
|
919
|
+
},
|
|
920
|
+
|
|
857
921
|
/**
|
|
858
922
|
* Fetch the list. Sends nothing while a required token is unresolved
|
|
859
923
|
* or the source is incomplete.
|
|
@@ -862,6 +926,10 @@ export default {
|
|
|
862
926
|
*/
|
|
863
927
|
async fetchRows() {
|
|
864
928
|
const c = this.content || {}
|
|
929
|
+
if (this.endpointActive) {
|
|
930
|
+
this.takeEndpointRows()
|
|
931
|
+
return
|
|
932
|
+
}
|
|
865
933
|
if (!c.register || !c.schema || this.waiting) {
|
|
866
934
|
this.rows = []
|
|
867
935
|
this.total = 0
|
|
@@ -111,6 +111,10 @@ export default {
|
|
|
111
111
|
</script>
|
|
112
112
|
```
|
|
113
113
|
|
|
114
|
+
## Several groups
|
|
115
|
+
|
|
116
|
+
With more than one group each group starts closed: its heading is a button that shows the group name and how many of its types are configured ("2/8 configured"), and opens the register select and type list on a click or Enter. A page with several registers is a short card until the administrator opens the group they need.
|
|
117
|
+
|
|
114
118
|
## Additional props
|
|
115
119
|
|
|
116
120
|
| Prop | Type | Default | Description |
|
|
@@ -122,5 +126,6 @@ export default {
|
|
|
122
126
|
| `reimporting` | Boolean | `false` | Disables the reimport button and shows a spinner while reimport is in progress |
|
|
123
127
|
| `saveButtonText` | String | `'Save configuration'` | Label for the save button |
|
|
124
128
|
| `reimportButtonText` | String | `'Re-import configuration'` | Label for the reimport button |
|
|
129
|
+
| `collapseGroups` | Boolean | `null` | Draw each group as a heading button that opens and closes it, with its configured count shown while closed; the groups start closed. `null` does this when there is more than one group, `true` or `false` forces it |
|
|
125
130
|
| `autoMatch` | Boolean | `true` | Automatically match schema titles to type slugs when a register is selected |
|
|
126
131
|
| `labels` | Object | *(see below)* | UI label overrides for all user-visible strings (register, schema, notConfigured, noSchemas, selectRegister, selectSchema, allConfigured, partiallyConfigured) |
|