1
0
mirror of https://gitlab.com/bramw/baserow.git synced 2024-09-16 17:48:19 +00:00
bramw_baserow/premium/web-frontend/modules/baserow_premium/plugin.js
2024-05-02 14:37:53 +00:00

156 lines
5.2 KiB
JavaScript

import { PremiumPlugin } from '@baserow_premium/plugins'
import {
JSONTableExporter,
XMLTableExporter,
} from '@baserow_premium/tableExporterTypes'
import {
DashboardType,
WorkspacesAdminType,
UsersAdminType,
LicensesAdminType,
} from '@baserow_premium/adminTypes'
import rowCommentsStore from '@baserow_premium/store/row_comments'
import kanbanStore from '@baserow_premium/store/view/kanban'
import calendarStore from '@baserow_premium/store/view/calendar'
import impersonatingStore from '@baserow_premium/store/impersonating'
import { PremiumDatabaseApplicationType } from '@baserow_premium/applicationTypes'
import { registerRealtimeEvents } from '@baserow_premium/realtime'
import { KanbanViewType, CalendarViewType } from '@baserow_premium/viewTypes'
import {
LeftBorderColorViewDecoratorType,
BackgroundColorViewDecoratorType,
} from '@baserow_premium/viewDecorators'
import {
SingleSelectColorValueProviderType,
ConditionalColorValueProviderType,
} from '@baserow_premium/decoratorValueProviders'
import { FormViewSurveyModeType } from '@baserow_premium/formViewModeTypes'
import en from '@baserow_premium/locales/en.json'
import fr from '@baserow_premium/locales/fr.json'
import nl from '@baserow_premium/locales/nl.json'
import de from '@baserow_premium/locales/de.json'
import es from '@baserow_premium/locales/es.json'
import it from '@baserow_premium/locales/it.json'
import pl from '@baserow_premium/locales/pl.json'
import { PremiumLicenseType } from '@baserow_premium/licenseTypes'
import { PersonalViewOwnershipType } from '@baserow_premium/viewOwnershipTypes'
import { ViewOwnershipPermissionManagerType } from '@baserow_premium/permissionManagerTypes'
import {
RowCommentMentionNotificationType,
RowCommentNotificationType,
} from '@baserow_premium/notificationTypes'
import { CommentsRowModalSidebarType } from '@baserow_premium/rowModalSidebarTypes'
import {
AIFieldType,
PremiumFormulaFieldType,
} from '@baserow_premium/fieldTypes'
export default (context) => {
const { store, app, isDev } = context
app.$clientErrorMap.setError(
'ERROR_FEATURE_NOT_AVAILABLE',
'License required',
'This functionality requires an active premium license. Please refresh the page.'
)
app.$clientErrorMap.setError(
'ERROR_USER_NOT_COMMENT_AUTHOR',
app.i18n.t('rowComment.errorUserNotCommentAuthorTitle'),
app.i18n.t('rowComment.errorUserNotCommentAuthor')
)
app.$clientErrorMap.setError(
'ERROR_INVALID_COMMENT_MENTION',
app.i18n.t('rowComment.errorInvalidCommentMentionTitle'),
app.i18n.t('rowComment.errorInvalidCommentMention')
)
// Allow locale file hot reloading
if (isDev && app.i18n) {
const { i18n } = app
i18n.mergeLocaleMessage('en', en)
i18n.mergeLocaleMessage('fr', fr)
i18n.mergeLocaleMessage('nl', nl)
i18n.mergeLocaleMessage('de', de)
i18n.mergeLocaleMessage('es', es)
i18n.mergeLocaleMessage('it', it)
i18n.mergeLocaleMessage('pl', pl)
}
store.registerModule('row_comments', rowCommentsStore)
store.registerModule('page/view/kanban', kanbanStore)
store.registerModule('page/view/calendar', calendarStore)
store.registerModule('template/view/kanban', kanbanStore)
store.registerModule('template/view/calendar', calendarStore)
store.registerModule('impersonating', impersonatingStore)
app.$registry.register('plugin', new PremiumPlugin(context))
app.$registry.register('admin', new DashboardType(context))
app.$registry.register('admin', new UsersAdminType(context))
app.$registry.register('admin', new WorkspacesAdminType(context))
app.$registry.register('admin', new LicensesAdminType(context))
app.$registry.register('exporter', new JSONTableExporter(context))
app.$registry.register('exporter', new XMLTableExporter(context))
app.$registry.register('field', new AIFieldType(context))
app.$registry.register('field', new PremiumFormulaFieldType(context))
app.$registry.register('view', new KanbanViewType(context))
app.$registry.register('view', new CalendarViewType(context))
app.$registry.register(
'viewDecorator',
new LeftBorderColorViewDecoratorType(context)
)
app.$registry.register(
'viewDecorator',
new BackgroundColorViewDecoratorType(context)
)
app.$registry.register(
'decoratorValueProvider',
new SingleSelectColorValueProviderType(context)
)
app.$registry.register(
'decoratorValueProvider',
new ConditionalColorValueProviderType(context)
)
app.$registry.register(
'viewOwnershipType',
new PersonalViewOwnershipType(context)
)
app.$registry.register('formViewMode', new FormViewSurveyModeType(context))
app.$registry.register('license', new PremiumLicenseType(context))
app.$registry.register(
'permissionManager',
new ViewOwnershipPermissionManagerType(context)
)
registerRealtimeEvents(app.$realtime)
// Overwrite the existing database application type with the one customized for
// premium use.
app.$registry.register(
'application',
new PremiumDatabaseApplicationType(context)
)
app.$registry.register(
'notification',
new RowCommentMentionNotificationType(context)
)
app.$registry.register(
'notification',
new RowCommentNotificationType(context)
)
app.$registry.register(
'rowModalSidebar',
new CommentsRowModalSidebarType(context)
)
}