diff options
author | Mario Vavti <mario@mariovavti.com> | 2015-09-28 17:40:38 +0200 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2015-09-28 17:40:38 +0200 |
commit | b97102da01b2e81018e86c29092059704ee20da8 (patch) | |
tree | 8789f3e4f9792121245316f5a10a1f6146ec1c1c | |
parent | ed876a9c529f59fa62bb45805aa4f355fe0e2c0d (diff) | |
download | volse-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.php | 4 | ||||
-rw-r--r-- | mod/mail.php | 44 | ||||
-rw-r--r-- | mod/message.php | 4 | ||||
-rwxr-xr-x | view/tpl/mail_conv.tpl | 6 | ||||
-rwxr-xr-x | view/tpl/mail_display.tpl | 2 | ||||
-rwxr-xr-x | view/tpl/mail_list.tpl | 2 | ||||
-rwxr-xr-x | view/tpl/message_side.tpl | 9 |
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> |