first pass on the openstack theme
This commit is contained in:
parent
2b8afc7e62
commit
a00ff23013
BIN
os/media/images/open-stack-cloud-computing-logo-2.png
Normal file
BIN
os/media/images/open-stack-cloud-computing-logo-2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.6 KiB |
BIN
os/media/images/sprites.png
Normal file
BIN
os/media/images/sprites.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
@ -1,11 +1,248 @@
|
|||||||
#userToolsNav button {
|
/*$body-font: 'Helvetica Neue', Arial, Helvetica, sans-serif;
|
||||||
|
$heading-font: 'PT Sans', serif;*/
|
||||||
|
|
||||||
|
body,
|
||||||
|
p,
|
||||||
|
.short-summary .counts,
|
||||||
|
#footer ul,
|
||||||
|
.short-summary .userinfo {
|
||||||
|
font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
#secondaryHeader,
|
||||||
|
#questionCount,
|
||||||
|
#footer h3,
|
||||||
|
h1,
|
||||||
|
h1.section-title,
|
||||||
|
.box h2,
|
||||||
|
.short-summary h2,
|
||||||
|
.short-summary .counts .item-count,
|
||||||
|
.tag-right,
|
||||||
|
.tabBar,
|
||||||
|
.question-page .vote-number {
|
||||||
|
font-family: 'PT Sans', serif;
|
||||||
|
}
|
||||||
|
#header {
|
||||||
|
background: #e4eef1;
|
||||||
|
border-top: 3px solid #255e6e;
|
||||||
|
box-shadow: 1px 1px 1px 1px #ccc;
|
||||||
|
-webkit-box-shadow: 1px 1px 1px 1px #ccc;
|
||||||
|
font-family: 'PT Sans', serif;
|
||||||
|
}
|
||||||
|
#metaNav {
|
||||||
|
position: absolute;
|
||||||
|
left: 200px;
|
||||||
|
bottom: 22px;
|
||||||
|
}
|
||||||
|
#metaNav a.on {
|
||||||
|
font-weight: normal;
|
||||||
|
color: #e4eef1;
|
||||||
|
background: #255e6e !important;
|
||||||
|
border-radius: 5px;
|
||||||
|
text-shadow: 0 0 0;
|
||||||
|
box-shadow: 0 0 2px 2px white;
|
||||||
|
}
|
||||||
|
#metaNav #navTags,
|
||||||
|
#metaNav #navBadges,
|
||||||
|
#metaNav #navUsers,
|
||||||
|
#metaNav #navGroups,
|
||||||
|
#metaNav .help {
|
||||||
background: none;
|
background: none;
|
||||||
border: none;
|
padding: 3px 10px 6px 10px;
|
||||||
border-bottom: 1px solid #d0e296;
|
margin: 0 0 0 30px;
|
||||||
color: #d0e296;
|
}
|
||||||
display: inline;
|
#userToolsNav a,
|
||||||
|
#metaNav a {
|
||||||
|
color: #255e6e;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-family: 'Open Sans Condensed', Arial, sans-serif;
|
line-height: 16px;
|
||||||
line-height: 14px;
|
height: 16px;
|
||||||
|
text-shadow: #fff 0 1px 1px;
|
||||||
|
}
|
||||||
|
#header.with-logo #userToolsNav {
|
||||||
|
bottom: 19px;
|
||||||
|
right: -100px;
|
||||||
|
}
|
||||||
|
#secondaryHeader {
|
||||||
|
background: #fff;
|
||||||
|
border: none;
|
||||||
|
margin-bottom: 7px;
|
||||||
|
}
|
||||||
|
.scope-selector {
|
||||||
|
font-size: 16px;
|
||||||
|
height: 37px;
|
||||||
|
border-bottom: 3px solid white;
|
||||||
|
}
|
||||||
|
.scope-selector.on,
|
||||||
|
.scope-selector:hover {
|
||||||
|
background: none;
|
||||||
|
border-bottom: 3px solid;
|
||||||
|
color: #cf2f19;
|
||||||
|
text-decoration: none;
|
||||||
|
-webkit-transition: 0.07s ease;
|
||||||
|
}
|
||||||
|
.scope-selector:first-child {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
.scope-selector:hover {
|
||||||
|
color: #264D69;
|
||||||
|
}
|
||||||
|
#homeButton {
|
||||||
|
background: url(../images/sprites.png) no-repeat 0 -30px;
|
||||||
|
border: none;
|
||||||
|
display: none;
|
||||||
|
width: 33px;
|
||||||
|
}
|
||||||
|
#homeButton:hover {
|
||||||
|
background: url(../images/sprites.png) no-repeat -44px -29px;
|
||||||
|
}
|
||||||
|
.tabBar {
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
#logo img {
|
||||||
|
height: 56px;
|
||||||
|
margin-left: -10px;
|
||||||
|
}
|
||||||
|
#searchBar {
|
||||||
|
box-shadow: inset #eee 1px 1px 2px 1px;
|
||||||
|
margin-left: 255px;
|
||||||
|
margin-top: -33px;
|
||||||
|
}
|
||||||
|
.search-drop-menu {
|
||||||
|
margin-left: 255px;
|
||||||
|
}
|
||||||
|
.search-drop-menu .footer button {
|
||||||
|
padding: 2px 6px 3px;
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFFFFF), color-stop(5%,#F3F3F3), color-stop(100%,rgb(245, 133, 12)));
|
||||||
|
box-shadow: 0 0 2px 2px white;
|
||||||
|
text-shadow: 0 0 0;
|
||||||
|
}
|
||||||
|
.search-drop-menu .footer button:hover {
|
||||||
|
}
|
||||||
|
body.anon #searchBar,
|
||||||
|
body.anon .search-drop-menu {
|
||||||
|
margin-left: 158px;
|
||||||
|
}
|
||||||
|
#askButton {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#ContentRight {
|
||||||
|
margin-top: -56px;
|
||||||
|
margin-bottom: 56px;
|
||||||
|
}
|
||||||
|
.box .contributorback,
|
||||||
|
.box h2 {
|
||||||
|
background: none;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
input[type="submit"].searchBtn,
|
||||||
|
input.cancelSearchBtn {
|
||||||
|
border: 0;
|
||||||
|
display: none;
|
||||||
|
height: 0;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
right: -500px;
|
||||||
|
}
|
||||||
|
button,
|
||||||
|
input[type="submit"],
|
||||||
|
input[type="button"],
|
||||||
|
input[type="reset"],
|
||||||
|
.button {
|
||||||
|
font-family: 'PT Sans', serif;
|
||||||
|
font-weight: normal;
|
||||||
|
border: 1px solid #e2e2e2 !important;
|
||||||
|
padding: 4px 15px;
|
||||||
|
color: black!important;
|
||||||
|
text-decoration: none!important;
|
||||||
|
font-size: 12.5px;
|
||||||
|
background: #FFFFFF;
|
||||||
|
background: -moz-linear-gradient(top, #FFFFFF 0%, #F3F3F3 50%, #EBEBEB 100%);
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFFFFF), color-stop(50%,#F3F3F3), color-stop(100%,#EBEBEB));
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FFFFFF', endColorstr='#EBEBEB',GradientType=0 );
|
||||||
|
box-shadow: 0px 1px 1px rgba(0,0,0,.5);
|
||||||
|
-webkit-box-shadow: 0px 1px 2px rgba(0,0,0,.2);
|
||||||
|
-moz-box-shadow: 0px 1px 2px rgba(0,0,0,.2);
|
||||||
|
text-shadow: #fff 0px 1px 1px;
|
||||||
|
border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
border-bottom-color: #a0a0a0 !important;
|
||||||
|
border-right-color: #bababa !important;
|
||||||
|
border-left-color: #bababa !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box .inputs #interestingTagInput,
|
||||||
|
.box .inputs #ignoredTagInput,
|
||||||
|
.box .inputs #subscribedTagInput,
|
||||||
|
.box .inputs #ab-tag-search {
|
||||||
|
width: 132px;
|
||||||
|
height: 23px;
|
||||||
|
line-height: 23px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tagSelector div.inputs {
|
||||||
|
}
|
||||||
|
#tagSelector.box h2 {
|
||||||
|
}
|
||||||
|
#metaNav .dropdown,
|
||||||
|
#metaNav a {
|
||||||
|
display: inline;
|
||||||
|
float: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 5px 0 0 0;
|
||||||
|
}
|
||||||
|
#metaNav span.dropdown-toggle {
|
||||||
|
padding: 10px;
|
||||||
|
border-left: 1px solid #e4eef1;
|
||||||
|
/*background: url(../images/sprites.png) no-repeat -7px -242px;*/
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
#metaNav span.dropdown-toggle:hover {
|
||||||
|
background: #e4eef1;
|
||||||
|
/*background: url(../images/sprites.png) no-repeat -7px -274px;*/
|
||||||
|
}
|
||||||
|
#metaNav span.dropdown-toggle:hover .dropdown-menu {
|
||||||
|
background: #e4eef1;
|
||||||
|
border-left: 1px solid #e4eef1;
|
||||||
|
display: block;
|
||||||
|
left: -1px;
|
||||||
|
padding: 0 0 10px 0;
|
||||||
|
top: 32px;
|
||||||
|
}
|
||||||
|
#metaNav .dropdown-menu {
|
||||||
|
background: #e4eef1;
|
||||||
|
left: 26px;
|
||||||
|
top: 22px;
|
||||||
|
}
|
||||||
|
#metaNav .dropdown-menu li {
|
||||||
|
line-height: 1.7;
|
||||||
|
padding-left: 13px;
|
||||||
|
}
|
||||||
|
#metaNav .dropdown-menu li:hover {
|
||||||
|
display: block !important;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
#metaNav .dropdown-menu a {
|
||||||
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
#metaNav .dropdon-menu a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
#footer .span-8,
|
||||||
|
#footer .span-4 {
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin: 0;
|
||||||
|
padding-right: 10px;
|
||||||
|
width: 20%;
|
||||||
|
}
|
||||||
|
#footer h3 {
|
||||||
|
color: #de0000;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
#footer ul {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
14
os/templates/meta/fonts.html
Normal file
14
os/templates/meta/fonts.html
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{% if settings.USE_LOCAL_FONTS %}
|
||||||
|
{# this version is for serving fonts locally - e.g. for intranet sites #}
|
||||||
|
<style type="text/css">
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Open Sans Condensed';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 700;
|
||||||
|
src: url('{{"/images/OpenSans-CondBold.ttf"|media}}');
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
{% else %}
|
||||||
|
{# note: for IE8 we ask for fonts separately #}
|
||||||
|
<link href='//fonts.googleapis.com/css?family=PT+Sans&subset=latin' rel='stylesheet' type='text/css'>
|
||||||
|
{% endif %}
|
52
os/templates/widgets/footer.html
Normal file
52
os/templates/widgets/footer.html
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<div class="content-wrapper">
|
||||||
|
<div id="footer">
|
||||||
|
<hr />
|
||||||
|
<div class="span-8">
|
||||||
|
<h3>My Feedback About This Page</h3>
|
||||||
|
<form id="FeedbackForm_FeedbackForm" action="/home/FeedbackForm" method="post" enctype="application/x-www-form-urlencoded">
|
||||||
|
<textarea id="FeedbackForm_FeedbackForm_Content" name="Content" rows="5" cols="20"></textarea>
|
||||||
|
<input class="action button" id="FeedbackForm_FeedbackForm_action_submitFeedback" type="submit" name="action_submitFeedback" value="Tell Us" title="Tell Us" />
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="span-4">
|
||||||
|
<h3>OpenStack</h3>
|
||||||
|
<ul>
|
||||||
|
<li><a href="/projects/">Projects</a></li>
|
||||||
|
<li><a href="/openstack-security/">OpenStack Security</a></li>
|
||||||
|
<li><a href="/projects/openstack-faq/">Common Questions</a></li>
|
||||||
|
<li><a href="/blog/">Blog</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="span-4">
|
||||||
|
<h3>Community</h3>
|
||||||
|
<ul>
|
||||||
|
<li><a href="/community/">User Groups</a></li>
|
||||||
|
<li><a href="/events/">Events</a></li>
|
||||||
|
<li><a href="/jobs/">Jobs</a></li>
|
||||||
|
<li><a href="/companies/">Companies</a></li>
|
||||||
|
<li><a href="http://wiki.openstack.org/HowToContribute">Contribute</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="span-4">
|
||||||
|
<h3>Documentation</h3>
|
||||||
|
<ul>
|
||||||
|
<li><a href="http://docs.openstack.org/">OpenStack Manuals</a></li>
|
||||||
|
<li><a href="http://www.openstack.org/software/start/">Getting Started</a></li>
|
||||||
|
<li><a href="http://api.openstack.org/">API Documentation</a></li>
|
||||||
|
<li><a href="http://wiki.openstack.org/">Wiki</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="span-4 last">
|
||||||
|
<h3>Branding & Legal</h3>
|
||||||
|
<ul>
|
||||||
|
<li><a href="/brand/">Logos & Guidelines</a></li>
|
||||||
|
<li><a href="/brand/openstack-trademark-policy/">Trademark Policy</a></li>
|
||||||
|
<li><a href="/privacy/">Privacy Policy</a></li>
|
||||||
|
<li><a href="http://wiki.openstack.org/CLA">OpenStack CLA</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<hr />
|
||||||
|
<p>The OpenStack project is provided under the Apache 2.0 license. Openstack.org is powered by <a href="http://www.rackspacecloud.com/">Rackspace Cloud Computing</a>.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
71
os/templates/widgets/meta_nav.html
Normal file
71
os/templates/widgets/meta_nav.html
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
{% import "macros.html" as macros%}
|
||||||
|
{%- if request.user.is_authenticated() -%}
|
||||||
|
<span class="dropdown-toggle">
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li>
|
||||||
|
{{ macros.inbox_link(request.user) }}
|
||||||
|
<a>{% trans %}responses{% endtrans %}</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
{{ macros.moderation_items_link(request.user, moderation_items) }}
|
||||||
|
<a>{% trans %}moderation{% endtrans %}</a>
|
||||||
|
</li>
|
||||||
|
{%-
|
||||||
|
if settings.KARMA_MODE != 'hidden' and settings.BADGES_MODE != 'hidden'
|
||||||
|
-%}
|
||||||
|
<li>
|
||||||
|
{{ macros.user_long_score_and_badge_summary(
|
||||||
|
user,
|
||||||
|
badges_mode = settings.BADGES_MODE
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
</li>
|
||||||
|
{%- endif -%}
|
||||||
|
{% if request.user.is_administrator() %}
|
||||||
|
<li>
|
||||||
|
<a class="settings" href="{% url site_settings %}">{% trans %}settings{% endtrans %}</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="widgets" href="{% url widgets %}">{% trans %}widgets{% endtrans %}</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% if settings.USE_ASKBOT_LOGIN_SYSTEM %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ settings.LOGOUT_URL }}?next={{ settings.LOGOUT_REDIRECT_URL }}"
|
||||||
|
>{% trans %}sign out{% endtrans %}</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
<a href="{{ request.user.get_absolute_url() }}">{{ request.user.username|escape }}</a>
|
||||||
|
</span>
|
||||||
|
{% elif settings.USE_ASKBOT_LOGIN_SYSTEM %}
|
||||||
|
<a href="{{ settings.LOGIN_URL }}?next={{request.path|clean_login_url|escape}}">{% trans %}Hi there! Please sign in{% endtrans %}</a>
|
||||||
|
{% endif %}
|
||||||
|
<a
|
||||||
|
id="navTags"
|
||||||
|
href="{% url tags %}"
|
||||||
|
{% if active_tab == 'tags' %}class="on"{% endif %}
|
||||||
|
>{% trans %}tags{% endtrans %}</a>
|
||||||
|
{% if settings.GROUPS_ENABLED %}
|
||||||
|
<span class="dropdown">
|
||||||
|
<a
|
||||||
|
id="navGroups" class='{% if active_tab == 'groups' %}"on"{% endif %}'
|
||||||
|
href="{% url groups %}" data-target="#" >
|
||||||
|
{% trans %}people & groups{% endtrans %}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
{%else%}
|
||||||
|
<a
|
||||||
|
id="navUsers"
|
||||||
|
href="{% url users %}"
|
||||||
|
{% if active_tab == 'users' %}class="on"{% endif %}
|
||||||
|
>{% trans %}users{% endtrans %}</a>
|
||||||
|
{% endif %}
|
||||||
|
{% if settings.BADGES_MODE == 'public' %}
|
||||||
|
<a
|
||||||
|
id="navBadges"
|
||||||
|
href="{% url badges %}"
|
||||||
|
{% if active_tab == 'badges' %}class="on"{% endif %}
|
||||||
|
>{% trans %}badges{% endtrans %}</a>
|
||||||
|
{% endif %}
|
||||||
|
<a class="help" href="{% url "help" %}" title="{% trans %}help{% endtrans %}">{% trans %}help{% endtrans %}</a>
|
@ -1,53 +1 @@
|
|||||||
{%- if request.user.is_authenticated() -%}
|
{# this file is empty on purpose #}
|
||||||
<a href="{{ request.user.get_absolute_url() }}">{{ request.user.username|escape }}</a>
|
|
||||||
<span class="user-info">
|
|
||||||
{{ macros.inbox_link(request.user) }}
|
|
||||||
{{ macros.moderation_items_link(request.user, moderation_items) }}
|
|
||||||
{%-
|
|
||||||
if settings.KARMA_MODE != 'hidden' and settings.BADGES_MODE != 'hidden'
|
|
||||||
-%}
|
|
||||||
({{ macros.user_long_score_and_badge_summary(
|
|
||||||
user,
|
|
||||||
badges_mode = settings.BADGES_MODE
|
|
||||||
)
|
|
||||||
}})
|
|
||||||
{%- endif -%}
|
|
||||||
</span>
|
|
||||||
{% if settings.USE_ASKBOT_LOGIN_SYSTEM %}
|
|
||||||
<a href="{{ settings.LOGOUT_URL }}?next={{ settings.LOGOUT_REDIRECT_URL }}">{% trans %}sign out{% endtrans %}</a>
|
|
||||||
{% endif %}
|
|
||||||
{% elif settings.USE_ASKBOT_LOGIN_SYSTEM %}
|
|
||||||
<script type="text/javascript">
|
|
||||||
function getCookie(name) {
|
|
||||||
var cookieValue = null;
|
|
||||||
if (document.cookie && document.cookie != '') {
|
|
||||||
var cookies = document.cookie.split(';');
|
|
||||||
for (var i = 0; i < cookies.length; i++) {
|
|
||||||
var cookie = cookies[i].replace(/^\s+|\s+$/g, '');
|
|
||||||
// Does this cookie string begin with the name we want?
|
|
||||||
if (cookie.substring(0, name.length + 1) == (name + '=')) {
|
|
||||||
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return cookieValue;
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<form style="display: inline;" action="{{ settings.LOGIN_URL }}" method="post">
|
|
||||||
<input id="launchpad_csrf_token" type="hidden" name="csrfmiddlewaretoken" value="" />
|
|
||||||
<script type="text/javascript">
|
|
||||||
var csrfInput = document.getElementById('launchpad_csrf_token');
|
|
||||||
csrfInput.setAttribute('value', getCookie('{{ settings.CSRF_COOKIE_NAME }}'));
|
|
||||||
</script>
|
|
||||||
<input type="hidden" name="login_provider_name" value="openid" />
|
|
||||||
<input type="hidden" name="openid_login_token" value="https://login.launchpad.net/" />
|
|
||||||
<input type="hidden" name="next" value="{{ request.path|clean_login_url|escape }}" />
|
|
||||||
<button>{% trans %}Hi there! Please, sign in{% endtrans %}</button>
|
|
||||||
</form>
|
|
||||||
{% endif %}
|
|
||||||
{% if request.user.is_authenticated() and request.user.is_administrator() %}
|
|
||||||
<a class="settings" href="{% url site_settings %}">{% trans %}settings{% endtrans %}</a>
|
|
||||||
<a class="widgets" href="{% url widgets %}">{% trans %}widgets{% endtrans %}</a>
|
|
||||||
{% endif %}
|
|
||||||
<a class="help" href="{% url "help" %}" title="{% trans %}help{% endtrans %}">{% trans %}help{% endtrans %}</a>
|
|
||||||
|
Loading…
Reference in New Issue
Block a user