Statistics
| Branch: | Tag: | Revision:

root / ui / templates / instances.html @ e690c75d

History | View | Annotate | Download (13.5 kB)

1 cc7c5902 Dimitris Moraitis
<a id="create" rel="#wizard" href="#">Create New +</a>
2 cc7c5902 Dimitris Moraitis
3 b303ba05 Christodoulos Psaltis
<div id="instancesview" class="standard">
4 cc7c5902 Dimitris Moraitis
    <a id="list" href="/instances/list">list view</a>
5 89976b6c Christodoulos Psaltis
    <div class="running">
6 89976b6c Christodoulos Psaltis
        {% for node in nodes %}
7 89976b6c Christodoulos Psaltis
            {% if node.state == '3' %}        
8 89976b6c Christodoulos Psaltis
                <div class="instance running">
9 89976b6c Christodoulos Psaltis
                    <div class="actions">
10 89976b6c Christodoulos Psaltis
                        <a href="#" class="action">reboot</a>
11 89976b6c Christodoulos Psaltis
                        <a href="#" class="action">shutdown</a>
12 89976b6c Christodoulos Psaltis
                        <a href="#" class="more">more &hellip;</a>
13 89976b6c Christodoulos Psaltis
                    </div>
14 89976b6c Christodoulos Psaltis
                    <div class="state">
15 89976b6c Christodoulos Psaltis
                        <div>Running</div>
16 89976b6c Christodoulos Psaltis
                        <div class="indicator" />
17 89976b6c Christodoulos Psaltis
                        <div class="indicator" />
18 89976b6c Christodoulos Psaltis
                        <div class="indicator" />
19 89976b6c Christodoulos Psaltis
                        <div class="indicator" />
20 89976b6c Christodoulos Psaltis
                        <div class="uptime">24 days uptime</div>
21 89976b6c Christodoulos Psaltis
                    </div>
22 89976b6c Christodoulos Psaltis
                    <img src="static/server.png" />
23 ea3cb4e4 Christodoulos Psaltis
                    <img class="os" src={{ node.thumb }} />
24 ea3cb4e4 Christodoulos Psaltis
                    <a href="#" class="name">
25 ea3cb4e4 Christodoulos Psaltis
                        <h3><span>{{ node.name }}</span><span class="rename">rename</span></h3>
26 ea3cb4e4 Christodoulos Psaltis
                    </a>
27 ea3cb4e4 Christodoulos Psaltis
                    <a href="#" class="ip">
28 ea3cb4e4 Christodoulos Psaltis
                        <h5><span>{{ node.public_ip }}</span><span class="configure">configure networking</span></h5>
29 ea3cb4e4 Christodoulos Psaltis
                    </a>
30 ea3cb4e4 Christodoulos Psaltis
                    <a href="#" class="storage">
31 ea3cb4e4 Christodoulos Psaltis
                        <h5>34GB of total storage in 3 volumes <span class="configure">configure storage</span></h5>
32 ea3cb4e4 Christodoulos Psaltis
                    </a>
33 ea3cb4e4 Christodoulos Psaltis
                    </div>
34 ea3cb4e4 Christodoulos Psaltis
                </div>
35 ea3cb4e4 Christodoulos Psaltis
            {% endif %}
36 ea3cb4e4 Christodoulos Psaltis
        {% endfor %}
37 ea3cb4e4 Christodoulos Psaltis
    </div>
38 ea3cb4e4 Christodoulos Psaltis
    <div class="seperator"></div>
39 ea3cb4e4 Christodoulos Psaltis
    <div class="terminated">
40 ea3cb4e4 Christodoulos Psaltis
        {% for node in nodes %}
41 ea3cb4e4 Christodoulos Psaltis
            {% if node.state == '0' %}        
42 ea3cb4e4 Christodoulos Psaltis
                <div class="instance terminated">
43 ea3cb4e4 Christodoulos Psaltis
                    <div class="actions">
44 ea3cb4e4 Christodoulos Psaltis
                        <a href="#" class="action">start</a>
45 ea3cb4e4 Christodoulos Psaltis
                        <a href="#" class="action">destroy</a>
46 ea3cb4e4 Christodoulos Psaltis
                        <a href="#" class="more">more &hellip;</a>
