mirror of
https://git.friendi.ca/friendica/friendica-addons.git
synced 2025-07-09 01:48:48 +00:00
jappixmini: include jappix source
This commit is contained in:
parent
61eb1f0d18
commit
302b2820d1
231 changed files with 96082 additions and 2 deletions
134
jappixmini/jappix/js/storage.js
Normal file
134
jappixmini/jappix/js/storage.js
Normal file
|
@ -0,0 +1,134 @@
|
|||
/*
|
||||
|
||||
Jappix - An open social platform
|
||||
These are the storage JS scripts for Jappix
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
License: AGPL
|
||||
Author: Vanaryon
|
||||
Last revision: 26/08/11
|
||||
|
||||
*/
|
||||
|
||||
// Gets the storage items of the user
|
||||
function getStorage(type) {
|
||||
/* REF: http://xmpp.org/extensions/xep-0049.html */
|
||||
|
||||
var iq = new JSJaCIQ();
|
||||
iq.setType('get');
|
||||
|
||||
var iqQuery = iq.setQuery(NS_PRIVATE);
|
||||
iqQuery.appendChild(iq.buildNode('storage', {'xmlns': type}));
|
||||
|
||||
con.send(iq, handleStorage);
|
||||
}
|
||||
|
||||
// Handles the storage items
|
||||
function handleStorage(iq) {
|
||||
var handleXML = iq.getQuery();
|
||||
var handleFrom = fullXID(getStanzaFrom(iq));
|
||||
|
||||
// Define some vars
|
||||
var options = $(handleXML).find('storage[xmlns=' + NS_OPTIONS + ']');
|
||||
var inbox = $(handleXML).find('storage[xmlns=' + NS_INBOX + ']');
|
||||
var bookmarks = $(handleXML).find('storage[xmlns=' + NS_BOOKMARKS + ']');
|
||||
var rosternotes = $(handleXML).find('storage[xmlns=' + NS_ROSTERNOTES + ']');
|
||||
|
||||
// No options and node not yet configured
|
||||
if(options.size() && !options.find('option').size() && (iq.getType() != 'error'))
|
||||
openWelcome();
|
||||
|
||||
// Parse the options xml
|
||||
options.find('option').each(function() {
|
||||
// We retrieve the informations
|
||||
var type = $(this).attr('type');
|
||||
var value = $(this).text();
|
||||
|
||||
// We display the storage
|
||||
setDB('options', type, value);
|
||||
|
||||
// If this is the buddy list show status
|
||||
if((type == 'roster-showall') && (value == '1'))
|
||||
showAllBuddies('storage');
|
||||
});
|
||||
|
||||
// Parse the inbox xml
|
||||
inbox.find('message').each(function() {
|
||||
storeInboxMessage(
|
||||
$(this).attr('from'),
|
||||
$(this).attr('subject'),
|
||||
$(this).text(),
|
||||
$(this).attr('status'),
|
||||
$(this).attr('id'),
|
||||
$(this).attr('date'),
|
||||
[
|
||||
$(this).attr('file_title'),
|
||||
$(this).attr('file_href'),
|
||||
$(this).attr('file_type'),
|
||||
$(this).attr('file_length')
|
||||
]
|
||||
);
|
||||
});
|
||||
|
||||
// Parse the bookmarks xml
|
||||
bookmarks.find('conference').each(function() {
|
||||
// We retrieve the informations
|
||||
var xid = $(this).attr('jid');
|
||||
var name = $(this).attr('name');
|
||||
var autojoin = $(this).attr('autojoin');
|
||||
var password = $(this).find('password').text();
|
||||
var nick = $(this).find('nick').text();
|
||||
|
||||
// We display the storage
|
||||
displayFavorites(xid, name, nick, autojoin, password);
|
||||
|
||||
// Join the chat if autojoin is enabled
|
||||
if(autojoin == '1')
|
||||
checkChatCreate(xid, 'groupchat', nick, password, name);
|
||||
});
|
||||
|
||||
// Parse the roster notes xml
|
||||
rosternotes.find('note').each(function() {
|
||||
setDB('rosternotes', $(this).attr('jid'), $(this).text());
|
||||
});
|
||||
|
||||
// Options received
|
||||
if(options.size()) {
|
||||
logThis('Options received.');
|
||||
|
||||
// Now, get the inbox
|
||||
getStorage(NS_INBOX);
|
||||
|
||||
// Geolocate the user
|
||||
geolocate();
|
||||
|
||||
$('.options-hidable').show();
|
||||
}
|
||||
|
||||
// Inbox received
|
||||
else if(inbox.size()) {
|
||||
logThis('Inbox received.');
|
||||
|
||||
// Send the first presence!
|
||||
firstPresence(getDB('checksum', 1));
|
||||
|
||||
// Check we have new messages (play a sound if any unread messages)
|
||||
if(checkInboxMessages())
|
||||
soundPlay(2);
|
||||
|
||||
$('.inbox-hidable').show();
|
||||
}
|
||||
|
||||
// Bookmarks received
|
||||
else if(bookmarks.size()) {
|
||||
// Join the groupchats the admin defined (if any)
|
||||
joinConfGroupchats();
|
||||
|
||||
logThis('Bookmarks received.');
|
||||
}
|
||||
|
||||
// Roster notes received (for logger)
|
||||
else if(rosternotes.size())
|
||||
logThis('Roster notes received.');
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue