diff --git a/mod/message.php b/mod/message.php index 8991f643d4..949e5616ca 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 ed36a7bb20..75a4506f6a 100755 --- a/view/mail_conv.tpl +++ b/view/mail_conv.tpl @@ -1,13 +1,13 @@
- $from_name + $mail.from_name
-
$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 0000000000..69c7e07222 --- /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 0000000000..fce771bd5d --- /dev/null +++ b/view/message_side.tpl @@ -0,0 +1,10 @@ +
+
$new.label
+ + + +
diff --git a/view/theme/quattro/colors.less b/view/theme/quattro/colors.less index 9183b2e777..b6d487f92b 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 0000000000..1e5a760449 --- /dev/null +++ b/view/theme/quattro/fileas_widget.tpl @@ -0,0 +1,12 @@ +
+

$title

+
$desc
+ + + +
diff --git a/view/theme/quattro/mail_conv.tpl b/view/theme/quattro/mail_conv.tpl new file mode 100755 index 0000000000..989f178781 --- /dev/null +++ b/view/theme/quattro/mail_conv.tpl @@ -0,0 +1,60 @@ +
+
+
+ +
+
+ $mail.body +
+
+
+ +
+
+
+
+
+
+
+
+ $mail.from_name $mail.date +
+ +
+
+ + + +
+
+
+
+
+ + +{# + + +
+
+ $mail.from_name +
+
+
$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 0000000000..8b82e95c60 --- /dev/null +++ b/view/theme/quattro/mail_display.tpl @@ -0,0 +1,12 @@ +
+ $thread_subject + +
+ +{{ 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 0000000000..6bc6c84f60 --- /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 0000000000..9f15870964 --- /dev/null +++ b/view/theme/quattro/message_side.tpl @@ -0,0 +1,10 @@ +
+
$new.label
+ + + +
diff --git a/view/theme/quattro/msg-header.tpl b/view/theme/quattro/msg-header.tpl new file mode 100755 index 0000000000..2d1ea7a612 --- /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 fca65c9076..c6352cfe99 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 8f0abe86df..7d7444e481 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;