47 ea3cb4e4 Christodoulos Psaltis
                    </div>
48 ea3cb4e4 Christodoulos Psaltis
                    <div class="state">
49 ea3cb4e4 Christodoulos Psaltis
                        <div>Stopped</div>
50 ea3cb4e4 Christodoulos Psaltis
                        <div class="indicator" />
51 ea3cb4e4 Christodoulos Psaltis
                        <div class="indicator" />
52 ea3cb4e4 Christodoulos Psaltis
                        <div class="indicator" />
53 ea3cb4e4 Christodoulos Psaltis
                        <div class="indicator" />
54 ea3cb4e4 Christodoulos Psaltis
                    </div>
55 ea3cb4e4 Christodoulos Psaltis
                    <img src="static/server.png" />
56 ea3cb4e4 Christodoulos Psaltis
                    <img class="os" src={{ node.thumb }} />
57 89976b6c Christodoulos Psaltis
                    <a href="#" class="name">
58 89976b6c Christodoulos Psaltis
                        <h3><span>{{ node.name }}</span><span class="rename">rename</span></h3>
59 89976b6c Christodoulos Psaltis
                    </a>
60 89976b6c Christodoulos Psaltis
                    <a href="#" class="ip">
61 89976b6c Christodoulos Psaltis
                        <h5><span>{{ node.public_ip }}</span><span class="configure">configure networking</span></h5>
62 89976b6c Christodoulos Psaltis
                    </a>
63 89976b6c Christodoulos Psaltis
                    <a href="#" class="storage">
64 89976b6c Christodoulos Psaltis
                        <h5>34GB of total storage in 3 volumes <span class="configure">configure storage</span></h5>
65 89976b6c Christodoulos Psaltis
                    </a>
66 89976b6c Christodoulos Psaltis
                    </div>
67 b303ba05 Christodoulos Psaltis
                </div>
68 89976b6c Christodoulos Psaltis
            {% endif %}
69 89976b6c Christodoulos Psaltis
        {% endfor %}
70 89976b6c Christodoulos Psaltis
    </div>
71 cc7c5902 Dimitris Moraitis
</div>
72 cc7c5902 Dimitris Moraitis
73 cc7c5902 Dimitris Moraitis
<!-- the form -->
74 cc7c5902 Dimitris Moraitis
<form action="#">
75 cc7c5902 Dimitris Moraitis
        <!-- scrollable root element -->
76 cc7c5902 Dimitris Moraitis
        <div class="modal" id="wizard">
77 cc7c5902 Dimitris Moraitis
                <!-- status bar -->
78 cc7c5902 Dimitris Moraitis
                <ul id="status">
79 cc7c5902 Dimitris Moraitis
                        <li class="active"><strong>1.</strong> Select image</li>
80 cc7c5902 Dimitris Moraitis
                        <li><strong>2.</strong> Instance type</li>
81 cc7c5902 Dimitris Moraitis
                        <li><strong>3.</strong> Review</li>
82 cc7c5902 Dimitris Moraitis
                </ul>
83 cc7c5902 Dimitris Moraitis
                <!-- scrollable items -->
84 cc7c5902 Dimitris Moraitis
                <div class="items">
85 cc7c5902 Dimitris Moraitis
                        <!-- pages -->
86 cc7c5902 Dimitris Moraitis
                        <div class="page">
87 cc7c5902 Dimitris Moraitis
                <h2>
88 cc7c5902 Dimitris Moraitis
                                        <strong>Step 1: </strong> Select image
89 cc7c5902 Dimitris Moraitis
                                        <em>Select an OS image to boot from</em>
90 cc7c5902 Dimitris Moraitis
                                </h2>
91 cc7c5902 Dimitris Moraitis
                <ul class="tabs">
92 cc7c5902 Dimitris Moraitis
                    <li><a href="#">standard</a></li>
93 cc7c5902 Dimitris Moraitis
                    <li><a href="#">custom</a></li>
94 cc7c5902 Dimitris Moraitis
                </ul>
95 89976b6c Christodoulos Psaltis
                <div class="panes">
96 cc7c5902 Dimitris Moraitis
                    <ul class="pane">
97 cc7c5902 Dimitris Moraitis
                                            <!-- standard images -->
