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 | }); |