Add notifier to plugin helpers (#2627)
authorKim <1877318+kimsible@users.noreply.github.com>
Wed, 15 Apr 2020 07:08:59 +0000 (09:08 +0200)
committerGitHub <noreply@github.com>
Wed, 15 Apr 2020 07:08:59 +0000 (09:08 +0200)
* Add notifier to client PeerTubeHelpers plugin

* Add doc for notifier PeerTubeHelpers

* Add getBaseClientScriptsRoute to client PeerTubeHelpers plugin

* Add doc for getBaseClientScriptsRoute PeerTubeHelpers

* Remove unused helper

Co-authored-by: kimsible <kimsible@users.noreply.github.com>
client/src/app/core/plugins/plugin.service.ts
client/src/types/register-client-option.model.ts
support/doc/plugins/guide.md

index da5114048a994a896c790688ce88a6860dbad27d..b9d55a7e49ef7fb3c5bd4786f3d2547030c298ba 100644 (file)
@@ -12,7 +12,7 @@ import { ClientHook, ClientHookName, clientHookObject } from '@shared/models/plu
 import { PluginClientScope } from '@shared/models/plugins/plugin-client-scope.type'
 import { RegisterClientHookOptions } from '@shared/models/plugins/register-client-hook.model'
 import { HttpClient } from '@angular/common/http'
-import { AuthService } from '@app/core/auth'
+import { AuthService, Notifier } from '@app/core'
 import { RestExtractor } from '@app/shared/rest'
 import { PluginType } from '@shared/models/plugins/plugin.type'
 import { PublicServerSetting } from '@shared/models/plugins/public-server.setting'
@@ -60,6 +60,7 @@ export class PluginService implements ClientHook {
   constructor (
     private router: Router,
     private authService: AuthService,
+    private notifier: Notifier,
     private server: ServerService,
     private zone: NgZone,
     private authHttp: HttpClient,
@@ -272,6 +273,8 @@ export class PluginService implements ClientHook {
         return this.authService.isLoggedIn()
       },
 
+      notifier: this.notifier,
+
       translate: (value: string) => {
         return this.translationsObservable
             .pipe(map(allTranslations => allTranslations[npmName]))
index 638b086532f2d614a7608fc4b3bba0d7ee556252..1faf13c42c494c46d5f8c1b593fce0a58ade4753 100644 (file)
@@ -1,4 +1,5 @@
 import { RegisterClientHookOptions } from '@shared/models/plugins/register-client-hook.model'
+import { Notifier } from '@app/core'
 
 export type RegisterClientOptions = {
   registerHook: (options: RegisterClientHookOptions) => void
@@ -13,5 +14,7 @@ export type RegisterClientHelpers = {
 
   getSettings: () => Promise<{ [ name: string ]: string }>
 
+  notifier: Notifier
+
   translate: (toTranslate: string) => Promise<string>
 }
index bdc9d2ad823d3d688bcea21baed44a40230a6ea8..5251ce48a807843ccdefefd45a7c0a97bcc3ed0e 100644 (file)
@@ -197,7 +197,7 @@ The `ping` route can be accessed using:
 
 ### Client helpers (themes & plugins)
 
-### Plugin static route
+#### Plugin static route
 
 To get your plugin static route:
 
@@ -206,6 +206,16 @@ const baseStaticUrl = peertubeHelpers.getBaseStaticRoute()
 const imageUrl = baseStaticUrl + '/images/chocobo.png'
 ```
 
+#### Notifier
+
+To notify the user with the PeerTube ToastModule:
+
+```js
+const { notifier } = peertubeHelpers
+notifier.success('Success message content.')
+notifier.error('Error message content.')
+```
+
 #### Translate
 
 You can translate some strings of your plugin (PeerTube will use your `translations` object of your `package.json` file):