98 89976b6c Christodoulos Psaltis
                        {% for image in images %}
99 89976b6c Christodoulos Psaltis
                            {% if image.type == 'standard' %}
100 89976b6c Christodoulos Psaltis
                                                    <li>
101 998ba8f9 Christodoulos Psaltis
                                                            <label for={{ image.id }}> 
102 89976b6c Christodoulos Psaltis
                                        <a><div class="image">
103 89976b6c Christodoulos Psaltis
                                            <img src={{ image.logo }} class="image-logo"/>
104 89976b6c Christodoulos Psaltis
                                            <strong>{{ image.title }}</strong>
105 998ba8f9 Christodoulos Psaltis
                                            <input class="radio" type="radio" name="image-id" id={{ image.id }} />
106 89976b6c Christodoulos Psaltis
                                            <br />
107 89976b6c Christodoulos Psaltis
                                            <span class="description">{{ image.description }}</span> 
108 89976b6c Christodoulos Psaltis
                                            <span class="size">{{ image.size }}MB</span>
109 89976b6c Christodoulos Psaltis
                                        </div></a>
110 89976b6c Christodoulos Psaltis
                                                            </label>
111 89976b6c Christodoulos Psaltis
                                                    </li>
112 89976b6c Christodoulos Psaltis
                            {% endif %}
113 89976b6c Christodoulos Psaltis
                        {% endfor %} 
114 cc7c5902 Dimitris Moraitis
                                    </ul>
115 cc7c5902 Dimitris Moraitis
                    <ul class="pane">
116 cc7c5902 Dimitris Moraitis
                                            <!-- custom images -->
117 89976b6c Christodoulos Psaltis
                        {% for image in images %}
118 89976b6c Christodoulos Psaltis
                            {% if image.type == 'custom' %}
119 89976b6c Christodoulos Psaltis
                                                    <li>
120 998ba8f9 Christodoulos Psaltis
                                                            <label for={{ image.id }}> 
121 89976b6c Christodoulos Psaltis
                                        <a><div class="image">
122 89976b6c Christodoulos Psaltis
                                            <img src={{ image.logo }} class="image-logo"/>
123 89976b6c Christodoulos Psaltis
                                            <strong>{{ image.title }}</strong>
124 998ba8f9 Christodoulos Psaltis
                                            <input class="radio" type="radio" name="image-id" id={{ image.id }} />
125 89976b6c Christodoulos Psaltis
                                            <br />
126 89976b6c Christodoulos Psaltis
                                            <span class="description">{{ image.description }}</span> 
127 89976b6c Christodoulos Psaltis
                                            <span class="size">{{ image.size }}MB</span>
128 89976b6c Christodoulos Psaltis
                                        </div></a>
129 89976b6c Christodoulos Psaltis
                                                            </label>
130 89976b6c Christodoulos Psaltis
                                                    </li>
131 89976b6c Christodoulos Psaltis
                            {% endif %}
132 89976b6c Christodoulos Psaltis
                        {% endfor %}
133 cc7c5902 Dimitris Moraitis
                    </ul>
134 cc7c5902 Dimitris Moraitis
                </div>
135 cc7c5902 Dimitris Moraitis
                                <button type="button" class="prev" id="cancel">Cancel</button>
136 cc7c5902 Dimitris Moraitis
                                <button type="button" class="next right">Next &raquo;</button>
137 cc7c5902 Dimitris Moraitis
            </div>
138 cc7c5902 Dimitris Moraitis
                        <div class="page">
139 cc7c5902 Dimitris Moraitis
                                <h2>
140 cc7c5902 Dimitris Moraitis
                                        <strong>Step 2: </strong> Instance type <b></b>
141 cc7c5902 Dimitris Moraitis
                                        <em>Select CPU cores, RAM and storage space for your instance</em>
142 cc7c5902 Dimitris Moraitis
                                </h2>
143 cc7c5902 Dimitris Moraitis
                <ul>
144 cc7c5902 Dimitris Moraitis
                    <li>
145 cc7c5902 Dimitris Moraitis
                        <div class="instance-type">
146 cc7c5902 Dimitris Moraitis
                            <label for="small">
147 cc7c5902 Dimitris Moraitis
                                <input type="radio" id="small" name="instance-type" value="small" checked="true" />
