root / ui / templates / networks.html @ f81d0548
History | View | Annotate | Download (56.3 kB)
1 | a5bc3755 | Vangelis Koukis | <!--
|
---|---|---|---|
2 | a5bc3755 | Vangelis Koukis | Copyright 2011 GRNET S.A. All rights reserved.
|
3 | a5bc3755 | Vangelis Koukis | |
4 | a5bc3755 | Vangelis Koukis | Redistribution and use in source and binary forms, with or
|
5 | a5bc3755 | Vangelis Koukis | without modification, are permitted provided that the following
|
6 | a5bc3755 | Vangelis Koukis | conditions are met:
|
7 | a5bc3755 | Vangelis Koukis | |
8 | a5bc3755 | Vangelis Koukis | 1. Redistributions of source code must retain the above
|
9 | a5bc3755 | Vangelis Koukis | copyright notice, this list of conditions and the following
|
10 | a5bc3755 | Vangelis Koukis | disclaimer.
|
11 | a5bc3755 | Vangelis Koukis | |
12 | a5bc3755 | Vangelis Koukis | 2. Redistributions in binary form must reproduce the above
|
13 | a5bc3755 | Vangelis Koukis | copyright notice, this list of conditions and the following
|
14 | a5bc3755 | Vangelis Koukis | disclaimer in the documentation and/or other materials
|
15 | a5bc3755 | Vangelis Koukis | provided with the distribution.
|
16 | a5bc3755 | Vangelis Koukis | |
17 | a5bc3755 | Vangelis Koukis | THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
|
18 | a5bc3755 | Vangelis Koukis | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
19 | a5bc3755 | Vangelis Koukis | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
20 | a5bc3755 | Vangelis Koukis | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
|
21 | a5bc3755 | Vangelis Koukis | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
22 | a5bc3755 | Vangelis Koukis | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
23 | a5bc3755 | Vangelis Koukis | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
24 | a5bc3755 | Vangelis Koukis | USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
25 | a5bc3755 | Vangelis Koukis | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
26 | a5bc3755 | Vangelis Koukis | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
27 | a5bc3755 | Vangelis Koukis | ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
28 | a5bc3755 | Vangelis Koukis | POSSIBILITY OF SUCH DAMAGE.
|
29 | a5bc3755 | Vangelis Koukis | |
30 | a5bc3755 | Vangelis Koukis | The views and conclusions contained in the software and
|
31 | a5bc3755 | Vangelis Koukis | documentation are those of the authors and should not be
|
32 | a5bc3755 | Vangelis Koukis | interpreted as representing official policies, either expressed
|
33 | a5bc3755 | Vangelis Koukis | or implied, of GRNET S.A.
|
34 | a5bc3755 | Vangelis Koukis | -->
|
35 | a5bc3755 | Vangelis Koukis | |
36 | 7d4f351b | Mike Muzurakis | {% load i18n %} |
37 | e690c75d | Christodoulos Psaltis | |
38 | f533f224 | Vangelis Koukis | <!-- the create button -->
|
39 | f533f224 | Vangelis Koukis | <div id="networks-createcontainer"> |
40 | f533f224 | Vangelis Koukis | <div id="beforecreate"></div> |
41 | f533f224 | Vangelis Koukis | <a id="networkscreate" rel="#networks-wizard" href="#">{% trans "Create New +" %}</a> |
42 | f533f224 | Vangelis Koukis | </div>
|
43 | e690c75d | Christodoulos Psaltis | |
44 | f533f224 | Vangelis Koukis | <!-- add new network overlay -->
|
45 | f533f224 | Vangelis Koukis | <div>
|
46 | f533f224 | Vangelis Koukis | <div class="modal" id="networks-wizard"> |
47 | f533f224 | Vangelis Koukis | <div class="header"> |
48 | f533f224 | Vangelis Koukis | </div>
|
49 | f533f224 | Vangelis Koukis | <h2>{% trans "Name your network" %}</h2> |
50 | f533f224 | Vangelis Koukis | <hr class="topruler" /> |
51 | f533f224 | Vangelis Koukis | <div class="container"> |
52 | f533f224 | Vangelis Koukis | <div class="name-input"> |
53 | f533f224 | Vangelis Koukis | <label>{% trans "Name" %}:</label> |
54 | f533f224 | Vangelis Koukis | <input type="text" class="text" name="machine_name"></input> |
55 | f533f224 | Vangelis Koukis | <span class="help">{% trans "(* Required field)" %}</span> |
56 | f533f224 | Vangelis Koukis | </div>
|
57 | f533f224 | Vangelis Koukis | </div>
|
58 | f533f224 | Vangelis Koukis | <hr class="bottomruler" /> |
59 | f533f224 | Vangelis Koukis | <button type="button" id="add-network-cancel" class="cancel">{% trans "Cancel" %}</button> |
60 | f533f224 | Vangelis Koukis | <button type="button" id="add-network-create" class="create">{% trans "Create Network" %}</button> |
61 | f533f224 | Vangelis Koukis | <hr class="separator-end"></hr> |
62 | 7d4f351b | Mike Muzurakis | </div>
|
63 | f533f224 | Vangelis Koukis | </div>
|
64 | f533f224 | Vangelis Koukis | |
65 | f533f224 | Vangelis Koukis | <!-- networks list -->
|
66 | f533f224 | Vangelis Koukis | <div id="networks-container"> |
67 | f533f224 | Vangelis Koukis | <!-- spinner while loading list -->
|
68 | f533f224 | Vangelis Koukis | <div class = "large-spinner"></div> |
69 | f533f224 | Vangelis Koukis | |
70 | f533f224 | Vangelis Koukis | <!-- public network template -->
|
71 | f533f224 | Vangelis Koukis | <div class="network" id="public-template"> |
72 | 0a5c4b4d | Markos Gogoulos | <img class="network-logos" src="static/internet.png" /> |
73 | 0a8e39b4 | Mike Muzurakis | <div href="#" class="name-div"> |
74 | 7d4f351b | Mike Muzurakis | <h5 class="namecontainer"> |
75 | 7d4f351b | Mike Muzurakis | <span class="name">{% trans "Internet" %}</span> |
76 | 7d4f351b | Mike Muzurakis | </h5>
|
77 | 7d4f351b | Mike Muzurakis | </div>
|
78 | 24990e31 | Christodoulos Psaltis | <div class="network-machines"> |
79 | 24990e31 | Christodoulos Psaltis | <div class="machines-header"> |
80 | 24990e31 | Christodoulos Psaltis | <div class="machines-label">{% trans "machines" %} |
81 | 24990e31 | Christodoulos Psaltis | (<span class="machines-count">0</span>) |
82 | 24990e31 | Christodoulos Psaltis | </div>
|
83 | 24990e31 | Christodoulos Psaltis | <div class="toggler down"></div> |
84 | 24990e31 | Christodoulos Psaltis | </div>
|
85 | 24990e31 | Christodoulos Psaltis | </div>
|
86 | b1272faa | Mike Muzurakis | <div class="network-contents"> |
87 | 69a37abb | Christodoulos Psaltis | <div class="network-placeholder"> |
88 | f533f224 | Vangelis Koukis | <div class="machines-list"> |
89 | f533f224 | Vangelis Koukis | <!-- append machines here -->
|
90 | b1272faa | Mike Muzurakis | </div>
|
91 | 24990e31 | Christodoulos Psaltis | <!-- Adding servers to public network is not supported in 0.5
|
92 | c0c46a60 | Christodoulos Psaltis | <div class="empty-network-slot" id="machine-template">
|
93 | f533f224 | Vangelis Koukis | <div class='network-add-machine'>
|
94 | 4ede8cf5 | Christodoulos Psaltis | <span class="add-icon">+</span>
|
95 | f533f224 | Vangelis Koukis | </div>
|
96 | c0c46a60 | Christodoulos Psaltis | </div>
|
97 | 4ede8cf5 | Christodoulos Psaltis | -->
|
98 | 69a37abb | Christodoulos Psaltis | </div>
|
99 | 69a37abb | Christodoulos Psaltis | </div>
|
100 | 29310e65 | Mike Muzurakis | <div class="state"> |
101 | 29310e65 | Mike Muzurakis | <div class="status">{% trans "Public Network" %}</div> |
102 | 29310e65 | Mike Muzurakis | <div class="indicators network-indicator"> |
103 | 29310e65 | Mike Muzurakis | <div class="indicator1"></div> |
104 | 29310e65 | Mike Muzurakis | <div class="indicator2"></div> |
105 | 29310e65 | Mike Muzurakis | <div class="indicator3"></div> |
106 | 29310e65 | Mike Muzurakis | <div class="indicator4"></div> |
107 | 29310e65 | Mike Muzurakis | </div>
|
108 | 29310e65 | Mike Muzurakis | </div>
|
109 | 29310e65 | Mike Muzurakis | <div class="actions"> |
110 | 24990e31 | Christodoulos Psaltis | <!-- Adding servers to public network is not supported in 0.5
|
111 | 24990e31 | Christodoulos Psaltis | <a href="#" class="action-add">{% trans "Add Machine" %}</a>
|
112 | 24990e31 | Christodoulos Psaltis | -->
|
113 | 29310e65 | Mike Muzurakis | </div>
|
114 | 29310e65 | Mike Muzurakis | <div class="confirm_single"> |
115 | 29310e65 | Mike Muzurakis | <button class="yes">{% trans "Confirm" %}</button> |
116 | 29310e65 | Mike Muzurakis | <button class="no">{% trans "Cancel" %}</button> |
117 | 29310e65 | Mike Muzurakis | </div>
|
118 | 29310e65 | Mike Muzurakis | <div class="action_error" align="center"> |
119 | 29310e65 | Mike Muzurakis | {% trans "<span>Error</span> on" %} <span class="action">{% trans "error action" %}</span> |
120 | 29310e65 | Mike Muzurakis | <span class="code"></span> |
121 | 29310e65 | Mike Muzurakis | <span class="message"></span> |
122 | 29310e65 | Mike Muzurakis | <button class="details">{% trans "Details" %}</button> |
123 | 29310e65 | Mike Muzurakis | </div>
|
124 | 69a37abb | Christodoulos Psaltis | </div>
|
125 | f533f224 | Vangelis Koukis | |
126 | f533f224 | Vangelis Koukis | <!-- template for machines in public network -->
|
127 | f533f224 | Vangelis Koukis | <div class="network-machine" id="public-machine-template"> |
128 | 829c32c6 | Dimitris Moraitis | <div class="network-cable"></div> |
129 | f533f224 | Vangelis Koukis | <div class="machine-actions"> |
130 | f533f224 | Vangelis Koukis | <a href="#" class="action-details">{% trans "Details" %}</a> |
131 | f533f224 | Vangelis Koukis | </div>
|
132 | f533f224 | Vangelis Koukis | <div class="confirm_single"> |
133 | f533f224 | Vangelis Koukis | <button class="yes">{% trans "Confirm" %}</button> |
134 | f533f224 | Vangelis Koukis | <button class="no">{% trans "Cancel" %}</button> |
135 | f533f224 | Vangelis Koukis | </div>
|
136 | f533f224 | Vangelis Koukis | <div class="action_error" align="center"> |
137 | 3b08073b | Christodoulos Psaltis | {% trans "<span>Error</span> on" %} <span class="action">{% trans "error action" %}</span> |
138 | f533f224 | Vangelis Koukis | <span class="code"></span> |
139 | f533f224 | Vangelis Koukis | <span class="message"></span> |
140 | f533f224 | Vangelis Koukis | <button class="details">{% trans "Details" %}</button> |
141 | f533f224 | Vangelis Koukis | </div>
|
142 | 29310e65 | Mike Muzurakis | <div class="ips"> |
143 | f533f224 | Vangelis Koukis | <div class="ip4-container status"> |
144 | 696fe9e6 | Christodoulos Psaltis | {% trans "IPv4" %}: |
145 | f277a1cd | Kostas Papadimitriou | <span class="ip4 ipv4-text">192.94.73.15</span> |
146 | 69a37abb | Christodoulos Psaltis | </div>
|
147 | f533f224 | Vangelis Koukis | <div class="ip6-container status"> |
148 | 696fe9e6 | Christodoulos Psaltis | {% trans "IPv6" %}: |
149 | f277a1cd | Kostas Papadimitriou | <span class="ip6 ipv6-text"></span> |
150 | b1272faa | Mike Muzurakis | </div>
|
151 | 7d4f351b | Mike Muzurakis | </div>
|
152 | 0a5c4b4d | Markos Gogoulos | <img class="logo" src="static/icons/machines/medium/debian-on.png" /> |
153 | f533f224 | Vangelis Koukis | <div class='network-remove-machine'> |
154 | 24990e31 | Christodoulos Psaltis | <!-- Removing servers from public network is not supported in 0.5
|
155 | 24990e31 | Christodoulos Psaltis | <span class="remove-icon">X</span>
|
156 | 24990e31 | Christodoulos Psaltis | -->
|
157 | f533f224 | Vangelis Koukis | <span> </span> |
158 | f533f224 | Vangelis Koukis | </div>
|
159 | f533f224 | Vangelis Koukis | <div href="#" class="machine-name-div"> |
160 | f533f224 | Vangelis Koukis | <h5 class="namecontainer"> |
161 | f533f224 | Vangelis Koukis | <span class="name">my desktop1</span> |
162 | 6f547d12 | Mike Muzurakis | </h5>
|
163 | f533f224 | Vangelis Koukis | </div>
|
164 | 24990e31 | Christodoulos Psaltis | <div class="firewall"> |
165 | 24990e31 | Christodoulos Psaltis | <div class="firewall-header"> |
166 | 24990e31 | Christodoulos Psaltis | <div class="firewall-label">{% trans "Firewall" %} |
167 | 24990e31 | Christodoulos Psaltis | (<span class="firewall-off">{% trans "Off" %}</span>) |
168 | 24990e31 | Christodoulos Psaltis | </div>
|
169 | 24990e31 | Christodoulos Psaltis | <div class="toggler down"></div> |
170 | e9e7fe51 | Kostas Papadimitriou | |
171 | e9e7fe51 | Kostas Papadimitriou | <div class="network-progress-indicator"> |
172 | e9e7fe51 | Kostas Papadimitriou | <img src="/static/icons/indicators/small/progress.gif" alt="{% trans "updating settings" %}" title="{% trans "updating settings" %}" /> |
173 | e9e7fe51 | Kostas Papadimitriou | </div>
|
174 | 24990e31 | Christodoulos Psaltis | </div>
|
175 | 24990e31 | Christodoulos Psaltis | </div>
|
176 | f533f224 | Vangelis Koukis | <div class="firewall-content"> |
177 | 829c32c6 | Dimitris Moraitis | <div class="firewall-cable"></div> |
178 | 372f6c81 | Mike Muzurakis | <input type="radio" class="checkboxes" value="DISABLED" name="firewall" /> |
179 | f533f224 | Vangelis Koukis | <span class="checkbox-legends">{% trans "Unprotected mode (Firewall off)" %}</span> |
180 | f533f224 | Vangelis Koukis | <br /> |
181 | 372f6c81 | Mike Muzurakis | <input type="radio" class="checkboxes" value="ENABLED" name="firewall" /> |
182 | f533f224 | Vangelis Koukis | <span class="checkbox-legends">{% trans "Fully protected mode (Firewall on)" %}</span> |
183 | f533f224 | Vangelis Koukis | <br /> |
184 | 372f6c81 | Mike Muzurakis | <input type="radio" class="checkboxes" value="PROTECTED" name="firewall" /> |
185 | f533f224 | Vangelis Koukis | <span class="checkbox-legends">{% trans "Basically protected mode (Firewall on)" %}</span> |
186 | f533f224 | Vangelis Koukis | <button type="submit" class="firewall-apply">{% trans "Apply" %}</button> |
187 | f533f224 | Vangelis Koukis | </div>
|
188 | f533f224 | Vangelis Koukis | <div class="network-separator machines"></div> |
189 | f533f224 | Vangelis Koukis | </div>
|
190 | f533f224 | Vangelis Koukis | |
191 | e8f98b18 | Christodoulos Psaltis | <div class="separator" style="display:none;"></div> |
192 | e8f98b18 | Christodoulos Psaltis | |
193 | f533f224 | Vangelis Koukis | <!-- private network template -->
|
194 | f533f224 | Vangelis Koukis | <div class="network" id="private-template"> |
195 | f533f224 | Vangelis Koukis | <div class="actions"> |
196 | f533f224 | Vangelis Koukis | <a href="#" class="action-add">{% trans "Add Machine" %}</a> |
197 | f533f224 | Vangelis Koukis | <a href="#" class="action-network-destroy">{% trans "Destroy" %}</a> |
198 | f533f224 | Vangelis Koukis | </div>
|
199 | d7414be6 | Markos Gogoulos | <div class="action_error" align="center"> |
200 | d7414be6 | Markos Gogoulos | {% trans "<span>Error</span> on" %} <span class="action">{% trans "error action" %}</span> |
201 | d7414be6 | Markos Gogoulos | <span class="code"></span> |
202 | d7414be6 | Markos Gogoulos | <span class="message"></span> |
203 | d7414be6 | Markos Gogoulos | <button class="details">{% trans "Details" %}</button> |
204 | d7414be6 | Markos Gogoulos | </div>
|
205 | f533f224 | Vangelis Koukis | <div class="confirm_single"> |
206 | f533f224 | Vangelis Koukis | <button class="yes">{% trans "Confirm" %}</button> |
207 | df67c0cc | Markos Gogoulos | <button class="no">X</button> |
208 | f533f224 | Vangelis Koukis | </div>
|
209 | f533f224 | Vangelis Koukis | <div class="action_error" align="center"> |
210 | 3b08073b | Christodoulos Psaltis | {% trans "<span>Error</span> on" %} <span class="action">{% trans "error action" %}</span> |
211 | f533f224 | Vangelis Koukis | <span class="code"></span> |
212 | f533f224 | Vangelis Koukis | <span class="message"></span> |
213 | f533f224 | Vangelis Koukis | <button class="details">{% trans "Details" %}</button> |
214 | f533f224 | Vangelis Koukis | </div>
|
215 | f533f224 | Vangelis Koukis | <div class="state"> |
216 | f533f224 | Vangelis Koukis | <div class="status">{% trans "Private Network" %}</div> |
217 | df67c0cc | Markos Gogoulos | <div class="indicators network-indicator"> |
218 | df67c0cc | Markos Gogoulos | <div class="indicator1"></div> |
219 | df67c0cc | Markos Gogoulos | <div class="indicator2"></div> |
220 | df67c0cc | Markos Gogoulos | <div class="indicator3"></div> |
221 | df67c0cc | Markos Gogoulos | <div class="indicator4"></div> |
222 | df67c0cc | Markos Gogoulos | </div>
|
223 | 0a5c4b4d | Markos Gogoulos | <img class="spinner" style="display:none" src="static/icons/indicators/medium/progress.gif" /> |
224 | 0a5c4b4d | Markos Gogoulos | <img class="wave" style="display:none" src="static/icons/indicators/medium/wave.gif" /> |
225 | f533f224 | Vangelis Koukis | </div>
|
226 | 0a5c4b4d | Markos Gogoulos | <img class="network-logos" src="static/network.png" /> |
227 | f533f224 | Vangelis Koukis | <div href="#" class="name-div"> |
228 | f533f224 | Vangelis Koukis | <h5 class="namecontainer editable"> |
229 | f533f224 | Vangelis Koukis | <span class="name">{% trans "My Network 1" %}</span> |
230 | f533f224 | Vangelis Koukis | <span class="rename-network"></span> |
231 | f533f224 | Vangelis Koukis | <div class="editbuttons" style="display:none"> |
232 | 29310e65 | Mike Muzurakis | <span class="save"></span> |
233 | 29310e65 | Mike Muzurakis | <span class="cancel"></span> |
234 | c0c46a60 | Christodoulos Psaltis | </div>
|
235 | f533f224 | Vangelis Koukis | </h5>
|
236 | 6f547d12 | Mike Muzurakis | </div>
|
237 | 24990e31 | Christodoulos Psaltis | <div class="network-machines"> |
238 | 24990e31 | Christodoulos Psaltis | <div class="machines-header"> |
239 | 24990e31 | Christodoulos Psaltis | <div class="machines-label">{% trans "machines" %} |
240 | 24990e31 | Christodoulos Psaltis | (<span class="machines-count">0</span>) |
241 | 24990e31 | Christodoulos Psaltis | </div>
|
242 | 24990e31 | Christodoulos Psaltis | <div class="toggler down"></div> |
243 | 24990e31 | Christodoulos Psaltis | </div>
|
244 | 24990e31 | Christodoulos Psaltis | </div>
|
245 | f533f224 | Vangelis Koukis | <div class="network-contents"> |
246 | f533f224 | Vangelis Koukis | <div class="network-placeholder"> |
247 | f533f224 | Vangelis Koukis | <div class="machines-list"> |
248 | f533f224 | Vangelis Koukis | <!-- append machines here -->
|
249 | f533f224 | Vangelis Koukis | </div>
|
250 | f533f224 | Vangelis Koukis | <div class="empty-network-slot" id="machine-template"> |
251 | 01f84412 | Mike Muzurakis | <div class='network-add-machine'><div class="add-icon">+</div></div> |
252 | f533f224 | Vangelis Koukis | </div>
|
253 | 6f547d12 | Mike Muzurakis | </div>
|
254 | f533f224 | Vangelis Koukis | </div>
|
255 | f533f224 | Vangelis Koukis | </div>
|
256 | f533f224 | Vangelis Koukis | |
257 | f533f224 | Vangelis Koukis | <!-- template for machines in private network -->
|
258 | f533f224 | Vangelis Koukis | <div class="network-machine" id="private-machine-template"> |
259 | f533f224 | Vangelis Koukis | <div class="machine-actions"> |
260 | f533f224 | Vangelis Koukis | <a href="#" class="action-disconnect">{% trans "Disconnect" %}</a> |
261 | f533f224 | Vangelis Koukis | <a href="#" class="action-details">{% trans "Details" %}</a> |
262 | f533f224 | Vangelis Koukis | </div>
|
263 | f533f224 | Vangelis Koukis | <div class="confirm_single"> |
264 | f533f224 | Vangelis Koukis | <button class="yes">{% trans "Confirm" %}</button> |
265 | df67c0cc | Markos Gogoulos | <button class="no">X</button> |
266 | f533f224 | Vangelis Koukis | </div>
|
267 | f533f224 | Vangelis Koukis | <div class="action_error" align="center"> |
268 | 3b08073b | Christodoulos Psaltis | {% trans "<span>Error</span> on" %} <span class="action">{% trans "error action" %}</span> |
269 | f533f224 | Vangelis Koukis | <span class="code"></span> |
270 | f533f224 | Vangelis Koukis | <span class="message"></span> |
271 | f533f224 | Vangelis Koukis | <button class="details">{% trans "Details" %}</button> |
272 | f533f224 | Vangelis Koukis | </div>
|
273 | 0a5c4b4d | Markos Gogoulos | <img class="logo" src="static/icons/machines/medium/debian-on.png" /> |
274 | f533f224 | Vangelis Koukis | <div class='network-remove-machine'><span class="remove-icon">X</span></div> |
275 | f533f224 | Vangelis Koukis | <div href="#" class="machine-name-div"> |
276 | f533f224 | Vangelis Koukis | <h5 class="namecontainer editable"> |
277 | f533f224 | Vangelis Koukis | <span class="name">my desktop1</span> |
278 | 6f547d12 | Mike Muzurakis | </h5>
|
279 | f533f224 | Vangelis Koukis | </div>
|
280 | 77d4b76f | Christodoulos Psaltis | <h5 class='machine-connect'> |
281 | 77d4b76f | Christodoulos Psaltis | <span>{% trans "Connect" %}</span> {% trans "to manage private IPs" %} |
282 | f533f224 | Vangelis Koukis | </h5>
|
283 | f533f224 | Vangelis Koukis | <div class="network-separator machines"></div> |
284 | f533f224 | Vangelis Koukis | </div>
|
285 | f533f224 | Vangelis Koukis | |
286 | f533f224 | Vangelis Koukis | <!-- the actual structure to be populated -->
|
287 | f533f224 | Vangelis Koukis | <div class="public-networks"></div> |
288 | f533f224 | Vangelis Koukis | <div class="private-networks" style="display:none;"></div> |
289 | f533f224 | Vangelis Koukis | </div>
|
290 | f533f224 | Vangelis Koukis | |
291 | f533f224 | Vangelis Koukis | <!-- add servers to network overlay -->
|
292 | f533f224 | Vangelis Koukis | <div>
|
293 | f533f224 | Vangelis Koukis | <div id="add-machines-wizard" class="modal"> |
294 | f533f224 | Vangelis Koukis | <h3 class="popup-header">{% trans "Add machine" %}</h3> |
295 | f533f224 | Vangelis Koukis | <p style='display:none;'>hidden network id</p> |
296 | f533f224 | Vangelis Koukis | <div class="popup-body"> |
297 | f533f224 | Vangelis Koukis | <div class="popup-body-inner"> |
298 | f533f224 | Vangelis Koukis | <div class="popup-title">{% trans "Select machines to add to:" %}</div> |
299 | f533f224 | Vangelis Koukis | <div class="network-name"></div> |
300 | f533f224 | Vangelis Koukis | <div class="popup-separator"></div> |
301 | f533f224 | Vangelis Koukis | <div class="machines-container"> |
302 | f533f224 | Vangelis Koukis | <div class="large-spinner"></div> |
303 | f533f224 | Vangelis Koukis | <div id='machine-entry-template' style="display:none;"> |
304 | f533f224 | Vangelis Koukis | <input type="checkbox" /> |
305 | 0a5c4b4d | Markos Gogoulos | <img class=list-logo src="static/icons/machines/small/debian-on.png" title="debian"></img> |
306 | f533f224 | Vangelis Koukis | <span class="machine-name">kati</span> |
307 | c0c46a60 | Christodoulos Psaltis | </div>
|
308 | c0c46a60 | Christodoulos Psaltis | </div>
|
309 | b1272faa | Mike Muzurakis | </div>
|
310 | 6f547d12 | Mike Muzurakis | </div>
|
311 | f533f224 | Vangelis Koukis | <div class="buttons"> |
312 | f533f224 | Vangelis Koukis | <button type="button" class="cancel" id="add-server-cancel">{% trans "Cancel" %}</button> |
313 | f533f224 | Vangelis Koukis | <button type="button" class="add" id="add-server-add">{% trans "Add" %}</button> |
314 | f533f224 | Vangelis Koukis | </div>
|
315 | 7d4f351b | Mike Muzurakis | </div>
|
316 | 7d4f351b | Mike Muzurakis | </div>
|
317 | f533f224 | Vangelis Koukis | |
318 | f533f224 | Vangelis Koukis | <a id="add-machines-overlay" href="#" rel="#add-machines-wizard"></a> |
319 | f533f224 | Vangelis Koukis | |
320 | 64c30d16 | Christodoulos Psaltis | <!-- reboot dialog -->
|
321 | 64c30d16 | Christodoulos Psaltis | <div class="reboot-dialog"> |
322 | 64c30d16 | Christodoulos Psaltis | <p>{% trans "For the network changes to take effect you need to reboot all affected machines:" %}</p> |
323 | 64c30d16 | Christodoulos Psaltis | <button class="reboot-all">{% trans "Reboot All" %}</button> |
324 | 26a8c814 | Christodoulos Psaltis | <div id="reboot-machine-template" class='reboot-machine-entry'> |
325 | 64c30d16 | Christodoulos Psaltis | <div class="name">my debian server</div> |
326 | 64c30d16 | Christodoulos Psaltis | <button class="reboot-single">{% trans "Reboot" %}</button> |
327 | b9d9894f | Christodoulos Psaltis | <div class="reboot-error"> |
328 | b9d9894f | Christodoulos Psaltis | <div class="code"></div> |
329 | b9d9894f | Christodoulos Psaltis | <div class="action"></div> |
330 | b9d9894f | Christodoulos Psaltis | <div class="message"></div> |
331 | b9d9894f | Christodoulos Psaltis | <button class="details">{% trans "Error!" %}</button> |
332 | b9d9894f | Christodoulos Psaltis | </div>
|
333 | 64c30d16 | Christodoulos Psaltis | </div>
|
334 | 26a8c814 | Christodoulos Psaltis | <div class="reboot-list"></div> |
335 | 64c30d16 | Christodoulos Psaltis | </div>
|
336 | 64c30d16 | Christodoulos Psaltis | |
337 | f533f224 | Vangelis Koukis | <!-- multiple confirmation dialog -->
|
338 | f533f224 | Vangelis Koukis | <div class="confirm_multiple"> |
339 | eead5be3 | Dimitris Moraitis | <p>{% trans "Your actions will affect" %} <span class="actionLen">XX</span> {% trans "networks or machines" %}</p> |
340 | f533f224 | Vangelis Koukis | <button class="yes">{% trans "Confirm All" %}</button> |
341 | f533f224 | Vangelis Koukis | <button class="no">{% trans "Cancel All" %}</button> |
342 | f533f224 | Vangelis Koukis | </div>
|
343 | 6f547d12 | Mike Muzurakis | |
344 | 6f547d12 | Mike Muzurakis | <script>
|
345 | f533f224 | Vangelis Koukis | // add network wizard initialization
|
346 | f533f224 | Vangelis Koukis | $(function() {
|
347 | f533f224 | Vangelis Koukis | // create wizard overlay
|
348 | f533f224 | Vangelis Koukis | $("a#networkscreate").overlay({
|
349 | 716c3ead | Dimitris Moraitis | mask: '#666',
|
350 | f533f224 | Vangelis Koukis | effect: 'default',
|
351 | f533f224 | Vangelis Koukis | top: '10%',
|
352 | f533f224 | Vangelis Koukis | closeOnClick: false,
|
353 | f533f224 | Vangelis Koukis | oneInstance: false,
|
354 | f533f224 | Vangelis Koukis | closeOnEsc: true,
|
355 | f533f224 | Vangelis Koukis | load: false
|
356 | f533f224 | Vangelis Koukis | });
|
357 | b1272faa | Mike Muzurakis | });
|
358 | f533f224 | Vangelis Koukis | |
359 | f533f224 | Vangelis Koukis | // intercept click to create new private network
|
360 | f533f224 | Vangelis Koukis | $("#networkscreate").click(function() {
|
361 | f533f224 | Vangelis Koukis | // reset and load wizard
|
362 | f533f224 | Vangelis Koukis | $('#networks-wizard span.help').removeClass('red');
|
363 | f533f224 | Vangelis Koukis | $('#networks-wizard input').val('');
|
364 | f533f224 | Vangelis Koukis | $('#networks-wizard #add-network-create').text('{% trans 'Create Network' %}');
|
365 | f533f224 | Vangelis Koukis | $("#networks-wizard").show();
|
366 | f533f224 | Vangelis Koukis | $('#networks-wizard input').focus();
|
367 | f533f224 | Vangelis Koukis | $("a#networkscreate").data('overlay').load();
|
368 | cd75a3f2 | Christodoulos Psaltis | // enable submit button
|
369 | cd75a3f2 | Christodoulos Psaltis | $("#networks-wizard #add-network-create").removeAttr('disabled');
|
370 | f533f224 | Vangelis Koukis | return false;
|
371 | e0e9957e | Christodoulos Psaltis | });
|
372 | b1272faa | Mike Muzurakis | |
373 | f533f224 | Vangelis Koukis | // exit the add machine to network wizard
|
374 | f533f224 | Vangelis Koukis | $("#add-network-cancel").live('click', function() {
|
375 | f533f224 | Vangelis Koukis | $("a#networkscreate").overlay().close();
|
376 | 384da41e | Christodoulos Psaltis | });
|
377 | b1272faa | Mike Muzurakis | |
378 | f533f224 | Vangelis Koukis | // add selected machines to network
|
379 | f533f224 | Vangelis Koukis | $("#add-network-create").live('click', function() {
|
380 | f533f224 | Vangelis Koukis | if ($('#networks-wizard input').val() == '') {
|
381 | f533f224 | Vangelis Koukis | $('#networks-wizard input').focus();
|
382 | f533f224 | Vangelis Koukis | $('#networks-wizard span.help').addClass('red');
|
383 | f533f224 | Vangelis Koukis | } else {
|
384 | cd75a3f2 | Christodoulos Psaltis | // disable submit button to prevent multiple calls
|
385 | cd75a3f2 | Christodoulos Psaltis | $(this).attr("disabled", true);
|
386 | cd75a3f2 | Christodoulos Psaltis | // load progress bar
|
387 | f533f224 | Vangelis Koukis | $(this).text('');
|
388 | 0a5c4b4d | Markos Gogoulos | $(this).html('<img src="static/icons/indicators/medium/horizontal-progress.gif"></img>');
|
389 | cd75a3f2 | Christodoulos Psaltis | // make the call
|
390 | f533f224 | Vangelis Koukis | networkName = $('#networks-wizard input').val();
|
391 | f533f224 | Vangelis Koukis | create_network(networkName);
|
392 | f533f224 | Vangelis Koukis | }
|
393 | f533f224 | Vangelis Koukis | return false;
|
394 | 92f534e9 | Christodoulos Psaltis | });
|
395 | 92f534e9 | Christodoulos Psaltis | |
396 | f533f224 | Vangelis Koukis | // toggle component with class network-contents
|
397 | 24990e31 | Christodoulos Psaltis | $("#networks-pane div.machines-header").live('click', function() {
|
398 | 637104fe | Christodoulos Psaltis | if ($(this).find('.toggler').hasClass('up')) {
|
399 | 637104fe | Christodoulos Psaltis | $(this).find('.toggler').removeClass('up');
|
400 | 637104fe | Christodoulos Psaltis | $(this).find('.toggler').addClass('down');
|
401 | 637104fe | Christodoulos Psaltis | $(this).find('.machines-label').removeClass('darker');
|
402 | 637104fe | Christodoulos Psaltis | $(this).closest('div.network').removeClass('light-background');
|
403 | 637104fe | Christodoulos Psaltis | } else {
|
404 | 637104fe | Christodoulos Psaltis | $(this).find('.toggler').removeClass('down');
|
405 | 637104fe | Christodoulos Psaltis | $(this).find('.toggler').addClass('up');
|
406 | 637104fe | Christodoulos Psaltis | $(this).find('.machines-label').addClass('darker');
|
407 | 637104fe | Christodoulos Psaltis | $(this).closest('div.network').addClass('light-background');
|
408 | 637104fe | Christodoulos Psaltis | }
|
409 | 2a437761 | Kostas Papadimitriou | $(this).parent().next("#networks-pane .network-contents").slideToggle(600, update_net_ui);
|
410 | f533f224 | Vangelis Koukis | return false;
|
411 | f533f224 | Vangelis Koukis | });
|
412 | f533f224 | Vangelis Koukis | |
413 | f533f224 | Vangelis Koukis | // toggle component with class network-contents
|
414 | f533f224 | Vangelis Koukis | $("#networks-pane .network-logos").live('click', function() {
|
415 | 637104fe | Christodoulos Psaltis | $(this).closest('div.network').find('div.machines-header').click();
|
416 | f533f224 | Vangelis Koukis | return false;
|
417 | f533f224 | Vangelis Koukis | });
|
418 | f533f224 | Vangelis Koukis | |
419 | f533f224 | Vangelis Koukis | //initiate network renaming
|
420 | f533f224 | Vangelis Koukis | $("#networks-pane .name-div .rename-network, #networks-pane .name-div h5.editable span.name").live('click', function() {
|
421 | f533f224 | Vangelis Koukis | $(this).parent().find('.name').html("<input id=\"txtEdit\" type=\"text\" class=\"nametextbox\" value=\"" +
|
422 | f533f224 | Vangelis Koukis | $(this).parent().find('.name').text() +
|
423 | f533f224 | Vangelis Koukis | "\" / ><span class=\"oldValue\">" +
|
424 | f533f224 | Vangelis Koukis | $(this).parent().find('.name').text() + "</span>");
|
425 | f533f224 | Vangelis Koukis | $(this).parent().find('.rename-network').hide();
|
426 | f533f224 | Vangelis Koukis | $(this).parent().find(".editbuttons").fadeIn();
|
427 | f533f224 | Vangelis Koukis | $(this).parent().find(".nametextbox").focus().select();
|
428 | f533f224 | Vangelis Koukis | $(this).parent().removeClass('editable');
|
429 | f533f224 | Vangelis Koukis | |
430 | f533f224 | Vangelis Koukis | //submit wizard by pressing enter on the name textbox
|
431 | f533f224 | Vangelis Koukis | $("#txtEdit").keydown(function (e) {
|
432 | f533f224 | Vangelis Koukis | if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
|
433 | f533f224 | Vangelis Koukis | $(this).parent().parent().find('div.editbuttons span.save').click();
|
434 | f533f224 | Vangelis Koukis | return false;
|
435 | f533f224 | Vangelis Koukis | } else if ((e.which && e.which == 27) || (e.keyCode && e.keyCode == 27)) {
|
436 | f533f224 | Vangelis Koukis | $(this).parent().parent().find('div.editbuttons span.cancel').click();
|
437 | f533f224 | Vangelis Koukis | return true;
|
438 | f533f224 | Vangelis Koukis | }
|
439 | f533f224 | Vangelis Koukis | });
|
440 | f533f224 | Vangelis Koukis | return false;
|
441 | f533f224 | Vangelis Koukis | });
|
442 | f533f224 | Vangelis Koukis | |
443 | f533f224 | Vangelis Koukis | //rename machine
|
444 | f533f224 | Vangelis Koukis | $("#networks-pane .name-div .editbuttons .save").live('click', function() {
|
445 | f533f224 | Vangelis Koukis | networkID = $(this).closest('.network').attr("id").split('-').pop();
|
446 | f533f224 | Vangelis Koukis | networkName = $(this).parent().parent().find('.nametextbox').val();
|
447 | f533f224 | Vangelis Koukis | if (networkName.trim() == ''){
|
448 | f533f224 | Vangelis Koukis | return false;
|
449 | f533f224 | Vangelis Koukis | }
|
450 | f533f224 | Vangelis Koukis | $(this).parent().parent().find('.name').html($(this).parent().parent().find('.nametextbox').val());
|
451 | f533f224 | Vangelis Koukis | $(this).parent().parent().find(".editbuttons").fadeOut("fast");
|
452 | f533f224 | Vangelis Koukis | $(this).parent().parent().find(".rename-network").fadeIn("slow");
|
453 | f533f224 | Vangelis Koukis | rename_network(networkID, networkName);
|
454 | f533f224 | Vangelis Koukis | return false;
|
455 | f533f224 | Vangelis Koukis | });
|
456 | f533f224 | Vangelis Koukis | |
457 | f533f224 | Vangelis Koukis | //cancel renaming
|
458 | f533f224 | Vangelis Koukis | $("#networks-pane .name-div .editbuttons .cancel").live('click', function() {
|
459 | f533f224 | Vangelis Koukis | $(this).parent().parent().find('.name').html($(this).parent().parent().find('.oldValue').text());
|
460 | f533f224 | Vangelis Koukis | $(this).parent().parent().find(".editbuttons").hide();
|
461 | f533f224 | Vangelis Koukis | $(this).parent().parent().find(".rename-network").fadeIn();
|
462 | f533f224 | Vangelis Koukis | $(this).parent().parent().addClass('editable');
|
463 | f533f224 | Vangelis Koukis | return false;
|
464 | f533f224 | Vangelis Koukis | });
|
465 | f533f224 | Vangelis Koukis | |
466 | f533f224 | Vangelis Koukis | // intercept click to delete network
|
467 | f533f224 | Vangelis Koukis | $("#networks-pane .action-network-destroy").live('click', function() {
|
468 | f533f224 | Vangelis Koukis | var networkID = $(this).parent().parent().attr('id').split('-').pop();
|
469 | f533f224 | Vangelis Koukis | var networkName = $(this).parent().parent().find(".name-div span.name").text();
|
470 | f533f224 | Vangelis Koukis | var found = false;
|
471 | f533f224 | Vangelis Koukis | $(this).parent().children('a').removeClass('selected');
|
472 | f533f224 | Vangelis Koukis | $(this).addClass('selected');
|
473 | f533f224 | Vangelis Koukis | $(this).parent().addClass('display')
|
474 | f533f224 | Vangelis Koukis | $(this).parent().parent().find('.action_error').hide();
|
475 | f533f224 | Vangelis Koukis | for (i=0; i < pending_actions.length; i++){ // if there is already a pending action for this network replace it
|
476 | f533f224 | Vangelis Koukis | if (pending_actions[i][0] == delete_network && pending_actions[i][1] == networkID){
|
477 | f533f224 | Vangelis Koukis | pending_actions[i][0] = delete_network;
|
478 | f533f224 | Vangelis Koukis | found = true
|
479 | f533f224 | Vangelis Koukis | }
|
480 | f533f224 | Vangelis Koukis | }
|
481 | f533f224 | Vangelis Koukis | if (!found) {
|
482 | f533f224 | Vangelis Koukis | // no pending action for this network was found, so let's just add it to the list
|
483 | f533f224 | Vangelis Koukis | pending_actions.push([delete_network, networkID, networkName]);
|
484 | f533f224 | Vangelis Koukis | }
|
485 | f533f224 | Vangelis Koukis | update_network_confirmations();
|
486 | f533f224 | Vangelis Koukis | return false;
|
487 | f533f224 | Vangelis Koukis | });
|
488 | f533f224 | Vangelis Koukis | |
489 | f533f224 | Vangelis Koukis | // intercept click to remove machine from network
|
490 | f533f224 | Vangelis Koukis | $("#networks-pane .remove-icon").live('click', function() {
|
491 | f533f224 | Vangelis Koukis | $(this).closest('.network-machine').find('.action-disconnect').click();
|
492 | f533f224 | Vangelis Koukis | return false;
|
493 | f533f224 | Vangelis Koukis | });
|
494 | f533f224 | Vangelis Koukis | |
495 | f533f224 | Vangelis Koukis | // intercept click to remove machine from network
|
496 | f533f224 | Vangelis Koukis | $("#networks-pane .action-disconnect").live('click', function() {
|
497 | f533f224 | Vangelis Koukis | var serverID = $(this).parent().parent().attr('id').split('-').pop();
|
498 | 82835e06 | Christodoulos Psaltis | var serverName = $(this).closest('.network-machine').find('span.name').text();
|
499 | f533f224 | Vangelis Koukis | var networkID = $(this).closest('.network').attr('id').split('-').pop();
|
500 | f39b36a6 | Christodoulos Psaltis | var serverState = $(this).closest('.network-machine').find('img.logo').attr('src').split('-')[1];
|
501 | f39b36a6 | Christodoulos Psaltis | serverState = serverState.split('.')[0];
|
502 | f533f224 | Vangelis Koukis | var found = false;
|
503 | f533f224 | Vangelis Koukis | $(this).parent().children('a').removeClass('selected');
|
504 | f533f224 | Vangelis Koukis | $(this).addClass('selected');
|
505 | f533f224 | Vangelis Koukis | $(this).parent().addClass('display')
|
506 | f533f224 | Vangelis Koukis | $(this).parent().parent().find('.action_error').hide();
|
507 | f533f224 | Vangelis Koukis | for (i=0; i < pending_actions.length; i++){
|
508 | f533f224 | Vangelis Koukis | // if there is already a pending action for this network replace it
|
509 | f533f224 | Vangelis Koukis | if (pending_actions[i][0] == remove_server_from_network &&
|
510 | f533f224 | Vangelis Koukis | pending_actions[i][1] == networkID &&
|
511 | f533f224 | Vangelis Koukis | pending_actions[i][2] == serverID) {
|
512 | f533f224 | Vangelis Koukis | pending_actions[i][0] = remove_server_from_network;
|
513 | f533f224 | Vangelis Koukis | found = true
|
514 | f533f224 | Vangelis Koukis | }
|
515 | f533f224 | Vangelis Koukis | }
|
516 | f533f224 | Vangelis Koukis | if (!found) {
|
517 | f533f224 | Vangelis Koukis | // no pending action for this network was found, so let's just add it to the list
|
518 | f39b36a6 | Christodoulos Psaltis | pending_actions.push([remove_server_from_network, networkID, serverID, serverName, serverState]);
|
519 | f533f224 | Vangelis Koukis | }
|
520 | f533f224 | Vangelis Koukis | update_network_confirmations();
|
521 | f533f224 | Vangelis Koukis | return false;
|
522 | f533f224 | Vangelis Koukis | });
|
523 | f533f224 | Vangelis Koukis | |
524 | f533f224 | Vangelis Koukis | $("#networks-pane .action-details").live('click', function() {
|
525 | f533f224 | Vangelis Koukis | var serverID = $(this).parent().parent().attr('id').split('-').pop();
|
526 | f533f224 | Vangelis Koukis | $.cookie('view', '2');
|
527 | f533f224 | Vangelis Koukis | $.cookie('server', serverID);
|
528 | f533f224 | Vangelis Koukis | $('a#machines').click();
|
529 | 829c32c6 | Dimitris Moraitis | return false;
|
530 | f533f224 | Vangelis Koukis | });
|
531 | f533f224 | Vangelis Koukis | |
532 | f533f224 | Vangelis Koukis | // add machines wizard initialization
|
533 | f533f224 | Vangelis Koukis | $(function() {
|
534 | f533f224 | Vangelis Koukis | // create wizard overlay
|
535 | f533f224 | Vangelis Koukis | $("a#add-machines-overlay").overlay({
|
536 | 716c3ead | Dimitris Moraitis | mask: '#666',
|
537 | f533f224 | Vangelis Koukis | effect: 'default',
|
538 | f533f224 | Vangelis Koukis | top: '10%',
|
539 | f533f224 | Vangelis Koukis | closeOnClick: false,
|
540 | f533f224 | Vangelis Koukis | oneInstance: false,
|
541 | f533f224 | Vangelis Koukis | closeOnEsc: true,
|
542 | 28a81775 | Christodoulos Psaltis | load: false
|
543 | f533f224 | Vangelis Koukis | });
|
544 | f533f224 | Vangelis Koukis | });
|
545 | f533f224 | Vangelis Koukis | |
546 | f533f224 | Vangelis Koukis | // intercept click to add machine to network
|
547 | f533f224 | Vangelis Koukis | $("#networks-pane .action-add").live('click', function() {
|
548 | f533f224 | Vangelis Koukis | // reset pre-existing values
|
549 | f533f224 | Vangelis Koukis | $('#add-server-add').text('{% trans 'Add' %}');
|
550 | f533f224 | Vangelis Koukis | $("#add-machines-wizard .network-name").text($(this).closest('.network').find('.name-div span.name').text());
|
551 | f533f224 | Vangelis Koukis | $("#add-machines-wizard p").text($(this).closest('.network').attr('id').split('-').pop());
|
552 | f533f224 | Vangelis Koukis | $("#add-machines-wizard .large-spinner").show();
|
553 | f533f224 | Vangelis Koukis | $('[id^="list-entry-server-"]').remove();
|
554 | f533f224 | Vangelis Koukis | // list new values
|
555 | f533f224 | Vangelis Koukis | list_machines();
|
556 | f533f224 | Vangelis Koukis | // load wizard
|
557 | f533f224 | Vangelis Koukis | $("#add-machines-wizard").show();
|
558 | f533f224 | Vangelis Koukis | $("a#add-machines-overlay").data('overlay').load();
|
559 | 4e3a54f3 | Christodoulos Psaltis | // enable submit button
|
560 | 4e3a54f3 | Christodoulos Psaltis | $("#add-machines-wizard #add-server-add").removeAttr('disabled');
|
561 | f533f224 | Vangelis Koukis | return false;
|
562 | f533f224 | Vangelis Koukis | });
|
563 | f533f224 | Vangelis Koukis | |
564 | f533f224 | Vangelis Koukis | //submit wizard by pressing enter on the name textbox
|
565 | f533f224 | Vangelis Koukis | $("#networks-wizard div.name-input input.text").keypress(function (e) {
|
566 | f533f224 | Vangelis Koukis | if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
|
567 | f533f224 | Vangelis Koukis | $('#add-network-create').click();
|
568 | f533f224 | Vangelis Koukis | return false;
|
569 | f533f224 | Vangelis Koukis | } else {
|
570 | f533f224 | Vangelis Koukis | return true;
|
571 | f533f224 | Vangelis Koukis | }
|
572 | f533f224 | Vangelis Koukis | });
|
573 | f533f224 | Vangelis Koukis | |
574 | f533f224 | Vangelis Koukis | // intercept click to bring up the add machine to network wizard
|
575 | f533f224 | Vangelis Koukis | $("#networks-pane .add-icon").live('click', function() {
|
576 | f533f224 | Vangelis Koukis | $(this).closest('.network').find('.action-add').click();
|
577 | f533f224 | Vangelis Koukis | });
|
578 | f533f224 | Vangelis Koukis | |
579 | f533f224 | Vangelis Koukis | // get machines in public network and list them in add server to network wizard
|
580 | f533f224 | Vangelis Koukis | function list_machines() {
|
581 | f533f224 | Vangelis Koukis | var networkID = $("#add-machines-wizard p").text();
|
582 | f533f224 | Vangelis Koukis | // get the list of servers from the UI
|
583 | f533f224 | Vangelis Koukis | var all_machines = $("#networks-pane .public-networks .network-machine");
|
584 | f533f224 | Vangelis Koukis | |
585 | f533f224 | Vangelis Koukis | $.each(all_machines, function(i, machine) {
|
586 | f533f224 | Vangelis Koukis | var currentID = machine.id.split('-').pop();
|
587 | f533f224 | Vangelis Koukis | // if machine already exists in private network
|
588 | f533f224 | Vangelis Koukis | if ( $('#net-' + networkID + '-server-' + currentID).length > 0 ) {
|
589 | f533f224 | Vangelis Koukis | // do nothing
|
590 | f533f224 | Vangelis Koukis | } else {
|
591 | f533f224 | Vangelis Koukis | // put it in the list
|
592 | f533f224 | Vangelis Koukis | var entry = $("#add-machines-wizard #machine-entry-template").clone().attr("id", "list-entry-server-" + currentID);
|
593 | f533f224 | Vangelis Koukis | entry.find('input').attr("name", currentID);
|
594 | 0a5c4b4d | Markos Gogoulos | entry.find('img').attr('src', 'static/icons/machines/small/' + $(machine).find('img.logo').attr('src').split('/').pop());
|
595 | f533f224 | Vangelis Koukis | entry.find('.machine-name').text($(machine).find('span.name').text());
|
596 | f533f224 | Vangelis Koukis | entry.appendTo("#add-machines-wizard .machines-container");
|
597 | f533f224 | Vangelis Koukis | }
|
598 | f533f224 | Vangelis Koukis | });
|
599 | f533f224 | Vangelis Koukis | $("#add-machines-wizard .large-spinner").hide();
|
600 | f533f224 | Vangelis Koukis | $('[id^="list-entry-server-"]').fadeIn("slow");
|
601 | f533f224 | Vangelis Koukis | return false;
|
602 | f533f224 | Vangelis Koukis | }
|
603 | f533f224 | Vangelis Koukis | |
604 | f533f224 | Vangelis Koukis | // exit the add machine to network wizard
|
605 | f533f224 | Vangelis Koukis | $("#add-server-cancel").live('click', function() {
|
606 | f533f224 | Vangelis Koukis | $("a#add-machines-overlay").overlay().close();
|
607 | f533f224 | Vangelis Koukis | });
|
608 | f533f224 | Vangelis Koukis | |
609 | f533f224 | Vangelis Koukis | // add selected machines to network
|
610 | f533f224 | Vangelis Koukis | $("#add-server-add").live('click', function() {
|
611 | f533f224 | Vangelis Koukis | var selections = $("#add-machines-wizard :checkbox:checked");
|
612 | 9422d033 | Christodoulos Psaltis | // if there are no selections simply close the wizard
|
613 | 9422d033 | Christodoulos Psaltis | if (selections.length == 0 ) {
|
614 | 9422d033 | Christodoulos Psaltis | $("a#add-machines-overlay").overlay().close();
|
615 | 9422d033 | Christodoulos Psaltis | }
|
616 | 9422d033 | Christodoulos Psaltis | // if there are servers selected make the proper call
|
617 | 9422d033 | Christodoulos Psaltis | else {
|
618 | 9422d033 | Christodoulos Psaltis | var networkID = $("#add-machines-wizard p").text();
|
619 | 9422d033 | Christodoulos Psaltis | var serverIDs = [];
|
620 | 82835e06 | Christodoulos Psaltis | var serverNames = [];
|
621 | f39b36a6 | Christodoulos Psaltis | var serverState = [];
|
622 | f39b36a6 | Christodoulos Psaltis | var serverStates = [];
|
623 | 9422d033 | Christodoulos Psaltis | $.each(selections, function(i, selection) {
|
624 | 9422d033 | Christodoulos Psaltis | serverIDs.push(selection.name);
|
625 | 82835e06 | Christodoulos Psaltis | serverNames.push($("#list-entry-server-" + selection.name + " span.machine-name").text());
|
626 | f39b36a6 | Christodoulos Psaltis | serverState = $("#list-entry-server-" + selection.name + " img.list-logo").attr('src').split('-')[1];
|
627 | f39b36a6 | Christodoulos Psaltis | serverState = serverState.split('.')[0];
|
628 | f39b36a6 | Christodoulos Psaltis | serverStates.push(serverState);
|
629 | 9422d033 | Christodoulos Psaltis | });
|
630 | 4e3a54f3 | Christodoulos Psaltis | // disable submit button to prevent multiple calls
|
631 | 4e3a54f3 | Christodoulos Psaltis | $(this).attr("disabled", true);
|
632 | 4e3a54f3 | Christodoulos Psaltis | // load progress bar
|
633 | 9422d033 | Christodoulos Psaltis | $(this).text('');
|
634 | 9422d033 | Christodoulos Psaltis | $(this).html('<img src="static/icons/indicators/medium/horizontal-progress.gif"></img>');
|
635 | 91cbaf56 | Christodoulos Psaltis | // show the proper spinner
|
636 | 91cbaf56 | Christodoulos Psaltis | $('#net-' + networkID + '.network div.status').text(NET_STATES['Connecting']);
|
637 | 91cbaf56 | Christodoulos Psaltis | $('#net-' + networkID + '.network img.spinner').show();
|
638 | 91cbaf56 | Christodoulos Psaltis | // make the calls
|
639 | f39b36a6 | Christodoulos Psaltis | add_server_to_network(networkID, serverIDs, serverNames, serverStates);
|
640 | 9422d033 | Christodoulos Psaltis | }
|
641 | f533f224 | Vangelis Koukis | return false;
|
642 | f533f224 | Vangelis Koukis | });
|
643 | f533f224 | Vangelis Koukis | |
644 | f533f224 | Vangelis Koukis | // toggle component with class firewall-contents
|
645 | 24990e31 | Christodoulos Psaltis | $("#networks-pane div.firewall-header").live('click', function() {
|
646 | 637104fe | Christodoulos Psaltis | if ($(this).find('.toggler').hasClass('up')) {
|
647 | 637104fe | Christodoulos Psaltis | $(this).find('.toggler').removeClass('up');
|
648 | 637104fe | Christodoulos Psaltis | $(this).find('.toggler').addClass('down');
|
649 | 637104fe | Christodoulos Psaltis | $(this).find('.firewall-label').removeClass('darker');
|
650 | 637104fe | Christodoulos Psaltis | } else {
|
651 | 637104fe | Christodoulos Psaltis | $(this).find('.toggler').removeClass('down');
|
652 | 637104fe | Christodoulos Psaltis | $(this).find('.toggler').addClass('up');
|
653 | 637104fe | Christodoulos Psaltis | $(this).find('.firewall-label').addClass('darker');
|
654 | 637104fe | Christodoulos Psaltis | }
|
655 | 2a437761 | Kostas Papadimitriou | $(this).parent().next(".firewall-content").slideToggle(600, update_net_ui);
|
656 | 38bb6c34 | Mike Muzurakis | return false;
|
657 | b1272faa | Mike Muzurakis | });
|
658 | b1272faa | Mike Muzurakis | |
659 | b1272faa | Mike Muzurakis | //hide firewall content on apply click
|
660 | f533f224 | Vangelis Koukis | $("#networks-pane .firewall-apply").live('click', function() {
|
661 | d6872a51 | Christodoulos Psaltis | var serverID = $(this).closest('.network-machine').attr("id").split('-').pop();
|
662 | d6872a51 | Christodoulos Psaltis | var networkID = $(this).closest('.network-machine').attr("id").split('-')[1];
|
663 | 372f6c81 | Mike Muzurakis | var profile = $(this).parent().find('input:checked').attr('value');
|
664 | e9e7fe51 | Kostas Papadimitriou | |
665 | e9e7fe51 | Kostas Papadimitriou | // Do not make api call if profile choice is the
|
666 | e9e7fe51 | Kostas Papadimitriou | // same as current vm firewall profile
|
667 | e9e7fe51 | Kostas Papadimitriou | try {
|
668 | e9e7fe51 | Kostas Papadimitriou | if (profile == get_machine(serverID).addresses.values[0].firewallProfile) {
|
669 | e9e7fe51 | Kostas Papadimitriou | return;
|
670 | e9e7fe51 | Kostas Papadimitriou | }
|
671 | e9e7fe51 | Kostas Papadimitriou | } catch (err) {
|
672 | e9e7fe51 | Kostas Papadimitriou | console.info(err);
|
673 | e9e7fe51 | Kostas Papadimitriou | }
|
674 | e9e7fe51 | Kostas Papadimitriou |
|
675 | 372f6c81 | Mike Muzurakis | if (profile != undefined) {
|
676 | 372f6c81 | Mike Muzurakis | set_firewall(networkID, serverID, profile);
|
677 | 372f6c81 | Mike Muzurakis | $(this).attr("disabled", true);
|
678 | 372f6c81 | Mike Muzurakis | $(this).html('<img src="static/icons/indicators/medium/horizontal-progress.gif"></img>');
|
679 | e9e7fe51 | Kostas Papadimitriou | show_machine_network_indicator(serverID, "pub");
|
680 | 372f6c81 | Mike Muzurakis | }
|
681 | f533f224 | Vangelis Koukis | return false;
|
682 | f533f224 | Vangelis Koukis | });
|
683 | f533f224 | Vangelis Koukis | |
684 | f39b36a6 | Christodoulos Psaltis | function display_reboot_dialog(networkID, serverID, serverName, serverState) {
|
685 | cd9d5eaf | Christodoulos Psaltis | // check if the server already exists in the list
|
686 | cd9d5eaf | Christodoulos Psaltis | var existing_reboot = $("div.reboot-list div#server-" + serverID);
|
687 | f39b36a6 | Christodoulos Psaltis | if ( !existing_reboot.length && serverState != 'off') {
|
688 | cd9d5eaf | Christodoulos Psaltis | $('div.reboot-dialog').fadeIn("slow");
|
689 | cd9d5eaf | Christodoulos Psaltis | var reboot_entry = $('div#reboot-machine-template').clone().attr("id", "server-" + serverID);
|
690 | cd9d5eaf | Christodoulos Psaltis | reboot_entry.find('div.name').text(serverName);
|
691 | cd9d5eaf | Christodoulos Psaltis | reboot_entry.appendTo('div.reboot-list').show();
|
692 | cd9d5eaf | Christodoulos Psaltis | }
|
693 | cd9d5eaf | Christodoulos Psaltis | return false;
|
694 | cd9d5eaf | Christodoulos Psaltis | }
|
695 | cd9d5eaf | Christodoulos Psaltis | |
696 | 0155dc19 | Christodoulos Psaltis | // intercept single reboot click
|
697 | 0155dc19 | Christodoulos Psaltis | $("div.reboot-dialog button.reboot-single").live('click', function() {
|
698 | 0155dc19 | Christodoulos Psaltis | var serverID = $(this).parent().attr('id').split('-')[1];
|
699 | 0155dc19 | Christodoulos Psaltis | reboot([serverID]);
|
700 | 0155dc19 | Christodoulos Psaltis | // load progress bar
|
701 | 0155dc19 | Christodoulos Psaltis | $(this).text('');
|
702 | 0155dc19 | Christodoulos Psaltis | $(this).html('<img src="static/icons/indicators/medium/horizontal-progress.gif"></img>');
|
703 | bf80097f | Christodoulos Psaltis | // disable submit button to prevent multiple calls
|
704 | bf80097f | Christodoulos Psaltis | $(this).attr("disabled", true);
|
705 | 0155dc19 | Christodoulos Psaltis | return false;
|
706 | 0155dc19 | Christodoulos Psaltis | });
|
707 | 0155dc19 | Christodoulos Psaltis | |
708 | 0155dc19 | Christodoulos Psaltis | // intercept multiple reboot click
|
709 | 0155dc19 | Christodoulos Psaltis | $("div.reboot-dialog button.reboot-all").live('click', function() {
|
710 | bf80097f | Christodoulos Psaltis | $(this).parent().find('div.reboot-list button.reboot-single').click();
|
711 | 0155dc19 | Christodoulos Psaltis | // load progress bar for all buttons
|
712 | 0155dc19 | Christodoulos Psaltis | $(this).parent().find('button').text('');
|
713 | 0155dc19 | Christodoulos Psaltis | $(this).parent().find('button').html('<img src="static/icons/indicators/medium/horizontal-progress.gif"></img>');
|
714 | bf80097f | Christodoulos Psaltis | // disable submit button to prevent multiple calls
|
715 | bf80097f | Christodoulos Psaltis | $(this).attr("disabled", true);
|
716 | 0155dc19 | Christodoulos Psaltis | return false;
|
717 | 0155dc19 | Christodoulos Psaltis | });
|
718 | 0155dc19 | Christodoulos Psaltis | |
719 | b9d9894f | Christodoulos Psaltis | // intercept error on reboot click
|
720 | b9d9894f | Christodoulos Psaltis | $("div.reboot-dialog button.details").live('click', function() {
|
721 | b9d9894f | Christodoulos Psaltis | $(this).closest('.reboot-machine-entry').remove();
|
722 | b9d9894f | Christodoulos Psaltis | ajax_error( $(this).parent().children('.code').text(),
|
723 | b9d9894f | Christodoulos Psaltis | undefined,
|
724 | b9d9894f | Christodoulos Psaltis | $(this).parent().children('.action').text(),
|
725 | b9d9894f | Christodoulos Psaltis | $(this).parent().children('.message').text());
|
726 | b9d9894f | Christodoulos Psaltis | if ( !$('div.reboot-list').children().length ) {
|
727 | b9d9894f | Christodoulos Psaltis | $('div.reboot-dialog').hide();
|
728 | b9d9894f | Christodoulos Psaltis | }
|
729 | b9d9894f | Christodoulos Psaltis | return false;
|
730 | b9d9894f | Christodoulos Psaltis | });
|
731 | b9d9894f | Christodoulos Psaltis | |
732 | 0155dc19 | Christodoulos Psaltis | // after reboot success
|
733 | 3a254f7c | Christodoulos Psaltis | function display_reboot_success(serverID) {
|
734 | 0155dc19 | Christodoulos Psaltis | // remove server from the list
|
735 | 0155dc19 | Christodoulos Psaltis | $('div.reboot-list #server-' + serverID).remove();
|
736 | 0155dc19 | Christodoulos Psaltis | // if there are no other servers on the list, hide the reboot dialog
|
737 | 0155dc19 | Christodoulos Psaltis | if ( !$('div.reboot-list').children().length ) {
|
738 | 0155dc19 | Christodoulos Psaltis | $('div.reboot-dialog').hide();
|
739 | bf80097f | Christodoulos Psaltis | // reset all buttons
|
740 | e9789301 | Christodoulos Psaltis | $("div.reboot-dialog button.reboot-all").html('');
|
741 | e9789301 | Christodoulos Psaltis | $("div.reboot-dialog button.reboot-all").text('{% trans 'Reboot All' %}');
|
742 | e9789301 | Christodoulos Psaltis | $("div.reboot-dialog button.reboot-single").html('');
|
743 | e9789301 | Christodoulos Psaltis | $("div.reboot-dialog button.reboot-single").text('{% trans 'Reboot' %}');
|
744 | bf80097f | Christodoulos Psaltis | // enable submit button
|
745 | bf80097f | Christodoulos Psaltis | $("#div.reboot-dialog button.reboot-all").removeAttr('disabled');
|
746 | 0155dc19 | Christodoulos Psaltis | }
|
747 | b9d9894f | Christodoulos Psaltis | return false;
|
748 | b9d9894f | Christodoulos Psaltis | }
|
749 | b9d9894f | Christodoulos Psaltis | |
750 | b9d9894f | Christodoulos Psaltis | // after reboot error
|
751 | 3a254f7c | Christodoulos Psaltis | function display_reboot_failure(status, serverID, responseText) {
|
752 | b9d9894f | Christodoulos Psaltis | $('div.reboot-list #server-' + serverID + ' button.reboot-single').hide();
|
753 | b9d9894f | Christodoulos Psaltis | $('div.reboot-list #server-' + serverID + ' div.code').text(status);
|
754 | 3a254f7c | Christodoulos Psaltis | $('div.reboot-list #server-' + serverID + ' div.action').text('Reboot');
|
755 | b9d9894f | Christodoulos Psaltis | $('div.reboot-list #server-' + serverID + ' div.message').text(responseText);
|
756 | b9d9894f | Christodoulos Psaltis | $('div.reboot-list #server-' + serverID + ' button.details').show();
|
757 | b9d9894f | Christodoulos Psaltis | return false;
|
758 | 0155dc19 | Christodoulos Psaltis | }
|
759 | 0155dc19 | Christodoulos Psaltis | |
760 | f533f224 | Vangelis Koukis | // confirm single action
|
761 | f533f224 | Vangelis Koukis | $("#networks-pane div.confirm_single .yes").live('click', function() {
|
762 | f533f224 | Vangelis Koukis | // this works both for server and network actions
|
763 | f533f224 | Vangelis Koukis | var serverID = [];
|
764 | f533f224 | Vangelis Koukis | if ($(this).closest('.network-machine').attr('id')) {
|
765 | f533f224 | Vangelis Koukis | serverID = $(this).closest('.network-machine').attr('id').split('-').pop();
|
766 | f533f224 | Vangelis Koukis | }
|
767 | f533f224 | Vangelis Koukis | var networkID = $(this).closest('.network').attr("id").split('-').pop();
|
768 | f533f224 | Vangelis Koukis | // execute actions
|
769 | f533f224 | Vangelis Koukis | for (i=0;i<pending_actions.length;i++){
|
770 | f533f224 | Vangelis Koukis | // if there is a pending action for this server execute it
|
771 | f533f224 | Vangelis Koukis | if (pending_actions[i][0] == delete_network &&
|
772 | 28a81775 | Christodoulos Psaltis | pending_actions[i][1] == networkID) {
|
773 | f533f224 | Vangelis Koukis | action = pending_actions.splice(i,1)[0];
|
774 | 91cbaf56 | Christodoulos Psaltis | $(this).closest('div.network').find('div.status').text(NET_STATES['Destroying']);
|
775 | 8de4338e | Christodoulos Psaltis | $(this).closest("div.network").find('div.state').addClass('destroying-state');
|
776 | 91cbaf56 | Christodoulos Psaltis | $(this).closest('div.network').find('img.spinner').show();
|
777 | f533f224 | Vangelis Koukis | action[0]([action[1]]); // execute action
|
778 | f533f224 | Vangelis Koukis | } else if ( pending_actions[i][0] == remove_server_from_network &&
|
779 | 91cbaf56 | Christodoulos Psaltis | pending_actions[i][1] == networkID ) {
|
780 | 91cbaf56 | Christodoulos Psaltis | $(this).closest('div.network').find('div.status').text(NET_STATES['Disconnecting']);
|
781 | 91cbaf56 | Christodoulos Psaltis | $(this).closest('div.network').find('img.spinner').show();
|
782 | f533f224 | Vangelis Koukis | action = pending_actions.splice(i,1)[0];
|
783 | f39b36a6 | Christodoulos Psaltis | action[0]([action[1]], [action[2]], [action[3]], [action[4]]); // execute action
|
784 | 91cbaf56 | Christodoulos Psaltis | } // for adding servers to a network look in $("#add-server-add").live('click', function() {...});
|
785 | f533f224 | Vangelis Koukis | }
|
786 | f533f224 | Vangelis Koukis | $(this).parent().hide();
|
787 | 78553022 | Christodoulos Psaltis | $(this).parent().parent().find('a.selected').removeClass('selected');
|
788 | 78553022 | Christodoulos Psaltis | $(this).parent().parent().children('div.actions').removeClass('display');
|
789 | f533f224 | Vangelis Koukis | update_network_confirmations();
|
790 | f533f224 | Vangelis Koukis | return false;
|
791 | f533f224 | Vangelis Koukis | });
|
792 | f533f224 | Vangelis Koukis | |
793 | f533f224 | Vangelis Koukis | // cancel single action
|
794 | f533f224 | Vangelis Koukis | $("#networks-pane div.confirm_single .no").live('click', function(){
|
795 | f533f224 | Vangelis Koukis | // this works both for server and network actions
|
796 | f533f224 | Vangelis Koukis | var serverID = [];
|
797 | f533f224 | Vangelis Koukis | if ($(this).closest('.network-machine').attr('id')) {
|
798 | f533f224 | Vangelis Koukis | serverID = $(this).closest('.network-machine').attr('id').split('-').pop();
|
799 | f533f224 | Vangelis Koukis | }
|
800 | f533f224 | Vangelis Koukis | var networkID = $(this).closest('.network').attr("id").split('-').pop();
|
801 | f533f224 | Vangelis Koukis | // remove the action from the pending list
|
802 | a7b39e08 | clopy | $(this).parent().parent().children('div.machine-actions').children('a').removeClass('selected');
|
803 | a7b39e08 | clopy | $(this).parent().parent().children('div.machine-actions').removeClass('display');
|
804 | 93cad149 | Markos Gogoulos | |
805 | a67bb993 | Christodoulos Psaltis | for (i=0; i < pending_actions.length; i++) { // if there is a pending action for this network remove it
|
806 | a67bb993 | Christodoulos Psaltis | if (pending_actions[i][0] == delete_network && pending_actions[i][1] == networkID) {
|
807 | f533f224 | Vangelis Koukis | pending_actions.splice(i,1);
|
808 | f533f224 | Vangelis Koukis | } else if ( pending_actions[i][0] == remove_server_from_network &&
|
809 | f533f224 | Vangelis Koukis | pending_actions[i][1] == networkID &&
|
810 | f533f224 | Vangelis Koukis | pending_actions[i][2] == serverID) {
|
811 | f533f224 | Vangelis Koukis | pending_actions.splice(i,1);
|
812 | f533f224 | Vangelis Koukis | }
|
813 | f533f224 | Vangelis Koukis | }
|
814 | f533f224 | Vangelis Koukis | $(this).parent().hide();
|
815 | 78553022 | Christodoulos Psaltis | $(this).parent().parent().find('a.selected').removeClass('selected');
|
816 | 78553022 | Christodoulos Psaltis | $(this).parent().parent().children('div.actions').removeClass('display');
|
817 | f533f224 | Vangelis Koukis | update_network_confirmations();
|
818 | f533f224 | Vangelis Koukis | return false;
|
819 | f533f224 | Vangelis Koukis | });
|
820 | f533f224 | Vangelis Koukis | |
821 | 3a254f7c | Christodoulos Psaltis | // after single action call error
|
822 | 3a254f7c | Christodoulos Psaltis | function display_net_failure(status, networkID, action, responseText) {
|
823 | 3a254f7c | Christodoulos Psaltis | return false;
|
824 | 3a254f7c | Christodoulos Psaltis | }
|
825 | 3a254f7c | Christodoulos Psaltis | |
826 | f533f224 | Vangelis Koukis | // show, single action, error details
|
827 | f533f224 | Vangelis Koukis | $("#networks-pane div.action_error .details").live('click', function(){
|
828 | d7414be6 | Markos Gogoulos | $(this).parent().hide();
|
829 | f533f224 | Vangelis Koukis | ajax_error($(this).parent().children('.code').text(),
|
830 | f533f224 | Vangelis Koukis | undefined,
|
831 | f533f224 | Vangelis Koukis | $(this).parent().children('.action').text(),
|
832 | f533f224 | Vangelis Koukis | $(this).parent().children('.message').text());
|
833 | f533f224 | Vangelis Koukis | return false;
|
834 | f533f224 | Vangelis Koukis | });
|
835 | f533f224 | Vangelis Koukis | |
836 | f533f224 | Vangelis Koukis | // confirm all actions
|
837 | f533f224 | Vangelis Koukis | $("#networks-pane div.confirm_multiple .yes").live('click', function(){
|
838 | f533f224 | Vangelis Koukis | while(pending_actions.length > 0){ // if there is a pending action for this network execute it
|
839 | f533f224 | Vangelis Koukis | action = pending_actions.pop(); // extract action
|
840 | f533f224 | Vangelis Koukis | var networkID = action[1];
|
841 | f533f224 | Vangelis Koukis | $('#networks-pane .selected').removeClass('selected');
|
842 | f533f224 | Vangelis Koukis | $('#networks-pane .display').removeClass('display');
|
843 | d7414be6 | Markos Gogoulos | $('#networks-pane .confirm_single').hide();
|
844 | f533f224 | Vangelis Koukis | if (action[0] == delete_network) {
|
845 | 91cbaf56 | Christodoulos Psaltis | $('#networks-pane #net-' + networkID + ' .status').text(NET_STATES['Destroying']);
|
846 | e7d39dd7 | Christodoulos Psaltis | $('#networks-pane #net-' + networkID + ' .state').addClass('destroying-state');
|
847 | f533f224 | Vangelis Koukis | $('#networks-pane #net-' + networkID + ' .spinner').show();
|
848 | f533f224 | Vangelis Koukis | action[0]([networkID]); // execute action
|
849 | f533f224 | Vangelis Koukis | } else if (action[0] == remove_server_from_network) {
|
850 | eead5be3 | Dimitris Moraitis | $('div.network#net-'+networkID).find('div.status').text(NET_STATES['Disconnecting']);
|
851 | 4ede8cf5 | Christodoulos Psaltis | $('div.network#net-'+networkID).find('img.spinner').show();
|
852 | f39b36a6 | Christodoulos Psaltis | action[0]([action[1]], [action[2]], [action[3]], [action[4]]); // execute action
|
853 | 4ede8cf5 | Christodoulos Psaltis | }
|
854 | f533f224 | Vangelis Koukis | }
|
855 | f533f224 | Vangelis Koukis | update_network_confirmations();
|
856 | f533f224 | Vangelis Koukis | return false;
|
857 | f533f224 | Vangelis Koukis | });
|
858 | f533f224 | Vangelis Koukis | |
859 | f533f224 | Vangelis Koukis | // cancel all actions
|
860 | f533f224 | Vangelis Koukis | $("#networks-pane div.confirm_multiple .no").live('click', function(){
|
861 | f533f224 | Vangelis Koukis | pending_actions = [];
|
862 | f533f224 | Vangelis Koukis | $('#networks-pane .selected').removeClass('selected');
|
863 | f533f224 | Vangelis Koukis | $('#networks-pane .display').removeClass('display');
|
864 | d7414be6 | Markos Gogoulos | $('#networks-pane .confirm_single').hide();
|
865 | f533f224 | Vangelis Koukis | update_network_confirmations();
|
866 | f533f224 | Vangelis Koukis | return false;
|
867 | f533f224 | Vangelis Koukis | });
|
868 | f533f224 | Vangelis Koukis | |
869 | f533f224 | Vangelis Koukis | // update the networks list
|
870 | f533f224 | Vangelis Koukis | function update_networks_view(servers_data, networks_data){
|
871 | f533f224 | Vangelis Koukis | /*
|
872 | f533f224 | Vangelis Koukis | Go through the input data. Update existing entries, add
|
873 | f533f224 | Vangelis Koukis | new ones to the list
|
874 | f533f224 | Vangelis Koukis | */
|
875 | f533f224 | Vangelis Koukis | |
876 | f533f224 | Vangelis Koukis | // check for changes in networks
|
877 | f533f224 | Vangelis Koukis | if (networks_data){
|
878 | f533f224 | Vangelis Koukis | /*
|
879 | f533f224 | Vangelis Koukis | Here we are interested in private networks only
|
880 | 28a81775 | Christodoulos Psaltis | and for servers disconnected from them
|
881 | f533f224 | Vangelis Koukis | */
|
882 | f533f224 | Vangelis Koukis | |
883 | a67bb993 | Christodoulos Psaltis | // if we wait for a new network to be created
|
884 | a67bb993 | Christodoulos Psaltis | if ($('#add-network-create').children().length > 0) {
|
885 | a67bb993 | Christodoulos Psaltis | var response_objects = networks_data.networks.values;
|
886 | a67bb993 | Christodoulos Psaltis | // check all objects in the response
|
887 | a67bb993 | Christodoulos Psaltis | for (i=0; i < response_objects.length; i++) {
|
888 | a67bb993 | Christodoulos Psaltis | // if it contains the network we want to create
|
889 | a67bb993 | Christodoulos Psaltis | var networkName = $('#networks-wizard input').val();
|
890 | a67bb993 | Christodoulos Psaltis | if ( response_objects[i]['name'] == networkName) {
|
891 | a67bb993 | Christodoulos Psaltis | // close the wizard
|
892 | a67bb993 | Christodoulos Psaltis | $("a#networkscreate").overlay().close();
|
893 | a67bb993 | Christodoulos Psaltis | // and the network will be inserted in the DOM
|
894 | 28a81775 | Christodoulos Psaltis | // during this update loop
|
895 | a67bb993 | Christodoulos Psaltis | }
|
896 | a67bb993 | Christodoulos Psaltis | }
|
897 | a67bb993 | Christodoulos Psaltis | }
|
898 | 4337c7e5 | Dimitris Moraitis | |
899 | f533f224 | Vangelis Koukis | // update private networks
|
900 | f533f224 | Vangelis Koukis | $.each(networks_data.networks.values, function(i,network) {
|
901 | f533f224 | Vangelis Koukis | // search DOM for this network
|
902 | f533f224 | Vangelis Koukis | existing = $('#networks-pane #net-' + network.id);
|
903 | f533f224 | Vangelis Koukis | |
904 | 28a81775 | Christodoulos Psaltis | // If in the DOM exist multiple networks with the same id,
|
905 | c0045740 | Christodoulos Psaltis | // delete all but one.
|
906 | c0045740 | Christodoulos Psaltis | // Defensive coding - that shouldn't happen normally
|
907 | c0045740 | Christodoulos Psaltis | while (existing.length > 1) {
|
908 | f533f224 | Vangelis Koukis | existing.remove();
|
909 | f533f224 | Vangelis Koukis | }
|
910 | 28a81775 | Christodoulos Psaltis | |
911 | f533f224 | Vangelis Koukis | // If network already exists in DOM, update it
|
912 | 28a81775 | Christodoulos Psaltis | if (existing.length) {
|
913 | f533f224 | Vangelis Koukis | // network was deleted
|
914 | f533f224 | Vangelis Koukis | if (network.status == 'DELETED') {
|
915 | 8de4338e | Christodoulos Psaltis | existing.next().remove(); // to delete its separator
|
916 | f533f224 | Vangelis Koukis | existing.remove();
|
917 | f533f224 | Vangelis Koukis | }
|
918 | f533f224 | Vangelis Koukis | // network was renamed
|
919 | f533f224 | Vangelis Koukis | if (existing.find('.name-div span.name').text() != network.name) {
|
920 | f533f224 | Vangelis Koukis | // set the new name
|
921 | f533f224 | Vangelis Koukis | existing.find('.name-div span.name').text(network.name);
|
922 | f533f224 | Vangelis Koukis | }
|
923 | 28a81775 | Christodoulos Psaltis | // a server was disconnected
|
924 | 28a81775 | Christodoulos Psaltis | // search DOM for all machines
|
925 | 28a81775 | Christodoulos Psaltis | existing_machines = $('div.private-networks div.network-machine');
|
926 | 26a8c814 | Christodoulos Psaltis | // check if the machines in the DOM exist in the response
|
927 | 28a81775 | Christodoulos Psaltis | for (i=0; i<existing_machines.length; i++) {
|
928 | 28a81775 | Christodoulos Psaltis | // get the existing server id
|
929 | 28a81775 | Christodoulos Psaltis | var serverID = existing_machines[i].id.split('-')[3];
|
930 | 28a81775 | Christodoulos Psaltis | // if a server exists in DOM, but not in the response it has
|
931 | 28a81775 | Christodoulos Psaltis | // been disconnected
|
932 | 28a81775 | Christodoulos Psaltis | if ( network.servers.values.indexOf( parseInt(serverID) ) == -1 ) {
|
933 | 26a8c814 | Christodoulos Psaltis | // remove it from DOM and reset all spinners
|
934 | 26a8c814 | Christodoulos Psaltis | $('#' + existing_machines[i].id).remove();
|
935 | 28a81775 | Christodoulos Psaltis | $('#net-' + network.id + '.network div.status').text(NET_STATES['ACTIVE']);
|
936 | 28a81775 | Christodoulos Psaltis | $('#net-' + network.id + '.network img.spinner').hide();
|
937 | 28a81775 | Christodoulos Psaltis | }
|
938 | 28a81775 | Christodoulos Psaltis | }
|
939 | f533f224 | Vangelis Koukis | }
|
940 | f533f224 | Vangelis Koukis | // If network does not exist in DOM, create it, do not take into account public network
|
941 | f533f224 | Vangelis Koukis | else if (network.id != 'public'){
|
942 | f533f224 | Vangelis Koukis | var privNet = $("#networks-pane #private-template").clone().attr("id", "net-" + network.id);
|
943 | f533f224 | Vangelis Koukis | privNet.find(".name-div span.name").text(network.name).fadeIn("slow");
|
944 | f533f224 | Vangelis Koukis | privNet.appendTo("#networks-pane .private-networks");
|
945 | e8f98b18 | Christodoulos Psaltis | $('div.separator:last').clone().appendTo("#networks-pane .private-networks");
|
946 | f533f224 | Vangelis Koukis | }
|
947 | f533f224 | Vangelis Koukis | });
|
948 | f533f224 | Vangelis Koukis | }
|
949 | f533f224 | Vangelis Koukis | |
950 | f533f224 | Vangelis Koukis | // check for changes in servers
|
951 | f533f224 | Vangelis Koukis | if (servers_data) {
|
952 | f533f224 | Vangelis Koukis | /*
|
953 | f533f224 | Vangelis Koukis | Here we are interested in any server contained
|
954 | f533f224 | Vangelis Koukis | either in a public network or a private one
|
955 | f533f224 | Vangelis Koukis | */
|
956 | f533f224 | Vangelis Koukis | $.each(servers_data.servers.values, function(i,server) {
|
957 | f533f224 | Vangelis Koukis | /*
|
958 | f533f224 | Vangelis Koukis | First update the public network
|
959 | f533f224 | Vangelis Koukis | */
|
960 | f533f224 | Vangelis Koukis | |
961 | f533f224 | Vangelis Koukis | // search public network's DOM for this server
|
962 | f533f224 | Vangelis Koukis | existing_public = $('#networks-pane #net-pub-server-' + server.id);
|
963 | 28a81775 | Christodoulos Psaltis | |
964 | f533f224 | Vangelis Koukis | // get the server's OS icon
|
965 | f533f224 | Vangelis Koukis | var server_image = os_icon(server.metadata);
|
966 | e4f32f27 | Mike Muzurakis | if (!(server.metadata == undefined)) {
|
967 | e4f32f27 | Mike Muzurakis | var server_image = os_icon(server.metadata);
|
968 | e4f32f27 | Mike Muzurakis | } else {
|
969 | e4f32f27 | Mike Muzurakis | var server_image = "unknown"
|
970 | e4f32f27 | Mike Muzurakis | }
|
971 | f533f224 | Vangelis Koukis | |
972 | f533f224 | Vangelis Koukis | // server was deleted
|
973 | f533f224 | Vangelis Koukis | if (server.status == 'DELETED') {
|
974 | f533f224 | Vangelis Koukis | existing_public.remove();
|
975 | f533f224 | Vangelis Koukis | }
|
976 | f533f224 | Vangelis Koukis | |
977 | f533f224 | Vangelis Koukis | // If server already exists in public network, update it
|
978 | f533f224 | Vangelis Koukis | if (existing_public.length){
|
979 | f533f224 | Vangelis Koukis | // server was renamed
|
980 | f533f224 | Vangelis Koukis | if (server.name != existing_public.find('span.name').text()) {
|
981 | 31279d33 | Kostas Papadimitriou | existing_public.find('span.name').text(fix_server_name(server.name,25));
|
982 | f533f224 | Vangelis Koukis | }
|
983 | f533f224 | Vangelis Koukis | // server has changed state
|
984 | f533f224 | Vangelis Koukis | if (server.status=='BUILD' || server.status=='ACTIVE' ||server.status=='REBOOT') {
|
985 | f533f224 | Vangelis Koukis | existing_public.find("img.logo").attr("src","static/icons/machines/medium/" + server_image + '-on.png');
|
986 | f533f224 | Vangelis Koukis | } else {
|
987 | f533f224 | Vangelis Koukis | existing_public.find("img.logo").attr("src","static/icons/machines/medium/" + server_image + '-off.png');
|
988 | f533f224 | Vangelis Koukis | }
|
989 | f533f224 | Vangelis Koukis | // server has new ips
|
990 | f533f224 | Vangelis Koukis | var old_ip4 = existing_public.find('span.ip4').text();
|
991 | f533f224 | Vangelis Koukis | var old_ip6 = existing_public.find('span.ip6').text();
|
992 | f533f224 | Vangelis Koukis | var new_ips = get_public_ips(server);
|
993 | f533f224 | Vangelis Koukis | var new_ip4 = new_ips['ip4'];
|
994 | f533f224 | Vangelis Koukis | var new_ip6 = new_ips['ip6'];
|
995 | f533f224 | Vangelis Koukis | if (old_ip4 != new_ip4) {
|
996 | f533f224 | Vangelis Koukis | if (new_ips['ip4'] == undefined) {
|
997 | f533f224 | Vangelis Koukis | existing_public.find(".ip4-container").hide();
|
998 | f533f224 | Vangelis Koukis | } else {
|
999 | f533f224 | Vangelis Koukis | existing_public.find('span.ip4').text(new_ip4);
|
1000 | f533f224 | Vangelis Koukis | }
|
1001 | f533f224 | Vangelis Koukis | }
|
1002 | f533f224 | Vangelis Koukis | if (old_ip6 != new_ip6) {
|
1003 | f533f224 | Vangelis Koukis | if (new_ip6 == undefined) {
|
1004 | f533f224 | Vangelis Koukis | existing_public.find(".ip6-container").hide();
|
1005 | f533f224 | Vangelis Koukis | } else {
|
1006 | f533f224 | Vangelis Koukis | existing_public.find('span.ip6').text(new_ip6);
|
1007 | f277a1cd | Kostas Papadimitriou | fix_v6_addresses();
|
1008 | f533f224 | Vangelis Koukis | }
|
1009 | f533f224 | Vangelis Koukis | }
|
1010 | 0e10469d | Mike Muzurakis | //update firewall setting
|
1011 | d6579faa | Kostas Papadimitriou | try {
|
1012 | d6579faa | Kostas Papadimitriou | if (server.addresses.values[0].firewallProfile) {
|
1013 | d6579faa | Kostas Papadimitriou | existing_public.find("input[value=" + server.addresses.values[0].firewallProfile + "]").attr('checked',true);
|
1014 | d6579faa | Kostas Papadimitriou | existing_public.find(".firewall-label span").removeClass('firewall-off firewall-on');
|
1015 | d6579faa | Kostas Papadimitriou | if (server.addresses.values[0].firewallProfile == 'DISABLED') {
|
1016 | d6579faa | Kostas Papadimitriou | existing_public.find('.firewall-label span').addClass('firewall-off');
|
1017 | d6579faa | Kostas Papadimitriou | existing_public.find('.firewall-label span').html(VARIOUS["OFF"]);
|
1018 | d6579faa | Kostas Papadimitriou | } else {
|
1019 | d6579faa | Kostas Papadimitriou | existing_public.find('.firewall-label span').addClass('firewall-on');
|
1020 | d6579faa | Kostas Papadimitriou | existing_public.find('.firewall-label span').html(VARIOUS["ON"]);
|
1021 | d6579faa | Kostas Papadimitriou | }
|
1022 | e9e7fe51 | Kostas Papadimitriou | existing_public.find(".firewall-apply").hide();
|
1023 | d6579faa | Kostas Papadimitriou | }
|
1024 | d6579faa | Kostas Papadimitriou | } catch (err) {
|
1025 | d6579faa | Kostas Papadimitriou | try{console.info('Server ' + server.id + ' has no network addresses')}catch(err){};
|
1026 | d6579faa | Kostas Papadimitriou | }
|
1027 | f533f224 | Vangelis Koukis | //TODO: server has changed OS
|
1028 | e9e7fe51 | Kostas Papadimitriou | |
1029 | e9e7fe51 | Kostas Papadimitriou | // indicator handle
|
1030 | e9e7fe51 | Kostas Papadimitriou | var vm = get_machine(server.id);
|
1031 | e9e7fe51 | Kostas Papadimitriou | var networkID = "pub";
|
1032 | e9e7fe51 | Kostas Papadimitriou | var serverID = server.id;
|
1033 | e9e7fe51 | Kostas Papadimitriou | var network_el = existing_public;
|
1034 | e9e7fe51 | Kostas Papadimitriou | |
1035 | e9e7fe51 | Kostas Papadimitriou | network_el.find(".network-progress-indicator").hide();
|
1036 | e9e7fe51 | Kostas Papadimitriou | if (vm.network_transition == "NETWORK_CHANGE") {
|
1037 | e9e7fe51 | Kostas Papadimitriou | network_el.find(".network-progress-indicator").show();
|
1038 | e9e7fe51 | Kostas Papadimitriou | }
|
1039 | e9e7fe51 | Kostas Papadimitriou | |
1040 | e9e7fe51 | Kostas Papadimitriou | if (vm.network_transition == "CHANGED") {
|
1041 | e9e7fe51 | Kostas Papadimitriou | network_el.find(".network-progress-indicator").hide();
|
1042 | e9e7fe51 | Kostas Papadimitriou | }
|
1043 | e9e7fe51 | Kostas Papadimitriou | } else {
|
1044 | e9e7fe51 | Kostas Papadimitriou | // If server does not exist in public network, create it
|
1045 | e9e7fe51 | Kostas Papadimitriou | |
1046 | 391752b9 | Kostas Papadimitriou | // quick fix to skip machines with no addresses
|
1047 | 391752b9 | Kostas Papadimitriou | if (server.addresses) {
|
1048 | 391752b9 | Kostas Papadimitriou | var machine = $("#networks-pane #public-machine-template").clone().attr("id", "net-pub-server-" + server.id).fadeIn("slow");
|
1049 | 31279d33 | Kostas Papadimitriou | machine.find('span.name').text(fix_server_name(server.name,25));
|
1050 | a5f6a51c | Kostas Papadimitriou | |
1051 | a5f6a51c | Kostas Papadimitriou | // unique radio group for each machine
|
1052 | a5f6a51c | Kostas Papadimitriou | machine.find('input[type=radio]').attr({name:'firewall-'+server.id});
|
1053 | a5f6a51c | Kostas Papadimitriou | |
1054 | 391752b9 | Kostas Papadimitriou | // find and display ips
|
1055 | 391752b9 | Kostas Papadimitriou | var ips = get_public_ips(server);
|
1056 | 391752b9 | Kostas Papadimitriou | if (ips['ip4'] == undefined) {
|
1057 | 391752b9 | Kostas Papadimitriou | machine.find(".ip4-container").hide();
|
1058 | 391752b9 | Kostas Papadimitriou | } else {
|
1059 | 391752b9 | Kostas Papadimitriou | machine.find("span.ip4").text(ips['ip4']);
|
1060 | 391752b9 | Kostas Papadimitriou | }
|
1061 | 391752b9 | Kostas Papadimitriou | if (ips['ip6'] == undefined) {
|
1062 | 391752b9 | Kostas Papadimitriou | machine.find(".ip6-container").hide();
|
1063 | 391752b9 | Kostas Papadimitriou | } else {
|
1064 | 391752b9 | Kostas Papadimitriou | machine.find("span.ip6").text(ips['ip6']);
|
1065 | 391752b9 | Kostas Papadimitriou | }
|
1066 | 391752b9 | Kostas Papadimitriou | // add the proper icon
|
1067 | 391752b9 | Kostas Papadimitriou | if (server.status=='BUILD' || server.status=='ACTIVE' ||server.status=='REBOOT') {
|
1068 | 391752b9 | Kostas Papadimitriou | machine.find("img.logo").attr("src","static/icons/machines/medium/" + server_image + '-on.png');
|
1069 | 391752b9 | Kostas Papadimitriou | } else {
|
1070 | 391752b9 | Kostas Papadimitriou | machine.find("img.logo").attr("src","static/icons/machines/medium/" + server_image + '-off.png');
|
1071 | 391752b9 | Kostas Papadimitriou | }
|
1072 | 391752b9 | Kostas Papadimitriou | machine.appendTo("#networks-pane .public-networks .machines-list");
|
1073 | f277a1cd | Kostas Papadimitriou | fix_v6_addresses();
|
1074 | 391752b9 | Kostas Papadimitriou | //update firewall setting
|
1075 | 391752b9 | Kostas Papadimitriou | try {
|
1076 | 391752b9 | Kostas Papadimitriou | if (server.addresses.values[0].firewallProfile) {
|
1077 | 391752b9 | Kostas Papadimitriou | machine.find("input[value=" + server.addresses.values[0].firewallProfile + "]").attr('checked',true);
|
1078 | 391752b9 | Kostas Papadimitriou | machine.find(".firewall-label span").removeClass('firewall-off firewall-on');
|
1079 | 391752b9 | Kostas Papadimitriou | if (server.addresses.values[0].firewallProfile == 'DISABLED') {
|
1080 | 391752b9 | Kostas Papadimitriou | machine.find('.firewall-label span').addClass('firewall-off');
|
1081 | 391752b9 | Kostas Papadimitriou | machine.find('.firewall-label span').html(VARIOUS["OFF"]);
|
1082 | 391752b9 | Kostas Papadimitriou | } else {
|
1083 | 391752b9 | Kostas Papadimitriou | machine.find('.firewall-label span').addClass('firewall-on');
|
1084 | 391752b9 | Kostas Papadimitriou | machine.find('.firewall-label span').html(VARIOUS["ON"]);
|
1085 | 391752b9 | Kostas Papadimitriou | }
|
1086 | e9e7fe51 | Kostas Papadimitriou | }
|
1087 | e9e7fe51 | Kostas Papadimitriou | machine.find(".firewall-apply").hide();
|
1088 | 391752b9 | Kostas Papadimitriou | } catch (err) {
|
1089 | 391752b9 | Kostas Papadimitriou | try{console.info('Server ' + server.id + ' has no network addresses')}catch(err){};
|
1090 | 391752b9 | Kostas Papadimitriou | }
|
1091 | e9e7fe51 | Kostas Papadimitriou | |
1092 | e9e7fe51 | Kostas Papadimitriou | // indicator handle
|
1093 | e9e7fe51 | Kostas Papadimitriou | var vm = get_machine(server.id);
|
1094 | e9e7fe51 | Kostas Papadimitriou | var networkID = "pub";
|
1095 | e9e7fe51 | Kostas Papadimitriou | var serverID = server.id;
|
1096 | e9e7fe51 | Kostas Papadimitriou | var network_el = machine;
|
1097 | e9e7fe51 | Kostas Papadimitriou |
|
1098 | e9e7fe51 | Kostas Papadimitriou | network_el.find(".network-progress-indicator").hide();
|
1099 | e9e7fe51 | Kostas Papadimitriou | if (vm.network_transition == "NETWORK_CHANGE") {
|
1100 | e9e7fe51 | Kostas Papadimitriou | network_el.find(".network-progress-indicator").show();
|
1101 | e9e7fe51 | Kostas Papadimitriou | }
|
1102 | e9e7fe51 | Kostas Papadimitriou | |
1103 | e9e7fe51 | Kostas Papadimitriou | if (vm.network_transition == "CHANGED") {
|
1104 | e9e7fe51 | Kostas Papadimitriou | network_el.find(".network-progress-indicator").hide();
|
1105 | e9e7fe51 | Kostas Papadimitriou | }
|
1106 | e9e7fe51 | Kostas Papadimitriou | |
1107 | e9e7fe51 | Kostas Papadimitriou | // vm added. apply firewall options change handlers
|
1108 | e9e7fe51 | Kostas Papadimitriou | $(".firewall-content input[type=radio]", machine).change(function() {
|
1109 | e9e7fe51 | Kostas Papadimitriou | var vm = server;
|
1110 | e9e7fe51 | Kostas Papadimitriou | var el = $(this).closest(".firewall-content");
|
1111 | e9e7fe51 | Kostas Papadimitriou | var current_profile = get_firewall_profile(vm.id);
|
1112 | e9e7fe51 | Kostas Papadimitriou | var selected_profile = $(this).val();
|
1113 | e9e7fe51 | Kostas Papadimitriou |
|
1114 | e9e7fe51 | Kostas Papadimitriou | if (current_profile == selected_profile) {
|
1115 | e9e7fe51 | Kostas Papadimitriou | el.find(".firewall-apply").hide();
|
1116 | e9e7fe51 | Kostas Papadimitriou | } else {
|
1117 | e9e7fe51 | Kostas Papadimitriou | el.find(".firewall-apply").show();
|
1118 | e9e7fe51 | Kostas Papadimitriou | }
|
1119 | e9e7fe51 | Kostas Papadimitriou | })
|
1120 | d6579faa | Kostas Papadimitriou | }
|
1121 | f533f224 | Vangelis Koukis | }
|
1122 | e4f32f27 | Mike Muzurakis | |
1123 | f533f224 | Vangelis Koukis | /*
|
1124 | 28a81775 | Christodoulos Psaltis | Now update all private networks, this does NOT check for
|
1125 | 26a8c814 | Christodoulos Psaltis | disconnected servers (see above in updating private networks).
|
1126 | f533f224 | Vangelis Koukis | Since one server may belong to more than one private networks,
|
1127 | f533f224 | Vangelis Koukis | we follow a different approach.
|
1128 | f533f224 | Vangelis Koukis | We check each server and add, update or leave it as it is accordingly
|
1129 | f533f224 | Vangelis Koukis | */
|
1130 | f533f224 | Vangelis Koukis | try {
|
1131 | f533f224 | Vangelis Koukis | $.each(server.addresses.values, function(i,server_net) {
|
1132 | f533f224 | Vangelis Koukis | // find in which private networks it belongs
|
1133 | f533f224 | Vangelis Koukis | if (server_net.id != "public") {
|
1134 | f533f224 | Vangelis Koukis | var existing_private = $("#networks-pane .private-networks #net-" + server_net.id + "-server-" + server.id);
|
1135 | f533f224 | Vangelis Koukis | // add new server
|
1136 | f533f224 | Vangelis Koukis | if (!existing_private.length) {
|
1137 | f533f224 | Vangelis Koukis | var machine = $("#networks-pane #private-machine-template").clone().attr("id", "net-" + server_net.id + "-server-" + server.id).fadeIn("slow");
|
1138 | 31279d33 | Kostas Papadimitriou | machine.find('span.name').text(fix_server_name(server.name, 25));
|
1139 | e58fdac8 | Kostas Papadimitriou | |
1140 | e58fdac8 | Kostas Papadimitriou | // the id of the server the callback function will show connect message for
|
1141 | e58fdac8 | Kostas Papadimitriou | var CONNECT_SERVER_ID = server.id;
|
1142 | e58fdac8 | Kostas Papadimitriou | machine.find('.machine-connect').click(function(){
|
1143 | e58fdac8 | Kostas Papadimitriou | // keep id in local scope
|
1144 | e58fdac8 | Kostas Papadimitriou | var id = CONNECT_SERVER_ID;
|
1145 | e58fdac8 | Kostas Papadimitriou | machine_connect([machine_connect, id])
|
1146 | e58fdac8 | Kostas Papadimitriou | });
|
1147 | e58fdac8 | Kostas Papadimitriou | |
1148 | f533f224 | Vangelis Koukis | if (server.status=='BUILD' || server.status=='ACTIVE' ||server.status=='REBOOT') {
|
1149 | f533f224 | Vangelis Koukis | machine.find("img.logo").attr("src","static/icons/machines/medium/" + server_image + '-on.png');
|
1150 | f533f224 | Vangelis Koukis | } else {
|
1151 | f533f224 | Vangelis Koukis | machine.find("img.logo").attr("src","static/icons/machines/medium/" + server_image + '-off.png');
|
1152 | f533f224 | Vangelis Koukis | }
|
1153 | f533f224 | Vangelis Koukis | machine.appendTo("#networks-pane .private-networks #net-" + server_net.id + " .machines-list");
|
1154 | 28a81775 | Christodoulos Psaltis | // hide spinners
|
1155 | 28a81775 | Christodoulos Psaltis | $('#net-' + server_net.id + '.network div.status').text(NET_STATES['ACTIVE']);
|
1156 | 28a81775 | Christodoulos Psaltis | $('#net-' + server_net.id + '.network img.spinner').hide();
|
1157 | f533f224 | Vangelis Koukis | }
|
1158 | f533f224 | Vangelis Koukis | // server was deleted
|
1159 | f533f224 | Vangelis Koukis | if (server.status == 'DELETED') {
|
1160 | f533f224 | Vangelis Koukis | existing_private.remove();
|
1161 | f533f224 | Vangelis Koukis | }
|
1162 | f533f224 | Vangelis Koukis | // server was renamed
|
1163 | f533f224 | Vangelis Koukis | if (server.name != existing_private.find('span.name').text()) {
|
1164 | 31279d33 | Kostas Papadimitriou | existing_private.find('span.name').text(fix_server_name(server.name,25));
|
1165 | f533f224 | Vangelis Koukis | }
|
1166 | f533f224 | Vangelis Koukis | // server has changed state
|
1167 | f533f224 | Vangelis Koukis | if (server.status=='BUILD' || server.status=='ACTIVE' ||server.status=='REBOOT') {
|
1168 | f533f224 | Vangelis Koukis | existing_private.find("img.logo").attr("src","static/icons/machines/medium/" + server_image + '-on.png');
|
1169 | f533f224 | Vangelis Koukis | } else {
|
1170 | f533f224 | Vangelis Koukis | existing_private.find("img.logo").attr("src","static/icons/machines/medium/" + server_image + '-off.png');
|
1171 | f533f224 | Vangelis Koukis | }
|
1172 | f533f224 | Vangelis Koukis | //TODO: server has changed OS
|
1173 | f533f224 | Vangelis Koukis | }
|
1174 | f533f224 | Vangelis Koukis | });
|
1175 | f533f224 | Vangelis Koukis | } catch (err) {
|
1176 | f533f224 | Vangelis Koukis | try{console.info('Server ' + server.id + ' has no network addresses')}catch(err){};
|
1177 | f533f224 | Vangelis Koukis | }
|
1178 | f533f224 | Vangelis Koukis | });
|
1179 | f533f224 | Vangelis Koukis | }
|
1180 | f533f224 | Vangelis Koukis | $("#networks-pane #networks-container > .large-spinner").hide();
|
1181 | 2a437761 | Kostas Papadimitriou | update_net_ui();
|
1182 | 2a437761 | Kostas Papadimitriou | }
|
1183 | f533f224 | Vangelis Koukis | |
1184 | 2a437761 | Kostas Papadimitriou | function update_net_ui() {
|
1185 | f533f224 | Vangelis Koukis | // show all separators and hide the last one
|
1186 | e8f98b18 | Christodoulos Psaltis | $("div.private-networks div.separator").show();
|
1187 | e8f98b18 | Christodoulos Psaltis | $("div.private-networks div.separator:last").hide();
|
1188 | f533f224 | Vangelis Koukis | // update the counters of servers in each network
|
1189 | f533f224 | Vangelis Koukis | var nets = $('#networks-pane .network');
|
1190 | f533f224 | Vangelis Koukis | $.each(nets, function(i,net) {
|
1191 | f533f224 | Vangelis Koukis | $(net).find('span.machines-count').text($(net).find('.network-machine').length);
|
1192 | f533f224 | Vangelis Koukis | });
|
1193 | f533f224 | Vangelis Koukis | |
1194 | f533f224 | Vangelis Koukis | // the private div shows only when private networks are available
|
1195 | f533f224 | Vangelis Koukis | if ($("div.private-networks div.network").length > 0) {
|
1196 | f533f224 | Vangelis Koukis | $("div.private-networks").fadeIn("slow");
|
1197 | f533f224 | Vangelis Koukis | } else {
|
1198 | f533f224 | Vangelis Koukis | $("div.private-networks").fadeOut("slow");
|
1199 | f533f224 | Vangelis Koukis | }
|
1200 | 77d4b76f | Christodoulos Psaltis | |
1201 | 829c32c6 | Dimitris Moraitis | // tag the first and last seperators for better styling
|
1202 | 829c32c6 | Dimitris Moraitis | $("#pub .network-machine").removeClass('first');
|
1203 | 4ede8cf5 | Christodoulos Psaltis | $("#pub .network-machine").first().addClass('first');
|
1204 | eb40af65 | Dimitris Moraitis | $("#pub .network-machine").removeClass('last');
|
1205 | eb40af65 | Dimitris Moraitis | $("#pub .network-machine").last().addClass('last');
|
1206 | 016f234a | Mike Muzurakis | |
1207 | 0d9ac039 | clopy | if ($("div.public-networks div.network-machine").length == 1) {
|
1208 | 0d9ac039 | clopy | $("div.public-networks div.network-machine div.network-cable").css('height','60px');
|
1209 | 0d9ac039 | clopy | }
|
1210 | 0d9ac039 | clopy | |
1211 | 016f234a | Mike Muzurakis | //remove top margin from the first machine of each private network
|
1212 | 016f234a | Mike Muzurakis | $(".private-networks").find(".network-contents .network-machine:first-child").css("margin-top","0");
|
1213 | e9e7fe51 | Kostas Papadimitriou | |
1214 | f533f224 | Vangelis Koukis | }
|
1215 | f533f224 | Vangelis Koukis | |
1216 | d7414be6 | Markos Gogoulos | // indicate that the requested action was not completed
|
1217 | d7414be6 | Markos Gogoulos | function display_failure(status, networkID, action, responseText) {
|
1218 | d7414be6 | Markos Gogoulos | $('#networks-container #net-'+networkID+ ' .spinner').hide();
|
1219 | d7414be6 | Markos Gogoulos | $('#networks-container #net-'+networkID+ ' .action_error .action').text(action);
|
1220 | d7414be6 | Markos Gogoulos | $('#networks-container #net-'+networkID+ ' .action_error .code').text(status);
|
1221 | d7414be6 | Markos Gogoulos | $('#networks-container #net-'+networkID+ ' .action_error .message').text(responseText);
|
1222 | d7414be6 | Markos Gogoulos | $('#networks-container #net-'+networkID+ ' .action_error').show();
|
1223 | d7414be6 | Markos Gogoulos | }
|
1224 | d7414be6 | Markos Gogoulos | |
1225 | f533f224 | Vangelis Koukis | // reposition multiple confirmation box on window resize
|
1226 | f533f224 | Vangelis Koukis | $(window).resize(function(){
|
1227 | 2aab1d5e | Christodoulos Psaltis | if (this.innerHeight - 220 < $('#networks-pane #networks-container').height()) {
|
1228 | f533f224 | Vangelis Koukis | $('#networks-pane .confirm_multiple').addClass('fixed');
|
1229 | 2aab1d5e | Christodoulos Psaltis | $('div.reboot-dialog').addClass('fixed');
|
1230 | 2aab1d5e | Christodoulos Psaltis | } else {
|
1231 | f533f224 | Vangelis Koukis | $('#networks-pane .confirm_multiple').removeClass('fixed');
|
1232 | 2aab1d5e | Christodoulos Psaltis | $('div.reboot-dialog').removeClass('fixed');
|
1233 | 2aab1d5e | Christodoulos Psaltis | }
|
1234 | b1272faa | Mike Muzurakis | });
|
1235 | f533f224 | Vangelis Koukis | |
1236 | f533f224 | Vangelis Koukis | // basic functions executed on page load
|
1237 | f533f224 | Vangelis Koukis | // hide the all of the networks contents
|
1238 | f533f224 | Vangelis Koukis | $("#networks-pane .network-contents").hide();
|
1239 | f533f224 | Vangelis Koukis | // hide the all of the firewall contents
|
1240 | f533f224 | Vangelis Koukis | $("#networks-pane .firewall-content").hide();
|
1241 | f533f224 | Vangelis Koukis | changes_since = 0; // to reload full list of servers
|
1242 | f533f224 | Vangelis Koukis | networks_changes_since= 0; // to reload full list of networks
|
1243 | fbab7fae | Christodoulos Psaltis | // there is always one public network to render
|
1244 | f533f224 | Vangelis Koukis | var pubNet = $("#networks-pane #public-template").clone().attr("id", "pub").fadeIn("slow");
|
1245 | f533f224 | Vangelis Koukis | pubNet.appendTo("#networks-pane .public-networks");
|
1246 | f533f224 | Vangelis Koukis | update_networks(UPDATE_INTERVAL);
|
1247 | f533f224 | Vangelis Koukis | |
1248 | d2f03cb3 | Mike Muzurakis | //fix ie z-index bug by moving the overlays to the bottom
|
1249 | d2f03cb3 | Mike Muzurakis | $(document).ready(function() {
|
1250 | d2f03cb3 | Mike Muzurakis | if ($.browser.msie) {
|
1251 | d2f03cb3 | Mike Muzurakis | $("body").append($("#networks-wizard"));
|
1252 | d2f03cb3 | Mike Muzurakis | $("body").append($("#add-machines-wizard"));
|
1253 | d2f03cb3 | Mike Muzurakis | }
|
1254 | d2f03cb3 | Mike Muzurakis | });
|
1255 | d2f03cb3 | Mike Muzurakis | |
1256 | b365d9ff | Christodoulos Psaltis | //IE specific fixes
|
1257 | b365d9ff | Christodoulos Psaltis | if ($.browser.msie) {
|
1258 | b365d9ff | Christodoulos Psaltis | //IE fix for network div hover
|
1259 | b365d9ff | Christodoulos Psaltis | $("div.network").live("mouseenter", function () {
|
1260 | b365d9ff | Christodoulos Psaltis | $(this).css("background-color","#A1C8DB");
|
1261 | b365d9ff | Christodoulos Psaltis | $(this).find(".actions a").css("visibility","visible");
|
1262 | b365d9ff | Christodoulos Psaltis | });
|
1263 | b365d9ff | Christodoulos Psaltis | $("div.network").live("mouseleave", function () {
|
1264 | b365d9ff | Christodoulos Psaltis | $(this).css("background-color","transparent");
|
1265 | b365d9ff | Christodoulos Psaltis | $(this).find(".actions a").css("visibility","hidden");
|
1266 | b365d9ff | Christodoulos Psaltis | });
|
1267 | 3d547ef0 | Mike Muzurakis | $("div.machine-actions").live("mouseenter", function () {
|
1268 | 3d547ef0 | Mike Muzurakis | $(this).find("a").css("visibility","visible");
|
1269 | 3d547ef0 | Mike Muzurakis | });
|
1270 | 3d547ef0 | Mike Muzurakis | $("div.machine-actions").live("mouseleave", function () {
|
1271 | 3d547ef0 | Mike Muzurakis | $(this).find("a").css("visibility","hidden");
|
1272 | 3d547ef0 | Mike Muzurakis | });
|
1273 | c93a67cd | Christodoulos Psaltis | //IE fix for network machine hover
|
1274 | c93a67cd | Christodoulos Psaltis | $("div.network-machine").live("mouseenter", function () {
|
1275 | c93a67cd | Christodoulos Psaltis | $(this).css("background-color","#84B7D0");
|
1276 | c93a67cd | Christodoulos Psaltis | $(this).find("div.machine-actions a").css("visibility","visible");
|
1277 | c93a67cd | Christodoulos Psaltis | });
|
1278 | c93a67cd | Christodoulos Psaltis | $("div.network-machine").live("mouseleave", function () {
|
1279 | c93a67cd | Christodoulos Psaltis | $(this).css("background-color","transparent");
|
1280 | c93a67cd | Christodoulos Psaltis | $(this).find("div.machine-actions a").css("visibility","hidden");
|
1281 | c93a67cd | Christodoulos Psaltis | });
|
1282 | d64ff282 | Mike Muzurakis | //IE fix for network machine hover
|
1283 | d64ff282 | Mike Muzurakis | $("button.reboot-single").live("mouseenter", function () {
|
1284 | d64ff282 | Mike Muzurakis | $(this).css("background-color","#FF7F2A");
|
1285 | d64ff282 | Mike Muzurakis | });
|
1286 | d64ff282 | Mike Muzurakis | $("button.reboot-single").live("mouseleave", function () {
|
1287 | d64ff282 | Mike Muzurakis | $(this).css("background-color","transparent");
|
1288 | d64ff282 | Mike Muzurakis | });
|
1289 | b365d9ff | Christodoulos Psaltis | }
|
1290 | 6f547d12 | Mike Muzurakis | </script> |