/* Jappix - An open social platform These are the discovery JS scripts for Jappix ------------------------------------------------- License: AGPL Author: Valérian Saliou */ // Bundle var Discovery = (function () { /** * Alias of this * @private */ var self = {}; /** * Opens the discovery popup * @public * @return {boolean} */ self.open = function() { try { // Popup HTML content var html = '
' + Common._e("Service discovery") + '
' + '
' + '
' + '
' + Common._e("Server to query") + '
' + '' + '
' + '
' + '' + '
' + '

' + Common._e("Authentications") + '

' + '
' + '
' + '

' + Common._e("Automation") + '

' + '
' + '
' + '

' + Common._e("Clients") + '

' + '
' + '
' + '

' + Common._e("Collaboration") + '

' + '
' + '
' + '

' + Common._e("Components") + '

' + '
' + '
' + '

' + Common._e("Rooms") + '

' + '
' + '
' + '

' + Common._e("Directories") + '

' + '
' + '
' + '

' + Common._e("Gateways") + '

' + '
' + '
' + '

' + Common._e("News") + '

' + '
' + '
' + '

' + Common._e("Hierarchy") + '

' + '
' + '
' + '

' + Common._e("Proxies") + '

' + '
' + '
' + '

' + Common._e("Publication/Subscription") + '

' + '
' + '
' + '

' + Common._e("Server") + '

' + '
' + '
' + '

' + Common._e("Storage") + '

' + '
' + '
' + '

' + Common._e("Others") + '

' + '
' + '
' + '

' + Common._e("Loading") + '

' + '
' + '
' + '
' + '
' + '
' + '' + Common._e("Close") + '' + '
'; // Create the popup Popup.create('discovery', html); // Associate the events self.instance(); // We request a disco to the default server self.start(); } catch(e) { Console.error('Discovery.open', e); } finally { return false; } }; /** * Quits the discovery popup * @public * @return {boolean} */ self.close = function() { try { // Destroy the popup Popup.destroy('discovery'); } catch(e) { Console.error('Discovery.close', e); } finally { return false; } }; /** * Launches a discovery * @public * @return {boolean} */ self.start = function() { /* REF: http://xmpp.org/extensions/xep-0030.html */ try { // We get the server to query var discoServer = $('#discovery .disco-server-input').val(); // We launch the items query DataForm.go(discoServer, 'browse', '', '', 'discovery'); Console.log('Service discovery launched: ' + discoServer); } catch(e) { Console.error('Discovery.start', e); } finally { return false; } }; /** * Cleans the discovery results * @public * @return {boolean} */ self.clean = function() { try { // We remove the results $('#discovery .discovery-oneresult, #discovery .oneinstructions, #discovery .onetitle, #discovery .no-results').remove(); // We clean the user info $('#discovery .disco-server-info').text(''); // We hide the wait icon, the no result alert and the results $('#discovery .wait, #discovery .disco-category').hide(); } catch(e) { Console.error('Discovery.clean', e); } }; /** * Plugin launcher * @public * @return {undefined} */ self.instance = function() { try { // Click event $('#discovery .bottom .finish').click(self.close); // Keyboard event $('#discovery .disco-server-input').keyup(function(e) { if(e.keyCode == 13) { // No value? if(!$(this).val()) $(this).val(HOST_MAIN); // Start the discovery self.start(); return false; } }); } catch(e) { Console.error('Discovery.instance', e); } }; /** * Return class scope */ return self; })();