Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / static / im / cloudbar / cloudbar.js @ c798d62b

History | View | Annotate | Download (5.4 kB)

1 badb9324 Olga Brani
function equalWidths ( secondEl, firstEl) {
2 badb9324 Olga Brani
        secondEl.css('width',firstEl.outerWidth() );
3 badb9324 Olga Brani
}
4 badb9324 Olga Brani
5 badb9324 Olga Brani
6 badb9324 Olga Brani
7 8afc06d1 Kostas Papadimitriou
$(document).ready(function(){
8 8afc06d1 Kostas Papadimitriou
    
9 8afc06d1 Kostas Papadimitriou
    /*
10 8afc06d1 Kostas Papadimitriou
    * LINKS CONFIGURATION
11 8afc06d1 Kostas Papadimitriou
    */
12 8afc06d1 Kostas Papadimitriou
13 8afc06d1 Kostas Papadimitriou
    var PROFILE_URL = "https://accounts.cloud.grnet.gr";
14 8afc06d1 Kostas Papadimitriou
15 8afc06d1 Kostas Papadimitriou
    // cookie plugin https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js 
16 8afc06d1 Kostas Papadimitriou
    //  * Copyright (c) 2010 Klaus Hartl, @carhartl
17 8afc06d1 Kostas Papadimitriou
    //  * Dual licensed under the MIT and GPL licenses
18 8afc06d1 Kostas Papadimitriou
    var cookie=function(key,value,options){if(arguments.length>1&&(!/Object/.test(Object.prototype.toString.call(value))||value===null||value===undefined)){options=$.extend({},options);if(value===null||value===undefined){options.expires=-1}if(typeof options.expires==='number'){var days=options.expires,t=options.expires=new Date();t.setDate(t.getDate()+days)}value=String(value);return(document.cookie=[encodeURIComponent(key),'=',options.raw?value:encodeURIComponent(value),options.expires?'; expires='+options.expires.toUTCString():'',options.path?'; path='+options.path:'',options.domain?'; domain='+options.domain:'',options.secure?'; secure':''].join(''))}options=value||{};var decode=options.raw?function(s){return s}:decodeURIComponent;var pairs=document.cookie.split('; ');for(var i=0,pair;pair=pairs[i]&&pairs[i].split('=');i++){if(decode(pair[0])===key)return decode(pair[1]||'')}return null};
19 8afc06d1 Kostas Papadimitriou
20 8afc06d1 Kostas Papadimitriou
    var ACTIVE_MENU = window.CLOUDBAR_ACTIVE_SERVICE || 'cloud';
21 8afc06d1 Kostas Papadimitriou
    var USER_DATA = window.CLOUDBAR_USER_DATA || {'user': 'Not logged in', 'logged_in': false};
22 8afc06d1 Kostas Papadimitriou
    var COOKIE_NAME = window.CLOUDBAR_COOKIE_NAME || '_pithos2_a';
23 8afc06d1 Kostas Papadimitriou
24 8afc06d1 Kostas Papadimitriou
    var cssloc = window.CLOUDBAR_LOCATION || "http://127.0.0.1:8989/";
25 8afc06d1 Kostas Papadimitriou
    
26 8afc06d1 Kostas Papadimitriou
    // load css
27 8afc06d1 Kostas Papadimitriou
    var css = $("<link />");
28 8afc06d1 Kostas Papadimitriou
    css.attr({rel:'stylesheet', type:'text/css', href:cssloc + 'cloudbar.css'});
29 8afc06d1 Kostas Papadimitriou
    $("head").append(css);
30 c798d62b Olga Brani
    
31 c798d62b Olga Brani
    // load fonts
32 c798d62b Olga Brani
    var font_url = 'https://fonts.googleapis.com/css?family=Antic';
33 c798d62b Olga Brani
    var css_font = $("<link />");
34 c798d62b Olga Brani
    css_font.attr({rel:'stylesheet', type:'text/css', href:font_url});
35 c798d62b Olga Brani
    $("head").append(css_font);
36 8afc06d1 Kostas Papadimitriou
37 8afc06d1 Kostas Papadimitriou
    // load service specific css
38 8afc06d1 Kostas Papadimitriou
    var SKIP_ADDITIONAL_CSS = window.SKIP_ADDITIONAL_CSS == undefined ? false : window.SKIP_ADDITIONAL_CSS;
39 8afc06d1 Kostas Papadimitriou
40 8afc06d1 Kostas Papadimitriou
    if (!SKIP_ADDITIONAL_CSS) {
41 8afc06d1 Kostas Papadimitriou
        var css = $("<link />");
42 8afc06d1 Kostas Papadimitriou
        css.attr({rel:'stylesheet', type:'text/css', href:cssloc + 'service_' + ACTIVE_MENU + '.css'});
43 8afc06d1 Kostas Papadimitriou
        $("head").append(css);
44 8afc06d1 Kostas Papadimitriou
    }
45 8afc06d1 Kostas Papadimitriou
46 8afc06d1 Kostas Papadimitriou
    var root = $('body');
47 9024c501 Olga Brani
    var bar = $('<div class="cloudbar clearfix"></div>');
48 0f4a8a68 Olga Brani
    var services = $('<ul class="services"></ul>');
49 8afc06d1 Kostas Papadimitriou
    var profile = $('<div class="profile"></div>');
50 8afc06d1 Kostas Papadimitriou
    
51 7a0c3713 Kostas Papadimitriou
    var get_services_url = window.GET_SERVICES_URL || window.CLOUDBAR_SERVICES;
52 7a0c3713 Kostas Papadimitriou
    
53 8afc06d1 Kostas Papadimitriou
    // create services links and set the active class to the current service
54 7a0c3713 Kostas Papadimitriou
    $.getJSON(get_services_url + "?callback=?", function(data) {
55 1ae97c83 Sofia Papagiannaki
            $.each(data, function(i, el){
56 0f4a8a68 Olga Brani
            var sli = $("<li>");
57 1ae97c83 Sofia Papagiannaki
            var slink = $("<a>");
58 1ae97c83 Sofia Papagiannaki
            if (el.icon) {
59 1ae97c83 Sofia Papagiannaki
                slink.append($('<img src="'+cssloc+el.icon+'"/>'));
60 4af2e338 Kostas Papadimitriou
                slink.addClass("with-icon");
61 1ae97c83 Sofia Papagiannaki
            } else {
62 1ae97c83 Sofia Papagiannaki
                slink.text(el.name);
63 1ae97c83 Sofia Papagiannaki
            }
64 1ae97c83 Sofia Papagiannaki
            slink.attr('href', el.url);
65 1ae97c83 Sofia Papagiannaki
            slink.attr('title', el.name);
66 0f4a8a68 Olga Brani
            sli.append(slink);
67 0f4a8a68 Olga Brani
            services.append(sli);
68 a2f9a5db Kostas Papadimitriou
            if (el.id == ACTIVE_MENU || el.name == ACTIVE_MENU) {
69 0f4a8a68 Olga Brani
                sli.addClass("active");
70 1ae97c83 Sofia Papagiannaki
            }
71 1ae97c83 Sofia Papagiannaki
        });
72 1ae97c83 Sofia Papagiannaki
      });
73 8afc06d1 Kostas Papadimitriou
    
74 8afc06d1 Kostas Papadimitriou
    // create profile links
75 1ae97c83 Sofia Papagiannaki
    var user = $('<div class="user"></div>');    
76 02717631 Kostas Papadimitriou
    if (ACTIVE_MENU == "accounts") { user.addClass("hover active")}
77 1ae97c83 Sofia Papagiannaki
    var username = $('<a href="#"></a>');
78 8afc06d1 Kostas Papadimitriou
    var usermenu = $("<ul>");
79 7a0c3713 Kostas Papadimitriou
    var get_menu_url = (window.GET_MENU_URL || window.CLOUDBAR_MENU) + '?callback=?&location=' + window.location.toString();
80 c934c789 Kostas Papadimitriou
81 c934c789 Kostas Papadimitriou
    $.getJSON(get_menu_url, function(data) {
82 1ae97c83 Sofia Papagiannaki
        $.each(data, function(i,el) {
83 1ae97c83 Sofia Papagiannaki
            if (i == 0){
84 cbe40c76 Olga Brani
                username.html('<span>'+el.name+'</span>');
85 1ae97c83 Sofia Papagiannaki
                username.attr('href', el.url);
86 0c887794 Olga Brani
                user.removeClass('full');
87 1ae97c83 Sofia Papagiannaki
            }else{
88 1ae97c83 Sofia Papagiannaki
                var link = $("<a />");
89 1ae97c83 Sofia Papagiannaki
                link.text(el.name);
90 1ae97c83 Sofia Papagiannaki
                link.attr({href:el.url});
91 1ae97c83 Sofia Papagiannaki
                var li = $("<li />");
92 1ae97c83 Sofia Papagiannaki
                li.append(link);
93 1ae97c83 Sofia Papagiannaki
                usermenu.append(li);
94 0c887794 Olga Brani
                user.addClass('full');
95 1ae97c83 Sofia Papagiannaki
            }
96 1ae97c83 Sofia Papagiannaki
        });
97 8afc06d1 Kostas Papadimitriou
    });
98 1ae97c83 Sofia Papagiannaki
    
99 8afc06d1 Kostas Papadimitriou
    //profile.filter(".user a").attr("href", 
100 8afc06d1 Kostas Papadimitriou
                                   //profile.find("li a").get(0).attr("href"))
101 8afc06d1 Kostas Papadimitriou
    
102 8afc06d1 Kostas Papadimitriou
    user.append(username);
103 8afc06d1 Kostas Papadimitriou
    user.append(usermenu);
104 8afc06d1 Kostas Papadimitriou
    profile.append(user);
105 0f4a8a68 Olga Brani
    bar.append(profile).append(services);
106 8afc06d1 Kostas Papadimitriou
    
107 8afc06d1 Kostas Papadimitriou
108 8afc06d1 Kostas Papadimitriou
    root.prepend(bar);
109 8afc06d1 Kostas Papadimitriou
    var firstlink = profile.find("ul li:first-child a").attr("href");
110 8afc06d1 Kostas Papadimitriou
    profile.find(".user > a").attr("href", firstlink);
111 7a245cde Kostas Papadimitriou
112 7a245cde Kostas Papadimitriou
    // ie fix
113 7a245cde Kostas Papadimitriou
    user.hover(function(){$(this).addClass("hover")}, function(){$(this).removeClass("hover")});
114 0c887794 Olga Brani
    
115 25f5da04 Olga Brani
    /*$('.cloudbar .profile ul').mouseover(function(){
116 0c887794 Olga Brani
        $(this).parents('.profile').css('backgroundColor','#000');
117 0c887794 Olga Brani
        
118 0c887794 Olga Brani
    });
119 25f5da04 Olga Brani
     $('.cloudbar .profile ul').mouseout(function(){
120 0c887794 Olga Brani
        $(this).parents('.profile').css('backgroundColor','#01A1AE');
121 0c887794 Olga Brani
        
122 25f5da04 Olga Brani
    });*/
123 246eba2f Olga Brani
   $('.cloudbar .profile .full>a').live('click', function(e){
124 25f5da04 Olga Brani
                   e.preventDefault();
125 badb9324 Olga Brani
        equalWidths ( $('.cloudbar .profile ul'), $('.cloudbar .profile'));
126 25f5da04 Olga Brani
                   $(this).siblings('ul').toggle();
127 246eba2f Olga Brani
                   $(this).toggleClass('open');
128 da7eb085 Olga Brani
                   
129 25f5da04 Olga Brani
   });
130 0c887794 Olga Brani
131 0c887794 Olga Brani
    
132 badb9324 Olga Brani
});
133 badb9324 Olga Brani
134 badb9324 Olga Brani
$(window).resize(function() {
135 badb9324 Olga Brani
        equalWidths ( $('.cloudbar .profile ul'), $('.cloudbar .profile'));
136 8afc06d1 Kostas Papadimitriou
});