]> git.mxchange.org Git - friendica-addons.git/blobdiff - jappixmini/jappix/js/discovery.js
jappixmini: include jappix source
[friendica-addons.git] / jappixmini / jappix / js / discovery.js
diff --git a/jappixmini/jappix/js/discovery.js b/jappixmini/jappix/js/discovery.js
new file mode 100644 (file)
index 0000000..867037b
--- /dev/null
@@ -0,0 +1,169 @@
+/*
+
+Jappix - An open social platform
+These are the discovery JS scripts for Jappix
+
+-------------------------------------------------
+
+License: AGPL
+Author: Vanaryon
+Last revision: 03/03/11
+
+*/
+
+// Opens the discovery popup
+function openDiscovery() {
+       // Popup HTML content
+       var html = 
+       '<div class="top">' + _e("Service discovery") + '</div>' + 
+       
+       '<div class="content">' + 
+               '<div class="discovery-head">' + 
+                       '<div class="disco-server-text">' + _e("Server to query") + '</div>' + 
+                       
+                       '<input name="disco-server-input" class="disco-server-input" value="' + encodeQuotes(HOST_MAIN) + '" />' + 
+               '</div>' + 
+               
+               '<div class="results discovery-results">' + 
+                       '<div class="disco-category disco-account">' + 
+                               '<p class="disco-category-title">' + _e("Accounts") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-auth">' + 
+                               '<p class="disco-category-title">' + _e("Authentications") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-automation">' + 
+                               '<p class="disco-category-title">' + _e("Automation") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-client">' + 
+                               '<p class="disco-category-title">' + _e("Clients") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-collaboration">' + 
+                               '<p class="disco-category-title">' + _e("Collaboration") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-component">' + 
+                               '<p class="disco-category-title">' + _e("Components") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-conference">' + 
+                               '<p class="disco-category-title">' + _e("Rooms") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-directory">' + 
+                               '<p class="disco-category-title">' + _e("Directories") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-gateway">' + 
+                               '<p class="disco-category-title">' + _e("Gateways") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-headline">' + 
+                               '<p class="disco-category-title">' + _e("News") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-hierarchy">' + 
+                               '<p class="disco-category-title">' + _e("Hierarchy") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-proxy">' + 
+                               '<p class="disco-category-title">' + _e("Proxies") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-pubsub">' + 
+                               '<p class="disco-category-title">' + _e("Publication/Subscription") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-server">' + 
+                               '<p class="disco-category-title">' + _e("Server") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-store">' + 
+                               '<p class="disco-category-title">' + _e("Storage") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-others">' + 
+                               '<p class="disco-category-title">' + _e("Others") + '</p>' + 
+                       '</div>' + 
+                       
+                       '<div class="disco-category disco-wait">' + 
+                               '<p class="disco-category-title">' + _e("Loading") + '</p>' + 
+                       '</div>' + 
+               '</div>' + 
+       '</div>' + 
+       
+       '<div class="bottom">' + 
+               '<div class="wait wait-medium"></div>' + 
+               
+               '<a href="#" class="finish">' + _e("Close") + '</a>' + 
+       '</div>';
+       
+       // Create the popup
+       createPopup('discovery', html);
+       
+       // Associate the events
+       launchDiscovery();
+       
+       // We request a disco to the default server
+       startDiscovery();
+       
+       return false;
+}
+
+// Quits the discovery popup
+function closeDiscovery() {
+       // Destroy the popup
+       destroyPopup('discovery');
+       
+       return false;
+}
+
+// Launches a discovery
+function startDiscovery() {
+       /* REF: http://xmpp.org/extensions/xep-0030.html */
+       
+       // We get the server to query
+       var discoServer = $('#discovery .disco-server-input').val();
+       
+       // We launch the items query
+       dataForm(discoServer, 'browse', '', '', 'discovery');
+       
+       logThis('Service discovery launched: ' + discoServer);
+       
+       return false;
+}
+
+// Cleans the discovery results
+function cleanDiscovery() {
+       // 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();
+}
+
+// Plugin launcher
+function launchDiscovery() {
+       // Click event
+       $('#discovery .bottom .finish').click(closeDiscovery);
+       
+       // 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
+                       startDiscovery();
+                       
+                       return false;
+               }
+       });
+}