<?php defined('SYSPATH') or die('No direct access allowed.');

/**
 * This class provides User Email View functions
 *
 * @package    Email
 * @category   Controllers/User
 * @author     Deon George
 * @copyright  (c) 2009-2013 Open Source Billing
 * @license    http://dev.osbill.net/license.html
 */
class Controller_User_Email extends Controller_Email {
	protected $secure_actions = array(
		'list'=>TRUE,
		'view'=>TRUE,
	);

	/**
	 * Show a list of emails
	 */
	public function action_list() {
		Block::factory()
			->title(sprintf(_('System Emails Sent for %s: %s'),$this->ao->accnum(),$this->ao->name(TRUE)))
			->title_icon('icon-th')
			->body(Table::factory()
				->page_items(25)
				->data($this->ao->email_log->find_all())
				->columns(array(
					'id'=>'ID',
					'date_orig'=>'Date',
					'resolve("subject")'=>'Subject',
				))
				->prepend(array(
					'id'=>array('url'=>URL::link('user','email/view/')),
				))
				->postproc(array(
					'resolve("subject")'=>array('trim'=>60),
				))
			);
	}

	public function action_view() {
		list($id,$output) = Table::page(__METHOD__);

		$elo = ORM::factory('Email_Log',$id);

		if (! $elo->loaded() OR ! Auth::instance()->authorised($elo->account))
			throw HTTP_Exception::factory(403,'Service either doesnt exist, or you are not authorised to see it');

		$output .= View::factory('email/user/view')
			->set('elo',$elo);

		Block::factory()
			->title(sprintf('%s: %s',$elo->id,$elo->resolve('subject')))
			->title_icon('icon-list-alt')
			->body($output);
	}
}
?>
