summaryrefslogtreecommitdiff
path: root/apps/um/views/pages
diff options
context:
space:
mode:
Diffstat (limited to 'apps/um/views/pages')
-rw-r--r--apps/um/views/pages/messages/401.html.php15
-rw-r--r--apps/um/views/pages/messages/frame.html.php58
-rw-r--r--apps/um/views/pages/messages/index.html.php25
3 files changed, 98 insertions, 0 deletions
diff --git a/apps/um/views/pages/messages/401.html.php b/apps/um/views/pages/messages/401.html.php
new file mode 100644
index 0000000..0b24f80
--- /dev/null
+++ b/apps/um/views/pages/messages/401.html.php
@@ -0,0 +1,15 @@
+<?php global $VARS;
+$t = $VARS['template'];
+
+$t->status('401 Unauthorized');
+$t->header('Unauthorized');
+$t->tag('h1', array(), "401: Unauthorized");
+if ($VARS['uid']===false) {
+ // Not logged in
+ $t->paragraph('You need to be logged in to view messages.');
+} else {
+ // Logged in, so the account must not activated
+ $t->paragraph('Your account needs to be activated by an administrator '.
+ 'to view messages.');
+}
+$t->footer();
diff --git a/apps/um/views/pages/messages/frame.html.php b/apps/um/views/pages/messages/frame.html.php
new file mode 100644
index 0000000..30fc1cc
--- /dev/null
+++ b/apps/um/views/pages/messages/frame.html.php
@@ -0,0 +1,58 @@
+<?php global $VARS;
+$t = $VARS['template'];
+$msg = $VARS['msg'];
+
+function messageLink($id) {
+ if (is_array($id)) { $id = $id[1]; }
+ global $VARS; $t = $VARS['template'];
+
+ $msg = new Message($id);
+ $exists = ($msg?true:false);
+
+ return sprintf('&lt;<a href="%1$s"%2$s>%3$s</a>&gt;',
+ $t->url("messages/$id/"),
+ ($exists?'':' class="http404"'),
+ htmlentities($id));
+}
+function parseMessageIDs($string) {
+ $base = $_SERVER['REQUEST_URL'];
+ $html = preg_replace_callback(
+ '/<([^>]*)>/',
+ 'messageLink',
+ $string);
+ return $html;
+}
+
+$t->header('View Message');
+$t->openTag('table');
+$t->row(array('To:' , htmlentities( $msg->getHeader('to' ))));
+$t->row(array('From:' , htmlentities( $msg->getHeader('from' ))));
+$t->row(array('Subject:' , htmlentities( $msg->getHeader('subject' ))));
+$t->row(array('In-Reply-to:', parseMessageIDs($msg->getHeader('in-reply-to'))));
+$t->row(array('References:' , parseMessageIDs($msg->getHeader('references' ))));
+$t->closeTag('table');
+
+$msg_id = htmlentities($msg->msgid());
+
+$t->openTag('div', array('class'=>'message-body'));
+if ($msg->getMessageBodyPart('html')!==false) {
+ $t->tag('h2', array(), 'HTML');
+ $t->tag('iframe', array('src'=>$t->url("messages/$msg_id/body.html")), '');
+}
+if ($msg->getMessageBodyPart('text')!==false) {
+ $t->tag('h2', array(), 'Plain Text');
+ $t->tag('iframe', array('src'=>$t->url("messages/$msg_id/body.txt")), '');
+}
+$t->closeTag('div');
+$t->tag('h2', array(), 'Attachments');
+$t->openTag('table');
+$attachments = $msg->getAttachments();
+foreach ($attachments as $id => $attachment) {
+ $t->row(array(
+ htmlentities($attachment->getContentType()),
+ $t->link($t->url("$msg_id/attachment/$id"),
+ htmlentities($attachment->getFilename())),
+ ));
+}
+$t->closeTag('table');
+$t->footer();
diff --git a/apps/um/views/pages/messages/index.html.php b/apps/um/views/pages/messages/index.html.php
new file mode 100644
index 0000000..111b6c6
--- /dev/null
+++ b/apps/um/views/pages/messages/index.html.php
@@ -0,0 +1,25 @@
+<?php global $VARS;
+$t = $VARS['template'];
+$messages = $VARS['messages'];
+
+$t->header('Message Index');
+$t->tag('h1', array(), "Message Index");
+
+$t->openTag('table');
+$t->row(array('From','Subject', 'Date'));
+foreach ($messages as $date => $message_array) {
+ foreach ($message_array as $message) {
+ $url = $t->url('messages/'.$message['id'].'/');
+ $subject = htmlentities($message['subject']);
+ $from = htmlentities($message['from']);
+ $date_str = str_replace(' ', '&nbsp;', date('Y-m-d H:i:s',$date));
+ $t->row(array(
+ $t->link($url, $from , true),
+ $t->link($url, $subject , true),
+ $t->link($url, $date_str, true),
+ ));
+ }
+}
+$t->closeTag('table');
+
+$t->footer();