148 cc7c5902 Dimitris Moraitis
                                <strong>small</strong>
149 cc7c5902 Dimitris Moraitis
                            </label>
150 cc7c5902 Dimitris Moraitis
                        </div>
151 cc7c5902 Dimitris Moraitis
                        <div class="instance-type">      
152 cc7c5902 Dimitris Moraitis
                            <label for="medium">
153 cc7c5902 Dimitris Moraitis
                                <input type="radio" id="medium" name="instance-type" value="medium" />                  
154 cc7c5902 Dimitris Moraitis
                                <strong>medium</strong>
155 cc7c5902 Dimitris Moraitis
                            </label>
156 cc7c5902 Dimitris Moraitis
                        </div>
157 cc7c5902 Dimitris Moraitis
                        <div class="instance-type">
158 cc7c5902 Dimitris Moraitis
                            <label for="large">
159 cc7c5902 Dimitris Moraitis
                                <input type="radio" id="large" name="instance-type" value="large" />
160 cc7c5902 Dimitris Moraitis
                                <strong>large</strong>
161 cc7c5902 Dimitris Moraitis
                            </label>
162 cc7c5902 Dimitris Moraitis
                        </div>
163 cc7c5902 Dimitris Moraitis
                        <div class="instance-type">
164 cc7c5902 Dimitris Moraitis
                            <label for="custom">
165 cc7c5902 Dimitris Moraitis
                                <input type="radio" name="instance-type" id="custom" value="large" />
166 cc7c5902 Dimitris Moraitis
                                <strong>custom</strong>
167 cc7c5902 Dimitris Moraitis
                            </label>
168 cc7c5902 Dimitris Moraitis
                        </div>
169 cc7c5902 Dimitris Moraitis
                    </li>
170 cc7c5902 Dimitris Moraitis
                    <li>
171 cc7c5902 Dimitris Moraitis
                                    <label><strong class="sliders">CPU (cores)</strong></label>
172 cc7c5902 Dimitris Moraitis
                        <input type="range" id="cpu" value="1" max="8" min="1" />
173 cc7c5902 Dimitris Moraitis
                    </li>
174 cc7c5902 Dimitris Moraitis
                    <li>
175 cc7c5902 Dimitris Moraitis
                                    <label><strong class="sliders">RAM (MB)</strong></label>
176 cc7c5902 Dimitris Moraitis
                        <input type="range" id="ram" value="256" max="2048" min="256" step="256" />
177 cc7c5902 Dimitris Moraitis
                    </li>
178 cc7c5902 Dimitris Moraitis
                    <li>
179 cc7c5902 Dimitris Moraitis
                                <label><strong class="sliders">Storage (GB)</strong></label>
180 cc7c5902 Dimitris Moraitis
                        <input type="range" id="storage" value="5" step="1" max="100" min="2" />
181 cc7c5902 Dimitris Moraitis
                    </li>
182 cc7c5902 Dimitris Moraitis
                    <li>
183 cc7c5902 Dimitris Moraitis
                        <div class="cost">
184 cc7c5902 Dimitris Moraitis
                            Cost per hour for this VM: 20 credits | Credits currently in account: 10.000
185 cc7c5902 Dimitris Moraitis
                        </div>
186 cc7c5902 Dimitris Moraitis
                    </li>
187 cc7c5902 Dimitris Moraitis
                </ul>
188 cc7c5902 Dimitris Moraitis
                                <button type="button" class="prev">&laquo; Back</button>
189 cc7c5902 Dimitris Moraitis
                                <button type="button" class="next right">Next &raquo;</button>
190 cc7c5902 Dimitris Moraitis
            </div>
191 cc7c5902 Dimitris Moraitis
                        <div class="page">
192 cc7c5902 Dimitris Moraitis
                                <h2>
193 cc7c5902 Dimitris Moraitis
                                        <strong>Step 3: </strong> Review <b></b>
194 cc7c5902 Dimitris Moraitis
                                        <em>Confirm the settings below and create your new instance</em>
195 cc7c5902 Dimitris Moraitis
                                </h2>
196 cc7c5902 Dimitris Moraitis
                <ul>
197 cc7c5902 Dimitris Moraitis
                    <li class="required">
