Revision 003d8fcf
b/snf-astakos-app/astakos/im/api/__init__.py | ||
---|---|---|
123 | 123 |
append(item( |
124 | 124 |
url=absolute(request, reverse('index')), |
125 | 125 |
name=user.email)) |
126 |
append(item(url=absolute(request, reverse('landing')), |
|
127 |
name="Welcome")) |
|
126 | 128 |
append(item(url=absolute(request, reverse('edit_profile')), |
127 |
name="My account"))
|
|
129 |
name="Profile"))
|
|
128 | 130 |
if with_extra_links: |
129 | 131 |
if EMAILCHANGE_ENABLED: |
130 | 132 |
append(item( |
b/snf-astakos-app/astakos/im/forms.py | ||
---|---|---|
986 | 986 |
|
987 | 987 |
|
988 | 988 |
def _init_extra_form_fields(self): |
989 |
|
|
990 |
|
|
989 | 991 |
if self.email_change: |
990 | 992 |
self.fields.update(self.email_change_form.fields) |
991 | 993 |
self.fields['new_email_address'].required = False |
... | ... | |
993 | 995 |
if self.password_change: |
994 | 996 |
self.fields.update(self.password_change_form.fields) |
995 | 997 |
self.fields['old_password'].required = False |
998 |
self.fields['old_password'].label = _('Password') |
|
999 |
self.fields['old_password'].initial = 'skata' |
|
996 | 1000 |
self.fields['new_password1'].required = False |
997 | 1001 |
self.fields['new_password2'].required = False |
998 | 1002 |
|
b/snf-astakos-app/astakos/im/static/im/cloudbar/cloudbar.css | ||
---|---|---|
31 | 31 |
.cloudbar ul.services li:first-child { padding:0 5px;} |
32 | 32 |
.cloudbar ul.services li.active { background:#333;} |
33 | 33 |
.cloudbar ul.services li:hover { background:#444; } |
34 |
|
|
34 |
.cloudbar .red-border { border:2px solid red; } |
|
35 |
.cloudbar ul.services li.red-border { height:31px; line-height:31px; margin-left:-2px; margin-right:-2px; } |
|
35 | 36 |
@media screen and (max-width : 480px) { |
36 | 37 |
.cloudbar .profile { float:none; } |
37 | 38 |
.cloudbar .services li:first-child { position:absolute; left:0; top:0; background:#000} |
b/snf-astakos-app/astakos/im/static/im/css/forms.css | ||
---|---|---|
212 | 212 |
|
213 | 213 |
form .refresh p span.extra-img { background:url(../images/symbols3.png) 54px -161px; z-index:8; } |
214 | 214 |
form .refresh p:hover span.extra-img { background-position:54px 0px; } |
215 |
form .refresh p:hover span.extra-img:hover { background-position:54px -54px; cursor:pointer; } |
|
215 |
form .refresh p:hover span.extra-img:hover { background-position:54px -54px; cursor:pointer; } |
|
216 |
form .refresh.open p span.extra-img { background-position: -33px -161px; } |
|
217 |
form .refresh.open p:hover span.extra-img { background-position: -33px 0px; } |
|
218 |
form .refresh.open p:hover span.extra-img:hover { background-position: -33px -54px; cursor:pointer; } |
b/snf-astakos-app/astakos/im/static/im/css/modules.css | ||
---|---|---|
546 | 546 |
.right-align { text-align:right; } |
547 | 547 |
|
548 | 548 |
.auth_methods h3 { float:left; width:224px; font-size:1.308em;} |
549 |
.auth_methods ul { overflow:hidden; } |
|
549 |
.auth_methods ul { overflow:hidden; padding:0; }
|
|
550 | 550 |
.auth_methods ul li { list-style:none outside none; padding:0; margin:0 0 5px 0; } |
551 | 551 |
.auth_methods ul li a { display:inline-block; height:50px; overflow:hidden; vertical-align:middle; } |
552 | 552 |
.auth_methods ul li a:hover img { margin-top:-174px; } |
... | ... | |
556 | 556 |
.auth_methods ul li a:hover + span { display:inline; } |
557 | 557 |
.auth_methods .dialog-wrap { color:#F24E53; display:none; margin-top:1em; } |
558 | 558 |
.auth_methods .dialog-wrap .submit { min-width:10px; text-transform:uppercase; margin-right:10px; } |
559 |
.auth_methods ul li a.noaction:hover img { margin-top:40px }
|
|
559 |
.auth_methods ul li a.noaction:hover img { margin-top:-55px }
|
|
560 | 560 |
.auth_methods ul li a.noaction:hover { cursor:default; } |
561 | 561 |
.auth_methods ul li a.canremove:hover img, |
562 | 562 |
.auth_methods .assigned ul li.remove a img { margin-top:-112px; } |
... | ... | |
565 | 565 |
.auth_methods .assigned, |
566 | 566 |
.auth_methods .notassigned { margin-bottom:40px; } |
567 | 567 |
.auth_methods .assigned span.details { margin-left:10px; color:grey; display:inline-block; max-width:300px; vertical-align:middle;} |
568 |
|
|
568 |
#token-confirm { display:none; position:absolute; left:550px; } |
|
569 | 569 |
/* login section */ |
570 | 570 |
.login-section {} |
571 | 571 |
.main-login-method { margin-bottom: 20px;} |
... | ... | |
596 | 596 |
.landing-page .dotted { padding-bottom:40px; margin-bottom:40px; } |
597 | 597 |
.landing-page .cyclades a { color:#04a0af; } |
598 | 598 |
.landing-page .dashboard a { color:#3780b0; } |
599 |
.landing-page .rt { text-align:center;vertical-align:middle; } |
|
600 |
|
|
599 |
.landing-page .rt { text-align:center;vertical-align:middle; } |
b/snf-astakos-app/astakos/im/static/im/js/auth_methods.js | ||
---|---|---|
5 | 5 |
e.preventDefault(e); |
6 | 6 |
$(this).parent('li').addClass('remove'); |
7 | 7 |
$(this).siblings('.dialog-wrap').slideDown('slow'); |
8 |
}) |
|
8 |
});
|
|
9 | 9 |
|
10 | 10 |
$('.auth_methods .no').click( function(e) { |
11 | 11 |
e.preventDefault(e); |
12 | 12 |
$(this).parents('li').removeClass('remove'); |
13 | 13 |
$(this).parents('.dialog-wrap').slideUp('slow'); |
14 |
}) |
|
14 |
}); |
|
15 |
|
|
15 | 16 |
$('.auth_methods .canremove').hover( |
16 | 17 |
function () { |
17 | 18 |
$(this).siblings('span.details').hide(); |
... | ... | |
71 | 72 |
|
72 | 73 |
|
73 | 74 |
|
74 |
if ($('input#id_change_password:checkbox').attr('checked')) {
|
|
75 |
if ($('input#id_change_email:checkbox').attr('checked')) {
|
|
75 | 76 |
newEmailDiv.show(); |
76 |
|
|
77 | 77 |
$('.form-following #email-span').parents('.form-row').addClass('open'); |
78 | 78 |
}; |
79 | 79 |
|
... | ... | |
121 | 121 |
// refresh token |
122 | 122 |
authTokenDiv.addClass('refresh'); |
123 | 123 |
$('#token-span').click(function(e){ |
124 |
$(this).parents('.form-row').toggleClass('open'); |
|
125 |
|
|
126 |
var position = $(this).parents('.form-row').position(); |
|
127 |
$('#token-confirm').css('top', position.top - 10); |
|
128 |
$('#token-confirm').toggle(); |
|
129 |
return false; |
|
130 |
}); |
|
131 |
|
|
132 |
$('#token-confirm').click(function(e){ |
|
133 |
e.preventDefault(); |
|
124 | 134 |
renewToken(); |
135 |
$(this).hide(); |
|
125 | 136 |
}) |
126 | 137 |
|
127 | 138 |
|
b/snf-astakos-app/astakos/im/static/im/js/common.js | ||
---|---|---|
23 | 23 |
|
24 | 24 |
} |
25 | 25 |
|
26 |
|
|
26 |
function addClassHover(hoverEl, applicableEl){ |
|
27 |
$(hoverEl).hover( |
|
28 |
function () { |
|
29 |
|
|
30 |
$(applicableEl).addClass('red-border') |
|
31 |
}, |
|
32 |
function () { |
|
33 |
$(applicableEl).removeClass('red-border'); |
|
34 |
|
|
35 |
}); |
|
36 |
} |
|
27 | 37 |
//equal heights |
28 | 38 |
|
29 | 39 |
(function($) { |
... | ... | |
253 | 263 |
} |
254 | 264 |
}, 100); |
255 | 265 |
|
256 |
|
|
257 |
|
|
266 |
// clouds homepage animation |
|
267 |
addClassHover('.landing-page .pithos','.cloudbar ul.services li:first'); |
|
268 |
addClassHover('.landing-page .cyclades','.cloudbar ul.services li:nth-child(2)'); |
|
269 |
addClassHover('.landing-page .dashboard','.cloudbar .profile') |
|
270 |
|
|
258 | 271 |
|
259 | 272 |
|
260 | 273 |
}); |
b/snf-astakos-app/astakos/im/templates/im/landing.html | ||
---|---|---|
1 |
{% extends "im/account_base.html" %} |
|
2 |
|
|
3 |
{% load filters %} |
|
4 |
|
|
5 |
{% block page.body %} |
|
6 |
<div class="landing-page"> |
|
7 |
<h2>WELCOME TO OKEANOS</h2> |
|
8 |
<div class="two-cols clearfix dotted pithos"> |
|
9 |
<div class="rt"> |
|
10 |
rt |
|
11 |
</div> |
|
12 |
<div class="lt"> |
|
13 |
<a href="">Pithos</a> takes you to the storage service where up to 50 gigs |
|
14 |
of space is yours. |
|
15 |
|
|
16 |
</div> |
|
17 |
</div> |
|
18 |
<div class="two-cols clearfix dotted cyclades"> |
|
19 |
<div class="rt"> |
|
20 |
rt |
|
21 |
</div> |
|
22 |
<div class="lt"> |
|
23 |
<a href="">Cyclades</a> to the compute and network cervice where you can |
|
24 |
create your own machines and networks. |
|
25 |
|
|
26 |
|
|
27 |
</div> |
|
28 |
</div> |
|
29 |
<div class="two-cols clearfix dotted dashboard"> |
|
30 |
<div class="rt"> |
|
31 |
rt |
|
32 |
</div> |
|
33 |
<div class="lt"> |
|
34 |
On the right you can accesss your <a href="">dashboard</a> to create |
|
35 |
projects or change account settings |
|
36 |
|
|
37 |
|
|
38 |
</div> |
|
39 |
</div> |
|
40 |
<div class="two-cols clearfix dotted cms"> |
|
41 |
<div class="rt"> |
|
42 |
rt |
|
43 |
</div> |
|
44 |
<div class="lt"> |
|
45 |
In case you want more information regarding the service, |
|
46 |
click on the logo icon on the far left. |
|
47 |
|
|
48 |
|
|
49 |
</div> |
|
50 |
</div> |
|
51 |
</div> |
|
52 |
{% endblock %} |
b/snf-astakos-app/astakos/im/templates/im/profile.html | ||
---|---|---|
20 | 20 |
</div> |
21 | 21 |
</form> |
22 | 22 |
|
23 |
|
|
23 |
<a id="token-confirm" class="submit" href="#">Refresh your token ></a> |
|
24 | 24 |
|
25 | 25 |
<div class="full-dotted"> |
26 | 26 |
{% include "im/profile_auth_methods.html" %} |
b/snf-astakos-app/astakos/im/templates/im/profile_auth_methods.html | ||
---|---|---|
19 | 19 |
<p>Are you sure you want to remove {{ userauthprovider.settings.get_title_display }} from your Authentication methods? </p> |
20 | 20 |
|
21 | 21 |
<p> |
22 |
<a href="{% url remove_auth_provider provider.pk %}" class="submit">Yes</a> |
|
22 |
<a href="{% url remove_auth_provider userauthprovider.pk %}" class="submit">Yes</a>
|
|
23 | 23 |
<a href="#" class="no submit">No</a> |
24 | 24 |
</p> |
25 | 25 |
</div> |
b/snf-astakos-app/astakos/im/templates/im/signup.html | ||
---|---|---|
5 | 5 |
{% endblock %} |
6 | 6 |
|
7 | 7 |
{% block body.left %} |
8 |
<img class="pic" src="{{ IM_STATIC_URL }}images/pictures/accounts_3.png" />
|
|
8 |
<img class="pic" src="{{ IM_STATIC_URL }}images/mailobox.png" />
|
|
9 | 9 |
{% comment %}{% include "im/services_description.html" %}{% endcomment %} |
10 | 10 |
{% endblock body.left %} |
11 | 11 |
|
b/snf-astakos-app/astakos/im/urls.py | ||
---|---|---|
43 | 43 |
'astakos.im.views', |
44 | 44 |
url(r'^$', 'index', {}, name='index'), |
45 | 45 |
url(r'^login/?$', 'index', {}, name='login'), |
46 |
url(r'^landing/?$', 'landing', {}, name='landing'), |
|
46 | 47 |
url(r'^profile/update_token?$', 'update_token', {}, name='update_token'), |
47 | 48 |
url(r'^profile/?$','edit_profile', {}, name='edit_profile'), |
48 | 49 |
url(r'^feedback/?$', 'feedback', {}, name='feedback'), |
b/snf-astakos-app/astakos/im/views.py | ||
---|---|---|
1368 | 1368 |
transaction.commit() |
1369 | 1369 |
return redirect(reverse('project_detail', args=(application_id,))) |
1370 | 1370 |
|
1371 |
|
|
1371 |
def landing(request): |
|
1372 |
return render_response( |
|
1373 |
'im/landing.html', |
|
1374 |
context_instance=get_context(request)) |
Also available in: Unified diff