]> git.mxchange.org Git - friendica-addons.git/blob - jappixmini/jappix/js/discovery.js
GContact moved to src
[friendica-addons.git] / jappixmini / jappix / js / discovery.js
1 /*
2
3 Jappix - An open social platform
4 These are the discovery JS scripts for Jappix
5
6 -------------------------------------------------
7
8 License: AGPL
9 Author: Vanaryon
10 Last revision: 03/03/11
11
12 */
13
14 // Opens the discovery popup
15 function openDiscovery() {
16         // Popup HTML content
17         var html = 
18         '<div class="top">' + _e("Service discovery") + '</div>' + 
19         
20         '<div class="content">' + 
21                 '<div class="discovery-head">' + 
22                         '<div class="disco-server-text">' + _e("Server to query") + '</div>' + 
23                         
24                         '<input name="disco-server-input" class="disco-server-input" value="' + encodeQuotes(HOST_MAIN) + '" />' + 
25                 '</div>' + 
26                 
27                 '<div class="results discovery-results">' + 
28                         '<div class="disco-category disco-account">' + 
29                                 '<p class="disco-category-title">' + _e("Accounts") + '</p>' + 
30                         '</div>' + 
31                         
32                         '<div class="disco-category disco-auth">' + 
33                                 '<p class="disco-category-title">' + _e("Authentications") + '</p>' + 
34                         '</div>' + 
35                         
36                         '<div class="disco-category disco-automation">' + 
37                                 '<p class="disco-category-title">' + _e("Automation") + '</p>' + 
38                         '</div>' + 
39                         
40                         '<div class="disco-category disco-client">' + 
41                                 '<p class="disco-category-title">' + _e("Clients") + '</p>' + 
42                         '</div>' + 
43                         
44                         '<div class="disco-category disco-collaboration">' + 
45                                 '<p class="disco-category-title">' + _e("Collaboration") + '</p>' + 
46                         '</div>' + 
47                         
48                         '<div class="disco-category disco-component">' + 
49                                 '<p class="disco-category-title">' + _e("Components") + '</p>' + 
50                         '</div>' + 
51                         
52                         '<div class="disco-category disco-conference">' + 
53                                 '<p class="disco-category-title">' + _e("Rooms") + '</p>' + 
54                         '</div>' + 
55                         
56                         '<div class="disco-category disco-directory">' + 
57                                 '<p class="disco-category-title">' + _e("Directories") + '</p>' + 
58                         '</div>' + 
59                         
60                         '<div class="disco-category disco-gateway">' + 
61                                 '<p class="disco-category-title">' + _e("Gateways") + '</p>' + 
62                         '</div>' + 
63                         
64                         '<div class="disco-category disco-headline">' + 
65                                 '<p class="disco-category-title">' + _e("News") + '</p>' + 
66                         '</div>' + 
67                         
68                         '<div class="disco-category disco-hierarchy">' + 
69                                 '<p class="disco-category-title">' + _e("Hierarchy") + '</p>' + 
70                         '</div>' + 
71                         
72                         '<div class="disco-category disco-proxy">' + 
73                                 '<p class="disco-category-title">' + _e("Proxies") + '</p>' + 
74                         '</div>' + 
75                         
76                         '<div class="disco-category disco-pubsub">' + 
77                                 '<p class="disco-category-title">' + _e("Publication/Subscription") + '</p>' + 
78                         '</div>' + 
79                         
80                         '<div class="disco-category disco-server">' + 
81                                 '<p class="disco-category-title">' + _e("Server") + '</p>' + 
82                         '</div>' + 
83                         
84                         '<div class="disco-category disco-store">' + 
85                                 '<p class="disco-category-title">' + _e("Storage") + '</p>' + 
86                         '</div>' + 
87                         
88                         '<div class="disco-category disco-others">' + 
89                                 '<p class="disco-category-title">' + _e("Others") + '</p>' + 
90                         '</div>' + 
91                         
92                         '<div class="disco-category disco-wait">' + 
93                                 '<p class="disco-category-title">' + _e("Loading") + '</p>' + 
94                         '</div>' + 
95                 '</div>' + 
96         '</div>' + 
97         
98         '<div class="bottom">' + 
99                 '<div class="wait wait-medium"></div>' + 
100                 
101                 '<a href="#" class="finish">' + _e("Close") + '</a>' + 
102         '</div>';
103         
104         // Create the popup
105         createPopup('discovery', html);
106         
107         // Associate the events
108         launchDiscovery();
109         
110         // We request a disco to the default server
111         startDiscovery();
112         
113         return false;
114 }
115
116 // Quits the discovery popup
117 function closeDiscovery() {
118         // Destroy the popup
119         destroyPopup('discovery');
120         
121         return false;
122 }
123
124 // Launches a discovery
125 function startDiscovery() {
126         /* REF: http://xmpp.org/extensions/xep-0030.html */
127         
128         // We get the server to query
129         var discoServer = $('#discovery .disco-server-input').val();
130         
131         // We launch the items query
132         dataForm(discoServer, 'browse', '', '', 'discovery');
133         
134         logThis('Service discovery launched: ' + discoServer);
135         
136         return false;
137 }
138
139 // Cleans the discovery results
140 function cleanDiscovery() {
141         // We remove the results
142         $('#discovery .discovery-oneresult, #discovery .oneinstructions, #discovery .onetitle, #discovery .no-results').remove();
143         
144         // We clean the user info
145         $('#discovery .disco-server-info').text('');
146         
147         // We hide the wait icon, the no result alert and the results
148         $('#discovery .wait, #discovery .disco-category').hide();
149 }
150
151 // Plugin launcher
152 function launchDiscovery() {
153         // Click event
154         $('#discovery .bottom .finish').click(closeDiscovery);
155         
156         // Keyboard event
157         $('#discovery .disco-server-input').keyup(function(e) {
158                 if(e.keyCode == 13) {
159                         // No value?
160                         if(!$(this).val())
161                                 $(this).val(HOST_MAIN);
162                         
163                         // Start the discovery
164                         startDiscovery();
165                         
166                         return false;
167                 }
168         });
169 }