198 cc7c5902 Dimitris Moraitis
                        <label>
199 998ba8f9 Christodoulos Psaltis
                            <strong>Instance name</strong><span>*</span>
200 cc7c5902 Dimitris Moraitis
                            <input type="text" class="text" name="instance_name" value="My Ubuntu 10.04 x86_64 server"/>
201 cc7c5902 Dimitris Moraitis
                        </label>
202 cc7c5902 Dimitris Moraitis
                    </li>
203 cc7c5902 Dimitris Moraitis
                    <li>
204 cc7c5902 Dimitris Moraitis
                        <strong>Image:</strong> <span>Ubuntu 10.04 x86_64 server</span>
205 cc7c5902 Dimitris Moraitis
                    </li>
206 cc7c5902 Dimitris Moraitis
                    <li>
207 cc7c5902 Dimitris Moraitis
                        <strong>CPU:</strong> <span>2 cores</span>
208 cc7c5902 Dimitris Moraitis
                    </li>
209 cc7c5902 Dimitris Moraitis
                    <li>
210 cc7c5902 Dimitris Moraitis
                        <strong>RAM:</strong> <span>1024MB</span>
211 cc7c5902 Dimitris Moraitis
                    </li>
212 cc7c5902 Dimitris Moraitis
                    <li>
213 cc7c5902 Dimitris Moraitis
                        <strong>Storage:</strong> <span>10GB</span>
214 cc7c5902 Dimitris Moraitis
                    </li>
215 cc7c5902 Dimitris Moraitis
                    <li>
216 cc7c5902 Dimitris Moraitis
                        <strong>Cost per hour:</strong> <span>20 credits</span>
217 cc7c5902 Dimitris Moraitis
                    </li>
218 cc7c5902 Dimitris Moraitis
                    <li>
219 cc7c5902 Dimitris Moraitis
                        <strong>Remaining credits:</strong> <span>10.000</span>
220 cc7c5902 Dimitris Moraitis
                    </li>
221 cc7c5902 Dimitris Moraitis
                </ul>
222 cc7c5902 Dimitris Moraitis
                                <button type="button" class="prev">&laquo; Back</button>
223 cc7c5902 Dimitris Moraitis
                                <button type="button" class="next right" id="start">Create VM</button>        
224 cc7c5902 Dimitris Moraitis
            </div>
225 cc7c5902 Dimitris Moraitis
                </div>
226 cc7c5902 Dimitris Moraitis
        </div>
227 cc7c5902 Dimitris Moraitis
</form>
228 cc7c5902 Dimitris Moraitis
229 cc7c5902 Dimitris Moraitis
<div class="modal" id="misc">
230 cc7c5902 Dimitris Moraitis
    <h3>Your VM is being created!</h3>
231 cc7c5902 Dimitris Moraitis
    <p>Your password is:<strong> sdeEFre</strong></p>
232 cc7c5902 Dimitris Moraitis
    <p>Please copy this! Without it you can not connect to your VM.</p>
233 cc7c5902 Dimitris Moraitis
</div>
234 cc7c5902 Dimitris Moraitis
235 cc7c5902 Dimitris Moraitis
<script>
236 cc7c5902 Dimitris Moraitis
// <![CDATA[ 
237 cc7c5902 Dimitris Moraitis

238 cc7c5902 Dimitris Moraitis
$("#list").click(function(event){
239 cc7c5902 Dimitris Moraitis
    $("div#instancesview").load($("#list").attr("href"));
240 cc7c5902 Dimitris Moraitis
    return false;
241 cc7c5902 Dimitris Moraitis
});
242 cc7c5902 Dimitris Moraitis

243 cc7c5902 Dimitris Moraitis
$("ul.tabs").tabs("div.panes ul");
244 cc7c5902 Dimitris Moraitis

245 cc7c5902 Dimitris Moraitis
$(":range").rangeinput();
246 cc7c5902 Dimitris Moraitis

247 cc7c5902 Dimitris Moraitis
function disableSliders() {
248 cc7c5902 Dimitris Moraitis
    $("#cpu").attr('disabled',true);
249 cc7c5902 Dimitris Moraitis
    $("#ram").attr('disabled',true);
250 cc7c5902 Dimitris Moraitis
    $("#storage").attr('disabled',true);
251 cc7c5902 Dimitris Moraitis
}
252 cc7c5902 Dimitris Moraitis

