aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMario Vavti <mario@mariovavti.com>2015-09-28 17:40:38 +0200
committerMario Vavti <mario@mariovavti.com>2015-09-28 17:40:38 +0200
commitb97102da01b2e81018e86c29092059704ee20da8 (patch)
tree8789f3e4f9792121245316f5a10a1f6146ec1c1c
parented876a9c529f59fa62bb45805aa4f355fe0e2c0d (diff)
downloadvolse-hubzilla-b97102da01b2e81018e86c29092059704ee20da8.tar.gz
volse-hubzilla-b97102da01b2e81018e86c29092059704ee20da8.tar.bz2
volse-hubzilla-b97102da01b2e81018e86c29092059704ee20da8.zip
private mail: bring additional inbox/outbox views and ajaxify single message drop
-rw-r--r--include/widgets.php4
-rw-r--r--mod/mail.php44
-rw-r--r--mod/message.php4
-rwxr-xr-xview/tpl/mail_conv.tpl6
-rwxr-xr-xview/tpl/mail_display.tpl2
-rwxr-xr-xview/tpl/mail_list.tpl2
-rwxr-xr-xview/tpl/message_side.tpl9
7 files changed, 39 insertions, 32 deletions
diff --git a/include/widgets.php b/include/widgets.php
index 9f8b88d54..9c8596a66 100644
--- a/include/widgets.php
+++ b/include/widgets.php
@@ -637,6 +637,7 @@ function widget_conversations($arr) {
foreach($r as $rr) {
$messages[] = array(
+ 'mailbox' => $mailbox,
'id' => $rr['id'],
'from_name' => $rr['from']['xchan_name'],
'from_url' => chanlink_hash($rr['from_xchan']),
@@ -648,7 +649,8 @@ function widget_conversations($arr) {
'delete' => t('Delete conversation'),
'body' => $rr['body'],
'date' => datetime_convert('UTC',date_default_timezone_get(),$rr['created'], t('D, d M Y - g:i A')),
- 'seen' => $rr['seen']
+ 'seen' => $rr['seen'],
+ 'selected' => ((argv(2)) ? (argv(2) == $rr['id']) : ($r[0]['id'] == $rr['id']))
);
}
diff --git a/mod/mail.php b/mod/mail.php
index 75e8f4dd5..e4a5ebafd 100644
--- a/mod/mail.php
+++ b/mod/mail.php
@@ -128,33 +128,45 @@ function mail_content(&$a) {
'$header' => t('Messages'),
));
- if((argc() == 3) && (argv(1) === 'drop')) {
- if(! intval(argv(2)))
+ if((argc() == 4) && (argv(2) === 'drop')) {
+ if(! intval(argv(3)))
return;
- $cmd = argv(1);
-
- $r = private_messages_drop(local_channel(), argv(2));
+ $cmd = argv(2);
+ $mailbox = argv(1);
+ $r = private_messages_drop(local_channel(), argv(3));
if($r) {
- info( t('Message deleted.') . EOL );
+ //info( t('Message deleted.') . EOL );
}
- goaway($a->get_baseurl(true) . '/mail/combined' );
+ goaway($a->get_baseurl(true) . '/mail/' . $mailbox);
}
- if((argc() == 3) && (argv(1) === 'recall')) {
- if(! intval(argv(2)))
+ if((argc() == 4) && (argv(2) === 'recall')) {
+ if(! intval(argv(3)))
return;
- $cmd = argv(1);
+ $cmd = argv(2);
+ $mailbox = argv(1);
$r = q("update mail set mail_recalled = 1 where id = %d and channel_id = %d",
- intval(argv(2)),
+ intval(argv(3)),
intval(local_channel())
);
- proc_run('php','include/notifier.php','mail',intval(argv(2)));
+ proc_run('php','include/notifier.php','mail',intval(argv(3)));
if($r) {
info( t('Message recalled.') . EOL );
}
- goaway($a->get_baseurl(true) . '/mail/combined' );
+ goaway($a->get_baseurl(true) . '/mail/' . $mailbox . '/' . argv(3));
+
+ }
+ if((argc() == 4) && (argv(2) === 'dropconv')) {
+ if(! intval(argv(3)))
+ return;
+ $cmd = argv(2);
+ $mailbox = argv(1);
+ $r = private_messages_drop(local_channel(), argv(3), true);
+ if($r)
+ info( t('Conversation removed.') . EOL );
+ goaway($a->get_baseurl(true) . '/mail/' . $mailbox);
}
if((argc() > 1) && (argv(1) === 'new')) {
@@ -266,7 +278,7 @@ function mail_content(&$a) {
$last_message = private_messages_list(local_channel(), $mailbox, 0, 1);
- $mid = ((argc() > 1) && (intval(argv(1)))) ? argv(1) : $last_message[0]['id'];
+ $mid = ((argc() > 2) && (intval(argv(2)))) ? argv(2) : $last_message[0]['id'];
$plaintext = true;
@@ -310,6 +322,7 @@ function mail_content(&$a) {
$s = theme_attachments($message);
$mails[] = array(
+ 'mailbox' => $mailbox,
'id' => $message['id'],
'from_name' => $message['from']['xchan_name'],
'from_url' => chanlink_hash($message['from_xchan']),
@@ -338,7 +351,8 @@ function mail_content(&$a) {
$parent = '<input type="hidden" name="replyto" value="' . $message['parent_mid'] . '" />';
$tpl = get_markup_template('mail_display.tpl');
$o = replace_macros($tpl, array(
- '$prvmsg_header' => t('Subject:') . ' ' . $message['title'],
+ '$mailbox' => $mailbox,
+ '$prvmsg_header' => $message['title'],
'$thread_id' => $mid,
'$thread_subject' => $message['title'],
'$thread_seen' => $seen,
diff --git a/mod/message.php b/mod/message.php
index f8d71aa44..73239d2cb 100644
--- a/mod/message.php
+++ b/mod/message.php
@@ -24,7 +24,7 @@ function message_content(&$a) {
if(! $cipher)
$cipher = 'aes256';
-
+/*
if((argc() == 3) && (argv(1) === 'dropconv')) {
if(! intval(argv(2)))
return;
@@ -34,7 +34,7 @@ function message_content(&$a) {
info( t('Conversation removed.') . EOL );
goaway($a->get_baseurl(true) . '/mail/combined' );
}
-/*
+
if(argc() == 2) {
switch(argv(1)) {
diff --git a/view/tpl/mail_conv.tpl b/view/tpl/mail_conv.tpl
index 0a5e5a2c5..2e64de7bc 100755
--- a/view/tpl/mail_conv.tpl
+++ b/view/tpl/mail_conv.tpl
@@ -1,4 +1,4 @@
-<div class="mail-conv-outside-wrapper">
+<div id="mail-{{$mail.id}}" class="mail-conv-outside-wrapper">
<div class="mail-conv-sender" >
<a href="{{$mail.from_url}}"><img class="mail-conv-sender-photo" src="{{$mail.from_photo}}" alt="{{$mail.from_name}}" /></a>
</div>
@@ -9,9 +9,9 @@
<div class="mail-conv-body">{{$mail.body}}</div>
<div class="btn-group pull-right" id="mail-conv-delete-wrapper-{{$mail.id}}" >
{{if $mail.can_recall}}
- <a href="mail/recall/{{$mail.id}}" title="{{$mail.recall}}" id="mail-conv-recall-icon-{{$mail.id}}" class="btn btn-default" ><i class="icon-undo mail-icons"></i></a>
+ <a href="mail/{{$mail.mailbox}}/recall/{{$mail.id}}" title="{{$mail.recall}}" id="mail-conv-recall-icon-{{$mail.id}}" class="btn btn-default" ><i class="icon-undo mail-icons"></i></a>
{{/if}}
- <a href="mail/drop/{{$mail.id}}" onclick="return confirmDelete();" title="{{$mail.delete}}" id="mail-conv-delete-icon-{{$mail.id}}" class="btn btn-default" ><i class="icon-trash mail-icons"></i></a>
+ <a href="#" onclick="dropItem('mail/{{$mail.mailbox}}/drop/{{$mail.id}}', '#mail-{{$mail.id}}'); return false;" title="{{$mail.delete}}" id="mail-conv-delete-icon-{{$mail.id}}" class="btn btn-default" ><i class="icon-trash mail-icons"></i></a>
</div>
</div>
<div class="clear"></div>
diff --git a/view/tpl/mail_display.tpl b/view/tpl/mail_display.tpl
index bb89c96ec..24a87fe4a 100755
--- a/view/tpl/mail_display.tpl
+++ b/view/tpl/mail_display.tpl
@@ -1,6 +1,6 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
- <a class="btn btn-xs btn-danger pull-right" href="message/dropconv/{{$thread_id}}" onclick="return confirmDelete();"><i class="icon-trash"></i> {{$delete}}</a>
+ <a class="btn btn-xs btn-danger pull-right" href="mail/{{$mailbox}}/dropconv/{{$thread_id}}" onclick="return confirmDelete();"><i class="icon-trash"></i> {{$delete}}</a>
<h2>{{$prvmsg_header}}</h2>
</div>
diff --git a/view/tpl/mail_list.tpl b/view/tpl/mail_list.tpl
index ad042eb59..fc9b5afa8 100755
--- a/view/tpl/mail_list.tpl
+++ b/view/tpl/mail_list.tpl
@@ -1,5 +1,5 @@
<li>
- <a href="mail/{{$message.id}}" class="mail-link">
+ <a href="mail/{{$message.mailbox}}/{{$message.id}}" class="{{if $message.selected}}active{{/if}}">
<span class="{{if $message.seen}}seen{{else}}unseen{{/if}}">{{$message.subject}}</span><br>
<span class="conv-participants">{{$message.from_name}} > {{$message.to_name}}</span><br>
<span class="wall-item-ago autotime" title="{{$message.date}}">{{$message.date}}</span>
diff --git a/view/tpl/message_side.tpl b/view/tpl/message_side.tpl
index 954ada215..b3bb94d71 100755
--- a/view/tpl/message_side.tpl
+++ b/view/tpl/message_side.tpl
@@ -2,18 +2,9 @@
<h3>{{$title}}</h3>
<ul class="nav nav-pills nav-stacked">
<li><a href="{{$check.url}}"{{if $check.sel}} class="active"{{/if}}>{{$check.label}}</a></li>
- {{*
<li><a href="{{$combined.url}}"{{if $combined.sel}} class="active"{{/if}}>{{$combined.label}}</a></li>
<li><a href="{{$inbox.url}}"{{if $inbox.sel}} class="active"{{/if}}>{{$inbox.label}}</a></li>
<li><a href="{{$outbox.url}}"{{if $outbox.sel}} class="active"{{/if}}>{{$outbox.label}}</a></li>
- *}}
<li><a href="{{$new.url}}"{{if $new.sel}} class="active"{{/if}}>{{$new.label}}</a></li>
</ul>
- {{if $tabs}}
- <ul class="nav nav-pills nav-stacked">
- {{foreach $tabs as $t}}
- <li><a href="{{$t.url}}"{{if $t.sel}} class="active"{{/if}}>{{$t.label}}</a></li>
- {{/foreach}}
- </ul>
- {{/if}}
</div>