X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=MessagePreview.php;h=6a7e94feeed9e5ab73e7613e066c8550ae8f649c;hp=70d412a547f34e27dab02db1ef2a47cc8f596e25;hb=a5a0b3581b8ac3ce7d75710dbe163f4f11a46b32;hpb=e6599406a2a32fd7957c157f073cf1b76fa342b7 diff --git a/MessagePreview.php b/MessagePreview.php index 70d412a5..6a7e94fe 100644 --- a/MessagePreview.php +++ b/MessagePreview.php @@ -18,8 +18,9 @@ class Pman_Core_MessagePreview extends Pman return true; } - function get() + function get($v, $opts=array()) { + if(empty($_REQUEST['_id']) || empty($_REQUEST['_table'])){ $this->jerr('Missing Options'); } @@ -34,16 +35,38 @@ class Pman_Core_MessagePreview extends Pman } - function post() + function post($v) { if(empty($_REQUEST['_id']) || empty($_REQUEST['_table'])){ $this->jerr('Missing Options'); } - if(!empty($_REQUEST['_send_test']) && $_REQUEST['core_email'])){ - $this->sendTest(); + if($_REQUEST['_table'] == 'core_email'){ + $this->coreEmailSendTest(); } + $cn = DB_DataObject::factory('core_notify'); + $cn->setFrom(array( + 'evtype' => "{$_REQUEST['_table']}::SendPreviewEmail", + 'onid' => $_REQUEST['_id'], + 'ontable' => $_REQUEST['_table'], + 'person_id' => $this->authUser->id, + 'person_table' => 'Person', + 'act_when' => $cn->sqlValue("NOW() + INTERVAL 10 MINUTE"), + 'act_start' => $cn->sqlValue("NOW() + INTERVAL 10 MINUTE") + )); + + $cn->insert(); + + $sent = $cn->sendManual(); + + if(get_class($sent) != 'Pman_Core_NotifySend_Exception_Success'){ + $this->jerr($sent->getMessage()); + } + + $this->jok("SUCCESS"); + + /* $mid = $_REQUEST['_id']; $mlq = DB_DataObject::factory($_REQUEST['_table']); @@ -62,19 +85,70 @@ class Pman_Core_MessagePreview extends Pman } $this->jerr('error!!:' . $sent->toString()); - + */ } - function sendTest() + function coreEmailSendTest() { - $table = DB_DataObject::factory($_REQUEST['_table']); + $core_email = DB_DataObject::factory('core_email'); - if($table->get($_REQUEST['_id'])){ + if(!$core_email->get($_REQUEST['_id'])){ $this->jerr('Invalid Message ID'); } - if(empty($table->test_class)){ - + if(empty($core_email->test_class)){ + $this->jerr("[{$core_email->name}] does not has test class"); } + + require_once "{$core_email->test_class}.php"; + + $cls = str_replace('/', '_', $core_email->test_class); + + $x = new $cls; + + $method = "test_{$core_email->name}"; + + if(!method_exists($x, $method)){ + $this->jerr("{$method} does not exists in {$cls}"); + } + /* + $content = $x->{$method}($this, $this->authUser); + + $content['bcc'] = array(); + */ + + + $cn = DB_DataObject::factory('core_notify'); + $cn->setFrom(array( + 'evtype' => 'Core_email::testData', + 'onid' => $_REQUEST['_id'], + 'ontable' => $_REQUEST['_table'], + 'person_id' => $this->authUser->id, + 'person_table' => 'Person', + 'act_when' => $cn->sqlValue("NOW()"), + 'act_start' => $cn->sqlValue("NOW()") + )); + + $cn->insert(); + + $sent = $cn->sendManual(); + + if(get_class($sent) != 'Pman_Core_NotifySend_Exception_Success'){ + $this->jerr($sent->getMessage()); + } + + $this->jok("SUCCESS"); + + + + + + $sent = $core_email->send($content); + + if(is_object($sent)){ + $this->jerr("Error sending email - " . $sent->toString()); + } + + $this->jok('SUCCESS'); } }