253 cc7c5902 Dimitris Moraitis
$("#custom").click(function(event){
254 cc7c5902 Dimitris Moraitis
    $("#cpu").attr('disabled',false);
255 cc7c5902 Dimitris Moraitis
    $("#ram").attr('disabled',false);
256 cc7c5902 Dimitris Moraitis
    $("#storage").attr('disabled',false);
257 cc7c5902 Dimitris Moraitis
    $("strong.sliders").style = 'color: #778899;';
258 cc7c5902 Dimitris Moraitis
});
259 cc7c5902 Dimitris Moraitis

260 cc7c5902 Dimitris Moraitis
$("#small").click(function(event){
261 cc7c5902 Dimitris Moraitis
    $("#cpu").data('rangeinput').setValue(1);
262 cc7c5902 Dimitris Moraitis
    $("#ram").data('rangeinput').setValue(256);
263 cc7c5902 Dimitris Moraitis
    $("#storage").data('rangeinput').setValue(5);
264 cc7c5902 Dimitris Moraitis
});
265 cc7c5902 Dimitris Moraitis

266 cc7c5902 Dimitris Moraitis
$("#medium").click(function(event){
267 cc7c5902 Dimitris Moraitis
    $("#cpu").data('rangeinput').setValue(4);
268 cc7c5902 Dimitris Moraitis
    $("#ram").data('rangeinput').setValue(1024);
269 cc7c5902 Dimitris Moraitis
    $("#storage").data('rangeinput').setValue(30);
270 cc7c5902 Dimitris Moraitis
});
271 cc7c5902 Dimitris Moraitis

272 cc7c5902 Dimitris Moraitis
$("#large").click(function(event){
273 cc7c5902 Dimitris Moraitis
    $("#cpu").data('rangeinput').setValue(8);
274 cc7c5902 Dimitris Moraitis
    $("#ram").data('rangeinput').setValue(4096);
275 cc7c5902 Dimitris Moraitis
    $("#storage").data('rangeinput').setValue(80);
276 cc7c5902 Dimitris Moraitis
});
277 cc7c5902 Dimitris Moraitis

278 cc7c5902 Dimitris Moraitis
$("#cancel").click(function(event){
279 cc7c5902 Dimitris Moraitis
    $("a#create[rel]").overlay().close();
280 cc7c5902 Dimitris Moraitis
});
281 cc7c5902 Dimitris Moraitis

282 cc7c5902 Dimitris Moraitis
$("#start").click(function(event){
283 cc7c5902 Dimitris Moraitis
    $("a#create[rel]").overlay().close();
284 cc7c5902 Dimitris Moraitis

285 cc7c5902 Dimitris Moraitis
    var triggers = $("div#misc").overlay({
286 cc7c5902 Dimitris Moraitis
            // some mask tweaks suitable for modal dialogs
287 cc7c5902 Dimitris Moraitis
            mask: {
288 cc7c5902 Dimitris Moraitis
                    color: '#ebecff',
289 cc7c5902 Dimitris Moraitis
                    opacity: '0.9'
290 cc7c5902 Dimitris Moraitis
            },
291 cc7c5902 Dimitris Moraitis
        top: 'center',
292 cc7c5902 Dimitris Moraitis
        load: 'true',
293 cc7c5902 Dimitris Moraitis
            closeOnClick: 'false'  
294 cc7c5902 Dimitris Moraitis
    });
295 cc7c5902 Dimitris Moraitis
});
296 cc7c5902 Dimitris Moraitis

297 cc7c5902 Dimitris Moraitis
$("a#create").click(function(event){
298 cc7c5902 Dimitris Moraitis
    $("#wizard").scrollable().begin();
299 cc7c5902 Dimitris Moraitis
});
300 cc7c5902 Dimitris Moraitis

301 cc7c5902 Dimitris Moraitis
$("#cpu").change(function(event){
302 cc7c5902 Dimitris Moraitis
    $("#custom").click();
303 cc7c5902 Dimitris Moraitis
});
304 cc7c5902 Dimitris Moraitis

