Commit 6498cee0 authored by Sofia Papagiannaki's avatar Sofia Papagiannaki
Browse files

Merge branch 'master' of https://code.grnet.gr/git/astakos

parents 9f841089 ae1921c7
v0.3.3
======
- Updated grnet styles
- Several styling fixes
- Display page menu
- Minor improvements in cloudbar js and styles
- Use synnefo.lib.context_processors.cloudbar to display the cloudbar
- Updated snf-common dependency to >=0.9.0
- New ASTAKOS_RE_USER_EMAIL_PATTERNS setting
- Support for multiple accounts authentication
- New --set-active and --set-inactive in modifyuser command
v0.3.2
======
......
......@@ -4,6 +4,6 @@ global-include */templates/* */fixtures/* */static/*
global-exclude */.DS_Store
include astakos/settings.d/*
recursive-include astakos/im/templates/ *.html *.txt
recursive-include astakos/im/static/ *.js *.css *.less *.html *.txt *.png
recursive-include astakos/im/static/ *.js *.css *.less *.html *.txt *.png *.htc
prune docs
prune other
......@@ -36,8 +36,9 @@ Each page that wants to display the navigation bar should:
and the authentication status of the current visitor of the page.
- Set the ``CLOUDBAR_ACTIVE_SERVICE`` to the id of the service the current
page refers to so that script cat set the appropriate active styles to
the services menu for services ids see ``SERVICES_LINK``
object in cloudbar.js.
the services menu for services ids see ``SERVICES_LINK`` object in
cloudbar.js. Use special **accounts** value to set account menu as the
active link.
- Set the ``CLOUDBAR_LOCATION`` to the url where bar files are served from.
- Include the servicesbar.js script.
......
......@@ -104,6 +104,9 @@
font-weight: bold !important;
font-size: 12px !important;
}
.servicesbar .profile .user.active {
background-color: #333;
}
.servicesbar .profile a {
float: none;
}
......
......@@ -58,6 +58,7 @@ $(document).ready(function(){
// create profile links
var user = $('<div class="user"></div>');
if (ACTIVE_MENU == "accounts") { user.addClass("hover active")}
var username = $('<a href="#"></a>');
var usermenu = $("<ul>");
var get_menu_url = (window.GET_MENU_URL || window.CLOUDBAR_MENU) + '?callback=?&location=' + window.location.toString();
......
......@@ -79,6 +79,10 @@
font-weight: bold !important;
font-size: 12px !important;
}
&.active {
background-color: #333;
}
}
a {
float: none;
......
/**
* CSS-JS-BOOSTER
*
* A polyfill for box-sizing: border-box for IE6 & IE7.
*
* JScript
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* See <http://www.gnu.org/licenses/lgpl-3.0.txt>
*
* @category JScript
* @package box-sizing-polyfill
* @author Christian Schepp Schaefer <schaepp@gmx.de> <http://twitter.com/derSchepp>
* @copyright 2010 Christian Schepp Schaefer
* @license http://www.gnu.org/copyleft/lesser.html The GNU LESSER GENERAL PUBLIC LICENSE, Version 3.0
* @link http://github.com/Schepp/box-sizing-polyfill
*
* PREFACE:
*
* This box-sizing polyfill is based on previous work done by Erik Arvidsson,
* which he published in 2002 on http://webfx.eae.net/dhtml/boxsizing/boxsizing.html.
*
* USAGE:
*
* Add the behavior/HTC after every `box-sizing: border-box;` that you assign:
*
* box-sizing: border-box;
* *behavior: url(/scripts/boxsizing.htc);`
*
* If you prefix the `behavior` property with a star, like seen above, it will only be seen by
* IE6 & IE7, not by IE8+ (it's a hack) which is better for the performance on those newer browsers.
*
* The URL to the HTC file must be relative to your HTML(!) document, not relative to your CSS.
* That's why I'd advise you to use absolute paths like in the example.
*
*/
<component lightWeight="true">
<attach event="onpropertychange" onevent="checkPropertyChange()" />
<attach event="ondetach" onevent="restore()" />
<attach event="onresize" for="window" onevent="restore();init()" />
<script type="text/javascript">
//<![CDATA[
var viewportwidth = (typeof window.innerWidth != 'undefined' ? window.innerWidth : element.document.documentElement.clientWidth);
// Shortcut for the document object
var doc = element.document;
/*
* init gets called once at the start and then never again,
* triggers box-sizing calculations and updates width and height
*/
function init(){
// check for IE8+
if(typeof(element.style.boxSizing) == "undefined"){
updateBorderBoxWidth();
updateBorderBoxHeight();
}
}
/*
* restore gets called when the behavior is being detached (see event binding at the top),
* resets everything like it was before applying the behavior
*/
function restore(){
// check for IE8+
if(typeof(element.style.boxSizing) == "undefined"){
element.runtimeStyle.width = "";
element.runtimeStyle.height = "";
}
}
/*
* checkPropertyChange gets called as soon as an element property changes
* (see event binding at the top), it then checks if any property influencing its
* dimensions was changed and if yes recalculates width and height
*/
function checkPropertyChange(){
// check for IE8+
if(typeof(element.style.boxSizing) == "undefined"){
var pn = event.propertyName;
var undef;
if(pn == "style.boxSizing" && element.style.boxSizing == ""){
element.style.removeAttribute("boxSizing");
element.runtimeStyle.boxSizing = undef;
}
switch (pn){
case "style.width":
case "style.borderLeftWidth":
case "style.borderLeftStyle":
case "style.borderRightWidth":
case "style.borderRightStyle":
case "style.paddingLeft":
case "style.paddingRight":
updateBorderBoxWidth();
break;
case "style.height":
case "style.borderTopWidth":
case "style.borderTopStyle":
case "style.borderBottomWidth":
case "style.borderBottomStyle":
case "style.paddingTop":
case "style.paddingBottom":
updateBorderBoxHeight();
break;
case "className":
case "style.boxSizing":
updateBorderBoxWidth();
updateBorderBoxHeight();
break;
}
}
}
/*
* Helper function, taken from Dean Edward's IE7 framework,
* added by Schepp on 12.06.2010.
* http://code.google.com/p/ie7-js/
*
* Allows us to convert from relative to pixel-values.
*/
function getPixelValue(value){
var PIXEL = /^\d+(px)?$/i;
if (PIXEL.test(value)) return parseInt(value);
var style = element.style.left;
var runtimeStyle = element.runtimeStyle.left;
element.runtimeStyle.left = element.currentStyle.left;
element.style.left = value || 0;
value = parseInt(element.style.pixelLeft);
element.style.left = style;
element.runtimeStyle.left = runtimeStyle;
return value;
}
function getPixelWidth(object, value){
// For Pixel Values
var PIXEL = /^\d+(px)?$/i;
if (PIXEL.test(value)) return parseInt(value);
// For Percentage Values
var PERCENT = /^[\d\.]+%$/i;
if (PERCENT.test(value)){
try{
parentWidth = getPixelWidth(object.parentElement,(object.parentElement.currentStyle.width != "auto" ? object.parentElement.currentStyle.width : "100%"));
value = (parseFloat(value) / 100) * parentWidth;
}
catch(e){
value = (parseFloat(value) / 100) * element.document.documentElement.clientWidth;
}
return parseInt(value);
}
// For EM Values
var style = object.style.left;
var runtimeStyle = object.runtimeStyle.left;
object.runtimeStyle.left = object.currentStyle.left;
object.style.left = value || 0;
value = parseInt(object.style.pixelLeft);
object.style.left = style;
object.runtimeStyle.left = runtimeStyle;
return value;
}
/*
* getBorderWidth & friends
* Border width getters
*/
function getBorderWidth(sSide){
if(element.currentStyle["border" + sSide + "Style"] == "none"){
return 0;
}
var n = getPixelValue(element.currentStyle["border" + sSide + "Width"]);
return n || 0;
}
function getBorderLeftWidth() { return getBorderWidth("Left"); }
function getBorderRightWidth() { return getBorderWidth("Right"); }
function getBorderTopWidth() { return getBorderWidth("Top"); }
function getBorderBottomWidth() { return getBorderWidth("Bottom"); }
/*
* getPadding & friends
* Padding width getters
*/
function getPadding(sSide) {
var n = getPixelValue(element.currentStyle["padding" + sSide]);
return n || 0;
}
function getPaddingLeft() { return getPadding("Left"); }
function getPaddingRight() { return getPadding("Right"); }
function getPaddingTop() { return getPadding("Top"); }
function getPaddingBottom() { return getPadding("Bottom"); }
/*
* getBoxSizing
* Get the box-sizing value for the current element
*/
function getBoxSizing(){
var s = element.style;
var cs = element.currentStyle
if(typeof s.boxSizing != "undefined" && s.boxSizing != ""){
return s.boxSizing;
}
if(typeof s["box-sizing"] != "undefined" && s["box-sizing"] != ""){
return s["box-sizing"];
}
if(typeof cs.boxSizing != "undefined" && cs.boxSizing != ""){
return cs.boxSizing;
}
if(typeof cs["box-sizing"] != "undefined" && cs["box-sizing"] != ""){
return cs["box-sizing"];
}
return getDocumentBoxSizing();
}
/*
* getDocumentBoxSizing
* Get the default document box sizing (check for quirks mode)
*/
function getDocumentBoxSizing(){
if(doc.compatMode == null || doc.compatMode == "BackCompat"){
return "border-box";
}
return "content-box"
}
/*
* setBorderBoxWidth & friends
* Width and height setters
*/
function setBorderBoxWidth(n){
element.runtimeStyle.width = Math.max(0, n - getBorderLeftWidth() -
getPaddingLeft() - getPaddingRight() - getBorderRightWidth()) + "px";
}
function setBorderBoxHeight(n){
element.runtimeStyle.height = Math.max(0, n - getBorderTopWidth() -
getPaddingTop() - getPaddingBottom() - getBorderBottomWidth()) + "px";
}
function setContentBoxWidth(n){
element.runtimeStyle.width = Math.max(0, n + getBorderLeftWidth() +
getPaddingLeft() + getPaddingRight() + getBorderRightWidth()) + "px";
}
function setContentBoxHeight(n){
element.runtimeStyle.height = Math.max(0, n + getBorderTopWidth() +
getPaddingTop() + getPaddingBottom() + getBorderBottomWidth()) + "px";
}
/*
* updateBorderBoxWidth & updateBorderBoxHeight
*
*/
function updateBorderBoxWidth() {
if(getDocumentBoxSizing() == getBoxSizing()){
return;
}
var csw = element.currentStyle.width;
if(csw != "auto"){
csw = getPixelWidth(element,csw);
if(getBoxSizing() == "border-box"){
setBorderBoxWidth(parseInt(csw));
}
else{
setContentBoxWidth(parseInt(csw));
}
}
}
function updateBorderBoxHeight() {
if(getDocumentBoxSizing() == getBoxSizing()){
return;
}
var csh = element.currentStyle.height;
if(csh != "auto"){
csh = getPixelValue(csh);
if(getBoxSizing() == "border-box"){
setBorderBoxHeight(parseInt(csh));
}
else{
setContentBoxHeight(parseInt(csh));
}
}
}
// Run the calculations
init();
//]]>
</script>
</component>
\ No newline at end of file
......@@ -200,10 +200,6 @@ textarea {
line-height: 22px;
letter-spacing: 1px;
background-color: #3582ac;
-webkit-transition: background-color 0.15s linear;
transition: background-color 0.15s linear;
-webkit-transition: background-color 0.15s linear;
transition: background-color 0.15s linear;
color: #ffffff;
border: none;
padding: 0.8em 22px;
......@@ -212,61 +208,14 @@ textarea {
.button:hover {
background-color: #f89a1c;
}
.button a {
color: #ffffff !important;
text-decoration: none !important;
border: none !important;
}
a.button {
color: #ffffff !important;
text-decoration: none !important;
border: none !important;
}
.makeRow {
zoom: 1;
margin-left: -22px;
}
.makeRow:before, .makeRow:after {
display: table;
content: "";
zoom: 1;
}
.makeRow:after {
clear: both;
}
.button {
font-family: 'Antic', sans-serif;
font-size: 14px;
font-weight: normal;
line-height: 22px;
letter-spacing: 1px;
font-family: 'Antic', sans-serif;
font-size: 14px;
font-weight: normal;
line-height: 22px;
letter-spacing: 1px;
background-color: #3582ac;
-webkit-transition: background-color 0.15s linear;
transition: background-color 0.15s linear;
-webkit-transition: background-color 0.15s linear;
transition: background-color 0.15s linear;
color: #ffffff;
border: none;
padding: 0.8em 22px;
font-size: 1em;
}
.button:hover {
background-color: #f89a1c;
}
.button a {
color: #ffffff !important;
text-decoration: none !important;
text-align: center !important;
color: #fff !important;
border: none !important;
display: block !important;
}
a.button {
color: #ffffff !important;
text-decoration: none !important;
border: none !important;
a.button:hover {
color: #fff !important;
}
/*addon to style django forms rendered with as_p filter*/
/*
......@@ -470,6 +419,53 @@ table .purple {
table .headerSortUp.purple, table .headerSortDown.purple {
background-color: #e2d5f0;
}
.makeRow {
zoom: 1;
margin-left: -22px;
}
.makeRow:before, .makeRow:after {
display: table;
content: "";
zoom: 1;
}
.makeRow:after {
clear: both;
}
.button {
font-family: 'Antic', sans-serif;
font-size: 14px;
font-weight: normal;
line-height: 22px;
letter-spacing: 1px;
font-family: 'Antic', sans-serif;
font-size: 14px;
font-weight: normal;
line-height: 22px;
letter-spacing: 1px;
background-color: #3582ac;
color: #ffffff;
border: none;
padding: 0.8em 22px;
font-size: 1em;
}
.button:hover {
background-color: #f89a1c;
}
a.button {
text-align: center !important;
color: #fff !important;
border: none !important;
display: block !important;
}
a.button:hover {
color: #fff !important;
}
.border-box {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
*behavior: url(boxsizing.htc);
}
body {
font-family: 'Antic', sans-serif;
font-size: 14px;
......@@ -516,7 +512,8 @@ body {
section a,
p a,
form a,
.section a {
.section a,
.styledlinks a {
color: #000000;
text-decoration: none;
border-bottom: 1px solid #f89a1c;
......@@ -524,21 +521,27 @@ form a,
section a:hover,
p a:hover,
form a:hover,
.section a:hover {
.section a:hover,
.styledlinks a:hover {
color: #f89a1c;
}
section a.noborder,
p a.noborder,
form a.noborder,
.section a.noborder {
.section a.noborder,
.styledlinks a.noborder {
border: none;
}
section a em,
p a em,
form a em,
.section a em {
.section a em,
.styledlinks a em {
color: #3582ac;
}
a.simple {
border: none;
}
a.action {
color: #f89a1c;
border-bottom: none;
......@@ -581,7 +584,7 @@ a img {
}
div.header {
position: relative;
margin-top: 42px;
margin-top: 88px;
margin-bottom: 22px;
}
div.header h1 {
......@@ -591,6 +594,12 @@ div.header h1 {
border-bottom: 1px solid #cfcdc7;
padding-bottom: 3px;
}
.mainlogo {
height: 36px;
}
.mainlogo h1 {
height: 36px;
}
.mainlogo img {
margin-left: -10px;
}
......@@ -626,14 +635,17 @@ ul.inline li {
margin-right: 0;
margin-left: 1em;
}
.navigation {
height: 83px;
}
.mainnav {
font-size: 1.1em;
font-size: 1.2em;
}
.mainnav.subnav {
margin-bottom: -22px;
}
.mainnav.subnav li {
margin-top: 11px;
margin-top: 1.2em;
}
.mainnav li {
margin-top: 66px;
......@@ -655,31 +667,56 @@ ul.inline li {
border-bottom: 1px solid #f89a1c;
color: #f89a1c;
}
.page {
.bottom-section {
zoom: 1;
}
.bottom-section:before, .bottom-section:after {
display: table;
content: "";
zoom: 1;
}
.bottom-section:after {
clear: both;
}
.bottom-section .section img {
width: 200px;
}
.top-section {
zoom: 1;
}
.top-section:before, .top-section:after {
display: table;
content: "";
zoom: 1;
}
.top-section:after {
clear: both;
}
div.page {