diff --git a/mod/message.php b/mod/message.php
index 8991f643d..949e5616c 100755
--- a/mod/message.php
+++ b/mod/message.php
@@ -3,6 +3,35 @@
require_once('include/acl_selectors.php');
require_once('include/message.php');
+function message_init(&$a) {
+ $tabs = array(
+ /*
+ array(
+ 'label' => t('All'),
+ 'url'=> $a->get_baseurl(true) . '/message',
+ 'sel'=> ($a->argc == 1),
+ ),
+ array(
+ 'label' => t('Sent'),
+ 'url' => $a->get_baseurl(true) . '/message/sent',
+ 'sel'=> ($a->argv[1] == 'sent'),
+ ),
+ */
+ );
+ $new = array(
+ 'label' => t('New Message'),
+ 'url' => $a->get_baseurl(true) . '/message/new',
+ 'sel'=> ($a->argv[1] == 'new'),
+ );
+
+ $tpl = get_markup_template('message_side.tpl');
+ $a->page['aside'] = replace_macros($tpl, array(
+ '$tabs'=>$tabs,
+ '$new'=>$new,
+ ));
+
+}
+
function message_post(&$a) {
if(! local_user()) {
@@ -66,25 +95,7 @@ function message_content(&$a) {
$myprofile = $a->get_baseurl(true) . '/profile/' . $a->user['nickname'];
- $tabs = array(
- array(
- 'label' => t('Inbox'),
- 'url'=> $a->get_baseurl(true) . '/message',
- 'sel'=> (($a->argc == 1) ? 'active' : ''),
- ),
- array(
- 'label' => t('Outbox'),
- 'url' => $a->get_baseurl(true) . '/message/sent',
- 'sel'=> (($a->argv[1] == 'sent') ? 'active' : ''),
- ),
- array(
- 'label' => t('New Message'),
- 'url' => $a->get_baseurl(true) . '/message/new',
- 'sel'=> (($a->argv[1] == 'new') ? 'active' : ''),
- ),
- );
- $tpl = get_markup_template('common_tabs.tpl');
- $tab_content = replace_macros($tpl, array('$tabs'=>$tabs));
+
$tpl = get_markup_template('mail_head.tpl');
@@ -186,9 +197,9 @@ function message_content(&$a) {
$o .= $header;
if($a->argc == 2)
- $eq = '='; // I'm not going to bother escaping this.
+ $eq = sprintf( "AND `from-url` = '%s'", dbesc($myprofile));
else
- $eq = '!='; // or this.
+ $eq = '';
$r = q("SELECT count(*) AS `total` FROM `mail`
WHERE `mail`.`uid` = %d AND `from-url` $eq '%s' GROUP BY `parent-uri` ORDER BY `created` DESC",
@@ -199,11 +210,12 @@ function message_content(&$a) {
$a->set_pager_total($r[0]['total']);
$r = q("SELECT max(`mail`.`created`) AS `mailcreated`, min(`mail`.`seen`) AS `mailseen`,
- `mail`.* , `contact`.`name`, `contact`.`url`, `contact`.`thumb` , `contact`.`network`
+ `mail`.* , `contact`.`name`, `contact`.`url`, `contact`.`thumb` , `contact`.`network`,
+ count( * ) as count
FROM `mail` LEFT JOIN `contact` ON `mail`.`contact-id` = `contact`.`id`
- WHERE `mail`.`uid` = %d AND `from-url` $eq '%s' GROUP BY `parent-uri` ORDER BY `mailcreated` DESC LIMIT %d , %d ",
+ WHERE `mail`.`uid` = %d $eq GROUP BY `parent-uri` ORDER BY `mailcreated` DESC LIMIT %d , %d ",
intval(local_user()),
- dbesc($myprofile),
+ //
intval($a->pager['start']),
intval($a->pager['itemspage'])
);
@@ -214,9 +226,15 @@ function message_content(&$a) {
$tpl = get_markup_template('mail_list.tpl');
foreach($r as $rr) {
+ if ($rr['from-url'] == $myprofile){
+ $partecipants = sprintf( t("You and %s"), $rr['name']);
+ } else {
+ $partecipants = sprintf( t("%s and You"), $rr['from-name']);
+ }
+
$o .= replace_macros($tpl, array(
'$id' => $rr['id'],
- '$from_name' =>$rr['from-name'],
+ '$from_name' => $partecipants,
'$from_url' => (($rr['network'] === NETWORK_DFRN) ? $a->get_baseurl(true) . '/redir/' . $rr['contact-id'] : $rr['url']),
'$sparkle' => ' sparkle',
'$from_photo' => $rr['thumb'],
@@ -224,7 +242,9 @@ function message_content(&$a) {
'$delete' => t('Delete conversation'),
'$body' => template_escape($rr['body']),
'$to_name' => template_escape($rr['name']),
- '$date' => datetime_convert('UTC',date_default_timezone_get(),$rr['mailcreated'], t('D, d M Y - g:i A'))
+ '$date' => datetime_convert('UTC',date_default_timezone_get(),$rr['mailcreated'], t('D, d M Y - g:i A')),
+ '$seen' => $rr['mailseen'],
+ '$count' => sprintf( tt('%d message', '%d messages', $rr['count']), $rr['count']),
));
}
$o .= paginate($a);
@@ -278,7 +298,8 @@ function message_content(&$a) {
));
- $tpl = get_markup_template('mail_conv.tpl');
+ $mails = array();
+ $seen = 0;
foreach($messages as $message) {
if($message['from-url'] == $myprofile) {
$from_url = $myprofile;
@@ -288,24 +309,35 @@ function message_content(&$a) {
$from_url = $a->get_baseurl(true) . '/redir/' . $message['contact-id'];
$sparkle = ' sparkle';
}
- $o .= replace_macros($tpl, array(
- '$id' => $message['id'],
- '$from_name' => template_escape($message['from-name']),
- '$from_url' => $from_url,
- '$sparkle' => $sparkle,
- '$from_photo' => $message['from-photo'],
- '$subject' => template_escape($message['title']),
- '$body' => template_escape(smilies(bbcode($message['body']))),
- '$delete' => t('Delete message'),
- '$to_name' => template_escape($message['name']),
- '$date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'],'D, d M Y - g:i A')
- ));
+ $mails[] = array(
+ 'id' => $message['id'],
+ 'from_name' => template_escape($message['from-name']),
+ 'from_url' => $from_url,
+ 'sparkle' => $sparkle,
+ 'from_photo' => $message['from-photo'],
+ 'subject' => template_escape($message['title']),
+ 'body' => template_escape(smilies(bbcode($message['body']))),
+ 'delete' => t('Delete message'),
+ 'to_name' => template_escape($message['name']),
+ 'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'],'D, d M Y - g:i A'),
+ );
+ $seen = $message['seen'];
}
$select = $message['name'] . '';
$parent = '';
- $tpl = get_markup_template('prv_message.tpl');
- $o .= replace_macros($tpl,array(
+
+
+ $tpl = get_markup_template('mail_display.tpl');
+ $o = replace_macros($tpl, array(
+ '$thread_id' => $a->argv[1],
+ '$thread_subject' => $message['title'],
+ '$thread_seen' => $seen,
+ '$delete' => t('Delete conversation'),
+
+ '$mails' => $mails,
+
+ // reply
'$header' => t('Send Reply'),
'$to' => t('To:'),
'$subject' => t('Subject:'),
@@ -318,6 +350,7 @@ function message_content(&$a) {
'$upload' => t('Upload photo'),
'$insert' => t('Insert web link'),
'$wait' => t('Please wait')
+
));
return $o;
diff --git a/view/mail_conv.tpl b/view/mail_conv.tpl
index ed36a7bb2..75a4506f6 100755
--- a/view/mail_conv.tpl
+++ b/view/mail_conv.tpl
@@ -1,13 +1,13 @@
-
+
-
$from_name
-
$date
-
$subject
-
$body
-
+
$mail.from_name
+
$mail.date
+
$mail.subject
+
$mail.body
+
diff --git a/view/mail_display.tpl b/view/mail_display.tpl
new file mode 100644
index 000000000..69c7e0722
--- /dev/null
+++ b/view/mail_display.tpl
@@ -0,0 +1,6 @@
+
+{{ for $mails as $mail }}
+ {{ inc mail_conv.tpl }}{{endinc}}
+{{ endfor }}
+
+{{ inc prv_message.tpl }}{{ endinc }}
diff --git a/view/message_side.tpl b/view/message_side.tpl
new file mode 100644
index 000000000..fce771bd5
--- /dev/null
+++ b/view/message_side.tpl
@@ -0,0 +1,10 @@
+
diff --git a/view/theme/quattro/colors.less b/view/theme/quattro/colors.less
index 9183b2e77..b6d487f92 100755
--- a/view/theme/quattro/colors.less
+++ b/view/theme/quattro/colors.less
@@ -96,3 +96,12 @@
@JotPermissionLockBackgroundColor: @Grey4;
@JotLoadingBackgroundColor: @Grey1;
@JotPreviewBackgroundColor: @Yellow1;
+
+@MessageNewBackgroundColor: @Blue1;
+@MessageNewBorderColor: @Blue3;
+@MessageNewColor: @Grey1;
+
+@MailListBackgroundColor: #f6f7f8;
+
+@MailDisplaySubjectColor: @Grey5;
+@MailDisplaySubjectBackgroundColor: #f6f7f8;
diff --git a/view/theme/quattro/fileas_widget.tpl b/view/theme/quattro/fileas_widget.tpl
new file mode 100644
index 000000000..1e5a76044
--- /dev/null
+++ b/view/theme/quattro/fileas_widget.tpl
@@ -0,0 +1,12 @@
+
diff --git a/view/theme/quattro/mail_conv.tpl b/view/theme/quattro/mail_conv.tpl
new file mode 100755
index 000000000..989f17878
--- /dev/null
+++ b/view/theme/quattro/mail_conv.tpl
@@ -0,0 +1,60 @@
+
+
+
+{#
+
+
+
+
+
+
+
+
$mail.from_name
+
$mail.date
+
$mail.subject
+
$mail.body
+
+
+
+
+
+
+#}
diff --git a/view/theme/quattro/mail_display.tpl b/view/theme/quattro/mail_display.tpl
new file mode 100644
index 000000000..8b82e95c6
--- /dev/null
+++ b/view/theme/quattro/mail_display.tpl
@@ -0,0 +1,12 @@
+
+
+{{ for $mails as $mail }}
+
+ {{ inc mail_conv.tpl }}{{endinc}}
+
+{{ endfor }}
+
+{{ inc prv_message.tpl }}{{ endinc }}
diff --git a/view/theme/quattro/mail_list.tpl b/view/theme/quattro/mail_list.tpl
new file mode 100644
index 000000000..6bc6c84f6
--- /dev/null
+++ b/view/theme/quattro/mail_list.tpl
@@ -0,0 +1,8 @@
+
+
$subject
+
$from_name
+
$date
+
$count
+
+
+
diff --git a/view/theme/quattro/message_side.tpl b/view/theme/quattro/message_side.tpl
new file mode 100644
index 000000000..9f1587096
--- /dev/null
+++ b/view/theme/quattro/message_side.tpl
@@ -0,0 +1,10 @@
+
diff --git a/view/theme/quattro/msg-header.tpl b/view/theme/quattro/msg-header.tpl
new file mode 100755
index 000000000..2d1ea7a61
--- /dev/null
+++ b/view/theme/quattro/msg-header.tpl
@@ -0,0 +1,97 @@
+
+
+
+
+
+
diff --git a/view/theme/quattro/quattro.less b/view/theme/quattro/quattro.less
index fca65c907..c6352cfe9 100755
--- a/view/theme/quattro/quattro.less
+++ b/view/theme/quattro/quattro.less
@@ -319,41 +319,6 @@ aside {
img { width: 48px; height: 48px; }
}
}
-/* mail view */
-.mail-conv-sender,
-.mail-conv-detail {
- float: left;
-}
-.mail-conv-detail {
- margin-left: 20px;
- width: 500px;
-}
-
-.mail-conv-subject {
- font-size: 1.4em;
- margin: 10px 0;
-}
-
-.mail-conv-outside-wrapper-end {
- clear: both;
-}
-
-.mail-conv-outside-wrapper {
- margin-top: 30px;
-}
-
-.mail-conv-delete-wrapper {
- float: right;
- margin-right: 30px;
- margin-top: 15px;
-}
-.mail-conv-break {
- clear: both;
-}
-
-.mail-conv-delete-icon {
- border: none;
-}
/* group member */
#contact-edit-drop-link,
@@ -938,6 +903,10 @@ ul.tabs {
textarea {
width: 400px;
}
+ input[type="checkbox"], input[type="radio"]{
+ width: auto;
+ }
+
textarea { height: 100px; }
.field_help {
display: block;
@@ -981,6 +950,7 @@ ul.tabs {
&.radio .field_help { margin-left: 0px; }
}
+
#profile-edit-links li {
list-style: none;
margin-top: 10px;
@@ -1085,6 +1055,90 @@ ul.tabs {
}
}
+/* messages */
+#message-new {
+ background: @MessageNewBackgroundColor;
+ border: 1px solid @MessageNewBorderColor;
+ width: 150px;
+ a {
+ color: @MessageNewColor;
+ text-align: center;
+ display: block;
+ font-weight: bold;
+ padding: 1em 0px;
+ }
+}
+
+.mail-list-wrapper {
+ background-color: @MailListBackgroundColor;
+ margin-bottom: 5px;
+ width: 100%; height: auto; overflow: hidden;
+
+ span { display: block; float: left; width: 20%; overflow: hidden;}
+
+ .mail-subject {
+ width: 30%;
+ padding:4px 0px 0px 4px;
+ a { display: block; }
+ &.unseen a { font-weight: bold; }
+ }
+ .mail-date { padding: 4px 4px 0px 4px; }
+ .mail-from { padding: 4px 4px 0px 4px; }
+ .mail-count { padding: 4px 4px 0px 4px; text-align: right;}
+
+ .mail-delete { float: right; }
+}
+
+#mail-display-subject {
+ background-color: @MailDisplaySubjectBackgroundColor;
+ color: @MailDisplaySubjectColor;
+ margin-bottom: 10px;
+ width: 100%; height: auto; overflow: hidden;
+ span { float: left; overflow: hidden; padding: 4px 0px 0px 10px;}
+ .mail-delete { float: right; .opaque(0.5);}
+ &:hover .mail-delete { .opaque(1); }
+
+}
+
+/* mail view */
+/*
+.mail-conv-sender,
+.mail-conv-detail {
+ float: left;
+}
+.mail-conv-detail {
+ margin-left: 20px;
+ width: 500px;
+}
+
+.mail-conv-subject {
+ font-size: 1.4em;
+ margin: 10px 0;
+}
+
+.mail-conv-outside-wrapper-end {
+ clear: both;
+}
+
+.mail-conv-outside-wrapper {
+ margin-top: 30px;
+}
+
+.mail-conv-delete-wrapper {
+ float: right;
+ margin-right: 30px;
+ margin-top: 15px;
+}
+.mail-conv-break {
+ clear: both;
+}
+
+.mail-conv-delete-icon {
+ border: none;
+}
+
+*/
+
/* page footer */
footer { height: 100px; display: table-row; }
diff --git a/view/theme/quattro/style.css b/view/theme/quattro/style.css
index 8f0abe86d..7d7444e48 100755
--- a/view/theme/quattro/style.css
+++ b/view/theme/quattro/style.css
@@ -626,35 +626,6 @@ aside #profiles-menu {
width: 48px;
height: 48px;
}
-/* mail view */
-.mail-conv-sender, .mail-conv-detail {
- float: left;
-}
-.mail-conv-detail {
- margin-left: 20px;
- width: 500px;
-}
-.mail-conv-subject {
- font-size: 1.4em;
- margin: 10px 0;
-}
-.mail-conv-outside-wrapper-end {
- clear: both;
-}
-.mail-conv-outside-wrapper {
- margin-top: 30px;
-}
-.mail-conv-delete-wrapper {
- float: right;
- margin-right: 30px;
- margin-top: 15px;
-}
-.mail-conv-break {
- clear: both;
-}
-.mail-conv-delete-icon {
- border: none;
-}
/* group member */
#contact-edit-drop-link, .mail-list-delete-wrapper, .group-delete-wrapper {
float: right;
@@ -1355,6 +1326,9 @@ ul.tabs li .active {
.field input, .field textarea {
width: 400px;
}
+.field input[type="checkbox"], .field input[type="radio"] {
+ width: auto;
+}
.field textarea {
height: 100px;
}
@@ -1503,6 +1477,123 @@ ul.tabs li .active {
left: 0px;
top: 63px;
}
+/* messages */
+#message-new {
+ background: #19aeff;
+ border: 1px solid #005c94;
+ width: 150px;
+}
+#message-new a {
+ color: #ffffff;
+ text-align: center;
+ display: block;
+ font-weight: bold;
+ padding: 1em 0px;
+}
+.mail-list-wrapper {
+ background-color: #f6f7f8;
+ margin-bottom: 5px;
+ width: 100%;
+ height: auto;
+ overflow: hidden;
+}
+.mail-list-wrapper span {
+ display: block;
+ float: left;
+ width: 20%;
+ overflow: hidden;
+}
+.mail-list-wrapper .mail-subject {
+ width: 30%;
+ padding: 4px 0px 0px 4px;
+}
+.mail-list-wrapper .mail-subject a {
+ display: block;
+}
+.mail-list-wrapper .mail-subject.unseen a {
+ font-weight: bold;
+}
+.mail-list-wrapper .mail-date {
+ padding: 4px 4px 0px 4px;
+}
+.mail-list-wrapper .mail-from {
+ padding: 4px 4px 0px 4px;
+}
+.mail-list-wrapper .mail-count {
+ padding: 4px 4px 0px 4px;
+ text-align: right;
+}
+.mail-list-wrapper .mail-delete {
+ float: right;
+}
+#mail-display-subject {
+ background-color: #f6f7f8;
+ color: #2d2d2d;
+ margin-bottom: 10px;
+ width: 100%;
+ height: auto;
+ overflow: hidden;
+}
+#mail-display-subject span {
+ float: left;
+ overflow: hidden;
+ padding: 4px 0px 0px 10px;
+}
+#mail-display-subject .mail-delete {
+ float: right;
+ opacity: 0.5;
+ -webkit-transition: all 0.2s ease-in-out;
+ -moz-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ -ms-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+}
+#mail-display-subject:hover .mail-delete {
+ opacity: 1;
+ -webkit-transition: all 0.2s ease-in-out;
+ -moz-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ -ms-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+}
+/* mail view */
+/*
+.mail-conv-sender,
+.mail-conv-detail {
+ float: left;
+}
+.mail-conv-detail {
+ margin-left: 20px;
+ width: 500px;
+}
+
+.mail-conv-subject {
+ font-size: 1.4em;
+ margin: 10px 0;
+}
+
+.mail-conv-outside-wrapper-end {
+ clear: both;
+}
+
+.mail-conv-outside-wrapper {
+ margin-top: 30px;
+}
+
+.mail-conv-delete-wrapper {
+ float: right;
+ margin-right: 30px;
+ margin-top: 15px;
+}
+.mail-conv-break {
+ clear: both;
+}
+
+.mail-conv-delete-icon {
+ border: none;
+}
+
+*/
/* page footer */
footer {
height: 100px;