1
0
mirror of https://github.com/nerzhul/ocsms.git synced 2025-06-07 16:06:15 +00:00

Add contact photos into peerlist

Add some support into controller
This commit is contained in:
Loic Blot 2014-12-29 11:31:03 +00:00
parent 2fe4cc0ce0
commit da5447a51b
4 changed files with 33 additions and 10 deletions

View File

@ -30,9 +30,10 @@ class OcSmsApp extends App {
/* /*
caching dosn´t work because on every call all will be reinstantiated caching dosn´t work because on every call all will be reinstantiated
*/ */
private static $contacts; // dosn´t work private static $contacts;
private static $contactPhotos;
private static $contactsInverted; // dosn´t work private static $contactsInverted;
private $c; private $c;
@ -85,7 +86,6 @@ class OcSmsApp extends App {
public function getContacts() { public function getContacts() {
// Only load contacts if they aren't in the buffer // Only load contacts if they aren't in the buffer
// dosn´t work
if(count(self::$contacts) == 0) { if(count(self::$contacts) == 0) {
$this->loadContacts(); $this->loadContacts();
} }
@ -94,13 +94,20 @@ class OcSmsApp extends App {
public function getInvertedContacts() { public function getInvertedContacts() {
// Only load contacts if they aren't in the buffer // Only load contacts if they aren't in the buffer
// dosn´t work
if(count(self::$contactsInverted) == 0) { if(count(self::$contactsInverted) == 0) {
$this->loadContacts(); $this->loadContacts();
} }
return self::$contactsInverted; return self::$contactsInverted;
} }
public function getContactPhotos() {
// Only load contacts if they aren't in the buffer
if(count(self::$contactPhotos) == 0) {
$this->loadContacts();
}
return self::$contactPhotos;
}
/** /**
* Partially importe this function from owncloud Chat app * Partially importe this function from owncloud Chat app
* https://github.com/owncloud/chat/blob/master/app/chat.php * https://github.com/owncloud/chat/blob/master/app/chat.php
@ -129,12 +136,15 @@ class OcSmsApp extends App {
$this->pushPhoneNumberToCache($phoneIds, $r["FN"]); $this->pushPhoneNumberToCache($phoneIds, $r["FN"]);
} }
} }
if (isset ($r["PHOTO"])) {
// Remove useless prefix
$photoURL = preg_replace("#VALUE=uri:#","",$r["PHOTO"]);
self::$contactPhotos[$r["FN"]] = $photoURL;
}
} }
} }
/*
all numbers will be formatted
*/
private function pushPhoneNumberToCache($rawPhone, $contactName) { private function pushPhoneNumberToCache($rawPhone, $contactName) {
$phoneNb = PhoneNumberFormatter::format($rawPhone); $phoneNb = PhoneNumberFormatter::format($rawPhone);

View File

@ -111,6 +111,7 @@ class SmsController extends Controller {
$phoneList = $this->smsMapper->getLastMessageTimestampForAllPhonesNumbers($this->userId); $phoneList = $this->smsMapper->getLastMessageTimestampForAllPhonesNumbers($this->userId);
$contactsSrc = $this->app->getContacts(); $contactsSrc = $this->app->getContacts();
$contacts = array(); $contacts = array();
$photos = $this->app->getContactPhotos();
$countPhone = count($phoneList); $countPhone = count($phoneList);
foreach ($phoneList as $number => $ts) { foreach ($phoneList as $number => $ts) {
@ -126,7 +127,7 @@ class SmsController extends Controller {
} }
} }
$lastRead = $this->smsMapper->getLastReadDate($this->userId); $lastRead = $this->smsMapper->getLastReadDate($this->userId);
return new JSONResponse(array("phonelist" => $phoneList, "contacts" => $contacts, "lastRead" => $lastRead)); return new JSONResponse(array("phonelist" => $phoneList, "contacts" => $contacts, "lastRead" => $lastRead, "photos" => $photos));
} }
/** /**

View File

@ -38,7 +38,6 @@
} }
#app-mailbox-peers li > a { #app-mailbox-peers li > a {
display: block; display: block;
width: 100%;
overflow: hidden; overflow: hidden;
-moz-box-sizing: border-box; box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;
white-space: nowrap; white-space: nowrap;
@ -124,3 +123,11 @@
.msg-spacer { .msg-spacer {
clear: both; clear: both;
} }
.ocsms-plavatar {
width: 40px;
height: 40px;
float: left;
background-size: 40px;
background-repeat: no-repeat;
}

View File

@ -289,7 +289,12 @@ function fetchInitialPeerList(jsondata) {
peerLabel = fn; peerLabel = fn;
} }
if ($.inArray(peerLabel, bufferedContacts) == -1) { if ($.inArray(peerLabel, bufferedContacts) == -1) {
peerListBuf += '<li><a href="#" mailbox-navigation="' + idxVal2 + '" mailbox-label="' + peerLabel + '">' + peerLabel + '</a></li>'; //peerListBuf += '<li><a href="#" mailbox-navigation="' + idxVal2 + '" mailbox-label="' + peerLabel + '">' + peerLabel + '</a></li>';
peerListBuf += '<li><div class="ocsms-plavatar"';
if (typeof jsondata['photos'][peerLabel] != 'undefined') {
peerListBuf += 'style="background-image: url(' + jsondata['photos'][peerLabel] + ');"';
}
peerListBuf += '></div><a href="#" mailbox-navigation="' + idxVal2 + '" mailbox-label="' + peerLabel + '">' + peerLabel + '</a></li>';
bufferedContacts.push(peerLabel); bufferedContacts.push(peerLabel);
} }
}); });