root / ui / templates / machines.html @ 2b837adf
History | View | Annotate | Download (42.4 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 | edda4d30 | Markos Gogoulos | {% load i18n %} |
37 | edda4d30 | Markos Gogoulos | |
38 | e5b0ba20 | Vangelis Koukis | <div id="machines" class="separator"></div> |
39 | e55b8703 | Christodoulos Psaltis | |
40 | d165dbb4 | Christodoulos Psaltis | <!-- the create button -->
|
41 | 182a5ae3 | Mike Muzurakis | <div id="ie-fix"> |
42 | 182a5ae3 | Mike Muzurakis | <div id="createcontainer"> |
43 | 182a5ae3 | Mike Muzurakis | <div id="beforecreate" style="display:inline;"></div> |
44 | 182a5ae3 | Mike Muzurakis | <a id="create" rel="#wizard" href="#">{% trans "Create New +" %}</a> |
45 | 182a5ae3 | Mike Muzurakis | </div>
|
46 | 6902f72e | clopy | </div>
|
47 | d165dbb4 | Christodoulos Psaltis | |
48 | d165dbb4 | Christodoulos Psaltis | <!-- changing between standard/list view -->
|
49 | b7b0b116 | Mike Muzurakis | <div id="ie-fix-view-select"> |
50 | b7b0b116 | Mike Muzurakis | <div id="view-select"> |
51 | 3b84b94a | Kostas Papadimitriou | <a id="standard" href="{% url machines-standard %}" title="{% trans "Icon " %}"></a> |
52 | 3b84b94a | Kostas Papadimitriou | <a id="list" href="{% url machines-list %}" title="{% trans "List " %}"></a> |
53 | 3b84b94a | Kostas Papadimitriou | <a id="single" href="{% url machines-single %}" title="{% trans "Single " %}"></a> |
54 | b7b0b116 | Mike Muzurakis | </div>
|
55 | e55b8703 | Christodoulos Psaltis | </div>
|
56 | e55b8703 | Christodoulos Psaltis | |
57 | ef38afe9 | Christodoulos Psaltis | <div id="emptymachineslist"> |
58 | 963867be | Mike Muzurakis | <h1 id="welcomeheader">{% trans "Welcome to ~okeanos !" %}</h1> |
59 | ef38afe9 | Christodoulos Psaltis | <br /> |
60 | 963867be | Mike Muzurakis | <span class="welcomebody">{% trans "From this panel you will be able to manage your Virtual Machines (VMs). If you don't know what a VM is: " %}<br /><a href="#">{% trans "take the tour" %}</a>.</span> |
61 | ef38afe9 | Christodoulos Psaltis | <br /> |
62 | ef38afe9 | Christodoulos Psaltis | <br /> |
63 | 963867be | Mike Muzurakis | <span class="welcomebody">{% trans "The panel is currently empty, because you don't have any VMs yet. Start by clicking the orange button on the top left. The wizard will guide you through the whole process." %}</span> |
64 | ef38afe9 | Christodoulos Psaltis | <br /> |
65 | ef38afe9 | Christodoulos Psaltis | <br /> |
66 | 5ef04f85 | Constantinos Venetsanopoulos | <span class="welcomefooter">{% trans "For more information or help, click " %}<a href="#">{% trans "here" %}</a>.</span> |
67 | 6902f72e | clopy | </div>
|
68 | 6902f72e | clopy | |
69 | cc7c5902 | Dimitris Moraitis | <!-- the form -->
|
70 | cc7c5902 | Dimitris Moraitis | <form action="#"> |
71 | f533f224 | Vangelis Koukis | <!-- scrollable root element -->
|
72 | f533f224 | Vangelis Koukis | <div class="modal" id="wizard"> |
73 | f533f224 | Vangelis Koukis | <!-- status bar -->
|
74 | f533f224 | Vangelis Koukis | <ul id="status"> |
75 | b7e79006 | Mike Muzurakis | <li class="active li-0"> |
76 | ef38afe9 | Christodoulos Psaltis | <span class="headernumber" class="first">1</span> |
77 | ef38afe9 | Christodoulos Psaltis | <div class="headerbody first">{% trans "Image" %}</div> |
78 | b7e79006 | Mike Muzurakis | <img src="static/check.png" class="img-check" style="visibility:hidden;" /> |
79 | ef38afe9 | Christodoulos Psaltis | </li>
|
80 | b7e79006 | Mike Muzurakis | <li class="li-1"> |
81 | ef38afe9 | Christodoulos Psaltis | <span class="headernumber">2</span> |
82 | ef38afe9 | Christodoulos Psaltis | <div class="headerbody">{% trans "Flavor" %}</div> |
83 | b7e79006 | Mike Muzurakis | <img src="static/check.png" class="img-check" style="visibility:hidden;" /> |
84 | ef38afe9 | Christodoulos Psaltis | </li>
|
85 | b7e79006 | Mike Muzurakis | <li class="li-2"> |
86 | ef38afe9 | Christodoulos Psaltis | <span class="headernumber">3</span> |
87 | ef38afe9 | Christodoulos Psaltis | <div class="headerbody">{% trans "Name" %}</div> |
88 | ef38afe9 | Christodoulos Psaltis | </li>
|
89 | f533f224 | Vangelis Koukis | </ul>
|
90 | f533f224 | Vangelis Koukis | <!-- scrollable items -->
|
91 | f533f224 | Vangelis Koukis | <div class="items"> |
92 | f533f224 | Vangelis Koukis | <!-- pages -->
|
93 | b7e79006 | Mike Muzurakis | <div class="page page1"> |
94 | cf0eb36b | Markos Gogoulos | <h2>{% trans "Select an OS" %}</h2> |
95 | 94adeabb | Mike Muzurakis | <hr class="topruler" /> |
96 | f533f224 | Vangelis Koukis | <div id="tabscontainer"> |
97 | f533f224 | Vangelis Koukis | <ul class="tabs"> |
98 | f533f224 | Vangelis Koukis | <li><a href="#">{% trans "system images" %}</a></li> |
99 | f533f224 | Vangelis Koukis | <li><a href="#">{% trans "custom images" %}</a></li> |
100 | f533f224 | Vangelis Koukis | </ul>
|
101 | f533f224 | Vangelis Koukis | </div>
|
102 | 89976b6c | Christodoulos Psaltis | <div class="panes"> |
103 | 4ea5cc44 | Mike Muzurakis | <li id="image-template" style="display:none;"> |
104 | f533f224 | Vangelis Koukis | <label for="image.id"> |
105 | 9b1b6f3a | Christodoulos Psaltis | <a>
|
106 | 94adeabb | Mike Muzurakis | <div class="image-container"> |
107 | 94adeabb | Mike Muzurakis | <div class="image"> |
108 | 3091ead5 | Mike Muzurakis | <input class="radio" type="radio" name="image-id" id="image-id" /> |
109 | 94adeabb | Mike Muzurakis | <img src="" class="image-logo"/> |
110 | 94adeabb | Mike Muzurakis | <strong class="image-title">image.title</strong> |
111 | 94adeabb | Mike Muzurakis | <br /> |
112 | f533f224 | Vangelis Koukis | <div class="description-container"> |
113 | f533f224 | Vangelis Koukis | <span class="description">image.description</span> |
114 | f533f224 | Vangelis Koukis | <span id="size" class="size">?? MB</span><span class="size"> MB</span> |
115 | f533f224 | Vangelis Koukis | </div>
|
116 | 94adeabb | Mike Muzurakis | </div>
|
117 | f533f224 | Vangelis Koukis | </div>
|
118 | 9b1b6f3a | Christodoulos Psaltis | </a>
|
119 | f533f224 | Vangelis Koukis | </label>
|
120 | f533f224 | Vangelis Koukis | </li>
|
121 | ec06b07c | Dimitris Moraitis | <ul class="pane" id="standard-images"> |
122 | f533f224 | Vangelis Koukis | <!-- standard images -->
|
123 | f533f224 | Vangelis Koukis | </ul>
|
124 | ec06b07c | Dimitris Moraitis | <ul class="pane" id="custom-images"> |
125 | f533f224 | Vangelis Koukis | <!-- custom images -->
|
126 | cc7c5902 | Dimitris Moraitis | </ul>
|
127 | cc7c5902 | Dimitris Moraitis | </div>
|
128 | 94adeabb | Mike Muzurakis | <hr class="bottomruler" /> |
129 | f533f224 | Vangelis Koukis | <button type="button" class="prev" id="cancel">{% trans "Cancel" %}</button> |
130 | 8e15be4c | Mike Muzurakis | <button type="button" class="next right">{% trans "Next" %}<img src="static/next.png" class="img-next" /></button> |
131 | cc7c5902 | Dimitris Moraitis | </div>
|
132 | b7e79006 | Mike Muzurakis | <div class="page page2"> |
133 | f533f224 | Vangelis Koukis | <h2>{% trans "Select CPUs, RAM and Disk Size" %}</h2> |
134 | 94adeabb | Mike Muzurakis | <hr class="topruler" /> |
135 | cc7c5902 | Dimitris Moraitis | <ul>
|
136 | 94adeabb | Mike Muzurakis | <li id="machinetype"> |
137 | c376783b | Markos Gogoulos | <div class="machine-type"> |
138 | 94adeabb | Mike Muzurakis | <label for="small" id="small"> |
139 | c376783b | Markos Gogoulos | <input type="radio" id="small" name="machine-type" value="small" checked="true" /> |
140 | afa2ebd2 | Mike Muzurakis | <span class="typebody" id="small-body">{% trans "small" %}</span> |
141 | cc7c5902 | Dimitris Moraitis | </label>
|
142 | cc7c5902 | Dimitris Moraitis | </div>
|
143 | f533f224 | Vangelis Koukis | <div class="machine-type"> |
144 | 94adeabb | Mike Muzurakis | <label for="medium" id="medium"> |
145 | f533f224 | Vangelis Koukis | <input type="radio" id="medium" name="machine-type" value="medium" /> |
146 | afa2ebd2 | Mike Muzurakis | <span class="typebody" id="medium-body">{% trans "medium" %}</span> |
147 | cc7c5902 | Dimitris Moraitis | </label>
|
148 | cc7c5902 | Dimitris Moraitis | </div>
|
149 | c376783b | Markos Gogoulos | <div class="machine-type"> |
150 | 94adeabb | Mike Muzurakis | <label for="large" id="large"> |
151 | c376783b | Markos Gogoulos | <input type="radio" id="large" name="machine-type" value="large" /> |
152 | afa2ebd2 | Mike Muzurakis | <span class="typebody" id="large-body">{% trans "large" %}</span> |
153 | cc7c5902 | Dimitris Moraitis | </label>
|
154 | cc7c5902 | Dimitris Moraitis | </div>
|
155 | c376783b | Markos Gogoulos | <div class="machine-type"> |
156 | 94adeabb | Mike Muzurakis | <label for="custom" id="custom"> |
157 | c376783b | Markos Gogoulos | <input type="radio" name="machine-type" id="custom" value="large" /> |
158 | afa2ebd2 | Mike Muzurakis | <span class="typebody" id="custom-body">{% trans "custom" %}</span> |
159 | cc7c5902 | Dimitris Moraitis | </label>
|
160 | cc7c5902 | Dimitris Moraitis | </div>
|
161 | cc7c5902 | Dimitris Moraitis | </li>
|
162 | 94adeabb | Mike Muzurakis | <div id="page2-container"> |
163 | 94adeabb | Mike Muzurakis | <li class="slider-container"> |
164 | f533f224 | Vangelis Koukis | <label><strong class="sliders">{% trans "CPUs" %}</strong></label> |
165 | 94adeabb | Mike Muzurakis | <input type="range" id="cpu" style="display:none" /> |
166 | 94adeabb | Mike Muzurakis | <input type="text" class="range" id="cpu-indicator" /> |
167 | f533f224 | Vangelis Koukis | <span class="units">{% trans "cores" %}</span> |
168 | 94adeabb | Mike Muzurakis | </li>
|
169 | 94adeabb | Mike Muzurakis | <li class="slider-container"> |
170 | f533f224 | Vangelis Koukis | <label><strong class="sliders">{% trans "RAM" %}</strong></label> |
171 | 94adeabb | Mike Muzurakis | <input type="range" id="ram" style="display:none" /> |
172 | 94adeabb | Mike Muzurakis | <input type="text" class="range" id="ram-indicator" /> |
173 | f533f224 | Vangelis Koukis | <span class="units">MB</span> |
174 | 94adeabb | Mike Muzurakis | </li>
|
175 | 94adeabb | Mike Muzurakis | <li class="slider-container"> |
176 | f533f224 | Vangelis Koukis | <label><strong class="sliders">{% trans "Size" %}</strong></label> |
177 | 94adeabb | Mike Muzurakis | <input type="range" id="storage" style="display:none" /> |
178 | 94adeabb | Mike Muzurakis | <input type="text" class="range" id="storage-indicator" /> |
179 | f533f224 | Vangelis Koukis | <span class="units">GB</span> |
180 | 94adeabb | Mike Muzurakis | </li>
|
181 | 94adeabb | Mike Muzurakis | <li>
|
182 | 94adeabb | Mike Muzurakis | <div class="cost"> |
183 | 504981ba | Mike Muzurakis | <span> {% trans "Your wallet:" %} 10,000 {% trans "Credits" %} </span> | <span>{% trans "This setup will cost you:" %}<input type="text" id="credits-indicator" value="0" class="range" disabled="disabled" /> {% trans "C/hour" %}</span> |
184 | 94adeabb | Mike Muzurakis | </div>
|
185 | 94adeabb | Mike Muzurakis | </li>
|
186 | 94adeabb | Mike Muzurakis | </div>
|
187 | cc7c5902 | Dimitris Moraitis | </ul>
|
188 | 94adeabb | Mike Muzurakis | <hr class="bottomruler" /> |
189 | 8e15be4c | Mike Muzurakis | <button type="button" class="prev"><img src="static/prev.png" class="img-prev" />{% trans "Back" %}</button> |
190 | 8e15be4c | Mike Muzurakis | <button type="button" class="next right">{% trans "Next" %}<img src="static/next.png" class="img-next" /></button> |
191 | cc7c5902 | Dimitris Moraitis | </div>
|
192 | b7e79006 | Mike Muzurakis | <div class="page page3"> |
193 | f533f224 | Vangelis Koukis | <h2>{% trans "Confirm your settings" %}</h2> |
194 | 94adeabb | Mike Muzurakis | <hr class="topruler" /> |
195 | 94adeabb | Mike Muzurakis | <ul id="page3-container"> |
196 | afa2ebd2 | Mike Muzurakis | <li class="required" id="label-name"> |
197 | cc7c5902 | Dimitris Moraitis | <label>
|
198 | f533f224 | Vangelis Koukis | <strong>{% trans "Name" %}:</strong> |
199 | cae67343 | Mike Muzurakis | <input type="text" class="text" name="machine_name" id="name" value="My Ubuntu 10.04 x86_64 server"/> |
200 | cc7c5902 | Dimitris Moraitis | </label>
|
201 | cc7c5902 | Dimitris Moraitis | </li>
|
202 | cc7c5902 | Dimitris Moraitis | <li>
|
203 | 94adeabb | Mike Muzurakis | <span>{% trans "Image:" %}</span> <span id="machine_image-label">Ubuntu 10.04 x86_64 server</span> |
204 | cc7c5902 | Dimitris Moraitis | </li>
|
205 | cc7c5902 | Dimitris Moraitis | <li>
|
206 | 94adeabb | Mike Muzurakis | <span>{% trans "CPUs:" %}</span> <span id="machine_cpu-label">2</span> <span>{% trans "cores" %}</span> |
207 | cc7c5902 | Dimitris Moraitis | </li>
|
208 | cc7c5902 | Dimitris Moraitis | <li>
|
209 | 94adeabb | Mike Muzurakis | <span>{% trans "RAM:" %}</span> <span id="machine_ram-label">1024</span><span>MB</span> |
210 | cc7c5902 | Dimitris Moraitis | </li>
|
211 | cc7c5902 | Dimitris Moraitis | <li>
|
212 | 94adeabb | Mike Muzurakis | <span>{% trans "System Disk:" %}</span> <span id="machine_storage-label">10</span><span>GB</span> |
213 | cc7c5902 | Dimitris Moraitis | </li>
|
214 | cc7c5902 | Dimitris Moraitis | <li>
|
215 | 94adeabb | Mike Muzurakis | <span>{% trans "Cost per Hour:" %}</span> <span>40 {% trans "credits" %}</span> |
216 | cc7c5902 | Dimitris Moraitis | </li>
|
217 | cc7c5902 | Dimitris Moraitis | <li>
|
218 | 94adeabb | Mike Muzurakis | <span>{% trans "Credits in Wallet:" %}</span> <span>10.000</span> |
219 | cc7c5902 | Dimitris Moraitis | </li>
|
220 | cc7c5902 | Dimitris Moraitis | </ul>
|
221 | 94adeabb | Mike Muzurakis | <hr class="bottomruler" /> |
222 | 8e15be4c | Mike Muzurakis | <button type="button" class="prev"><img src="static/prev.png" class="img-prev" />{% trans "Back" %}</button> |
223 | f533f224 | Vangelis Koukis | <button type="button" class="next right" id="start">{% trans "Create VM" %}</button> |
224 | cc7c5902 | Dimitris Moraitis | </div>
|
225 | f533f224 | Vangelis Koukis | </div>
|
226 | f533f224 | Vangelis Koukis | <div class="separator-end"></div> |
227 | f533f224 | Vangelis Koukis | </div>
|
228 | cc7c5902 | Dimitris Moraitis | </form>
|
229 | cc7c5902 | Dimitris Moraitis | |
230 | f533f224 | Vangelis Koukis | <!-- metadata overlay -->
|
231 | 71eade6b | Christodoulos Psaltis | <div>
|
232 | f533f224 | Vangelis Koukis | <div id="metadata-wizard" class="modal"> |
233 | f533f224 | Vangelis Koukis | <h3 class="popup-header">{% trans "Manage Tags" %}</h3> |
234 | f533f224 | Vangelis Koukis | <p style='display:none;'>hidden server id</p> |
235 | f533f224 | Vangelis Koukis | <div id="on-off" style='display:none;'>hidden server id</div> |
236 | f533f224 | Vangelis Koukis | <div class="popup-body"> |
237 | f533f224 | Vangelis Koukis | <div class="popup-body-inner"> |
238 | f533f224 | Vangelis Koukis | <div class="popup-title">{% trans "Create, edit and delete Tags for machine:" %}</div> |
239 | f533f224 | Vangelis Koukis | <div class="name-container"> |
240 | f533f224 | Vangelis Koukis | <img src="" class="machine-icon" /> |
241 | f533f224 | Vangelis Koukis | <div class="machine-name"></div> |
242 | f533f224 | Vangelis Koukis | </div>
|
243 | f533f224 | Vangelis Koukis | <div class="popup-separator"></div> |
244 | f533f224 | Vangelis Koukis | <div class="large-spinner" style="display:none;"></div> |
245 | f533f224 | Vangelis Koukis | <div class="metadata-container"> |
246 | f533f224 | Vangelis Koukis | <!-- append metadata entries here -->
|
247 | f533f224 | Vangelis Koukis | </div>
|
248 | f533f224 | Vangelis Koukis | <div class="metadata-add-template" style="display:none;"> |
249 | f533f224 | Vangelis Koukis | <input type="text" id="add-meta-key" maxlength="15"></input> |
250 | 17ee954a | Mike Muzurakis | <ul style="display:none;" class="dropdown-container"> |
251 | f533f224 | Vangelis Koukis | {% for o in default_keywords %} |
252 | f533f224 | Vangelis Koukis | <li><span class="dropdownitem">{{o}}</span></li> |
253 | f533f224 | Vangelis Koukis | {% endfor %} |
254 | f533f224 | Vangelis Koukis | </ul>
|
255 | f533f224 | Vangelis Koukis | <input type="text" id="add-meta-value" maxlength="150" value="{% trans 'max 150 characters' %}"></input> |
256 | f533f224 | Vangelis Koukis | <div class="addbuttons"> |
257 | 9e60a338 | Mike Muzurakis | <div class="save"></div> |
258 | 9e60a338 | Mike Muzurakis | <div class="cancel"></div> |
259 | 71eade6b | Christodoulos Psaltis | </div>
|
260 | 71eade6b | Christodoulos Psaltis | </div>
|
261 | f533f224 | Vangelis Koukis | <div class="metadata-pair-template" style="display:none;"> |
262 | f533f224 | Vangelis Koukis | <div class="metadata-key">{% trans "OS" %}</div> |
263 | f533f224 | Vangelis Koukis | <div class="vertical-separator"></div> |
264 | f533f224 | Vangelis Koukis | <div class="metadata-value">{% trans "Debian" %}</div> |
265 | f533f224 | Vangelis Koukis | <div class="metadata-full-value" style="display:none;"></div> |
266 | f533f224 | Vangelis Koukis | <div class="metadata-edit"> |
267 | 9e60a338 | Mike Muzurakis | <div class="edit"></div> |
268 | 9e60a338 | Mike Muzurakis | <div class="remove"></div> |
269 | f533f224 | Vangelis Koukis | </div>
|
270 | f533f224 | Vangelis Koukis | <div class="editbuttons" style="display:none;"> |
271 | 9e60a338 | Mike Muzurakis | <div class="save"></div> |
272 | 9e60a338 | Mike Muzurakis | <div class="remove"></div> |
273 | 71eade6b | Christodoulos Psaltis | </div>
|
274 | 71eade6b | Christodoulos Psaltis | </div>
|
275 | 71eade6b | Christodoulos Psaltis | </div>
|
276 | a7ccb6f9 | Christodoulos Psaltis | </div>
|
277 | f533f224 | Vangelis Koukis | <div class="buttons"> |
278 | f533f224 | Vangelis Koukis | <button type="button" class="save" id="metadata-cancel">{% trans "Close" %}</button> |
279 | f533f224 | Vangelis Koukis | <button type="button" class="create" id="metadata-create">{% trans "Create New" %}</button> |
280 | f533f224 | Vangelis Koukis | </div>
|
281 | 339712cb | Christodoulos Psaltis | </div>
|
282 | 339712cb | Christodoulos Psaltis | </div>
|
283 | 339712cb | Christodoulos Psaltis | |
284 | 71eade6b | Christodoulos Psaltis | <a id="metadata-scrollable" href="#" rel="#metadata-wizard"></a> |
285 | d165dbb4 | Christodoulos Psaltis | |
286 | 42f67a2a | Dimitris Moraitis | <div id="machinesview"></div> |
287 | 42f67a2a | Dimitris Moraitis | |
288 | 267403ca | Dimitris Moraitis | <div class="confirm_multiple"> |
289 | 3d286f84 | Dimitris Moraitis | <p>{% trans "Your actions will affect" %} <span class="actionLen">XX</span> {% trans "machines" %}</p> |
290 | 2cd96cc7 | Vangelis Koukis | <button class="yes">{% trans "Confirm All" %}</button> |
291 | f533f224 | Vangelis Koukis | <button class="no">{% trans "Cancel All" %}</button> |
292 | d725fb12 | Christodoulos Psaltis | </div>
|
293 | 31343277 | Christodoulos Psaltis | |
294 | cc7c5902 | Dimitris Moraitis | <script>
|
295 | f1d5a1b8 | Mike Muzurakis | |
296 | dc3e66b9 | Mike Muzurakis | // TODO: This should be populated with more rules for all available states
|
297 | dc3e66b9 | Mike Muzurakis | var actions = { 'reboot': ['UNKOWN', 'ACTIVE', 'REBOOT'],
|
298 | dc3e66b9 | Mike Muzurakis | 'shutdown': ['UNKOWN', 'ACTIVE', 'REBOOT'],
|
299 | dc3e66b9 | Mike Muzurakis | 'console': ['ACTIVE'],
|
300 | dc3e66b9 | Mike Muzurakis | 'start': ['UNKOWN', 'STOPPED'],
|
301 | dc3e66b9 | Mike Muzurakis | 'destroy': ['UNKOWN', 'ACTIVE', 'STOPPED', 'REBOOT', 'ERROR', 'BUILD']
|
302 | dc3e66b9 | Mike Muzurakis | };
|
303 | dc3e66b9 | Mike Muzurakis | |
304 | dc3e66b9 | Mike Muzurakis | |
305 | 8e15be4c | Mike Muzurakis | //change hover icon on prev,next buttons
|
306 | 8e15be4c | Mike Muzurakis | $("#wizard button.next").hover(function() {
|
307 | 8e15be4c | Mike Muzurakis | $(this).find(".img-next").attr("src","static/next-hover.png");
|
308 | 8e15be4c | Mike Muzurakis | },
|
309 | 8e15be4c | Mike Muzurakis | function() {
|
310 | 8e15be4c | Mike Muzurakis | $(this).find(".img-next").attr("src","static/next.png");
|
311 | 8e15be4c | Mike Muzurakis | }
|
312 | 8e15be4c | Mike Muzurakis | );
|
313 | 8e15be4c | Mike Muzurakis | $("#wizard button.prev").hover(function() {
|
314 | 8e15be4c | Mike Muzurakis | $(this).find(".img-prev").attr("src","static/prev-hover.png");
|
315 | 8e15be4c | Mike Muzurakis | },
|
316 | 8e15be4c | Mike Muzurakis | function() {
|
317 | 8e15be4c | Mike Muzurakis | $(this).find(".img-prev").attr("src","static/prev.png");
|
318 | 8e15be4c | Mike Muzurakis | }
|
319 | 8e15be4c | Mike Muzurakis | );
|
320 | 8e15be4c | Mike Muzurakis | |
321 | afa2ebd2 | Mike Muzurakis | //add hover to labels
|
322 | f533f224 | Vangelis Koukis | $('#machines-pane span.typebody').mouseover(function() {
|
323 | cf93419a | Mike Muzurakis | $(this).addClass('typehover');
|
324 | afa2ebd2 | Mike Muzurakis | });
|
325 | f533f224 | Vangelis Koukis | $('#machines-pane span.typebody').mouseout(function() {
|
326 | cf93419a | Mike Muzurakis | $(this).removeClass('typehover');
|
327 | afa2ebd2 | Mike Muzurakis | });
|
328 | afa2ebd2 | Mike Muzurakis | |
329 | fb66080c | Dimitris Moraitis | // switch to list view
|
330 | f533f224 | Vangelis Koukis | $("#machines-pane a#list").click(function(){
|
331 | f533f224 | Vangelis Koukis | list_view();
|
332 | 9b1b6f3a | Christodoulos Psaltis | return false;
|
333 | 9b1b6f3a | Christodoulos Psaltis | });
|
334 | fb66080c | Dimitris Moraitis | |
335 | 9b1b6f3a | Christodoulos Psaltis | // switch to standard view
|
336 | f533f224 | Vangelis Koukis | $("#machines-pane a#standard").click(function(){
|
337 | 9b1b6f3a | Christodoulos Psaltis | standard_view();
|
338 | 9b1b6f3a | Christodoulos Psaltis | return false;
|
339 | 9b1b6f3a | Christodoulos Psaltis | });
|
340 | 38e2c5ed | Christodoulos Psaltis | |
341 | f533f224 | Vangelis Koukis | // switch to single view
|
342 | f533f224 | Vangelis Koukis | $("#machines-pane a#single").click(function(){
|
343 | f533f224 | Vangelis Koukis | single_view();
|
344 | f533f224 | Vangelis Koukis | return false;
|
345 | f533f224 | Vangelis Koukis | });
|
346 | f533f224 | Vangelis Koukis | |
347 | bd8b1d60 | Christodoulos Psaltis | // launch VM creation wizard
|
348 | f533f224 | Vangelis Koukis | $("#machines-pane a#create").click(function(){
|
349 | 146b6003 | Dimitris Moraitis | // launch wizard only if images and flavors are found
|
350 | 146b6003 | Dimitris Moraitis | if (images.length > 0 && flavors.length > 0) {
|
351 | 4a40dfff | Dimitris Moraitis | $('#machines-pane a#create').data('overlay').close();
|
352 | a3e418b1 | Markos Gogoulos | $("#wizard").scrollable().begin();
|
353 | a3e418b1 | Markos Gogoulos | $("#wizard").show();
|
354 | 4a40dfff | Dimitris Moraitis | $('#machines-pane a#create').data('overlay').load();
|
355 | 0c2ad1b7 | Christodoulos Psaltis | // enable submit button
|
356 | 0c2ad1b7 | Christodoulos Psaltis | $("#wizard #start").removeAttr('disabled');
|
357 | 146b6003 | Dimitris Moraitis | } else if (images.length == 0 ) {
|
358 | 146b6003 | Dimitris Moraitis | ajax_error('NO_IMAGES');
|
359 | f533f224 | Vangelis Koukis | return false;
|
360 | 146b6003 | Dimitris Moraitis | } else if (flavors.length == 0) {
|
361 | 146b6003 | Dimitris Moraitis | ajax_error('NO_FLAVORS');
|
362 | 146b6003 | Dimitris Moraitis | return false;
|
363 | 146b6003 | Dimitris Moraitis | }
|
364 | ec06b07c | Dimitris Moraitis | });
|
365 | ec06b07c | Dimitris Moraitis | |
366 | f124656b | Christodoulos Psaltis | // create wizard overlay
|
367 | f533f224 | Vangelis Koukis | $(function() {
|
368 | f533f224 | Vangelis Koukis | $("#machines-pane a#create").overlay({
|
369 | 716c3ead | Dimitris Moraitis | mask: '#666',
|
370 | f533f224 | Vangelis Koukis | effect: 'default',
|
371 | f533f224 | Vangelis Koukis | top: '5%',
|
372 | f124656b | Christodoulos Psaltis | oneInstance: false,
|
373 | f974b570 | Dimitris Moraitis | closeOnClick: false
|
374 | f124656b | Christodoulos Psaltis | });
|
375 | f124656b | Christodoulos Psaltis | });
|
376 | f124656b | Christodoulos Psaltis | |
377 | bd8b1d60 | Christodoulos Psaltis | // wizard
|
378 | f533f224 | Vangelis Koukis | $(function() {
|
379 | bd8b1d60 | Christodoulos Psaltis | var root = $("#wizard").scrollable();
|
380 | bd8b1d60 | Christodoulos Psaltis | var api = root.scrollable();
|
381 | bd8b1d60 | Christodoulos Psaltis | // rangeinput with default configuration
|
382 | bd8b1d60 | Christodoulos Psaltis | // validation logic is done inside the onBeforeSeek callback
|
383 | bd8b1d60 | Christodoulos Psaltis | api.onBeforeSeek(function(event, i) {
|
384 | b7e79006 | Mike Muzurakis | // update status bar
|
385 | b7e79006 | Mike Muzurakis | $("#status li").removeClass("active").eq(i).addClass("active");
|
386 | f533f224 | Vangelis Koukis | // we are going 1 step backwards so no need for validation
|
387 | b7e79006 | Mike Muzurakis | if (api.getIndex() > i) {
|
388 | b7e79006 | Mike Muzurakis | $("#wizard .li-" + i).removeClass("checked");
|
389 | b7e79006 | Mike Muzurakis | $("#wizard .li-" + i).find(".img-check").css("visibility","hidden");
|
390 | b7e79006 | Mike Muzurakis | }
|
391 | f533f224 | Vangelis Koukis | if (api.getIndex() < i) {
|
392 | b7e79006 | Mike Muzurakis | $("#wizard .li-" + api.getIndex()).addClass("checked");
|
393 | b7e79006 | Mike Muzurakis | $("#wizard .li-" + api.getIndex()).find(".img-check").css("visibility","visible");
|
394 | bd8b1d60 | Christodoulos Psaltis | // 1. get current page
|
395 | f533f224 | Vangelis Koukis | var page = root.find(".page").eq(api.getIndex()),
|
396 | f533f224 | Vangelis Koukis | // 2. .. and all required fields inside the page
|
397 | f533f224 | Vangelis Koukis | inputs = page.find(".required :input").removeClass("error"),
|
398 | f533f224 | Vangelis Koukis | // 3. .. which are empty
|
399 | f533f224 | Vangelis Koukis | empty = inputs.filter(function() {
|
400 | f533f224 | Vangelis Koukis | return $(this).val().replace(/\s*/g, '') == '';
|
401 | f533f224 | Vangelis Koukis | });
|
402 | f533f224 | Vangelis Koukis | // if there are empty fields, then
|
403 | f533f224 | Vangelis Koukis | if (empty.length) {
|
404 | f533f224 | Vangelis Koukis | // add a CSS class name "error" for empty & required fields
|
405 | f533f224 | Vangelis Koukis | empty.addClass("error");
|
406 | f533f224 | Vangelis Koukis | // cancel seeking of the scrollable by returning false
|
407 | f533f224 | Vangelis Koukis | return false;
|
408 | f533f224 | Vangelis Koukis | // everything is good
|
409 | f533f224 | Vangelis Koukis | }
|
410 | f533f224 | Vangelis Koukis | }
|
411 | 71642965 | Dimitris Moraitis | // update confirm step
|
412 | 20fae095 | Christodoulos Psaltis | if (api.getIndex()==0) {
|
413 | 20fae095 | Christodoulos Psaltis | var image = $("input[type=radio][name=image-id]:checked");
|
414 | b335768e | Markos Gogoulos | var imageRef = image.length ? image[0].id : false
|
415 | b335768e | Markos Gogoulos | if (imageRef) {
|
416 | b335768e | Markos Gogoulos | var imageName = $("label[for=" + imageRef + "] .image-title").text();
|
417 | 20fae095 | Christodoulos Psaltis | $("#machine_image-label")[0].textContent = imageName;
|
418 | 20fae095 | Christodoulos Psaltis | $("input[type=text][name=machine_name]")[0].value = "My " + imageName + " server";
|
419 | 20fae095 | Christodoulos Psaltis | }
|
420 | 42f67a2a | Dimitris Moraitis | } else if (api.getIndex()==1) {
|
421 | 20fae095 | Christodoulos Psaltis | $("#machine_cpu-label")[0].textContent = $("#cpu-indicator")[0].value;
|
422 | 20fae095 | Christodoulos Psaltis | $("#machine_ram-label")[0].textContent = $("#ram-indicator")[0].value;
|
423 | 20fae095 | Christodoulos Psaltis | $("#machine_storage-label")[0].textContent = $("#storage-indicator")[0].value;
|
424 | f533f224 | Vangelis Koukis | }
|
425 | bd8b1d60 | Christodoulos Psaltis | });
|
426 | bd8b1d60 | Christodoulos Psaltis | // if tab is pressed on the next button seek to next page
|
427 | f87e79a4 | Mike Muzurakis | $(root).live('keydown', function (e) {
|
428 | f87e79a4 | Mike Muzurakis | if ( e.keyCode == 9 ){
|
429 | f87e79a4 | Mike Muzurakis | if(e.preventDefault) {
|
430 | f87e79a4 | Mike Muzurakis | e.preventDefault();
|
431 | f87e79a4 | Mike Muzurakis | }
|
432 | 29f0a240 | Mike Muzurakis | api.next();
|
433 | f87e79a4 | Mike Muzurakis | }
|
434 | bd8b1d60 | Christodoulos Psaltis | });
|
435 | 88bdf273 | Mike Muzurakis | //submit wizard by pressing enter on the name textbox
|
436 | cae67343 | Mike Muzurakis | $("#name").keypress(function (e) {
|
437 | f533f224 | Vangelis Koukis | if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
|
438 | f533f224 | Vangelis Koukis | $('#start').click();
|
439 | f533f224 | Vangelis Koukis | return false;
|
440 | f533f224 | Vangelis Koukis | } else {
|
441 | f533f224 | Vangelis Koukis | return true;
|
442 | f533f224 | Vangelis Koukis | }
|
443 | cae67343 | Mike Muzurakis | });
|
444 | 71642965 | Dimitris Moraitis | });
|
445 | cc7c5902 | Dimitris Moraitis | |
446 | bd8b1d60 | Christodoulos Psaltis | // disable sliders in flavor selection
|
447 | cc7c5902 | Dimitris Moraitis | function disableSliders() {
|
448 | cc7c5902 | Dimitris Moraitis | $("#cpu").attr('disabled',true);
|
449 | cc7c5902 | Dimitris Moraitis | $("#ram").attr('disabled',true);
|
450 | cc7c5902 | Dimitris Moraitis | $("#storage").attr('disabled',true);
|
451 | cc7c5902 | Dimitris Moraitis | }
|
452 | cc7c5902 | Dimitris Moraitis | |
453 | afa2ebd2 | Mike Muzurakis | //update radio button when clicking on text
|
454 | f533f224 | Vangelis Koukis | $("#small-body").live('click' ,function() {
|
455 | afa2ebd2 | Mike Muzurakis | $(this).parent().find("#small").click();
|
456 | afa2ebd2 | Mike Muzurakis | });
|
457 | f533f224 | Vangelis Koukis | |
458 | f533f224 | Vangelis Koukis | $("#medium-body").live('click' ,function() {
|
459 | afa2ebd2 | Mike Muzurakis | $(this).parent().find("#medium").click();
|
460 | afa2ebd2 | Mike Muzurakis | });
|
461 | f533f224 | Vangelis Koukis | |
462 | f533f224 | Vangelis Koukis | $("#large-body").live('click' ,function() {
|
463 | afa2ebd2 | Mike Muzurakis | $(this).parent().find("#large").click();
|
464 | afa2ebd2 | Mike Muzurakis | });
|
465 | f533f224 | Vangelis Koukis | |
466 | f533f224 | Vangelis Koukis | $("#custom-body").live('click' ,function() {
|
467 | afa2ebd2 | Mike Muzurakis | $(this).parent().find("#custom").click();
|
468 | afa2ebd2 | Mike Muzurakis | });
|
469 | afa2ebd2 | Mike Muzurakis | |
470 | afa2ebd2 | Mike Muzurakis | //select image div on radio button select
|
471 | f533f224 | Vangelis Koukis | $('#machines-pane .radio').live('click' ,function() {
|
472 | afa2ebd2 | Mike Muzurakis | $(this).parents("div").find(".image").removeClass('selecteddiv');
|
473 | afa2ebd2 | Mike Muzurakis | if($(this).is(':checked')) {
|
474 | afa2ebd2 | Mike Muzurakis | $(this).parent().addClass('selecteddiv');
|
475 | afa2ebd2 | Mike Muzurakis | }
|
476 | afa2ebd2 | Mike Muzurakis | });
|
477 | afa2ebd2 | Mike Muzurakis | |
478 | 695e1b21 | Dimitris Moraitis | // validate cpu input box
|
479 | 695e1b21 | Dimitris Moraitis | $("#cpu-indicator").live('change',function(){
|
480 | 695e1b21 | Dimitris Moraitis | var v = Number(this.value);
|
481 | 695e1b21 | Dimitris Moraitis | var i = cpus.indexOf(v);
|
482 | 695e1b21 | Dimitris Moraitis | if (isNaN(v)) {
|
483 | 695e1b21 | Dimitris Moraitis | $(this).value = cpus[0];
|
484 | 695e1b21 | Dimitris Moraitis | $("#cpu").data('rangeinput').setValue(0);
|
485 | 695e1b21 | Dimitris Moraitis | } else if (i == -1) {
|
486 | 695e1b21 | Dimitris Moraitis | for (var j=0; j < cpus.length; j++)
|
487 | 695e1b21 | Dimitris Moraitis | if (v<cpus[j])
|
488 | 695e1b21 | Dimitris Moraitis | break;
|
489 | 695e1b21 | Dimitris Moraitis | $("#cpu").data('rangeinput').setValue(j);
|
490 | 695e1b21 | Dimitris Moraitis | } else {
|
491 | 695e1b21 | Dimitris Moraitis | $("#cpu").data('rangeinput').setValue(i);
|
492 | f533f224 | Vangelis Koukis | }
|
493 | 695e1b21 | Dimitris Moraitis | return false;
|
494 | 695e1b21 | Dimitris Moraitis | });
|
495 | 695e1b21 | Dimitris Moraitis | |
496 | 695e1b21 | Dimitris Moraitis | // validate ram input box
|
497 | 695e1b21 | Dimitris Moraitis | $("#ram-indicator").live('change',function(){
|
498 | 695e1b21 | Dimitris Moraitis | var v = Number(this.value);
|
499 | 695e1b21 | Dimitris Moraitis | var i = ram.indexOf(v);
|
500 | 695e1b21 | Dimitris Moraitis | if (isNaN(v)) {
|
501 | 695e1b21 | Dimitris Moraitis | $(this).value = cpus[0];
|
502 | 695e1b21 | Dimitris Moraitis | $("#ram").data('rangeinput').setValue(0);
|
503 | 695e1b21 | Dimitris Moraitis | } else if (i == -1) {
|
504 | 695e1b21 | Dimitris Moraitis | for (var j=0; j < ram.length; j++)
|
505 | 695e1b21 | Dimitris Moraitis | if (v<ram[j])
|
506 | 695e1b21 | Dimitris Moraitis | break;
|
507 | 695e1b21 | Dimitris Moraitis | $("#ram").data('rangeinput').setValue(j);
|
508 | 695e1b21 | Dimitris Moraitis | } else {
|
509 | 695e1b21 | Dimitris Moraitis | $("#ram").data('rangeinput').setValue(i);
|
510 | f533f224 | Vangelis Koukis | }
|
511 | 695e1b21 | Dimitris Moraitis | return false;
|
512 | 695e1b21 | Dimitris Moraitis | });
|
513 | 695e1b21 | Dimitris Moraitis | |
514 | 695e1b21 | Dimitris Moraitis | // validate storage input box
|
515 | 695e1b21 | Dimitris Moraitis | $("#storage-indicator").live('change',function(){
|
516 | 695e1b21 | Dimitris Moraitis | var v = Number(this.value);
|
517 | 695e1b21 | Dimitris Moraitis | var i = disks.indexOf(v);
|
518 | 695e1b21 | Dimitris Moraitis | if (isNaN(v)) {
|
519 | 695e1b21 | Dimitris Moraitis | $(this).value = disks[0];
|
520 | 695e1b21 | Dimitris Moraitis | $("#storage").data('rangeinput').setValue(0);
|
521 | 695e1b21 | Dimitris Moraitis | } else if (i == -1) {
|
522 | 695e1b21 | Dimitris Moraitis | for (var j=0; j < disks.length; j++)
|
523 | 695e1b21 | Dimitris Moraitis | if (v<disks[j])
|
524 | 695e1b21 | Dimitris Moraitis | break;
|
525 | 695e1b21 | Dimitris Moraitis | $("#storage").data('rangeinput').setValue(j);
|
526 | 695e1b21 | Dimitris Moraitis | } else {
|
527 | 695e1b21 | Dimitris Moraitis | $("#storage").data('rangeinput').setValue(i);
|
528 | f533f224 | Vangelis Koukis | }
|
529 | 695e1b21 | Dimitris Moraitis | return false;
|
530 | 695e1b21 | Dimitris Moraitis | });
|
531 | 695e1b21 | Dimitris Moraitis | |
532 | bd8b1d60 | Christodoulos Psaltis | // selecting the small size
|
533 | 8fd5c3a5 | Christodoulos Psaltis | $("#small").click(function(){
|
534 | 71642965 | Dimitris Moraitis | $("#cpu").data('rangeinput').setValue(0);
|
535 | 71642965 | Dimitris Moraitis | $("#ram").data('rangeinput').setValue(0);
|
536 | 71642965 | Dimitris Moraitis | $("#storage").data('rangeinput').setValue(0);
|
537 | 68a49035 | Dimitris Moraitis | $("#cpu-indicator")[0].value = cpus[0];
|
538 | 68a49035 | Dimitris Moraitis | $("#ram-indicator")[0].value = ram[0];
|
539 | 68a49035 | Dimitris Moraitis | $("#storage-indicator")[0].value = disks[0];
|
540 | 94adeabb | Mike Muzurakis | $("#small").addClass("active");
|
541 | f533f224 | Vangelis Koukis | $("#medium").removeClass("active");
|
542 | f533f224 | Vangelis Koukis | $("#large").removeClass("active");
|
543 | f533f224 | Vangelis Koukis | $("#custom").removeClass("active");
|
544 | cc7c5902 | Dimitris Moraitis | });
|
545 | cc7c5902 | Dimitris Moraitis | |
546 | bd8b1d60 | Christodoulos Psaltis | // selecting the medium size
|
547 | 8fd5c3a5 | Christodoulos Psaltis | $("#medium").click(function(){
|
548 | 71642965 | Dimitris Moraitis | $("#cpu").data('rangeinput').setValue(1);
|
549 | 71642965 | Dimitris Moraitis | $("#ram").data('rangeinput').setValue(1);
|
550 | 71642965 | Dimitris Moraitis | $("#storage").data('rangeinput').setValue(1);
|
551 | 68a49035 | Dimitris Moraitis | $("#cpu-indicator")[0].value = cpus[1];
|
552 | 68a49035 | Dimitris Moraitis | $("#ram-indicator")[0].value = ram[1];
|
553 | f533f224 | Vangelis Koukis | $("#storage-indicator")[0].value = disks[1];
|
554 | f533f224 | Vangelis Koukis | $("#medium").addClass("active");
|
555 | f533f224 | Vangelis Koukis | $("#small").removeClass("active");
|
556 | f533f224 | Vangelis Koukis | $("#large").removeClass("active");
|
557 | f533f224 | Vangelis Koukis | $("#custom").removeClass("active");
|
558 | cc7c5902 | Dimitris Moraitis | });
|
559 | cc7c5902 | Dimitris Moraitis | |
560 | bd8b1d60 | Christodoulos Psaltis | // selecting the large size
|
561 | 8fd5c3a5 | Christodoulos Psaltis | $("#large").click(function(){
|
562 | 71642965 | Dimitris Moraitis | $("#cpu").data('rangeinput').setValue(2);
|
563 | 71642965 | Dimitris Moraitis | $("#ram").data('rangeinput').setValue(2);
|
564 | 71642965 | Dimitris Moraitis | $("#storage").data('rangeinput').setValue(2);
|
565 | 68a49035 | Dimitris Moraitis | $("#cpu-indicator")[0].value = cpus[2];
|
566 | 68a49035 | Dimitris Moraitis | $("#ram-indicator")[0].value = ram[2];
|
567 | f533f224 | Vangelis Koukis | $("#storage-indicator")[0].value = disks[2];
|
568 | f533f224 | Vangelis Koukis | $("#large").addClass("active");
|
569 | f533f224 | Vangelis Koukis | $("#medium").removeClass("active");
|
570 | f533f224 | Vangelis Koukis | $("#small").removeClass("active");
|
571 | f533f224 | Vangelis Koukis | $("#custom").removeClass("active");
|
572 | cc7c5902 | Dimitris Moraitis | });
|
573 | cc7c5902 | Dimitris Moraitis | |
574 | bd8b1d60 | Christodoulos Psaltis | // selecting the custom flavor enables the sliders
|
575 | 8fd5c3a5 | Christodoulos Psaltis | $("#custom").click(function(){
|
576 | bd8b1d60 | Christodoulos Psaltis | $("#cpu").attr('disabled',false);
|
577 | bd8b1d60 | Christodoulos Psaltis | $("#ram").attr('disabled',false);
|
578 | bd8b1d60 | Christodoulos Psaltis | $("#storage").attr('disabled',false);
|
579 | bd8b1d60 | Christodoulos Psaltis | $("strong.sliders").style = 'color: #778899;';
|
580 | f533f224 | Vangelis Koukis | $("#custom input").attr('checked', 'checked');
|
581 | f533f224 | Vangelis Koukis | $("#custom").addClass("active");
|
582 | f533f224 | Vangelis Koukis | $("#medium").removeClass("active");
|
583 | f533f224 | Vangelis Koukis | $("#large").removeClass("active");
|
584 | f533f224 | Vangelis Koukis | $("#small").removeClass("active");
|
585 | bd8b1d60 | Christodoulos Psaltis | });
|
586 | bd8b1d60 | Christodoulos Psaltis | |
587 | 99721d83 | Mike Muzurakis | //when textbox gains focus, add selection in css
|
588 | 99721d83 | Mike Muzurakis | $('#cpu-indicator').focus(function() {
|
589 | 99721d83 | Mike Muzurakis | $(this).addClass('selectedrange');
|
590 | 99721d83 | Mike Muzurakis | });
|
591 | f533f224 | Vangelis Koukis | |
592 | 99721d83 | Mike Muzurakis | $('#ram-indicator').focus(function() {
|
593 | 99721d83 | Mike Muzurakis | $(this).addClass('selectedrange');
|
594 | 99721d83 | Mike Muzurakis | });
|
595 | f533f224 | Vangelis Koukis | |
596 | 99721d83 | Mike Muzurakis | $('#storage-indicator').focus(function() {
|
597 | 99721d83 | Mike Muzurakis | $(this).addClass('selectedrange');
|
598 | 99721d83 | Mike Muzurakis | });
|
599 | 99721d83 | Mike Muzurakis | |
600 | 99721d83 | Mike Muzurakis | //when textbox loses focus, clear selection in css
|
601 | 99721d83 | Mike Muzurakis | $('#cpu-indicator').blur(function() {
|
602 | 99721d83 | Mike Muzurakis | $(this).removeClass('selectedrange');
|
603 | 99721d83 | Mike Muzurakis | });
|
604 | f533f224 | Vangelis Koukis | |
605 | 99721d83 | Mike Muzurakis | $('#ram-indicator').blur(function() {
|
606 | 99721d83 | Mike Muzurakis | $(this).removeClass('selectedrange');
|
607 | 99721d83 | Mike Muzurakis | });
|
608 | f533f224 | Vangelis Koukis | |
609 | 99721d83 | Mike Muzurakis | $('#storage-indicator').blur(function() {
|
610 | 99721d83 | Mike Muzurakis | $(this).removeClass('selectedrange');
|
611 | 99721d83 | Mike Muzurakis | });
|
612 | 99721d83 | Mike Muzurakis | |
613 | bd8b1d60 | Christodoulos Psaltis | // exit the wizard
|
614 | 0c2ad1b7 | Christodoulos Psaltis | $("#cancel").click(function() {
|
615 | f533f224 | Vangelis Koukis | $("#machines-pane a#create").overlay().close();
|
616 | cc7c5902 | Dimitris Moraitis | });
|
617 | cc7c5902 | Dimitris Moraitis | |
618 | bd8b1d60 | Christodoulos Psaltis | // starting a new VM through the wizard
|
619 | 0c2ad1b7 | Christodoulos Psaltis | $("#start").click(function() {
|
620 | f533f224 | Vangelis Koukis | var imageRef = $('input[type=radio][name=image-id]:checked')[0].id.replace('img-radio-','');
|
621 | b335768e | Markos Gogoulos | var flavorRef = identify_flavor($("#cpu-indicator")[0].value, $("#storage-indicator")[0].value, $("#ram-indicator")[0].value);
|
622 | 20fae095 | Christodoulos Psaltis | var machineName = $('input[name=machine_name]')[0].value;
|
623 | 5d3c8f3f | Mike Muzurakis | if (jQuery.trim(machineName) == ''){
|
624 | 5d3c8f3f | Mike Muzurakis | return false;
|
625 | 5d3c8f3f | Mike Muzurakis | }
|
626 | 71642965 | Dimitris Moraitis | |
627 | 0c2ad1b7 | Christodoulos Psaltis | // replace text 'create new' with progress indicator
|
628 | 0c2ad1b7 | Christodoulos Psaltis | $(this).text('');
|
629 | 0c2ad1b7 | Christodoulos Psaltis | $(this).html('<img src="static/icons/indicators/medium/horizontal-progress.gif" / >');
|
630 | 0c2ad1b7 | Christodoulos Psaltis | // disable submit button to prevent multiple calls
|
631 | 0c2ad1b7 | Christodoulos Psaltis | $(this).attr("disabled", true);
|
632 | f533f224 | Vangelis Koukis | |
633 | f533f224 | Vangelis Koukis | create_vm(machineName, imageRef, flavorRef);
|
634 | 2f86374f | Dimitris Moraitis | |
635 | 0c2ad1b7 | Christodoulos Psaltis | try {
|
636 | 0c2ad1b7 | Christodoulos Psaltis | console.warn('creating ' + $("input[name=machine_name]")[0].value);
|
637 | 0c2ad1b7 | Christodoulos Psaltis | } catch(err){}
|
638 | 285a1fa8 | Dimitris Moraitis | |
639 | cc7c5902 | Dimitris Moraitis | });
|
640 | cc7c5902 | Dimitris Moraitis | |
641 | 71eade6b | Christodoulos Psaltis | // metadata wizard
|
642 | 71eade6b | Christodoulos Psaltis | $(function() {
|
643 | 71eade6b | Christodoulos Psaltis | // create wizard overlay
|
644 | 71eade6b | Christodoulos Psaltis | $("a#metadata-scrollable").overlay({
|
645 | 716c3ead | Dimitris Moraitis | mask: '#666',
|
646 | c902e956 | Christodoulos Psaltis | effect: 'default',
|
647 | c902e956 | Christodoulos Psaltis | top: '10%',
|
648 | c902e956 | Christodoulos Psaltis | closeOnClick: false,
|
649 | c902e956 | Christodoulos Psaltis | oneInstance: false,
|
650 | 3f99cc60 | Mike Muzurakis | closeOnEsc: false,
|
651 | 08cc1924 | Christodoulos Psaltis | load: false,
|
652 | 0c2ad1b7 | Christodoulos Psaltis | onClose: function() {
|
653 | 71eade6b | Christodoulos Psaltis | // reset input areas
|
654 | f533f224 | Vangelis Koukis | serverID = $("#metadata-wizard p:first").text();
|
655 | f533f224 | Vangelis Koukis | $("#metadata-wizard div.metadata-container").empty();
|
656 | f533f224 | Vangelis Koukis | get_metadata(serverID, true);
|
657 | 08cc1924 | Christodoulos Psaltis | }
|
658 | c902e956 | Christodoulos Psaltis | });
|
659 | 71eade6b | Christodoulos Psaltis | });
|
660 | 71eade6b | Christodoulos Psaltis | |
661 | f533f224 | Vangelis Koukis | // bring up metadata overlay
|
662 | 71eade6b | Christodoulos Psaltis | function show_metadata_wizard() {
|
663 | 5186eb04 | Christodoulos Psaltis | // get metadata for current server and fill the dialog
|
664 | f533f224 | Vangelis Koukis | serverID = $("#metadata-wizard p:first").text();
|
665 | 5186eb04 | Christodoulos Psaltis | get_metadata(serverID);
|
666 | 71eade6b | Christodoulos Psaltis | $("#metadata-wizard").show();
|
667 | 71eade6b | Christodoulos Psaltis | $("a#metadata-scrollable").data('overlay').load();
|
668 | f533f224 | Vangelis Koukis | $('#metadata-wizard .large-spinner').show();
|
669 | f533f224 | Vangelis Koukis | return false;
|
670 | 191ee58e | Christodoulos Psaltis | }
|
671 | 191ee58e | Christodoulos Psaltis | |
672 | 71eade6b | Christodoulos Psaltis | // update metadata list
|
673 | f533f224 | Vangelis Koukis | function list_metadata(data) {
|
674 | 71eade6b | Christodoulos Psaltis | // empty the list if it already exists
|
675 | f533f224 | Vangelis Koukis | $("#metadata-wizard div.metadata-container").empty();
|
676 | 71eade6b | Christodoulos Psaltis | // get the values to show
|
677 | 71eade6b | Christodoulos Psaltis | meta = data.metadata.values;
|
678 | f533f224 | Vangelis Koukis | // set serve icon
|
679 | f533f224 | Vangelis Koukis | var icon_name = os_icon(data.metadata);
|
680 | f533f224 | Vangelis Koukis | $("#metadata-wizard .machine-icon").attr("src","static/icons/machines/small/" + icon_name + '-' + $("#metadata-wizard div#on-off").text() + '.png');
|
681 | 71eade6b | Christodoulos Psaltis | // show values
|
682 | 71eade6b | Christodoulos Psaltis | for (key in meta) {
|
683 | f533f224 | Vangelis Koukis | pair = $("#metadata-wizard div.metadata-pair-template:last").clone();
|
684 | 71eade6b | Christodoulos Psaltis | //truncate metadata
|
685 | f533f224 | Vangelis Koukis | pair.find("div.metadata-key").text(key.substring(0,15));
|
686 | 71eade6b | Christodoulos Psaltis | if (meta[key].length > 25) {
|
687 | f533f224 | Vangelis Koukis | pair.find("div.metadata-value").text(meta[key].substring(0,25) + "...");
|
688 | 71eade6b | Christodoulos Psaltis | } else {
|
689 | f533f224 | Vangelis Koukis | pair.find("div.metadata-value").text(meta[key]);
|
690 | 08cc1924 | Christodoulos Psaltis | }
|
691 | f533f224 | Vangelis Koukis | //get the serverID
|
692 | f533f224 | Vangelis Koukis | serverID = $("#metadata-wizard p:first").text();
|
693 | f533f224 | Vangelis Koukis | //store the full metadata value on a hidden div
|
694 | f533f224 | Vangelis Koukis | pair.find("div.metadata-full-value").text(meta[key]);
|
695 | f533f224 | Vangelis Koukis | // show/hide edit-remove buttons on hover
|
696 | f533f224 | Vangelis Koukis | pair.hover(function () {$(this).find('.metadata-edit').show();}, function () {$(this).find('.metadata-edit').hide();});
|
697 | f533f224 | Vangelis Koukis | // add it to the list
|
698 | f533f224 | Vangelis Koukis | pair.appendTo("#metadata-wizard div.metadata-container").fadeIn();
|
699 | 71eade6b | Christodoulos Psaltis | }
|
700 | c902e956 | Christodoulos Psaltis | }
|
701 | c902e956 | Christodoulos Psaltis | |
702 | f533f224 | Vangelis Koukis | // exit the metadata wizard
|
703 | f533f224 | Vangelis Koukis | $("#metadata-cancel").click(function(){
|
704 | f533f224 | Vangelis Koukis | $("a#metadata-scrollable").overlay().close();
|
705 | f533f224 | Vangelis Koukis | });
|
706 | f533f224 | Vangelis Koukis | |
707 | f533f224 | Vangelis Koukis | //intercept create new metadata click
|
708 | f533f224 | Vangelis Koukis | $("#metadata-wizard #metadata-create").click(function(){
|
709 | f533f224 | Vangelis Koukis | pair = $("#metadata-wizard div.metadata-add-template:first").clone();
|
710 | f533f224 | Vangelis Koukis | pair.prependTo("#metadata-wizard div.metadata-container").fadeIn();
|
711 | f533f224 | Vangelis Koukis | with (pair.find('input#add-meta-key')) {
|
712 | 17ee954a | Mike Muzurakis | with (pair.find('ul:first')) {
|
713 | f533f224 | Vangelis Koukis | find('li').click(function() {
|
714 | 17ee954a | Mike Muzurakis | $(this).parent().parent().find('.textdropdown-outer').find('input:first').attr('value', $(this).find('.dropdownitem').html());
|
715 | f533f224 | Vangelis Koukis | $(this).parent().hide();
|
716 | f533f224 | Vangelis Koukis | });
|
717 | f533f224 | Vangelis Koukis | hide();
|
718 | f533f224 | Vangelis Koukis | }
|
719 | cd154238 | Christodoulos Psaltis | |
720 | f533f224 | Vangelis Koukis | keypress(function() {
|
721 | f533f224 | Vangelis Koukis | $(this).parent().next('ul:first').hide();
|
722 | f533f224 | Vangelis Koukis | });
|
723 | f533f224 | Vangelis Koukis | |
724 | f533f224 | Vangelis Koukis | change(function() {
|
725 | f533f224 | Vangelis Koukis | $(this).parent().next('ul:first').hide();
|
726 | f533f224 | Vangelis Koukis | });
|
727 | f533f224 | Vangelis Koukis | |
728 | f533f224 | Vangelis Koukis | wrap('<div class="textdropdown-outer" style="width: ' + width() + 'px; height: ' + (height() + 5) + 'px"></div>');
|
729 | f533f224 | Vangelis Koukis | var btn = parent().prepend('<div class="textdropdown-btn"> </div>').find('.textdropdown-btn');
|
730 | f533f224 | Vangelis Koukis | width(width() - btn.width() - 5);
|
731 | f533f224 | Vangelis Koukis | css("border", "0");
|
732 | f533f224 | Vangelis Koukis | |
733 | f533f224 | Vangelis Koukis | btn.click(function() {
|
734 | 17ee954a | Mike Muzurakis | var p = $(this).parent();
|
735 | f533f224 | Vangelis Koukis | with (p.next('ul:first')) {
|
736 | 17ee954a | Mike Muzurakis | $(this).parent().parent().find('ul:first').css('position', 'absolute');
|
737 | 17ee954a | Mike Muzurakis | $(this).parent().parent().find('ul:first').css('width', p.width());
|
738 | 17ee954a | Mike Muzurakis | $(this).parent().parent().find('ul:first').css('left', p.position().left + 4);
|
739 | 17ee954a | Mike Muzurakis | $(this).parent().parent().find('ul:first').css('top', p.position().top + p.height() + 1);
|
740 | 17ee954a | Mike Muzurakis | var elem = $(this).parent().parent().find('ul:first')[0];
|
741 | 17ee954a | Mike Muzurakis | if(elem.style.display == 'none') {
|
742 | 17ee954a | Mike Muzurakis | $(this).parent().parent().find('ul:first').show();
|
743 | 17ee954a | Mike Muzurakis | } else {
|
744 | 17ee954a | Mike Muzurakis | $(this).parent().parent().find('ul:first').hide();
|
745 | 17ee954a | Mike Muzurakis | }
|
746 | 17ee954a | Mike Muzurakis | |
747 | f533f224 | Vangelis Koukis | }
|
748 | f533f224 | Vangelis Koukis | });
|
749 | f533f224 | Vangelis Koukis | }
|
750 | f533f224 | Vangelis Koukis | pair.find('input#add-meta-key').focus();
|
751 | 3f99cc60 | Mike Muzurakis | //submit keyword by pressing enter on the textbox
|
752 | 3f99cc60 | Mike Muzurakis | $(this).parent().parent().find('input#add-meta-value').keypress(function (e) {
|
753 | 3f99cc60 | Mike Muzurakis | if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
|
754 | 3f99cc60 | Mike Muzurakis | $(this).parent().parent().find('.addbuttons .save').click();
|
755 | 3f99cc60 | Mike Muzurakis | return false;
|
756 | 3f99cc60 | Mike Muzurakis | } else {
|
757 | 3f99cc60 | Mike Muzurakis | return true;
|
758 | 3f99cc60 | Mike Muzurakis | }
|
759 | 3f99cc60 | Mike Muzurakis | });
|
760 | f533f224 | Vangelis Koukis | });
|
761 | f533f224 | Vangelis Koukis | |
762 | f533f224 | Vangelis Koukis | //save new metadata
|
763 | f533f224 | Vangelis Koukis | $('#metadata-wizard .addbuttons .save').die('click');
|
764 | f533f224 | Vangelis Koukis | $('#metadata-wizard .addbuttons .save').live('click', function(){
|
765 | f533f224 | Vangelis Koukis | keyValue = $(this).parent().parent().find('input#add-meta-key').val();
|
766 | f533f224 | Vangelis Koukis | valValue = $(this).parent().parent().find('input#add-meta-value').val();
|
767 | f533f224 | Vangelis Koukis | if ((keyValue == '{% trans 'max 15 characters' %}') || (valValue == '{% trans 'max 150 characters' %}')) {
|
768 | 245c788e | Mike Muzurakis | return false;
|
769 | f533f224 | Vangelis Koukis | } else {
|
770 | f533f224 | Vangelis Koukis | serverID = $("#metadata-wizard p:first").text();
|
771 | f533f224 | Vangelis Koukis | pair = $("#metadata-wizard div.metadata-pair-template:last").clone();
|
772 | f533f224 | Vangelis Koukis | pair.find("div.metadata-key").text(keyValue.substring(0,15));
|
773 | f533f224 | Vangelis Koukis | if (valValue.length > 25) {
|
774 | f533f224 | Vangelis Koukis | pair.find("div.metadata-value").text(valValue.substring(0,25) + "...");
|
775 | f533f224 | Vangelis Koukis | } else {
|
776 | f533f224 | Vangelis Koukis | pair.find("div.metadata-value").text(valValue);
|
777 | f533f224 | Vangelis Koukis | }
|
778 | f533f224 | Vangelis Koukis | pair.find("div.metadata-full-value").text(valValue);
|
779 | f533f224 | Vangelis Koukis | update_metadata(serverID, keyValue, valValue);
|
780 | f533f224 | Vangelis Koukis | $(this).parent().parent().remove();
|
781 | f533f224 | Vangelis Koukis | pair.hover(function () {$(this).find('.metadata-edit').show();}, function () {$(this).find('.metadata-edit').hide();});
|
782 | f533f224 | Vangelis Koukis | // add it to the list
|
783 | f533f224 | Vangelis Koukis | if ($("#metadata-wizard div.metadata-container").find("div.metadata-pair-template").length > 0) {
|
784 | f533f224 | Vangelis Koukis | pair.insertBefore("#metadata-wizard div.metadata-container div.metadata-pair-template:first").fadeIn();
|
785 | f533f224 | Vangelis Koukis | } else {
|
786 | f533f224 | Vangelis Koukis | pair.prependTo("#metadata-wizard div.metadata-container").fadeIn();
|
787 | f533f224 | Vangelis Koukis | }
|
788 | 245c788e | Mike Muzurakis | }
|
789 | cd154238 | Christodoulos Psaltis | });
|
790 | cd154238 | Christodoulos Psaltis | |
791 | f533f224 | Vangelis Koukis | //intercept cancel new metadata creation
|
792 | f533f224 | Vangelis Koukis | $("#metadata-wizard .addbuttons .cancel").die('click');
|
793 | f533f224 | Vangelis Koukis | $("#metadata-wizard .addbuttons .cancel").live('click',function(){
|
794 | 3f99cc60 | Mike Muzurakis | $(this).parent().parent().fadeOut('fast', function() { $(this).remove(); });
|
795 | c902e956 | Christodoulos Psaltis | });
|
796 | c902e956 | Christodoulos Psaltis | |
797 | f533f224 | Vangelis Koukis | //metadata remove button
|
798 | f533f224 | Vangelis Koukis | $("#metadata-wizard .metadata-edit .remove").die('click')
|
799 | f533f224 | Vangelis Koukis | $("#metadata-wizard .metadata-edit .remove").live('click', function() {
|
800 | f533f224 | Vangelis Koukis | $(this).parent().parent().fadeOut('slow');
|
801 | f533f224 | Vangelis Koukis | serverID = $("#metadata-wizard p:first").text();
|
802 | f533f224 | Vangelis Koukis | keyValue = $(this).parent().parent().find('div.metadata-key').text();
|
803 | f533f224 | Vangelis Koukis | //update icons if deleting the OS metadata
|
804 | f533f224 | Vangelis Koukis | if (keyValue == "OS") {
|
805 | f533f224 | Vangelis Koukis | $("#metadata-wizard .machine-icon").attr("src","static/icons/machines/small/unknown-" + $("#metadata-wizard div#on-off").text() + '.png');
|
806 | f533f224 | Vangelis Koukis | $("#machinesview-icon").find("div#" + serverID).find("img.logo").attr("src", "static/icons/machines/medium/unknown-" + $("#metadata-wizard div#on-off").text() + '.png');
|
807 | f533f224 | Vangelis Koukis | }
|
808 | f533f224 | Vangelis Koukis | delete_metadata(serverID, keyValue);
|
809 | f533f224 | Vangelis Koukis | });
|
810 | f533f224 | Vangelis Koukis | |
811 | f533f224 | Vangelis Koukis | //metadata edit button
|
812 | f533f224 | Vangelis Koukis | $("#metadata-wizard .metadata-edit .edit").die('click');
|
813 | f533f224 | Vangelis Koukis | $("#metadata-wizard .metadata-edit .edit").live('click', function() {
|
814 | f533f224 | Vangelis Koukis | $(this).parent().parent().find('div.metadata-value').html("<input id=\"value-edit\" maxlength=\"150\" type=\"text\" class=\"metatextbox\" value=\"" + $(this).parent().parent().find('.metadata-full-value').text() +
|
815 | f533f224 | Vangelis Koukis | "\" / ><span class=\"oldValue\">" +
|
816 | f533f224 | Vangelis Koukis | $(this).parent().parent().find('.metadata-full-value').text() + "</span>");
|
817 | 3f99cc60 | Mike Muzurakis | //submit keyword by pressing enter on the textbox
|
818 | 3f99cc60 | Mike Muzurakis | $(this).parent().parent().find('input.metatextbox').keypress(function (e) {
|
819 | 3f99cc60 | Mike Muzurakis | if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
|
820 | 3f99cc60 | Mike Muzurakis | $(this).parent().parent().find('.editbuttons .save').click();
|
821 | 3f99cc60 | Mike Muzurakis | return false;
|
822 | 3f99cc60 | Mike Muzurakis | } else {
|
823 | 3f99cc60 | Mike Muzurakis | return true;
|
824 | 3f99cc60 | Mike Muzurakis | }
|
825 | 3f99cc60 | Mike Muzurakis | });
|
826 | 3f99cc60 | Mike Muzurakis | $(this).parent().parent().find('input.metatextbox').select()
|
827 | f533f224 | Vangelis Koukis | $(this).parent().hide();
|
828 | f533f224 | Vangelis Koukis | $(this).parent().parent().unbind('mouseenter').unbind('mouseleave');
|
829 | f533f224 | Vangelis Koukis | $(this).parent().parent().find('.editbuttons').show();
|
830 | f533f224 | Vangelis Koukis | });
|
831 | f533f224 | Vangelis Koukis | |
832 | 3f99cc60 | Mike Muzurakis | //capture Esc key
|
833 | 3f99cc60 | Mike Muzurakis | bar = {};
|
834 | 4ea5cc44 | Mike Muzurakis | bar.keydown = function(e) {
|
835 | 3f99cc60 | Mike Muzurakis | if (e.keyCode == 27) {
|
836 | 3f99cc60 | Mike Muzurakis | //if we are inside an add or edit textbox, cancel editing
|
837 | 3f99cc60 | Mike Muzurakis | if ($('input.metatextbox:focus').length > 0) {
|
838 | 3f99cc60 | Mike Muzurakis | $('input.metatextbox:focus').parent().parent().find('.editbuttons .remove').click();
|
839 | 3f99cc60 | Mike Muzurakis | } else if ($('input#add-meta-key:focus').length > 0) {
|
840 | 3f99cc60 | Mike Muzurakis | $('input#add-meta-key:focus').parent().parent().find('.addbuttons .cancel').click();
|
841 | 3f99cc60 | Mike Muzurakis | } else if ($('input#add-meta-value:focus').length > 0) {
|
842 | 3f99cc60 | Mike Muzurakis | $('input#add-meta-value:focus').parent().parent().find('.addbuttons .cancel').click();
|
843 | 3f99cc60 | Mike Muzurakis | } else {
|
844 | 3f99cc60 | Mike Muzurakis | //else close the metadata wizard
|
845 | 3f99cc60 | Mike Muzurakis | $("a#metadata-scrollable").overlay().close();
|
846 | 3f99cc60 | Mike Muzurakis | }
|
847 | 3f99cc60 | Mike Muzurakis | e.preventDefault();
|
848 | 3f99cc60 | Mike Muzurakis | e.stopPropagation();
|
849 | 3f99cc60 | Mike Muzurakis | }
|
850 | 3f99cc60 | Mike Muzurakis | };
|
851 | 4ea5cc44 | Mike Muzurakis | document.keydown = bar.keydown;
|
852 | 3f99cc60 | Mike Muzurakis | |
853 | f533f224 | Vangelis Koukis | //metadata cancel edit button
|
854 | f533f224 | Vangelis Koukis | $("#metadata-wizard .editbuttons .remove").die('click');
|
855 | f533f224 | Vangelis Koukis | $("#metadata-wizard .editbuttons .remove").live('click', function() {
|
856 | f533f224 | Vangelis Koukis | var oldValue = $(this).parent().parent().find('.oldValue').text();
|
857 | f533f224 | Vangelis Koukis | if (oldValue.length > 25) {
|
858 | f533f224 | Vangelis Koukis | oldValue = oldValue.substring(0,25) + "...";
|
859 | f533f224 | Vangelis Koukis | }
|
860 | f533f224 | Vangelis Koukis | $(this).parent().parent().find('div.metadata-value').html(oldValue);
|
861 | f533f224 | Vangelis Koukis | $(this).parent().parent().hover(function () {$(this).find('.metadata-edit').show();}, function () {$(this).find('.metadata-edit').hide();});
|
862 | f533f224 | Vangelis Koukis | $(this).parent().hide();
|
863 | f533f224 | Vangelis Koukis | });
|
864 | f533f224 | Vangelis Koukis | |
865 | 3f99cc60 | Mike Muzurakis | |
866 | f533f224 | Vangelis Koukis | //metadata save edit button
|
867 | f533f224 | Vangelis Koukis | $("#metadata-wizard .editbuttons .save").die('click');
|
868 | f533f224 | Vangelis Koukis | $("#metadata-wizard .editbuttons .save").live('click', function() {
|
869 | f533f224 | Vangelis Koukis | newValue = $(this).parent().parent().find('input.metatextbox').val();
|
870 | f533f224 | Vangelis Koukis | keyValue = $(this).parent().parent().find('div.metadata-key').text();
|
871 | f533f224 | Vangelis Koukis | oldValue = $(this).parent().parent().find('.oldValue').text();
|
872 | f533f224 | Vangelis Koukis | if (!(newValue == oldValue)) {
|
873 | f533f224 | Vangelis Koukis | update_metadata(serverID, keyValue, newValue);
|
874 | f533f224 | Vangelis Koukis | }
|
875 | f533f224 | Vangelis Koukis | if (newValue.length > 25) {
|
876 | f533f224 | Vangelis Koukis | newValueSort = newValue.substring(0,25) + "...";
|
877 | f533f224 | Vangelis Koukis | } else {
|
878 | f533f224 | Vangelis Koukis | newValueSort = newValue
|
879 | f533f224 | Vangelis Koukis | }
|
880 | f533f224 | Vangelis Koukis | $(this).parent().parent().find('div.metadata-value').html(newValueSort);
|
881 | f533f224 | Vangelis Koukis | $(this).parent().parent().find('div.metadata-full-value').html(newValue);
|
882 | f533f224 | Vangelis Koukis | $(this).parent().parent().hover(function () {$(this).find('.metadata-edit').show();}, function () {$(this).find('.metadata-edit').hide();});
|
883 | f533f224 | Vangelis Koukis | $(this).parent().hide();
|
884 | 3a68225a | Christodoulos Psaltis | |
885 | 3a68225a | Christodoulos Psaltis | });
|
886 | 3a68225a | Christodoulos Psaltis | |
887 | f1805aa3 | Christodoulos Psaltis | // intercept create metadata key focus
|
888 | f533f224 | Vangelis Koukis | $("#metadata-wizard input#add-meta-key").live('focusin', function() {
|
889 | f533f224 | Vangelis Koukis | if ($(this).parent().hasClass("div-enabled")) {
|
890 | f1805aa3 | Christodoulos Psaltis | } else {
|
891 | f533f224 | Vangelis Koukis | $(this).parent().addClass("div-enabled");
|
892 | f533f224 | Vangelis Koukis | $(this).addClass("input-enabled");
|
893 | f533f224 | Vangelis Koukis | if (this.value == '{% trans 'max 15 characters' %}') {
|
894 | f533f224 | Vangelis Koukis | this.value = '';
|
895 | f533f224 | Vangelis Koukis | }
|
896 | f1805aa3 | Christodoulos Psaltis | }
|
897 | f1805aa3 | Christodoulos Psaltis | return false;
|
898 | f1805aa3 | Christodoulos Psaltis | });
|
899 | f1805aa3 | Christodoulos Psaltis | |
900 | f1805aa3 | Christodoulos Psaltis | // intercept create metadata key focus out
|
901 | f533f224 | Vangelis Koukis | $("#metadata-wizard input#add-meta-key").live('focusout', function() {
|
902 | f533f224 | Vangelis Koukis | $(this).parent().removeClass("div-enabled");
|
903 | f1805aa3 | Christodoulos Psaltis | if (this.value == "") {
|
904 | f533f224 | Vangelis Koukis | $(this).removeClass("input-enabled");
|
905 | f533f224 | Vangelis Koukis | this.value = '{% trans 'max 15 characters' %}';
|
906 | f1805aa3 | Christodoulos Psaltis | }
|
907 | f1805aa3 | Christodoulos Psaltis | return false;
|
908 | f1805aa3 | Christodoulos Psaltis | });
|
909 | f1805aa3 | Christodoulos Psaltis | |
910 | f533f224 | Vangelis Koukis | |
911 | f533f224 | Vangelis Koukis | // intercept metadata dropdown item click
|
912 | f533f224 | Vangelis Koukis | $(".metadata-add-template li").live('click', function() {
|
913 | f533f224 | Vangelis Koukis | $(this).parent().parent().parent().find("input#add-meta-value").focus();
|
914 | f533f224 | Vangelis Koukis | $(this).parent().parent().parent().find("input#add-meta-key").addClass("input-enabled");
|
915 | f533f224 | Vangelis Koukis | });
|
916 | f533f224 | Vangelis Koukis | |
917 | f1805aa3 | Christodoulos Psaltis | // intercept create metadata key focus
|
918 | f533f224 | Vangelis Koukis | $("#metadata-wizard input#add-meta-value").live('focusin', function() {
|
919 | f1805aa3 | Christodoulos Psaltis | if ($(this).hasClass("input-enabled")) {
|
920 | f1805aa3 | Christodoulos Psaltis | } else {
|
921 | f533f224 | Vangelis Koukis | $(this).addClass("input-enabled");
|
922 | f1805aa3 | Christodoulos Psaltis | this.value = '';
|
923 | f1805aa3 | Christodoulos Psaltis | }
|
924 | f1805aa3 | Christodoulos Psaltis | return false;
|
925 | f1805aa3 | Christodoulos Psaltis | });
|
926 | f1805aa3 | Christodoulos Psaltis | |
927 | f1805aa3 | Christodoulos Psaltis | // intercept create metadata key focus out
|
928 | f533f224 | Vangelis Koukis | $("#metadata-wizard input#add-meta-value").live('focusout', function() {
|
929 | f1805aa3 | Christodoulos Psaltis | if (this.value == "") {
|
930 | f533f224 | Vangelis Koukis | $(this).removeClass("input-enabled");
|
931 | f533f224 | Vangelis Koukis | this.value = '{% trans 'max 150 characters' %}';
|
932 | f1805aa3 | Christodoulos Psaltis | }
|
933 | f1805aa3 | Christodoulos Psaltis | return false;
|
934 | f1805aa3 | Christodoulos Psaltis | });
|
935 | f1805aa3 | Christodoulos Psaltis | |
936 | 191ee58e | Christodoulos Psaltis | // intercept click on cancel button in metadata add dialog
|
937 | 191ee58e | Christodoulos Psaltis | $('#add-dialog button.cancel').live('click', function() {
|
938 | f533f224 | Vangelis Koukis | |
939 | 191ee58e | Christodoulos Psaltis | });
|
940 | 191ee58e | Christodoulos Psaltis | |
941 | c902e956 | Christodoulos Psaltis | // intercept click on save button in metadata add dialog
|
942 | 71eade6b | Christodoulos Psaltis | $('#add-dialog button.save').live('click', function() {
|
943 | f533f224 | Vangelis Koukis | // if both fields are filled in
|
944 | f1805aa3 | Christodoulos Psaltis | if ($('input.key').hasClass("input-enabled") && $('textarea.value').hasClass("input-enabled")) {
|
945 | f533f224 | Vangelis Koukis | // get the server id, meta key and meta value needed for the ajax call
|
946 | 16e27b76 | Markos Gogoulos | var serverID = $(this).parent().find('h3 p').text();
|
947 | 16e27b76 | Markos Gogoulos | var meta_key = $(this).parent().find('input.key').attr('value');
|
948 | 7330b4c1 | Dimitris Moraitis | var meta_value = $(this).parent().find('textarea.value')[0].value;
|
949 | 16e27b76 | Markos Gogoulos | // make the ajax call and list the new GET results
|
950 | 16e27b76 | Markos Gogoulos | add_metadata(serverID, meta_key, meta_value);
|
951 | 71eade6b | Christodoulos Psaltis | // go to previous step
|
952 | 71eade6b | Christodoulos Psaltis | $('#add-dialog button.prev').click();
|
953 | 16e27b76 | Markos Gogoulos | } else {
|
954 | f1805aa3 | Christodoulos Psaltis | // find which field is not filled in and focus there
|
955 | f1805aa3 | Christodoulos Psaltis | if (!$('input.key').hasClass("input-enabled")) {
|
956 | f1805aa3 | Christodoulos Psaltis | $('input.key').focus();
|
957 | 7330b4c1 | Dimitris Moraitis | $('input.key').focusin();
|
958 | f1805aa3 | Christodoulos Psaltis | } else {
|
959 | 7330b4c1 | Dimitris Moraitis | $('textarea.value').focus();
|
960 | 7330b4c1 | Dimitris Moraitis | $('textarea.value').focusin();
|
961 | f1805aa3 | Christodoulos Psaltis | }
|
962 | 16e27b76 | Markos Gogoulos | }
|
963 | 0c578a28 | Markos Gogoulos | return false;
|
964 | c902e956 | Christodoulos Psaltis | });
|
965 | c902e956 | Christodoulos Psaltis | |
966 | 71eade6b | Christodoulos Psaltis | // confirm all actions
|
967 | f533f224 | Vangelis Koukis | $("#machines-pane div.confirm_multiple .yes").live('click', function(){
|
968 | 71eade6b | Christodoulos Psaltis | while(pending_actions.length > 0){ // if there is a pending action for this server execute it
|
969 | 71eade6b | Christodoulos Psaltis | action = pending_actions.pop(); // extract action
|
970 | 71eade6b | Christodoulos Psaltis | var serverID = action[1];
|
971 | f533f224 | Vangelis Koukis | if ($.cookie("view") != '1') { // standard view
|
972 | 71eade6b | Christodoulos Psaltis | $('#' + serverID + ' .selected').removeClass('selected');
|
973 | 71eade6b | Christodoulos Psaltis | $('#' + serverID + ' .display').removeClass('display');
|
974 | 71eade6b | Christodoulos Psaltis | if (action[0] == shutdown) {
|
975 | f533f224 | Vangelis Koukis | $('#' + serverID + ' .status').text(TRANSITIONS['Shutting down']);
|
976 | ed7b588e | Christodoulos Psaltis | $('#' + serverID + ' .state').removeClass().addClass('state shutting-state');
|
977 | 71eade6b | Christodoulos Psaltis | } else if (action[0] == start) {
|
978 | f533f224 | Vangelis Koukis | $('#' + serverID + ' .status').text(TRANSITIONS['Starting']);
|
979 | ed7b588e | Christodoulos Psaltis | $('#' + serverID + ' .state').removeClass().addClass('state starting-state');
|
980 | 71eade6b | Christodoulos Psaltis | } else if (action[0] == reboot) {
|
981 | f533f224 | Vangelis Koukis | $('#' + serverID + ' .status').text(TRANSITIONS['Rebooting']);
|
982 | ed7b588e | Christodoulos Psaltis | $('#' + serverID + ' .state').removeClass().addClass('state rebooting-state');
|
983 | 71eade6b | Christodoulos Psaltis | } else if (action[0] == destroy) {
|
984 | f533f224 | Vangelis Koukis | $('#' + serverID + ' .status').text(TRANSITIONS['Destroying']);
|
985 | ed7b588e | Christodoulos Psaltis | $('#' + serverID + ' .state').removeClass().addClass('state destroying-state');
|
986 | 71eade6b | Christodoulos Psaltis | }
|
987 | 71eade6b | Christodoulos Psaltis | $('#' + serverID + ' .spinner').show();
|
988 | 71eade6b | Christodoulos Psaltis | } else { // list view
|
989 | 71eade6b | Christodoulos Psaltis | osIcon = $('#'+serverID).parent().parent().find('.list-logo');
|
990 | 71eade6b | Christodoulos Psaltis | osIcon.attr('os',osIcon.attr('src'));
|
991 | f533f224 | Vangelis Koukis | osIcon.attr('src','static/icons/indicators/small/progress.gif');
|
992 | 71eade6b | Christodoulos Psaltis | if (action[0] == shutdown) {
|
993 | f533f224 | Vangelis Koukis | $('#' + serverID).parent().parent().find('span.status').text(TRANSITIONS['Shutting down']);
|
994 | 71eade6b | Christodoulos Psaltis | } else if (action[0] == start) {
|
995 | f533f224 | Vangelis Koukis | $('#' + serverID).parent().parent().find('span.status').text(TRANSITIONS['Starting']);
|
996 | 71eade6b | Christodoulos Psaltis | } else if (action[0] == reboot) {
|
997 | f533f224 | Vangelis Koukis | $('#' + serverID).parent().parent().find('span.status').text(TRANSITIONS['Rebooting']);
|
998 | 71eade6b | Christodoulos Psaltis | } else if (action[0] == destroy) {
|
999 | f533f224 | Vangelis Koukis | $('#' + serverID).parent().parent().find('span.status').text(TRANSITIONS['Destroying']);
|
1000 | 71eade6b | Christodoulos Psaltis | }
|
1001 | f9015c00 | Mike Muzurakis | }
|
1002 | 71eade6b | Christodoulos Psaltis | action[0]([serverID]); // execute action
|
1003 | 5186eb04 | Christodoulos Psaltis | }
|
1004 | 7ef7af3f | Mike Muzurakis | $('#machinesview-list .actions .selected').removeClass('selected');
|
1005 | f533f224 | Vangelis Koukis | update_confirmations();
|
1006 | f3b14a28 | Christodoulos Psaltis | return false;
|
1007 | 71eade6b | Christodoulos Psaltis | });
|
1008 | 71eade6b | Christodoulos Psaltis | |
1009 | 71eade6b | Christodoulos Psaltis | // cancel all actions
|
1010 | bb48e576 | Christodoulos Psaltis | $("#machines-pane div.confirm_multiple button.no").live('click', function(){
|
1011 | 71eade6b | Christodoulos Psaltis | pending_actions = [];
|
1012 | f533f224 | Vangelis Koukis | $('#machines-pane .machine .selected').removeClass('selected');
|
1013 | f533f224 | Vangelis Koukis | $('#machinesview-list .actions .selected').removeClass('selected');
|
1014 | f533f224 | Vangelis Koukis | $('#machines-pane .machine .display').removeClass('display');
|
1015 | bb48e576 | Christodoulos Psaltis | |
1016 | 71eade6b | Christodoulos Psaltis | update_confirmations();
|
1017 | f3b14a28 | Christodoulos Psaltis | return false;
|
1018 | 71eade6b | Christodoulos Psaltis | });
|
1019 | 5186eb04 | Christodoulos Psaltis | |
1020 | bd528b3b | Christodoulos Psaltis | // basic functions executed on page load
|
1021 | d134b632 | Dimitris Moraitis | if (images.length > 0) {
|
1022 | d134b632 | Dimitris Moraitis | // populate image list
|
1023 | d134b632 | Dimitris Moraitis | update_wizard_images();
|
1024 | d134b632 | Dimitris Moraitis | }
|
1025 | d134b632 | Dimitris Moraitis | if (flavors.length > 0) {
|
1026 | d134b632 | Dimitris Moraitis | // configure flavors
|
1027 | f533f224 | Vangelis Koukis | update_wizard_flavors();
|
1028 | d134b632 | Dimitris Moraitis | }
|
1029 | bd528b3b | Christodoulos Psaltis | // create tabs for main menu
|
1030 | bd528b3b | Christodoulos Psaltis | $("ul.tabs").tabs("div.panes ul");
|
1031 | bd528b3b | Christodoulos Psaltis | |
1032 | d2f03cb3 | Mike Muzurakis | //fix ie z-index bug by moving the overlays to the bottom
|
1033 | d2f03cb3 | Mike Muzurakis | $(document).ready(function() {
|
1034 | d2f03cb3 | Mike Muzurakis | if ($.browser.msie) {
|
1035 | d2f03cb3 | Mike Muzurakis | $("body").append($("#wizard"));
|
1036 | d2f03cb3 | Mike Muzurakis | $("body").append($("#metadata-wizard"));
|
1037 | d2f03cb3 | Mike Muzurakis | }
|
1038 | d2f03cb3 | Mike Muzurakis | });
|
1039 | d2f03cb3 | Mike Muzurakis | |
1040 | 17ee954a | Mike Muzurakis | //IE specific fixes
|
1041 | 17ee954a | Mike Muzurakis | if ($.browser.msie) {
|
1042 | 17ee954a | Mike Muzurakis | //IE fix for dropdown li hover
|
1043 | 17ee954a | Mike Muzurakis | $("#metadata-wizard ul li").live("mouseenter", function () {
|
1044 | 17ee954a | Mike Muzurakis | $(this).css("background-color","#efefef");
|
1045 | 17ee954a | Mike Muzurakis | $(this).css("cursor","pointer");
|
1046 | 17ee954a | Mike Muzurakis | });
|
1047 | 17ee954a | Mike Muzurakis | $("#metadata-wizard ul li").live("mouseleave", function () {
|
1048 | 17ee954a | Mike Muzurakis | $(this).css("background-color","transparent");
|
1049 | 17ee954a | Mike Muzurakis | $(this).css("cursor","default");
|
1050 | 17ee954a | Mike Muzurakis | });
|
1051 | 7f5b5a97 | Mike Muzurakis | //IE fix for metadata wizard hover
|
1052 | 7f5b5a97 | Mike Muzurakis | $("#metadata-wizard div.metadata-pair-template").live("mouseenter", function () {
|
1053 | 7f5b5a97 | Mike Muzurakis | $(this).css("background-color","#74aec9");
|
1054 | 7f5b5a97 | Mike Muzurakis | });
|
1055 | 7f5b5a97 | Mike Muzurakis | $("#metadata-wizard ul li").live("mouseleave", function () {
|
1056 | 7f5b5a97 | Mike Muzurakis | $(this).css("background-color","transparent");
|
1057 | 7f5b5a97 | Mike Muzurakis | });
|
1058 | 17ee954a | Mike Muzurakis | }
|
1059 | 17ee954a | Mike Muzurakis | |
1060 | 8400e1a5 | Markos Gogoulos | </script> |