Using the e-mail composer in your module

From Group-Office Groupware and CRM Documentation
Jump to: navigation, search

In a lot of cases you might want to open the e-mail composer and preset it with values. For example the billing module opens the composer to send an invoice. You can do this by adding the following button:

{
	iconCls: 'btn-compose',
	text: GO.lang.strEmail,
	handler: function(){
		if(!GO.email)
		{
			Ext.Msg.alert(GO.lang['strError'], "No e-mail module");
		}else
		{
			GO.email.showComposer({
				loadUrl: GO.url("module/controller/email"),
				loadParams:{task:'sendmail',someparam: this.someparam},
				template_id: 0					
			});
		}

	},
	scope:this						
}

The loadUrl and loadParams configuration options will call your module's json.php so it can provide the composer with form data. passing template_id=0 will skip template selection for the pro version.

On the PHP side in json.php you should return some JSON data like this:

protected function actionEmail($params){
		
	$message = new GO_Email_Model_ComposerMessage();
	$message->subject="Example message";
	
	$response['data'] = $message->toOutputArray(true,true);
	$response['success']=true;
	return $response;
}
Personal tools
Namespaces
Variants
Actions
Navigation
Manuals
Toolbox