forked from EVOgeek/Vmeda.Online
		
	MOBILE-2620 messages: Contact requests link handler
This commit is contained in:
		
							parent
							
								
									d3459dc078
								
							
						
					
					
						commit
						d74b09f8bc
					
				| @ -25,6 +25,7 @@ import { CoreCronDelegate } from '@providers/cron'; | ||||
| import { AddonMessagesSendMessageUserHandler } from './providers/user-send-message-handler'; | ||||
| import { AddonMessagesAddContactUserHandler } from './providers/user-add-contact-handler'; | ||||
| import { AddonMessagesBlockContactUserHandler } from './providers/user-block-contact-handler'; | ||||
| import { AddonMessagesContactRequestLinkHandler } from './providers/contact-request-link-handler'; | ||||
| import { AddonMessagesDiscussionLinkHandler } from './providers/discussion-link-handler'; | ||||
| import { AddonMessagesIndexLinkHandler } from './providers/index-link-handler'; | ||||
| import { AddonMessagesSyncCronHandler } from './providers/sync-cron-handler'; | ||||
| @ -58,6 +59,7 @@ export const ADDON_MESSAGES_PROVIDERS: any[] = [ | ||||
|         AddonMessagesSendMessageUserHandler, | ||||
|         AddonMessagesAddContactUserHandler, | ||||
|         AddonMessagesBlockContactUserHandler, | ||||
|         AddonMessagesContactRequestLinkHandler, | ||||
|         AddonMessagesDiscussionLinkHandler, | ||||
|         AddonMessagesIndexLinkHandler, | ||||
|         AddonMessagesSyncCronHandler, | ||||
| @ -74,11 +76,13 @@ export class AddonMessagesModule { | ||||
|             sitesProvider: CoreSitesProvider, linkHelper: CoreContentLinksHelperProvider, updateManager: CoreUpdateManagerProvider, | ||||
|             settingsHandler: AddonMessagesSettingsHandler, settingsDelegate: CoreSettingsDelegate, | ||||
|             pushNotificationsDelegate: AddonPushNotificationsDelegate, utils: CoreUtilsProvider, | ||||
|             addContactHandler: AddonMessagesAddContactUserHandler, blockContactHandler: AddonMessagesBlockContactUserHandler) { | ||||
|             addContactHandler: AddonMessagesAddContactUserHandler, blockContactHandler: AddonMessagesBlockContactUserHandler, | ||||
|             contactRequestLinkHandler: AddonMessagesContactRequestLinkHandler) { | ||||
|         // Register handlers.
 | ||||
|         mainMenuDelegate.registerHandler(mainmenuHandler); | ||||
|         contentLinksDelegate.registerHandler(indexLinkHandler); | ||||
|         contentLinksDelegate.registerHandler(discussionLinkHandler); | ||||
|         contentLinksDelegate.registerHandler(contactRequestLinkHandler); | ||||
|         userDelegate.registerHandler(sendMessageHandler); | ||||
|         userDelegate.registerHandler(addContactHandler); | ||||
|         userDelegate.registerHandler(blockContactHandler); | ||||
|  | ||||
							
								
								
									
										71
									
								
								src/addon/messages/providers/contact-request-link-handler.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								src/addon/messages/providers/contact-request-link-handler.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,71 @@ | ||||
| // (C) Copyright 2015 Martin Dougiamas
 | ||||
| //
 | ||||
| // Licensed under the Apache License, Version 2.0 (the "License");
 | ||||
| // you may not use this file except in compliance with the License.
 | ||||
| // You may obtain a copy of the License at
 | ||||
| //
 | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| //
 | ||||
| // Unless required by applicable law or agreed to in writing, software
 | ||||
| // distributed under the License is distributed on an "AS IS" BASIS,
 | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||||
| // See the License for the specific language governing permissions and
 | ||||
| // limitations under the License.
 | ||||
| 
 | ||||
| import { Injectable } from '@angular/core'; | ||||
| import { CoreContentLinksHandlerBase } from '@core/contentlinks/classes/base-handler'; | ||||
| import { CoreContentLinksAction } from '@core/contentlinks/providers/delegate'; | ||||
| import { CoreContentLinksHelperProvider } from '@core/contentlinks/providers/helper'; | ||||
| import { AddonMessagesProvider } from './messages'; | ||||
| 
 | ||||
| /** | ||||
|  * Content links handler for a contact requests. | ||||
|  */ | ||||
| @Injectable() | ||||
| export class AddonMessagesContactRequestLinkHandler extends CoreContentLinksHandlerBase { | ||||
|     name = 'AddonMessagesContactRequestLinkHandler'; | ||||
|     pattern = /\/message\/pendingcontactrequests\.php/; | ||||
| 
 | ||||
|     constructor(private linkHelper: CoreContentLinksHelperProvider, private messagesProvider: AddonMessagesProvider) { | ||||
|         super(); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the list of actions for a link (url). | ||||
|      * | ||||
|      * @param {string[]} siteIds List of sites the URL belongs to. | ||||
|      * @param {string} url The URL to treat. | ||||
|      * @param {any} params The params of the URL. E.g. 'mysite.com?id=1' -> {id: 1} | ||||
|      * @param {number} [courseId] Course ID related to the URL. Optional but recommended. | ||||
|      * @return {CoreContentLinksAction[]|Promise<CoreContentLinksAction[]>} List of (or promise resolved with list of) actions. | ||||
|      */ | ||||
|     getActions(siteIds: string[], url: string, params: any, courseId?: number): | ||||
|             CoreContentLinksAction[] | Promise<CoreContentLinksAction[]> { | ||||
|         return [{ | ||||
|             action: (siteId, navCtrl?): void => { | ||||
|                 // Always use redirect to make it the new history root (to avoid "loops" in history).
 | ||||
|                 this.linkHelper.goInSite(navCtrl, 'AddonMessagesContactsPage', {}, siteId); | ||||
|             } | ||||
|         }]; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Check if the handler is enabled for a certain site (site + user) and a URL. | ||||
|      * If not defined, defaults to true. | ||||
|      * | ||||
|      * @param {string} siteId The site ID. | ||||
|      * @param {string} url The URL to treat. | ||||
|      * @param {any} params The params of the URL. E.g. 'mysite.com?id=1' -> {id: 1} | ||||
|      * @param {number} [courseId] Course ID related to the URL. Optional but recommended. | ||||
|      * @return {boolean|Promise<boolean>} Whether the handler is enabled for the URL and site. | ||||
|      */ | ||||
|     isEnabled(siteId: string, url: string, params: any, courseId?: number): boolean | Promise<boolean> { | ||||
|         return this.messagesProvider.isPluginEnabled(siteId).then((enabled) => { | ||||
|             if (!enabled) { | ||||
|                 return false; | ||||
|             } | ||||
| 
 | ||||
|             return this.messagesProvider.isGroupMessagingEnabled(); | ||||
|         }); | ||||
|     } | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user