Browse Source

- Merge with nodpounod

pull/16/head
Jaussoin Timothée 11 years ago
parent
commit
d9243bc954
  1. 22
      app/assets/js/movim_utils.js
  2. 38
      app/widgets/Roster/Roster.php
  3. 4
      app/widgets/Roster/roster.css
  4. 43
      app/widgets/Roster/roster.js

22
app/assets/js/movim_utils.js

@ -282,3 +282,25 @@ function base64_decode(data) {
return dec.replace(/\0+$/, '');
}
/**
* @brief Sanitize string for easy search
* @param string
*/
function accentsTidy(s){
//Ian Elliott in http://stackoverflow.com/questions/990904/javascript-remove-accents-diacritics-in-strings
var r = s.toLowerCase();
r = r.replace(new RegExp("\\s", 'g'),"");
r = r.replace(new RegExp("[àáâãäå]", 'g'),"a");
r = r.replace(new RegExp("æ", 'g'),"ae");
r = r.replace(new RegExp("ç", 'g'),"c");
r = r.replace(new RegExp("[èéêë]", 'g'),"e");
r = r.replace(new RegExp("[ìíîï]", 'g'),"i");
r = r.replace(new RegExp("ñ", 'g'),"n");
r = r.replace(new RegExp("[òóôõö]", 'g'),"o");
r = r.replace(new RegExp("œ", 'g'),"oe");
r = r.replace(new RegExp("[ùúûü]", 'g'),"u");
r = r.replace(new RegExp("[ýÿ]", 'g'),"y");
r = r.replace(new RegExp("\\W", 'g'),"");
return r;
};

38
app/widgets/Roster/Roster.php