305 cc7c5902 Dimitris Moraitis
$("#ram").change(function(event){
306 cc7c5902 Dimitris Moraitis
    $("#custom").click();
307 cc7c5902 Dimitris Moraitis
});
308 cc7c5902 Dimitris Moraitis

309 cc7c5902 Dimitris Moraitis
$("#storage").change(function(event){
310 cc7c5902 Dimitris Moraitis
    $("#custom").click();
311 cc7c5902 Dimitris Moraitis
});
312 cc7c5902 Dimitris Moraitis

313 cc7c5902 Dimitris Moraitis
$(function() { 
314 cc7c5902 Dimitris Moraitis
    $("a#create[rel]").overlay({mask: '#000', effect: 'default', top: '5%'});
315 cc7c5902 Dimitris Moraitis

316 cc7c5902 Dimitris Moraitis
});
317 cc7c5902 Dimitris Moraitis

318 cc7c5902 Dimitris Moraitis
$(function() {
319 cc7c5902 Dimitris Moraitis
    var root = $("#wizard").scrollable();
320 cc7c5902 Dimitris Moraitis

321 cc7c5902 Dimitris Moraitis
    // some variables that we need
322 cc7c5902 Dimitris Moraitis
    var api = root.scrollable();
323 cc7c5902 Dimitris Moraitis

324 cc7c5902 Dimitris Moraitis
    // rangeinput with default configuration
325 cc7c5902 Dimitris Moraitis
    // validation logic is done inside the onBeforeSeek callback
326 cc7c5902 Dimitris Moraitis
    api.onBeforeSeek(function(event, i) {
327 cc7c5902 Dimitris Moraitis
            // we are going 1 step backwards so no need for validation
328 cc7c5902 Dimitris Moraitis
            if (api.getIndex() < i) {
329 cc7c5902 Dimitris Moraitis
             // 1. get current page
330 cc7c5902 Dimitris Moraitis
                     var page = root.find(".page").eq(api.getIndex()),
331 cc7c5902 Dimitris Moraitis
                         // 2. .. and all required fields inside the page
332 cc7c5902 Dimitris Moraitis
                         inputs = page.find(".required :input").removeClass("error"),
333 cc7c5902 Dimitris Moraitis
                         // 3. .. which are empty
334 cc7c5902 Dimitris Moraitis
                         empty = inputs.filter(function() {
335 cc7c5902 Dimitris Moraitis
                                return $(this).val().replace(/\s*/g, '') == '';
336 cc7c5902 Dimitris Moraitis
                         });
337 cc7c5902 Dimitris Moraitis
                     // if there are empty fields, then
338 cc7c5902 Dimitris Moraitis
                    if (empty.length) {
339 cc7c5902 Dimitris Moraitis
                            // add a CSS class name "error" for empty & required fields
340 cc7c5902 Dimitris Moraitis
                            empty.addClass("error");
341 cc7c5902 Dimitris Moraitis
                            // cancel seeking of the scrollable by returning false
342 cc7c5902 Dimitris Moraitis
                            return false;
343 cc7c5902 Dimitris Moraitis
                    // everything is good
344 cc7c5902 Dimitris Moraitis
                    } 
345 cc7c5902 Dimitris Moraitis
            }
346 cc7c5902 Dimitris Moraitis
            // update status bar
347 cc7c5902 Dimitris Moraitis
            $("#status li").removeClass("active").eq(i).addClass("active");
348 cc7c5902 Dimitris Moraitis
    });
349 cc7c5902 Dimitris Moraitis

350 cc7c5902 Dimitris Moraitis
    // if tab is pressed on the next button seek to next page
351 cc7c5902 Dimitris Moraitis
    root.find("button.next").keydown(function(e) {
352 cc7c5902 Dimitris Moraitis
            if (e.keyCode == 9) {
353 cc7c5902 Dimitris Moraitis
                    // seeks to next tab by executing our validation routine
354 cc7c5902 Dimitris Moraitis
                    api.next();
355 cc7c5902 Dimitris Moraitis
                    e.preventDefault();
356 cc7c5902 Dimitris Moraitis
            }
357 cc7c5902 Dimitris Moraitis
    });
358 cc7c5902 Dimitris Moraitis
// ]]>
359 cc7c5902 Dimitris Moraitis
});
360 cc7c5902 Dimitris Moraitis
</script>