0001-Feature-548-Patch-for-Sunstone-master-3.0.-Tested-wi.patch

Patch for master 3.0 branch - Hector Sanjuan, 06/22/2011 12:25 AM

Download (33.8 KB)

View differences:

src/sunstone/public/css/login.css
52 52
    top: 80px;
53 53
    margin-left: auto;
54 54
    margin-right: auto;
55
    background: url(/images/opennebula-sunstone-big.png) no-repeat center ;
55
    background: url(../images/opennebula-sunstone-big.png) no-repeat center ;
56 56

  
57 57
    vertical-align: center;
58 58
}
......
160 160

  
161 161
  margin-top: 35px;
162 162
  margin-left:0px;
163
}
164

  
165

  
166

  
163
}
src/sunstone/public/js/layout.js
27 27
}
28 28

  
29 29
function popDialogLoading(){
30
    var loading = '<div style="margin-top:'+Math.round($("#dialog").height()/6)+'px; text-align: center; width: 100%"><img src="/images/pbar.gif" alt="loading..."/></div>';
30
    var loading = '<div style="margin-top:'+Math.round($("#dialog").height()/6)+'px; text-align: center; width: 100%"><img src="images/pbar.gif" alt="loading..." /></div>';
31 31
    popDialog(loading);
32 32
}
33 33

  
src/sunstone/public/js/login.js
15 15
/* -------------------------------------------------------------------------- */
16 16

  
17 17
function auth_success(req, response){
18
    window.location.href = "/";
18
    window.location.href = ".";
19 19
}
20 20

  
21 21
function auth_error(req, error){
src/sunstone/public/js/opennebula.js
231 231
            var request = OpenNebula.Helper.request(resource,"login");
232 232

  
233 233
            $.ajax({
234
                url: "/login",
234
                url: "login",
235 235
                type: "POST",
236 236
                data: {remember: remember},
237 237
                beforeSend : function(req) {
......
265 265
            var request = OpenNebula.Helper.request(resource,"logout");
266 266

  
267 267
            $.ajax({
268
                url: "/logout",
268
                url: "logout",
269 269
                type: "POST",
270 270
                success: function(response)
271 271
                {
......
297 297
            var request = OpenNebula.Helper.request(resource,"list");
298 298

  
299 299
            $.ajax({
300
                url: "/config",
300
                url: "config",
301 301
                type: "GET",
302 302
                dataType: "json",
303 303
                success: function(response)
......
331 331
            var request = OpenNebula.Helper.request(resource,"create", data);
332 332

  
333 333
            $.ajax({
334
                url: "/host",
334
                url: "host",
335 335
                type: "POST",
336 336
                dataType: "json",
337 337
                data: JSON.stringify(data),
......
363 363
            var request = OpenNebula.Helper.request(resource,"delete", id);
364 364

  
365 365
            $.ajax({
366
                url: "/host/" + id,
366
                url: "host/" + id,
367 367
                type: "DELETE",
368 368
                success: function()
369 369
                {
......
392 392
            var request = OpenNebula.Helper.request(resource,"list");
393 393

  
394 394
            $.ajax({
395
                url: "/host",
395
                url: "host",
396 396
                type: "GET",
397 397
                data: {timeout: timeout},
398 398
                dataType: "json",
......
425 425
            var request = OpenNebula.Helper.request(resource,"show", id);
426 426

  
427 427
            $.ajax({
428
                url: "/host/" + id,
428
                url: "host/" + id,
429 429
                type: "GET",
430 430
                dataType: "json",
431 431
                success: function(response)
......
457 457
            var request = OpenNebula.Helper.request(resource,method, id);
458 458

  
459 459
            $.ajax({
460
                url: "/host/" + id + "/action",
460
                url: "host/" + id + "/action",
461 461
                type: "POST",
462 462
                data: JSON.stringify(action),
463 463
                success: function()
......
489 489
            var request = OpenNebula.Helper.request(resource,method, id);
490 490

  
491 491
            $.ajax({
492
                url: "/host/" + id + "/action",
492
                url: "host/" + id + "/action",
493 493
                type: "POST",
494 494
                data: JSON.stringify(action),
495 495
                success: function()
......
587 587
            var request = OpenNebula.Helper.request(resource,"create",data);
588 588

  
589 589
            $.ajax({
590
                url: "/vnet",
590
                url: "vnet",
591 591
                type: "POST",
592 592
                dataType: "json",
593 593
                data: JSON.stringify(data),
......
618 618
            var request = OpenNebula.Helper.request(resource,"delete", id);
619 619

  
620 620
            $.ajax({
621
                url: "/vnet/" + id,
621
                url: "vnet/" + id,
622 622
                type: "DELETE",
623 623
                success: function()
624 624
                {
......
647 647
            var request = OpenNebula.Helper.request(resource,"list");
648 648

  
649 649
            $.ajax({
650
                url: "/vnet",
650
                url: "vnet",
651 651
                type: "GET",
652 652
                dataType: "json",
653 653
                data: {timeout: timeout},
......
679 679
            var request = OpenNebula.Helper.request(resource,"show", id);
680 680

  
681 681
            $.ajax({
682
                url: "/vnet/" + id,
682
                url: "vnet/" + id,
683 683
                type: "GET",
684 684
                dataType: "json",
685 685
                success: function(response)
......
711 711
            var request = OpenNebula.Helper.request(resource,method, id);
712 712

  
713 713
            $.ajax({
714
                url: "/vnet/" + id + "/action",
714
                url: "vnet/" + id + "/action",
715 715
                type: "POST",
716 716
                data: JSON.stringify(action),
717 717
                success: function()
......
743 743
            var request = OpenNebula.Helper.request(resource,method, id);
744 744

  
745 745
            $.ajax({
746
                url: "/vnet/" + id + "/action",
746
                url: "vnet/" + id + "/action",
747 747
                type: "POST",
748 748
                data: JSON.stringify(action),
749 749
                success: function()
......
785 785
            var request = OpenNebula.Helper.request(resource,"create",data);
786 786

  
787 787
            $.ajax({
788
                url: "/vm",
788
                url: "vm",
789 789
                type: "POST",
790 790
                dataType: "json",
791 791
                data: JSON.stringify(data),
......
816 816
            var request = OpenNebula.Helper.request(resource,"delete", id);
817 817

  
818 818
            $.ajax({
819
                url: "/vm/" + id,
819
                url: "vm/" + id,
820 820
                type: "DELETE",
821 821
                success: function()
822 822
                {
......
845 845
            var request = OpenNebula.Helper.request(resource,"list");
846 846

  
847 847
            $.ajax({
848
                url: "/vm",
848
                url: "vm",
849 849
                type: "GET",
850 850
                dataType: "json",
851 851
                data: {timeout: timeout},
......
877 877
            var request = OpenNebula.Helper.request(resource,"log", id);
878 878

  
879 879
            $.ajax({
880
                url: "/vm/" + id + "/log",
880
                url: "vm/" + id + "/log",
881 881
                type: "GET",
882 882
                success: function(response)
883 883
                {
......
906 906
            var request = OpenNebula.Helper.request(resource,"show", id);
907 907

  
908 908
            $.ajax({
909
                url: "/vm/" + id,
909
                url: "vm/" + id,
910 910
                type: "GET",
911 911
                dataType: "json",
912 912
                success: function(response)
......
939 939
            var request = OpenNebula.Helper.request(resource,method, [id, host]);
940 940

  
941 941
            $.ajax({
942
                url: "/vm/" + id + "/action",
942
                url: "vm/" + id + "/action",
943 943
                type: "POST",
944 944
                data: JSON.stringify(action),
945 945
                success: function()
......
971 971
            var request = OpenNebula.Helper.request(resource,method, id);
972 972

  
973 973
            $.ajax({
974
                url: "/vm/" + id + "/action",
974
                url: "vm/" + id + "/action",
975 975
                type: "POST",
976 976
                data: JSON.stringify(action),
977 977
                success: function()
......
1004 1004
            var request = OpenNebula.Helper.request(resource,method, [id, host]);
1005 1005

  
1006 1006
            $.ajax({
1007
                url: "/vm/" + id + "/action",
1007
                url: "vm/" + id + "/action",
1008 1008
                type: "POST",
1009 1009
                data: JSON.stringify(action),
1010 1010
                success: function()
......
1037 1037
            var request = OpenNebula.Helper.request(resource,method, [id, host]);
1038 1038

  
1039 1039
            $.ajax({
1040
                url: "/vm/" + id + "/action",
1040
                url: "vm/" + id + "/action",
1041 1041
                type: "POST",
1042 1042
                data: JSON.stringify(action),
1043 1043
                success: function()
......
1069 1069
            var request = OpenNebula.Helper.request(resource,method, id);
1070 1070

  
1071 1071
            $.ajax({
1072
                url: "/vm/" + id + "/action",
1072
                url: "vm/" + id + "/action",
1073 1073
                type: "POST",
1074 1074
                data: JSON.stringify(action),
1075 1075
                success: function()
......
1101 1101
            var request = OpenNebula.Helper.request(resource,method, id);
1102 1102

  
1103 1103
            $.ajax({
1104
                url: "/vm/" + id + "/action",
1104
                url: "vm/" + id + "/action",
1105 1105
                type: "POST",
1106 1106
                data: JSON.stringify(action),
1107 1107
                success: function()
......
1133 1133
            var request = OpenNebula.Helper.request(resource,method, id);
1134 1134

  
1135 1135
            $.ajax({
1136
                url: "/vm/" + id + "/action",
1136
                url: "vm/" + id + "/action",
1137 1137
                type: "POST",
1138 1138
                data: JSON.stringify(action),
1139 1139
                success: function()
......
1165 1165
            var request = OpenNebula.Helper.request(resource,method, id);
1166 1166

  
1167 1167
            $.ajax({
1168
                url: "/vm/" + id + "/action",
1168
                url: "vm/" + id + "/action",
1169 1169
                type: "POST",
1170 1170
                data: JSON.stringify(action),
1171 1171
                success: function()
......
1197 1197
            var request = OpenNebula.Helper.request(resource,method, id);
1198 1198

  
1199 1199
            $.ajax({
1200
                url: "/vm/" + id + "/action",
1200
                url: "vm/" + id + "/action",
1201 1201
                type: "POST",
1202 1202
                data: JSON.stringify(action),
1203 1203
                success: function()
......
1229 1229
            var request = OpenNebula.Helper.request(resource,method, id);
1230 1230

  
1231 1231
            $.ajax({
1232
                url: "/vm/" + id + "/action",
1232
                url: "vm/" + id + "/action",
1233 1233
                type: "POST",
1234 1234
                data: JSON.stringify(action),
1235 1235
                success: function()
......
1270 1270
            var request = OpenNebula.Helper.request(resource,method, [id,disk_id, image_name, type]);
1271 1271

  
1272 1272
            $.ajax({
1273
                url: "/vm/" + id + "/action",
1273
                url: "vm/" + id + "/action",
1274 1274
                type: "POST",
1275 1275
                data: JSON.stringify(action),
1276 1276
                success: function()
......
1302 1302
            var request = OpenNebula.Helper.request(resource,method, id);
1303 1303

  
1304 1304
            $.ajax({
1305
                url: "/vm/" + id + "/action",
1305
                url: "vm/" + id + "/action",
1306 1306
                type: "POST",
1307 1307
                data: JSON.stringify(action),
1308 1308
                success: function()
......
1334 1334
            var request = OpenNebula.Helper.request(resource,method, id);
1335 1335

  
1336 1336
            $.ajax({
1337
                url: "/vm/" + id + "/action",
1337
                url: "vm/" + id + "/action",
1338 1338
                type: "POST",
1339 1339
                data: JSON.stringify(action),
1340 1340
                success: function()
......
1499 1499
            var request = OpenNebula.Helper.request(resource,"create", name);
1500 1500

  
1501 1501
            $.ajax({
1502
                url: "/group",
1502
                url: "group",
1503 1503
                type: "POST",
1504 1504
                dataType: "json",
1505 1505
                data: JSON.stringify(data),
......
1530 1530
            var request = OpenNebula.Helper.request(resource,"delete", id);
1531 1531

  
1532 1532
            $.ajax({
1533
                url: "/group/" + id,
1533
                url: "group/" + id,
1534 1534
                type: "DELETE",
1535 1535
                success: function()
1536 1536
                {
......
1559 1559
            var request = OpenNebula.Helper.request(resource,"list");
1560 1560

  
1561 1561
            $.ajax({
1562
                url: "/group",
1562
                url: "group",
1563 1563
                type: "GET",
1564 1564
                dataType: "json",
1565 1565
                data: {timeout: timeout},
......
1600 1600
            var request = OpenNebula.Helper.request(resource,"create",data);
1601 1601

  
1602 1602
            $.ajax({
1603
                url: "/user",
1603
                url: "user",
1604 1604
                type: "POST",
1605 1605
                dataType: "json",
1606 1606
                data: JSON.stringify(data),
......
1631 1631
            var request = OpenNebula.Helper.request(resource,"delete", id);
1632 1632

  
1633 1633
            $.ajax({
1634
                url: "/user/" + id,
1634
                url: "user/" + id,
1635 1635
                type: "DELETE",
1636 1636
                success: function()
1637 1637
                {
......
1660 1660
            var request = OpenNebula.Helper.request(resource,"list");
1661 1661

  
1662 1662
            $.ajax({
1663
                url: "/user",
1663
                url: "user",
1664 1664
                type: "GET",
1665 1665
                dataType: "json",
1666 1666
                data: {timeout: timeout},
......
1698 1698
            var request = OpenNebula.Helper.request(resource,method, passwd);
1699 1699

  
1700 1700
            $.ajax({
1701
                url: "/user/" + id + "/action",
1701
                url: "user/" + id + "/action",
1702 1702
                type: "POST",
1703 1703
                data: JSON.stringify(action),
1704 1704
                success: function(response)
......
1763 1763
            var request = OpenNebula.Helper.request(resource,"register",data);
1764 1764

  
1765 1765
            $.ajax({
1766
                url: "/image",
1766
                url: "image",
1767 1767
                type: "POST",
1768 1768
                dataType: "json",
1769 1769
                data: JSON.stringify(data),
......
1794 1794
            var request = OpenNebula.Helper.request(resource,method, id);
1795 1795

  
1796 1796
            $.ajax({
1797
                url: "/image/" + id + "/template",
1797
                url: "image/" + id + "/template",
1798 1798
                type: "GET",
1799 1799
                dataType:"json",
1800 1800
                success: function(response)
......
1829 1829
            var request = OpenNebula.Helper.request(resource,method, [id, template_obj]);
1830 1830

  
1831 1831
            $.ajax({
1832
                url: "/image/" + id + "/action",
1832
                url: "image/" + id + "/action",
1833 1833
                type: "POST",
1834 1834
                data: JSON.stringify(action),
1835 1835
                success: function(response)
......
1858 1858
            var request = OpenNebula.Helper.request(resource,"delete", id);
1859 1859

  
1860 1860
            $.ajax({
1861
                url: "/image/" + id,
1861
                url: "image/" + id,
1862 1862
                type: "DELETE",
1863 1863
                success: function()
1864 1864
                {
......
1887 1887
            var request = OpenNebula.Helper.request(resource,"list");
1888 1888

  
1889 1889
            $.ajax({
1890
                url: "/image",
1890
                url: "image",
1891 1891
                type: "GET",
1892 1892
                dataType: "json",
1893 1893
                data: {timeout: timeout},
......
1919 1919
            var request = OpenNebula.Helper.request(resource,"show", id);
1920 1920

  
1921 1921
            $.ajax({
1922
                url: "/image/" + id,
1922
                url: "image/" + id,
1923 1923
                type: "GET",
1924 1924
                dataType: "json",
1925 1925
                success: function(response)
......
1951 1951
            var request = OpenNebula.Helper.request(resource,method, id);
1952 1952

  
1953 1953
            $.ajax({
1954
                url: "/image/" + id + "/action",
1954
                url: "image/" + id + "/action",
1955 1955
                type: "POST",
1956 1956
                data: JSON.stringify(action),
1957 1957
                success: function()
......
1983 1983
            var request = OpenNebula.Helper.request(resource,method, id);
1984 1984

  
1985 1985
            $.ajax({
1986
                url: "/image/" + id + "/action",
1986
                url: "image/" + id + "/action",
1987 1987
                type: "POST",
1988 1988
                data: JSON.stringify(action),
1989 1989
                success: function()
......
2015 2015
            var request = OpenNebula.Helper.request(resource,method, id);
2016 2016

  
2017 2017
            $.ajax({
2018
                url: "/image/" + id + "/action",
2018
                url: "image/" + id + "/action",
2019 2019
                type: "POST",
2020 2020
                data: JSON.stringify(action),
2021 2021
                success: function()
......
2047 2047
            var request = OpenNebula.Helper.request(resource,method, id);
2048 2048

  
2049 2049
            $.ajax({
2050
                url: "/image/" + id + "/action",
2050
                url: "image/" + id + "/action",
2051 2051
                type: "POST",
2052 2052
                data: JSON.stringify(action),
2053 2053
                success: function()
......
2080 2080
            var request = OpenNebula.Helper.request(resource,method, id);
2081 2081

  
2082 2082
            $.ajax({
2083
                url: "/image/" + id + "/action",
2083
                url: "image/" + id + "/action",
2084 2084
                type: "POST",
2085 2085
                data: JSON.stringify(action),
2086 2086
                success: function()
......
2113 2113
            var request = OpenNebula.Helper.request(resource,method, id);
2114 2114

  
2115 2115
            $.ajax({
2116
                url: "/image/" + id + "/action",
2116
                url: "image/" + id + "/action",
2117 2117
                type: "POST",
2118 2118
                data: JSON.stringify(action),
2119 2119
                success: function()
......
2155 2155
            var request = OpenNebula.Helper.request(resource,"create",data);
2156 2156

  
2157 2157
            $.ajax({
2158
                url: "/template",
2158
                url: "template",
2159 2159
                type: "POST",
2160 2160
                dataType: "json",
2161 2161
                data: JSON.stringify(data),
......
2187 2187
            var request = OpenNebula.Helper.request(resource,method, id);
2188 2188

  
2189 2189
            $.ajax({
2190
                url: "/template/" + id + "/template",
2190
                url: "template/" + id + "/template",
2191 2191
                type: "GET",
2192 2192
                dataType:"json",
2193 2193
                success: function(response)
......
2221 2221
            var request = OpenNebula.Helper.request(resource,method, [id, template_obj]);
2222 2222

  
2223 2223
            $.ajax({
2224
                url: "/template/" + id + "/action",
2224
                url: "template/" + id + "/action",
2225 2225
                type: "POST",
2226 2226
                data: JSON.stringify(action),
2227 2227
                success: function(response)
......
2253 2253
            var request = OpenNebula.Helper.request(resource,method, id);
2254 2254

  
2255 2255
            $.ajax({
2256
                url: "/template/" + id + "/action",
2256
                url: "template/" + id + "/action",
2257 2257
                type: "POST",
2258 2258
                data: JSON.stringify(action),
2259 2259
                success: function()
......
2284 2284
            var request = OpenNebula.Helper.request(resource,method, id);
2285 2285

  
2286 2286
            $.ajax({
2287
                url: "/template/" + id + "/action",
2287
                url: "template/" + id + "/action",
2288 2288
                type: "POST",
2289 2289
                data: JSON.stringify(action),
2290 2290
                success: function()
......
2313 2313
            var request = OpenNebula.Helper.request(resource,"list");
2314 2314

  
2315 2315
            $.ajax({
2316
                url: "/template",
2316
                url: "template",
2317 2317
                type: "GET",
2318 2318
                dataType: "json",
2319 2319
                data: {timeout: timeout},
......
2344 2344
            var request = OpenNebula.Helper.request(resource,"show", id);
2345 2345

  
2346 2346
            $.ajax({
2347
                url: "/template/" + id,
2347
                url: "template/" + id,
2348 2348
                type: "GET",
2349 2349
                dataType: "json",
2350 2350
                success: function(response)
......
2373 2373
            var request = OpenNebula.Helper.request(resource,"delete", id);
2374 2374

  
2375 2375
            $.ajax({
2376
                url: "/template/" + id,
2376
                url: "template/" + id,
2377 2377
                type: "DELETE",
2378 2378
                success: function()
2379 2379
                {
src/sunstone/public/js/plugins/groups-tab.js
122 122
    "Group.refresh" : {
123 123
        type: "image",
124 124
        text: "Refresh list",
125
        img: "/images/Refresh-icon.png",
125
        img: "images/Refresh-icon.png",
126 126
        condition: True
127 127
    },
128 128
    "Group.create_dialog" : {
src/sunstone/public/js/plugins/hosts-tab.js
214 214
    "Host.refresh" : {
215 215
        type: "image",
216 216
        text: "Refresh list",
217
        img: "/images/Refresh-icon.png",
217
        img: "images/Refresh-icon.png",
218 218
        condition: True
219 219
        },
220 220
    "Host.create_dialog" : {
src/sunstone/public/js/plugins/images-tab.js
338 338
    "Image.refresh" : {
339 339
        type: "image",
340 340
        text: "Refresh list",
341
        img: "/images/Refresh-icon.png",
341
        img: "images/Refresh-icon.png",
342 342
        condition: True
343 343
    },
344 344
    "Image.create_dialog" : {
src/sunstone/public/js/plugins/templates-tab.js
685 685
    "Template.refresh" : {
686 686
        type: "image",
687 687
        text: "Refresh list",
688
        img: "/images/Refresh-icon.png",
688
        img: "images/Refresh-icon.png",
689 689
        condition: True
690 690
    },
691 691
    "Template.create_dialog" : {
src/sunstone/public/js/plugins/users-tab.js
111 111
    "User.refresh" : {
112 112
        type: "image",
113 113
        text: "Refresh list",
114
        img: "/images/Refresh-icon.png",
114
        img: "images/Refresh-icon.png",
115 115
        condition: True
116 116
    },
117 117
    "User.create_dialog" : {
src/sunstone/public/js/plugins/vms-tab.js
402 402
    "VM.refresh" : {
403 403
        type: "image",
404 404
        text: "Refresh list",
405
        img: "/images/Refresh-icon.png",
405
        img: "images/Refresh-icon.png",
406 406
        condition: True
407 407
    },
408 408

  
src/sunstone/public/js/plugins/vnets-tab.js
237 237
    "Network.refresh" : {
238 238
        type: "image",
239 239
        text: "Refresh list",
240
        img: "/images/Refresh-icon.png",
240
        img: "images/Refresh-icon.png",
241 241
        condition: True
242 242
    },
243 243

  
src/sunstone/public/js/sunstone-util.js
309 309

  
310 310
    //redirect to login if unauthenticated
311 311
    if (error_json.error.http_status=="401") {
312
        window.location.href = "/login";
312
        window.location.href = "login";
313 313
    };
314 314

  
315 315
    if (!message){
src/sunstone/public/js/sunstone.js
17 17
var cookie = {};
18 18
var username = '';
19 19
var uid = '';
20
var spinner = '<img src="/images/ajax-loader.gif" alt="retrieving" class="loading_img" />';
20
var spinner = '<img src="images/ajax-loader.gif" alt="retrieving" class="loading_img" />';
21 21

  
22 22

  
23 23
//Sunstone configuration is formed by predifined "actions", main tabs
......
382 382
    $("#logout").click(function(){
383 383
        OpenNebula.Auth.logout({
384 384
            success:function(){
385
                window.location.href = "/login";
385
                window.location.href = "login";
386 386
            }
387 387
        });
388 388
        return false;
src/sunstone/sunstone-server.rb
122 122
# HTML Requests
123 123
##############################################################################
124 124
get '/' do
125
    redirect '/login' unless authorized?
125
    return  File.read(File.dirname(__FILE__)+
126
                      '/templates/login.html') unless authorized?
126 127

  
127 128
    time = Time.now + 60
128 129
    response.set_cookie("one-user",
src/sunstone/templates/index.html
3 3
<head>
4 4
    <title>OpenNebula Admin Console</title>
5 5
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
6
    
6

  
7 7
    <!-- Vendor Libraries -->
8
    <link rel="stylesheet" type="text/css" href="/vendor/dataTables/demo_table_jui.css" />
9
    <link rel="stylesheet" type="text/css" href="/vendor/jQueryUI/jquery-ui-1.8.7.custom.css" />
10
    <link rel="stylesheet" type="text/css" href="/vendor/jGrowl/jquery.jgrowl.css" />
11
    <link rel="stylesheet" type="text/css" href="/vendor/jQueryLayout/layout-default-latest.css" />
12
    <link rel="stylesheet" href="/vendor/noVNC/include/plain.css">
8
    <link rel="stylesheet" type="text/css" href="vendor/dataTables/demo_table_jui.css" />
9
    <link rel="stylesheet" type="text/css" href="vendor/jQueryUI/jquery-ui-1.8.7.custom.css" />
10
    <link rel="stylesheet" type="text/css" href="vendor/jGrowl/jquery.jgrowl.css" />
11
    <link rel="stylesheet" type="text/css" href="vendor/jQueryLayout/layout-default-latest.css" />
12
    <link rel="stylesheet" href="vendor/noVNC/include/plain.css">
13 13

  
14
    <script type="text/javascript" src="/vendor/jQuery/jquery-1.4.4.min.js"></script>
15
    <script type="text/javascript" src="/vendor/jGrowl/jquery.jgrowl_minimized.js"></script>
16
    <script type="text/javascript" src="/vendor/jQueryUI/jquery-ui-1.8.7.custom.min.js"></script>
17
    <script type="text/javascript" src="/vendor/jQueryLayout/jquery.layout.min-1.2.0.js"></script>
18
    <script type="text/javascript" src="/vendor/dataTables/jquery.dataTables.min.js"></script>
19
    <script language="javascript" type="text/javascript" src="/vendor/flot/jquery.flot.min.js"></script>    
14
    <script type="text/javascript" src="vendor/jQuery/jquery-1.4.4.min.js"></script>
15
    <script type="text/javascript" src="vendor/jGrowl/jquery.jgrowl_minimized.js"></script>
16
    <script type="text/javascript" src="vendor/jQueryUI/jquery-ui-1.8.7.custom.min.js"></script>
17
    <script type="text/javascript" src="vendor/jQueryLayout/jquery.layout.min-1.2.0.js"></script>
18
    <script type="text/javascript" src="vendor/dataTables/jquery.dataTables.min.js"></script>
19
    <script language="javascript" type="text/javascript" src="vendor/flot/jquery.flot.min.js"></script>
20 20

  
21 21
    <!-- End Vendor Libraries -->
22 22

  
23
    <link rel="stylesheet" type="text/css" href="/css/application.css" />
24
    <link rel="stylesheet" type="text/css" href="/css/layout.css" />
25
    <script type="text/javascript" src="/js/opennebula.js"></script>
26
    <script type="text/javascript" src="/js/layout.js"></script>
27
    <script type="text/javascript" src="/js/sunstone.js"></script>
28
    <script type="text/javascript" src="/js/sunstone-util.js"></script>
23
    <link rel="stylesheet" type="text/css" href="css/application.css" />
24
    <link rel="stylesheet" type="text/css" href="css/layout.css" />
25
    <script type="text/javascript" src="js/opennebula.js"></script>
26
    <script type="text/javascript" src="js/layout.js"></script>
27
    <script type="text/javascript" src="js/sunstone.js"></script>
28
    <script type="text/javascript" src="js/sunstone-util.js"></script>
29 29

  
30 30
    <!--Base plugins-->
31
    <script type="text/javascript" src="/js/plugins/dashboard-tab.js"></script>
32
    <script type="text/javascript" src="/js/plugins/hosts-tab.js"></script>
33
    <script type="text/javascript" src="/js/plugins/groups-tab.js"></script>
34
    <script type="text/javascript" src="/js/plugins/templates-tab.js"></script>
35
    <script type="text/javascript" src="/js/plugins/vms-tab.js"></script>
36
    <script type="text/javascript" src="/js/plugins/vnets-tab.js"></script>
37
    <script type="text/javascript" src="/js/plugins/images-tab.js"></script>
38
    <script type="text/javascript" src="/js/plugins/users-tab.js"></script>
39
    
40
    <!--<script type="text/javascript" src="/js/plugins/dummy-plugin.js"></script>-->
41
    
31
    <script type="text/javascript" src="js/plugins/dashboard-tab.js"></script>
32
    <script type="text/javascript" src="js/plugins/hosts-tab.js"></script>
33
    <script type="text/javascript" src="js/plugins/groups-tab.js"></script>
34
    <script type="text/javascript" src="js/plugins/templates-tab.js"></script>
35
    <script type="text/javascript" src="js/plugins/vms-tab.js"></script>
36
    <script type="text/javascript" src="js/plugins/vnets-tab.js"></script>
37
    <script type="text/javascript" src="js/plugins/images-tab.js"></script>
38
    <script type="text/javascript" src="js/plugins/users-tab.js"></script>
39

  
40
    <!--<script type="text/javascript" src="js/plugins/dummy-plugin.js"></script>-->
41

  
42 42
</head>
43 43
<body>
44 44
<div class="outer-center">
......
54 54

  
55 55
<div id="header" class="ui-layout-north">
56 56
    <div id="logo">
57
        <img src="/images/opennebula-sunstone-small.png"/>
57
        <img src="images/opennebula-sunstone-small.png"/>
58 58
    </div>
59 59
    <div id="login-info">
60 60
        Welcome <span id="user"></span>&nbsp;|&nbsp;<a href="#" id="logout">Sign Out</a>
src/sunstone/templates/login.html
2 2
<head>
3 3
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4 4
    <title>OpenNebula Admin Console Login</title>
5
    <link rel="stylesheet" type="text/css" href="/css/login.css" />
5
    <link rel="stylesheet" type="text/css" href="css/login.css" />
6 6

  
7 7
    <!-- Vendor Libraries -->
8
    <script type="text/javascript" src="/vendor/jQuery/jquery-1.4.4.min.js"></script>
8
    <script type="text/javascript" src="vendor/jQuery/jquery-1.4.4.min.js"></script>
9 9
    <!-- End Vendor Libraries -->
10 10

  
11
    <script type="text/javascript" src="/js/opennebula.js"></script>
12
    <script type="text/javascript" src="/js/login.js"></script>
11
    <script type="text/javascript" src="js/opennebula.js"></script>
12
    <script type="text/javascript" src="js/login.js"></script>
13 13

  
14 14
</head>
15 15

  
16
-