@ -58,16 +58,6 @@ class Roster extends WidgetBase
{
$contacts = $packet->content;
if($contacts != null){
/*
if(is_array($contacts) && $contacts[0]->value < 5) {
$presences = getPresences();
Notification::append(
'presence',
$contacts[0]->getTrueName(),
$presences[$contacts[0]->value],
$contacts[0]->getPhoto('s'), 2);
}
*/
$c = $contacts[0];
if($c->groupname == '')
@ -189,22 +179,11 @@ class Roster extends WidgetBase
->request();
}
private function getCaps() {
$capsdao = new \Modl\CapsDAO();
$caps = $capsdao->getAll();
$capsarr = array();
foreach($caps as $c) {
$capsarr[$c->node] = $c;
}
return $capsarr;
}
/**
* @brief Search for a contact to add
*/
function ajaxSearchContact($jid) {
function ajaxSearchContact($jid)
{
if(filter_var($jid, FILTER_VALIDATE_EMAIL)) {
RPC::call('movim_redirect', Route::urlize('friend', $jid));
RPC::commit();
@ -212,6 +191,19 @@ class Roster extends WidgetBase
Notification::append(null, $this->__('roster.jid_error'));
}
private function getCaps()
{
$capsdao = new \Modl\CapsDAO();
$caps = $capsdao->getAll();
$capsarr = array();
foreach($caps as $c) {
$capsarr[$c->node] = $c;
}
return $capsarr;
}
/**
* @brief Get data from database to pass it on to angular in JSON
* @param

4
app/widgets/Roster/roster.css

@ -70,11 +70,11 @@
/* Search */
#roster ul li.subheader.search,
#roster.search ul#rosterlist.offlineshown div.groupshown > li {
#roster.search ul#rosterlist div.groupshown > li {
display: none;
}
#roster.search ul li.subheader.search,
#roster.search ul#rosterlist.offlineshown div.groupshown > li.found {
#roster.search ul#rosterlist div > li.found {
display: list-item;
}

43
app/widgets/Roster/roster.js

@ -8,8 +8,7 @@
$scope.lsRoster = localStorage.getObject($scope.lsJid + "_Roster") || {};
$scope.lsGroupState = "groupState" in $scope.lsRoster ? $scope.lsRoster.groupState : {};
//this.cache = localStorage.getObject($scope.lsJid + '_cache');
$scope.contacts = /*this.cache && ("Roster" in this.cache) && ("contactsList" in this.cache.Roster) ? localStorage.getObject($scope.lsJid + '_cache').Roster.contactsList : */[];
$scope.contacts = [];
$scope.groups = [];
/* Dictionaries */
@ -81,7 +80,7 @@
oldgroupname = $scope.lookupjid[list.jid].ajiditems.groupname;
if($scope.lookupgroups[oldgroupname].agroupitems.length == 1){
$scope.lookupgroups[oldgroupname].tombstone = true;
/*Remove group from localStorage*/
/* Remove group from localStorage */
delete $scope.lsGroupState['rosterGroup_'+oldgroupname];
}
else{
@ -138,11 +137,6 @@
$scope.lsGroupState["rosterGroup_" + g] = ls;
$scope.groups[g] = ls;
};
/*this.postJingleAction = function(c){
Popup.close();
Popup.open(c.jid + "/" + c.resource);
};*/
this.groupIsShown = function(grp){
if(typeof $scope.groups[grp] != "undefined"){
@ -152,7 +146,7 @@
};
this.getContactTitle = function(c){
title = c.rosterview.name.toLowerCase() + " - " + c.jid;
title = accentsTidy(c.rosterview.name) + " - " + c.jid;
if(c.status) title += " - " + c.status;
return title;
};
@ -182,19 +176,8 @@
window.onunload = window.onbeforeunload = function(e){
var lsjid = angular.element(roster).scope().lsJid;
// Cache Roster list in jid_cache.Roster
/*if(localStorage.getObject(lsjid + "_cache") === null)
localStorage.setObject(lsjid + "_cache", {"Roster": {"contactsList": angular.element(roster).scope().contacts}});
else{
var nv = localStorage.getObject(lsjid + "_cache");
nv.Roster = {"contactsList": angular.element(roster).scope().contacts};
localStorage.setObject(lsjid + "_cache", nv);
}
*/
// Update real localstorage
angular.element(roster).scope().lsRoster.groupState = angular.element(roster).scope().lsGroupState;
//angular.element(roster).scope().lsRoster.offlineShown = angular.element(rostermenu).scope().lsOfflineShown;
localStorage.setObject(lsjid + "_Roster", angular.element(roster).scope().lsRoster);
};
@ -273,14 +256,12 @@ var Roster = {
search.oninput = function(event) {
if(search.value.length > 0) {
movim_add_class(roster, 'search');
movim_add_class(rosterlist, 'offlineshown');
} else {
movim_remove_class(roster, 'search');
movim_remove_class(rosterlist, 'offlineshown');
}
// We clear the old search
var selector_clear = '#rosterlist div > li:not(.subheader)';
var selector_clear = '#rosterlist div > li.found';
var li = document.querySelectorAll(selector_clear);
for(i = 0; i < li.length; i++) {
@ -289,10 +270,17 @@ var Roster = {
// We select the interesting li
var selector = '#rosterlist div > li[title*="' + search.value.toLowerCase() + '"]:not(.subheader)';
var li = document.querySelectorAll(selector);
for(i = 0; i < li.length; i++) {
movim_add_class(li.item(i), 'found');
li = document.querySelectorAll(selector);
if(li != null && li.item(0) != null ){
var g = li.item(0).parentNode.querySelector('.subheader');
movim_add_class(g, 'found');
for(i = 0; i < li.length; i++) {
if(li.item(i).parentNode.firstChild != g){
g = li.item(i).parentNode.querySelector('.subheader');
movim_add_class(g, 'found');
}
movim_add_class(li.item(i), 'found');
}
}
};
},
@ -323,7 +311,6 @@ var Roster = {
var it = document.querySelectorAll('#rosterlist div > li:not(.subheader)');
Roster.reset(it);
movim_add_class(e.target, 'active');
//document.querySelector('#roster').className = '';
},
}

Loading…
Cancel
Save