Statistics
| Branch: | Tag: | Revision:

root / ui / templates / home.html @ 9a3c23db

History | View | Annotate | Download (19.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 d7f0ad6e provetza
{% load i18n %}
37 cc7c5902 Dimitris Moraitis
<!DOCTYPE html>
38 cc7c5902 Dimitris Moraitis
<head>
39 f533f224 Vangelis Koukis
    <title>{{ project }}</title>
40 f533f224 Vangelis Koukis
    <!-- include the Tools -->
41 146b6003 Dimitris Moraitis
    <!-- jquery tools minified for deployment-->
42 01864f44 Dimitris Moraitis
    <script src="static/jquery.tools.min.js"></script>
43 f533f224 Vangelis Koukis
    <!-- jquery tools source for JS debugging -->
44 01864f44 Dimitris Moraitis
    <!--
45 f533f224 Vangelis Koukis
    <script src="http://flowplayer.org/tools/download/1.2.5/jquery-1.4.2.js"></script>
46 f533f224 Vangelis Koukis
    <script src="http://flowplayer.org/tools/download/1.2.5/tabs/tabs.js"></script>
47 f533f224 Vangelis Koukis
    <script src="http://flowplayer.org/tools/download/1.2.5/scrollable/scrollable.js"></script>
48 f533f224 Vangelis Koukis
    <script src="http://flowplayer.org/tools/download/1.2.5/overlay/overlay.js"></script>
49 f533f224 Vangelis Koukis
    <script src="http://flowplayer.org/tools/download/1.2.5/rangeinput/rangeinput.js"></script>
50 f533f224 Vangelis Koukis
    <script src="http://flowplayer.org/tools/download/1.2.5/toolbox/toolbox.expose.js"></script>
51 01864f44 Dimitris Moraitis
    -->
52 fb66080c Dimitris Moraitis
    <script src="static/jquery.cookie.js"></script>
53 a4531705 Christodoulos Psaltis
    <script src="static/jquery.dataTables.min.js"></script>
54 7b7e768e Christodoulos Psaltis
    <script src="static/synnefo.js"></script>
55 f533f224 Vangelis Koukis
    <link rel="stylesheet" type="text/css" href="static/main.css"/>
56 42f67a2a Dimitris Moraitis
    <script>
57 f533f224 Vangelis Koukis
        //populate available image icons array
58 f533f224 Vangelis Koukis
        var os_icons = {{image_icons|safe}};
59 f533f224 Vangelis Koukis

60 eae0a59a Dimitris Moraitis
        // timeout value from settings.py
61 d36493ce Dimitris Moraitis
        var TIMEOUT = {{timeout}};
62 7b03c69d Dimitris Moraitis
        var UPDATE_INTERVAL = {{update_interval}};
63 f533f224 Vangelis Koukis
        var STATUSES = {
64 f533f224 Vangelis Koukis
            'UNKNOWN'   : '{% trans "Unknown" %}',
65 eae0a59a Dimitris Moraitis
            'BUILD'     : '{% trans "Building" %}',
66 f533f224 Vangelis Koukis
            'REBOOT'    : '{% trans "Rebooting" %}',
67 eae0a59a Dimitris Moraitis
            'STOPPED'   : '{% trans "Stopped" %}',
68 f533f224 Vangelis Koukis
            'ACTIVE'    : '{% trans "Running" %}',
69 f533f224 Vangelis Koukis
            'ERROR'     : '{% trans "Error" %}'
70 f533f224 Vangelis Koukis
        };
71 f533f224 Vangelis Koukis

72 f533f224 Vangelis Koukis
        var TRANSITIONS = {
73 f533f224 Vangelis Koukis
            'Shutting down' : '{% trans "Shutting down" %}',
74 f533f224 Vangelis Koukis
            'Rebooting'     : '{% trans "Rebooting" %}',
75 f533f224 Vangelis Koukis
            'Starting'      : '{% trans "Starting" %}',
76 f533f224 Vangelis Koukis
            'Destroying'    : '{% trans "Destroying" %}'
77 eae0a59a Dimitris Moraitis
        };
78 f533f224 Vangelis Koukis

79 f533f224 Vangelis Koukis
        // Statuses and transitions that should be displayed as active or inactive
80 f533f224 Vangelis Koukis
        var ACTIVE_STATES = [
81 f533f224 Vangelis Koukis
            '{% trans "Building" %}',
82 f533f224 Vangelis Koukis
            '{% trans "Rebooting" %}',
83 f533f224 Vangelis Koukis
            '{% trans "Running" %}',
84 f533f224 Vangelis Koukis
            '{% trans "Shutting down" %}',
85 f533f224 Vangelis Koukis
            '{% trans "Rebooting" %}',
86 f533f224 Vangelis Koukis
            '{% trans "Destroying" %}'
87 f533f224 Vangelis Koukis
        ];
88 f533f224 Vangelis Koukis

89 f533f224 Vangelis Koukis
        var INACTIVE_STATES = [
90 f533f224 Vangelis Koukis
            '{% trans "Unknown" %}',
91 f533f224 Vangelis Koukis
            '{% trans "Stopped" %}',
92 f533f224 Vangelis Koukis
            '{% trans "Error" %}',
93 f533f224 Vangelis Koukis
            '{% trans "Starting" %}',
94 f533f224 Vangelis Koukis
            '{% trans "Destroying" %}'
95 f533f224 Vangelis Koukis
        ];
96 f533f224 Vangelis Koukis

97 eae0a59a Dimitris Moraitis
        var ERRORS = {
98 eae0a59a Dimitris Moraitis
            // error message header
99 f533f224 Vangelis Koukis
            'HEADER' : '{% trans "Error" %}',
100 eae0a59a Dimitris Moraitis
            // default
101 146b6003 Dimitris Moraitis
            'DEFAULT' : '{% trans "Could not contact the service. Please check your network connectivity and try again." %}',
102 eae0a59a Dimitris Moraitis
            // bad request
103 eae0a59a Dimitris Moraitis
            '400' : '{% trans "Malformed request." %}',
104 eae0a59a Dimitris Moraitis
            // not found
105 eae0a59a Dimitris Moraitis
            '404' : '{% trans "Your request has failed. Resource not found." %}',
106 eae0a59a Dimitris Moraitis
            // internal server error
107 ccd40764 Markos Gogoulos
            '500' : '{% trans "There has been an Internal Error. Our administrators have been notified." %}',
108 ccd40764 Markos Gogoulos
            // service unavailable
109 ccd40764 Markos Gogoulos
            '501' : '{% trans "This server has not been implemented yet." %}',
110 eae0a59a Dimitris Moraitis
            // service unavailable
111 f533f224 Vangelis Koukis
            '502' : '{% trans "Bad Gateway error." %}',
112 f533f224 Vangelis Koukis
            // service unavailable
113 a5093da5 Markos Gogoulos
            '503' : '{% trans "This service is unavailable right now, please try again later." %}',
114 80a8f602 Christodoulos Psaltis
            // no server handshake
115 80a8f602 Christodoulos Psaltis
            '0' : '{% trans "Could not contact the server." %}',
116 e2ccad35 Dimitris Moraitis
            // no images found
117 146b6003 Dimitris Moraitis
            'NO_IMAGES' : '{% trans "Cannot show the Create machine wizard: No images found." %}',
118 e2ccad35 Dimitris Moraitis
            // no flavors found
119 f533f224 Vangelis Koukis
            'NO_FLAVORS' : '{% trans "Cannot show the Create machine wizard: No machine configurations found." %}',
120 f533f224 Vangelis Koukis
            // error box title
121 f533f224 Vangelis Koukis
            'GENERIC_POPUP_HEADER' : '{% trans "Something seems to have gone wrong :( Here is what happened:" %}',
122 f533f224 Vangelis Koukis
            // no advanced details
123 f533f224 Vangelis Koukis
            'NO_DETAILS' : '{% trans "Νο advanced details provided" %}'
124 eae0a59a Dimitris Moraitis
        };
125 f533f224 Vangelis Koukis

126 eae0a59a Dimitris Moraitis
        var SUCCESS = {
127 f533f224 Vangelis Koukis
            'HEADER' : '{% trans "Success" %}',
128 146b6003 Dimitris Moraitis
            'DEFAULT' : '{% trans "Your request has been succefully executed." %}',
129 f533f224 Vangelis Koukis
            'PASSWORD' : '{% trans "Password:" %}',
130 aa0801aa Markos Gogoulos
            'CREATE_VM_SUCCESS' : '{% trans "Success" %}',
131 f533f224 Vangelis Koukis
            'CREATE_VM_SUCCESS_ONE' : '{% trans "Your new machine is now buidling... (this might take a few minutes)" %}',
132 def71253 Markos Gogoulos
            'CREATE_VM_SUCCESS_TWO' : '{% trans "Write down your password now:" %}',
133 f533f224 Vangelis Koukis
            'CREATE_VM_SUCCESS_THREE' : '{% trans "You will need this later to connect to your machine." %}',
134 f533f224 Vangelis Koukis
            'CREATE_VM_SUCCESS_FOUR' : '{% trans "After closing this window you will NOT be able to retrieve it again." %}'
135 eae0a59a Dimitris Moraitis
        };
136 f533f224 Vangelis Koukis

137 f533f224 Vangelis Koukis
        // ajax error checking
138 038383b1 Dimitris Moraitis
        function ajax_error(status, serverID, action, responseText) {
139 def71253 Markos Gogoulos
            $('#error-success').addClass('error');
140 def71253 Markos Gogoulos
            $('#error-success').removeClass('success');
141 def71253 Markos Gogoulos

142 038383b1 Dimitris Moraitis
            var serverName = '';
143 f533f224 Vangelis Koukis

144 038383b1 Dimitris Moraitis
            if (serverID != undefined) {
145 a8e592c7 Dimitris Moraitis
                // standard view
146 a8e592c7 Dimitris Moraitis
                serverName = $("#"+serverID).find("span.name").text();
147 a8e592c7 Dimitris Moraitis
                if (serverName == "") { // list view
148 f533f224 Vangelis Koukis
                    serverName = $("#"+serverID).parent().parent().find("span.name").text();
149 a8e592c7 Dimitris Moraitis
                }
150 038383b1 Dimitris Moraitis
            }
151 f533f224 Vangelis Koukis

152 42f67a2a Dimitris Moraitis
            // prepare the error message
153 146b6003 Dimitris Moraitis
            $("#error-success h3").text(ERRORS['HEADER']);
154 038383b1 Dimitris Moraitis
            if (responseText != undefined){
155 f533f224 Vangelis Koukis
                var errors = parse_error(responseText, status), details = '';
156 038383b1 Dimitris Moraitis
                if (serverName){
157 f533f224 Vangelis Koukis
                    serverName="<p>{% trans "Server" %}: " + serverName + "</p>";
158 038383b1 Dimitris Moraitis
                }
159 f533f224 Vangelis Koukis
                if ((errors[0].details == undefined) || (errors[0].details == "")) {
160 f533f224 Vangelis Koukis
                    details = ERRORS["NO_DETAILS"];
161 f533f224 Vangelis Koukis
                } else {
162 f533f224 Vangelis Koukis
                    details = errors[0].details;
163 a8e592c7 Dimitris Moraitis
                }
164 f533f224 Vangelis Koukis

165 f533f224 Vangelis Koukis
                //$("#error-success div.popup-body-inner").html("<p>"+(errors[0].message || ERRORS[errors[0].code]) +"</p>"+serverName +"<p><strong>{% trans "Action" %}:</strong> " + action + "</p><p><strong>{% trans "Code" %}:</strong> " + errors[0].code + "</p>" + details);
166 f533f224 Vangelis Koukis
                $("#error-success .machine-now-building").html(ERRORS["GENERIC_POPUP_HEADER"]);
167 f533f224 Vangelis Koukis
                $("#error-success .popup-header").addClass("popup-header-error");
168 f533f224 Vangelis Koukis
                $("#error-success").addClass("popup-border-error");
169 f533f224 Vangelis Koukis
                $("#error-success .password-container").hide();
170 f533f224 Vangelis Koukis
                $("#error-success .popup-details").addClass("popup-details-error");
171 f533f224 Vangelis Koukis
                $("#error-success .popup-separator").addClass("popup-separator-error");
172 f533f224 Vangelis Koukis
                $("#error-success .popup-details").html("<p>"+(errors[0].message || ERRORS[errors[0].code]) +"</p>"+serverName +"<p>{% trans "Action" %}: " + action + "</p><p>{% trans "Code" %}: " + errors[0].code + "<p><a class='expand-details' href='#'>{% trans 'Details' %}</a><div class='more-details'>" + details + "</div></p>");
173 038383b1 Dimitris Moraitis
            } else if (ERRORS[status] != undefined) {
174 e1a023a6 Markos Gogoulos
                if (serverID == undefined){
175 7020cb54 Markos Gogoulos
                    //eg no_images, no_flavors cases
176 7020cb54 Markos Gogoulos
                    $("#error-success .machine-now-building").html(ERRORS["GENERIC_POPUP_HEADER"]);
177 7020cb54 Markos Gogoulos
                    $("#error-success .popup-header").addClass("popup-header-error");
178 7020cb54 Markos Gogoulos
                    $("#error-success").addClass("popup-border-error");
179 7020cb54 Markos Gogoulos
                    $("#error-success .password-container").hide();
180 7020cb54 Markos Gogoulos
                    $("#error-success .popup-details").addClass("popup-details-error");
181 7020cb54 Markos Gogoulos
                    $("#error-success .popup-separator").addClass("popup-separator-error");
182 7020cb54 Markos Gogoulos
                    $("#error-success .popup-details").html("<p>"+ ERRORS[status] +"</p></div></p>");
183 e1a023a6 Markos Gogoulos
                } else {
184 1532343a Markos Gogoulos
                    $("#error-success .machine-now-building").html(ERRORS["GENERIC_POPUP_HEADER"]);
185 1532343a Markos Gogoulos
                    $("#error-success .popup-header").addClass("popup-header-error");
186 1532343a Markos Gogoulos
                    $("#error-success").addClass("popup-border-error");
187 1532343a Markos Gogoulos
                    $("#error-success .password-container").hide();
188 1532343a Markos Gogoulos
                    $("#error-success .popup-details").addClass("popup-details-error");
189 1532343a Markos Gogoulos
                    $("#error-success .popup-separator").addClass("popup-separator-error");
190 1532343a Markos Gogoulos
                    $("#error-success .popup-details").html("<p>"+ ERRORS[status] +"</p>"+serverName +"</div></p>");
191 e1a023a6 Markos Gogoulos
                }
192 eae0a59a Dimitris Moraitis
            } else {
193 1532343a Markos Gogoulos
                    $("#error-success .machine-now-building").html(ERRORS["GENERIC_POPUP_HEADER"]);
194 1532343a Markos Gogoulos
                    $("#error-success .popup-header").addClass("popup-header-error");
195 1532343a Markos Gogoulos
                    $("#error-success").addClass("popup-border-error");
196 1532343a Markos Gogoulos
                    $("#error-success .password-container").hide();
197 1532343a Markos Gogoulos
                    $("#error-success .popup-details").addClass("popup-details-error");
198 1532343a Markos Gogoulos
                    $("#error-success .popup-separator").addClass("popup-separator-error");
199 f533f224 Vangelis Koukis
            }
200 f533f224 Vangelis Koukis
            $("#error-success p:first").css("padding-bottom","10px");
201 f533f224 Vangelis Koukis
            $("#error-success p:first").css("color","#800000");
202 f533f224 Vangelis Koukis
            $("#error-success div.more-details").hide();
203 f533f224 Vangelis Koukis
            $("#error-success a.expand-details").live('click', function() {
204 f533f224 Vangelis Koukis
                $(this).parent().parent().find("div.more-details").slideToggle(600);
205 f533f224 Vangelis Koukis
                return false;
206 f533f224 Vangelis Koukis
                });
207 f533f224 Vangelis Koukis
            //stop the progress icon and hide the wizard
208 f533f224 Vangelis Koukis
            if (action != undefined) {
209 f533f224 Vangelis Koukis
                if (action == 'Create VM') {
210 f533f224 Vangelis Koukis
                    $('#wizard #start').text('{% trans "Create VM" %}');
211 f533f224 Vangelis Koukis
                    $("#wizard").hide();
212 f533f224 Vangelis Koukis
                } else if (action == 'Create network') {
213 f533f224 Vangelis Koukis
                    $('#networks-wizard').hide();
214 f533f224 Vangelis Koukis
                } else if (action == 'Add server to network') {
215 f533f224 Vangelis Koukis
                    $('#add-machines-wizard').hide();
216 f533f224 Vangelis Koukis
                }
217 eae0a59a Dimitris Moraitis
            }
218 f533f224 Vangelis Koukis

219 42f67a2a Dimitris Moraitis
            // bring up error notification
220 42f67a2a Dimitris Moraitis
            var triggers = $("a#notification").overlay({
221 42f67a2a Dimitris Moraitis
                // some mask tweaks suitable for modal dialogs
222 42f67a2a Dimitris Moraitis
                mask: {
223 42f67a2a Dimitris Moraitis
                    color: '#ebecff',
224 42f67a2a Dimitris Moraitis
                    opacity: '0.9'
225 42f67a2a Dimitris Moraitis
                },
226 42f67a2a Dimitris Moraitis
                top: 'center',
227 42f67a2a Dimitris Moraitis
                closeOnClick: false,
228 42f67a2a Dimitris Moraitis
                oneInstance: false,
229 42f67a2a Dimitris Moraitis
                load: false,
230 42f67a2a Dimitris Moraitis
                onClose: function(){
231 e5b0ba20 Vangelis Koukis
                    // With partial refresh working properly,
232 e5b0ba20 Vangelis Koukis
                    // it is no longer necessary to refresh the whole page
233 e5b0ba20 Vangelis Koukis
                    // choose_view();
234 42f67a2a Dimitris Moraitis
                }
235 42f67a2a Dimitris Moraitis
            });
236 42f67a2a Dimitris Moraitis
            $("a#notification").data('overlay').load();
237 42f67a2a Dimitris Moraitis
            return false;
238 42f67a2a Dimitris Moraitis
        }
239 f533f224 Vangelis Koukis

240 42f67a2a Dimitris Moraitis
        // ajax success checking
241 146b6003 Dimitris Moraitis
        function ajax_success(status, password) {
242 42f67a2a Dimitris Moraitis
            // prepare the error message
243 42f67a2a Dimitris Moraitis
            // bring up success notification
244 def71253 Markos Gogoulos
            $('#error-success').addClass('success');
245 def71253 Markos Gogoulos
            $('#error-success').removeClass('error');
246 8550e831 Markos Gogoulos
            if (status != undefined && SUCCESS[status]) {
247 8550e831 Markos Gogoulos
                if (password != undefined && status == "CREATE_VM_SUCCESS") {
248 f533f224 Vangelis Koukis

249 f533f224 Vangelis Koukis
                    //stop the progress icon and hide the wizard
250 f533f224 Vangelis Koukis
                    $('#wizard #start').text('{% trans "Create VM" %}');
251 f533f224 Vangelis Koukis
                    $("#wizard").hide();
252 f533f224 Vangelis Koukis

253 97b6ee61 Markos Gogoulos
                    $("#error-success h3 span.header-box").text(SUCCESS[status]);
254 f533f224 Vangelis Koukis
                    var CREATE_VM_SUCCESS_MSG = SUCCESS["CREATE_VM_SUCCESS_THREE"] + '<br / >'
255 f533f224 Vangelis Koukis
                        + SUCCESS["CREATE_VM_SUCCESS_FOUR"];
256 f533f224 Vangelis Koukis
                    $("#error-success div.machine-now-building").html(SUCCESS["CREATE_VM_SUCCESS_ONE"]);
257 f533f224 Vangelis Koukis
                    $("#error-success .popup-header").removeClass("popup-header-error");
258 f533f224 Vangelis Koukis
                    $("#error-success").removeClass("popup-border-error");
259 f533f224 Vangelis Koukis
                    $("#error-success .popup-details").removeClass("popup-details-error");
260 f533f224 Vangelis Koukis
                    $("#error-success .popup-separator").removeClass("popup-separator-error");
261 f533f224 Vangelis Koukis
                    $("#error-success .password-container").show();
262 def71253 Markos Gogoulos

263 def71253 Markos Gogoulos
                    $("#error-success .popup-details").html("</div><div class=\"write-password-details\">" + CREATE_VM_SUCCESS_MSG +"</div>");
264 def71253 Markos Gogoulos
                    $("#error-success div.password").html("<div class=\"write-password\">"+ SUCCESS["CREATE_VM_SUCCESS_TWO"] + "<div class=\"write-password-password\">" + password +"</div></div>");
265 f533f224 Vangelis Koukis
                    //$("#error-success div.write-password").html(SUCCESS["CREATE_VM_SUCCESS_TWO"]);
266 f533f224 Vangelis Koukis
                    //$("#error-success div.write-password-details").html(CREATE_VM_SUCCESS_MSG);
267 8550e831 Markos Gogoulos
                } else {
268 8550e831 Markos Gogoulos
                    $("#error-success h3").text(SUCCESS['HEADER']);
269 f533f224 Vangelis Koukis
                    $("#error-success div.popup-body-inner").text("<p>" + SUCCESS[status] + "</p>");
270 8550e831 Markos Gogoulos
                }
271 8550e831 Markos Gogoulos
            } else {
272 8550e831 Markos Gogoulos
                $("#error-success h3").text(SUCCESS['HEADER']);
273 f533f224 Vangelis Koukis
                $("#error-success div.popup-body-inner").html("<p>" + SUCCESS['DEFAULT'] + "</p>");
274 8550e831 Markos Gogoulos
            }
275 8550e831 Markos Gogoulos

276 42f67a2a Dimitris Moraitis
            var triggers = $("a#notification").overlay({
277 42f67a2a Dimitris Moraitis
                // some mask tweaks suitable for modal dialogs
278 42f67a2a Dimitris Moraitis
                mask: {
279 42f67a2a Dimitris Moraitis
                    color: '#ebecff',
280 42f67a2a Dimitris Moraitis
                    opacity: '0.9'
281 42f67a2a Dimitris Moraitis
                },
282 42f67a2a Dimitris Moraitis
                top: 'center',
283 42f67a2a Dimitris Moraitis
                closeOnClick: false,
284 42f67a2a Dimitris Moraitis
                oneInstance: false,
285 42f67a2a Dimitris Moraitis
                load: false,
286 42f67a2a Dimitris Moraitis
                onClose: function(){
287 e5b0ba20 Vangelis Koukis
                    // With partial refresh working properly,
288 e5b0ba20 Vangelis Koukis
                    // it is no longer necessary to refresh the whole page
289 e5b0ba20 Vangelis Koukis
                    // choose_view();
290 42f67a2a Dimitris Moraitis
                }
291 42f67a2a Dimitris Moraitis
            });
292 42f67a2a Dimitris Moraitis
            $("a#notification").data('overlay').load();
293 42f67a2a Dimitris Moraitis
            return false;
294 42f67a2a Dimitris Moraitis
        }
295 42f67a2a Dimitris Moraitis
    </script>
296 cc7c5902 Dimitris Moraitis
</head>
297 cc7c5902 Dimitris Moraitis
<body>
298 f533f224 Vangelis Koukis
    <div id="container">
299 3b363b8e Christodoulos Psaltis
        <div id='header'>
300 f533f224 Vangelis Koukis
            <div id='user'>
301 f533f224 Vangelis Koukis
                <a href="#">{% trans "username" %}</a>
302 f533f224 Vangelis Koukis
                {% get_available_languages as LANGUAGES %}
303 f533f224 Vangelis Koukis
                {% for lang in LANGUAGES %}
304 f533f224 Vangelis Koukis
                    &nbsp;|&nbsp;
305 f533f224 Vangelis Koukis
                    <a {% if  == lang.0 %}class="current_lang" {% else %}  href="/lang/?l={{lang.0}}" {% endif %}>{{lang.0}}</a>
306 f533f224 Vangelis Koukis
                {% endfor %}
307 f533f224 Vangelis Koukis
            </div>
308 f533f224 Vangelis Koukis
            <div class="header-logo">
309 f533f224 Vangelis Koukis
                <a href="/">
310 f533f224 Vangelis Koukis
                    <img src="static/okeanos.png" alt="okeanos"/>
311 f533f224 Vangelis Koukis
                </a>
312 f533f224 Vangelis Koukis
            </div>
313 cc7c5902 Dimitris Moraitis
        </div>
314 f533f224 Vangelis Koukis
        <div id="content">
315 f533f224 Vangelis Koukis
            <div id="wrapper">
316 f533f224 Vangelis Koukis
                <!-- tabs -->
317 f533f224 Vangelis Koukis
                <div class="tab-name">{% trans "machines" %}</div>
318 f533f224 Vangelis Koukis
                <div class="tab-separator"></div>
319 f533f224 Vangelis Koukis
                <ul class="css-tabs">
320 f533f224 Vangelis Koukis
                    <li><a href="machines" title="{% trans "manage  virtual " %}" class="primary" id="machines">
321 f533f224 Vangelis Koukis
                        <img src="static/machines-icon.png" /></a></li><div class="tab-separator"></div>
322 f533f224 Vangelis Koukis
                    <li><a href="networks" title="{% trans "configure " %}" class="primary" id="networks">
323 f533f224 Vangelis Koukis
                        <img src="static/networks-icon.png" /></a></li><div class="tab-separator"></div>
324 f533f224 Vangelis Koukis
                    <li><a href="disks" title="{% trans "manage  storage " %}" class="primary" id="disks">
325 f533f224 Vangelis Koukis
                        <img src="static/disks-icon.png" /></a></li>
326 f533f224 Vangelis Koukis
                </ul>
327 f533f224 Vangelis Koukis
                <div class="css-panes">
328 f533f224 Vangelis Koukis
                    <div id="machines-pane" class="pane" style="display:block">{% include "machines.html" %}</div>
329 f533f224 Vangelis Koukis
                    <div id="networks-pane" class="pane"></div>
330 f533f224 Vangelis Koukis
                    <div id="disks-pane" class="pane"></div>
331 f533f224 Vangelis Koukis
                </div>
332 f533f224 Vangelis Koukis
                <!-- base notification for error/success reporting -->
333 f533f224 Vangelis Koukis
                <a id="notification" rel="#error-success" href="#"></a>
334 7d4f351b Mike Muzurakis
335 f533f224 Vangelis Koukis
                <div class="modal" id="error-success">
336 97b6ee61 Markos Gogoulos
                    <h3 class="popup-header">
337 97b6ee61 Markos Gogoulos
                        <span class="header-box"></span>
338 97b6ee61 Markos Gogoulos
                    </h3>
339 f533f224 Vangelis Koukis
                    <div class="popup-body">
340 f533f224 Vangelis Koukis
                        <div class="popup-body-inner">
341 f533f224 Vangelis Koukis
                            <div class="machine-now-building"></div>
342 f533f224 Vangelis Koukis
                            <div class="popup-separator"></div>
343 f533f224 Vangelis Koukis
                            <div class="password-container">
344 def71253 Markos Gogoulos
                                <div class="password-header"></div>
345 f533f224 Vangelis Koukis
                                <div class="password"></div>
346 f533f224 Vangelis Koukis
                            </div>
347 f533f224 Vangelis Koukis
                            <div class="popup-details">
348 f533f224 Vangelis Koukis
                                <div class="write-password"></div>
349 f533f224 Vangelis Koukis
                                <div class="write-password-details">{% trans "More details about the result"%}</div>
350 f533f224 Vangelis Koukis
                            </div>
351 f533f224 Vangelis Koukis
                        </div>
352 f533f224 Vangelis Koukis
                    </div>
353 f533f224 Vangelis Koukis
                </div>
354 f533f224 Vangelis Koukis
            </div>
355 cc7c5902 Dimitris Moraitis
        </div>
356 f533f224 Vangelis Koukis
        {% include "footer.html" %}
357 cc7c5902 Dimitris Moraitis
    </div>
358 f533f224 Vangelis Koukis
359 cc7c5902 Dimitris Moraitis
    <!-- activate tabs with JavaScript -->
360 cc7c5902 Dimitris Moraitis
    <script>
361 f533f224 Vangelis Koukis

362 cc7c5902 Dimitris Moraitis
        $(function() {
363 87a29449 Dimitris Moraitis
            // check pane cookie to select the initial pane
364 87a29449 Dimitris Moraitis
            var initial = 0, pane = $.cookie("pane");
365 87a29449 Dimitris Moraitis
            if (pane > 0)
366 87a29449 Dimitris Moraitis
                initial = pane;
367 87a29449 Dimitris Moraitis
            //alert(initial);
368 f533f224 Vangelis Koukis
            $("ul.css-tabs").tabs("div.css-panes div.pane", {
369 87a29449 Dimitris Moraitis
                initialIndex: initial,
370 f533f224 Vangelis Koukis
                onBeforeClick: function(event, i) {
371 f533f224 Vangelis Koukis
                    // get the pane to be opened
372 f533f224 Vangelis Koukis
                    var pane = this.getPanes().eq(i);
373 ec06b07c Dimitris Moraitis
                    pane.text('');
374 f533f224 Vangelis Koukis
                    //change the displaying title
375 f533f224 Vangelis Koukis
                    $(".tab-name").text(this.getTabs().eq(i).attr("href"));
376 f533f224 Vangelis Koukis
                    // load it with a page specified in the tab's href attribute
377 f533f224 Vangelis Koukis
                    pane.load(this.getTabs().eq(i).attr("href"),function(){if (!i) {choose_view()}});
378 f533f224 Vangelis Koukis
                }
379 f533f224 Vangelis Koukis
            });
380 cc7c5902 Dimitris Moraitis
        });
381 87a29449 Dimitris Moraitis
        
382 87a29449 Dimitris Moraitis
        // set pane cookie whenever the user clicks on a different pane
383 87a29449 Dimitris Moraitis
        $("ul.css-tabs a").click(function(i){
384 87a29449 Dimitris Moraitis
            $.cookie("pane", $("ul.css-tabs a").index(this));
385 87a29449 Dimitris Moraitis
        });
386 87a29449 Dimitris Moraitis
        
387 f533f224 Vangelis Koukis
        //change menu title on hover
388 f533f224 Vangelis Koukis
        $("ul.css-tabs li").hover(
389 f533f224 Vangelis Koukis
            function () {
390 f533f224 Vangelis Koukis
                if ($(this).find("a.current").length == 0) {
391 f533f224 Vangelis Koukis
                    $(this).parent().parent().find(".tab-name").text($(this).find("a").attr("href"));
392 f533f224 Vangelis Koukis
                }
393 f533f224 Vangelis Koukis
            },
394 f533f224 Vangelis Koukis
            function () {
395 f533f224 Vangelis Koukis
                $(this).parent().parent().find(".tab-name").text($(this).parent().find("a.current").attr("href"));
396 f533f224 Vangelis Koukis
            }
397 f533f224 Vangelis Koukis
        );
398 87a29449 Dimitris Moraitis
        
399 cc7c5902 Dimitris Moraitis
    </script>
400 cc7c5902 Dimitris Moraitis
</body>
401 cc7c5902 Dimitris Moraitis
</html>