Browse Source

- Fix caching for Roster init

pull/16/head
Christine Ho 11 years ago
parent
commit
22a01691e3
  1. 9
      app/widgets/Login/Login.php
  2. 23
      app/widgets/Roster/roster.js

9
app/widgets/Login/Login.php

@ -18,6 +18,7 @@
*/
use Moxl\Xec\Action\Storage\Get;
use Moxl\Xec\Action\Roster\GetList;
class Login extends WidgetBase
{
@ -27,8 +28,9 @@ class Login extends WidgetBase
$this->addjs('login.js');
$this->registerEvent('moxlerror', 'onMoxlError');
$this->registerEvent('session_start_handle', 'onStart');
$this->registerEvent('storage_get_handle', 'onConfig');
$this->registerEvent('saslfailure', 'onSASLFailure');
$this->registerEvent('storage_get_handle', 'onConfig');
$this->registerEvent('storage_get_errorfeaturenotimplemented', 'onConfig');
}
function onStart($packet)
@ -39,6 +41,11 @@ class Login extends WidgetBase
// http://xmpp.org/extensions/xep-0280.html
\Moxl\Stanza\Carbons::enable();
// We refresh the roster
$r = new GetList;
$r->request();
// We get the configuration
$s = new Get;
$s->setXmlns('movim:prefs')
->request();

23
app/widgets/Roster/roster.js

@ -11,15 +11,14 @@
/* Controller for Rosterlist */
app.controller("RosterController", function($scope){
$scope.contacts = [];
$scope.contacts = localStorage.getObject('rosterContacts') || [];
$scope.groups = [];
/* Dictionaries */
$scope.lookupgroups = {};
$scope.lookupjid = {};
$scope.lookupgroups = localStorage.getObject('lookupgroups') || {};
$scope.lookupjid = localStorage.getObject('lookupjid') || {};
$scope.initContacts = function(list){
console.log("initContacts");
for(var i = 0; i < list.length; i++){
/* New group */
if(!(list[i].groupname in $scope.lookupgroups)){
@ -112,7 +111,6 @@
};
$scope.updateContact = function(list){
console.log("updateContact");
if($scope.contacts === null) $scope.contacts = [];
/* Group change */
if((list[0].jid in $scope.lookupjid)
@ -235,21 +233,10 @@ window.onunload = window.onbeforeunload = function(e){
/* Functions to call angular inner functions */
function initContacts(tab){
console.log("HELLO");
if(tab.length == 0)
angular.element(roster).scope().contacts = null;
else{
console.log(localStorage.getObject("rosterContacts"));
if(localStorage.getObject("rosterContacts") !== null){
angular.element(roster).scope().contacts = localStorage.getObject('rosterContacts');
angular.element(roster).scope().lookupjid = localStorage.getObject('lookupjid');
angular.element(roster).scope().lookupgroups = localStorage.getObject('lookupgroups');
//console.log(angular.element(roster).scope().lookupjid);
}
else{
angular.element(roster).scope().initContacts(JSON.parse(tab));
}
else if(localStorage.getObject("rosterContacts") === null){
angular.element(roster).scope().initContacts(JSON.parse(tab));
}
}

Loading…
Cancel
Save