mirror of
https://gitlab.com/bramw/baserow.git
synced 2025-04-23 04:40:15 +00:00
85 lines
2.2 KiB
JavaScript
85 lines
2.2 KiB
JavaScript
import { Registerable } from '@baserow/modules/core/registry'
|
|
|
|
/**
|
|
* The name plugin might be a bit confusing because you also have Nuxt plugins, but
|
|
* this is not the same. A plugin can contain hooks for certain events such as when
|
|
* a user account is created.
|
|
*/
|
|
export class BaserowPlugin extends Registerable {
|
|
constructor(...args) {
|
|
super(...args)
|
|
this.type = this.getType()
|
|
}
|
|
|
|
/**
|
|
* Hook that is called when a user creates a new account. This can for example be
|
|
* used for submitting an analytical event.
|
|
*/
|
|
userCreated(user, context) {}
|
|
|
|
/**
|
|
* Every registered plugin can have a component that's rendered at the top of the
|
|
* left sidebar.
|
|
*/
|
|
getSidebarTopComponent() {
|
|
return null
|
|
}
|
|
|
|
/*
|
|
* Every registered plugin can display an item in the main sidebar menu.
|
|
*/
|
|
getSidebarMainMenuComponent() {
|
|
return null
|
|
}
|
|
|
|
/*
|
|
* Every registered plugin can display a component in the links section of the
|
|
* dashboard sidebar.
|
|
*/
|
|
getDashboardSidebarLinksComponent() {
|
|
return null
|
|
}
|
|
|
|
/*
|
|
* Every registered plugin can display a component in the `DashboardGroup`
|
|
* component directly after the group name.
|
|
*/
|
|
getDashboardGroupExtraComponent() {
|
|
return null
|
|
}
|
|
|
|
/*
|
|
* Every registered plugin can display a component in the `DashboardGroup`
|
|
* component directly below the group name.
|
|
*/
|
|
getDashboardGroupComponent() {
|
|
return null
|
|
}
|
|
|
|
/**
|
|
* Because the dashboard could contain dynamic `getDashboardGroupComponent` and
|
|
* `getDashboardGroupExtraComponent` components, it could be that additional data
|
|
* must be fetched from the backend when the page first loads. This method can be
|
|
* overwritten to do that.
|
|
*/
|
|
fetchAsyncDashboardData(context, data) {
|
|
return data
|
|
}
|
|
|
|
/**
|
|
* Every registered plugin can display a component in the `AuthRegister` component
|
|
* directly at the bottom of the form. This component can be used to extend the
|
|
* register functionality.
|
|
*/
|
|
getRegisterComponent() {
|
|
return null
|
|
}
|
|
|
|
/**
|
|
* Every registered plugin can display a component in the `app.vue` layout. This
|
|
* is the root component that's being used for every authenticated page in the app.
|
|
*/
|
|
getAppLayoutComponent() {
|
|
return null
|
|
}
|
|
}
|