From 774c51cc19c2e1fd135a7f692dd53bfb3a4d0ed3 Mon Sep 17 00:00:00 2001 From: friendica Date: Thu, 10 May 2012 01:45:51 -0700 Subject: [PATCH] email autocomplete --- mod/message.php | 41 +++++++++++++++---------- view/theme/duepuntozero/prv_message.tpl | 35 +++++++++++++++++++++ view/theme/duepuntozero/style.css | 11 ++++++- 3 files changed, 69 insertions(+), 18 deletions(-) create mode 100644 view/theme/duepuntozero/prv_message.tpl diff --git a/mod/message.php b/mod/message.php index b8695fdd93..8cfa0256cd 100644 --- a/mod/message.php +++ b/mod/message.php @@ -25,8 +25,12 @@ function message_init(&$a) { var a; a = $("#recip").autocomplete({ serviceUrl: '$base/acl', - width: 350 + width: 350, + onSelect: function(value,data) { + $("#recip-complete").val(data); + } }); + }); @@ -95,10 +99,6 @@ function message_content(&$a) { $myprofile = $a->get_baseurl(true) . '/profile/' . $a->user['nickname']; - - - - $tpl = get_markup_template('mail_head.tpl'); $header = replace_macros($tpl, array( '$messages' => t('Messages'), @@ -173,27 +173,34 @@ function message_content(&$a) { $preselect = (isset($a->argv[2])?array($a->argv[2]):false); - if(defined('EMAIL_AUTOCOMP')) { - // here's where we want to do contact autocomplete - // just figure out how to make it do the right thing - // pictures would be nice, but that didn't work when I tried. - // It sort of barely works, but needs help - // (the json backend is found in mod/acl.php) + $prename = $preurl = $preid = ''; - $select = ''; - } - else { + if($preselect) { + $r = q("select name, url, id from contact where uid = %d and id = %d limit 1", + intval(local_user()), + intval($a->argv[2]) + ); + if(count($r)) { + $prename = $r[0]['name']; + $preurl = $r[0]['url']; + $preid = $r[0]['id']; + } + } - // the ugly select box + $prefill = (($preselect) ? $prename . ' [' . $preurl . ']' : ''); - $select = contact_select('messageto','message-to-select', $preselect, 4, true, false, false, 10); - } + // the ugly select box + + $select = contact_select('messageto','message-to-select', $preselect, 4, true, false, false, 10); $tpl = get_markup_template('prv_message.tpl'); $o .= replace_macros($tpl,array( '$header' => t('Send Private Message'), '$to' => t('To:'), + '$prefill' => $prefill, + '$autocomp' => $autocomp, + '$preid' => $preid, '$subject' => t('Subject:'), '$subjtxt' => ((x($_REQUEST,'subject')) ? strip_tags($_REQUEST['subject']) : ''), '$text' => ((x($_REQUEST,'body')) ? escape_tags(htmlspecialchars($_REQUEST['body'])) : ''), diff --git a/view/theme/duepuntozero/prv_message.tpl b/view/theme/duepuntozero/prv_message.tpl new file mode 100644 index 0000000000..5d884fe962 --- /dev/null +++ b/view/theme/duepuntozero/prv_message.tpl @@ -0,0 +1,35 @@ + +

$header

+ +
+
+ +$parent + +
$to
+ + + + +
$subject
+ + +
$yourmessage
+ + + +
+ +
+
+
+ +
+ +
+
+
+
+
diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css index 7cbcdc4d2c..19d7d652eb 100644 --- a/view/theme/duepuntozero/style.css +++ b/view/theme/duepuntozero/style.css @@ -3166,4 +3166,13 @@ ul.menu-popup { } #id_term { width:100px; -} \ No newline at end of file +} + +#recip { + +} +.autocomplete-w1 { background:url(img/shadow.png) no-repeat bottom right; position:absolute; top:0px; left:0px; margin:6px 0 0 6px; /* IE6 fix: */ _background:none; _margin:1px 0 0 0; } +.autocomplete { border:1px solid #999; background:#FFF; cursor:default; text-align:left; max-height:350px; overflow:auto; margin:-6px 6px 6px -6px; /* IE6 specific: */ _height:350px; _margin:0; _overflow-x:hidden; } +.autocomplete .selected { background:#F0F0F0; } +.autocomplete div { padding:2px 5px; white-space:nowrap; overflow:hidden; } +.autocomplete strong { font-weight:normal; color:#3399FF; }