import a copy of openstackdocstheme
This is a forked copy of openstackdocstheme, which will serve as the basis for the theme for releases.openstack.org. Rather than try to make the existing theme work, or "subclass" it, I plan to modify it here in place. That will avoid issues from future changes upstream by the docs team, who have their own requirements. I'm checking the whole thing in in this patch, and will modify it in a follow-up patch, to make clear what the modifications are. Change-Id: I3cd9c0e44404447b7c6497f8f9f054a94ec1a46f Signed-off-by: Doug Hellmann <doug@doughellmann.com>
20
doc/source/_themes/releases/css.html
Normal file
@ -0,0 +1,20 @@
|
||||
<!-- Bootstrap CSS -->
|
||||
<link href="{{pathto('_static/css/bootstrap.min.css', 1)}}" rel="stylesheet">
|
||||
|
||||
<!-- Pygments CSS -->
|
||||
<link href="{{pathto('_static/css/native.css', 1)}}" rel="stylesheet">
|
||||
|
||||
<!-- Fonts -->
|
||||
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
|
||||
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300,400,700' rel='stylesheet' type='text/css'>
|
||||
|
||||
<!-- Custom CSS -->
|
||||
<link href="{{pathto('_static/css/combined.css', 1)}}" rel="stylesheet">
|
||||
<link href="{{pathto('_static/css/styles.css', 1)}}" rel="stylesheet">
|
||||
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
||||
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
56
doc/source/_themes/releases/footer.html
Normal file
@ -0,0 +1,56 @@
|
||||
<footer>
|
||||
<div class="container">
|
||||
<div class="row footer-links">
|
||||
<div class="col-lg-2 col-sm-2">
|
||||
<h3>OpenStack</h3>
|
||||
<ul>
|
||||
<li><a href="http://openstack.org/projects/">Projects</a></li>
|
||||
<li><a href="http://openstack.org/projects/openstack-security/">OpenStack Security</a></li>
|
||||
<li><a href="http://openstack.org/projects/openstack-faq/">Common Questions</a></li>
|
||||
<li><a href="http://openstack.org/blog/">Blog</a></li>
|
||||
<li><a href="http://openstack.org/news/">News</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-lg-2 col-sm-2">
|
||||
<h3>Community</h3>
|
||||
<ul>
|
||||
<li><a href="http://openstack.org/community/">User Groups</a></li>
|
||||
<li><a href="http://openstack.org/community/events/">Events</a></li>
|
||||
<li><a href="http://openstack.org/community/jobs/">Jobs</a></li>
|
||||
<li><a href="http://openstack.org/foundation/companies/">Companies</a></li>
|
||||
<li><a href="http://docs.openstack.org/infra/manual/developers.html">Contribute</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-lg-2 col-sm-2">
|
||||
<h3>Documentation</h3>
|
||||
<ul>
|
||||
<li><a href="http://docs.openstack.org">OpenStack Manuals</a></li>
|
||||
<li><a href="http://openstack.org/software/start/">Getting Started</a></li>
|
||||
<li><a href="http://developer.openstack.org">API Documentation</a></li>
|
||||
<li><a href="https://wiki.openstack.org">Wiki</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-lg-2 col-sm-2">
|
||||
<h3>Branding & Legal</h3>
|
||||
<ul>
|
||||
<li><a href="http://openstack.org/brand/">Logos & Guidelines</a></li>
|
||||
<li><a href="http://openstack.org/brand/openstack-trademark-policy/">Trademark Policy</a></li>
|
||||
<li><a href="http://openstack.org/privacy/">Privacy Policy</a></li>
|
||||
<li><a href="https://wiki.openstack.org/wiki/How_To_Contribute#Contributor_License_Agreement">OpenStack CLA</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-lg-4 col-sm-4">
|
||||
<h3>Stay In Touch</h3>
|
||||
<a href="https://twitter.com/OpenStack" target="_blank" class="social-icons footer-twitter"></a>
|
||||
<a href="https://www.facebook.com/openstack" target="_blank" class="social-icons footer-facebook"></a>
|
||||
<a href="https://www.linkedin.com/company/openstack" target="_blank" class="social-icons footer-linkedin"></a>
|
||||
<a href="https://www.youtube.com/user/OpenStackFoundation" target="_blank" class="social-icons footer-youtube"></a>
|
||||
<p class="fine-print">
|
||||
The OpenStack project is provided under the
|
||||
<a href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 license</a>. Openstack.org is powered by
|
||||
<a href="http://rackspace.com" target="_blank">Rackspace Cloud Computing</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
107
doc/source/_themes/releases/header.html
Normal file
@ -0,0 +1,107 @@
|
||||
<nav class="navbar navbar-default inner" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button class="navbar-toggle" data-target="#bs-example-navbar-collapse-1" data-toggle="collapse" type="button">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<div class="brand-wrapper">
|
||||
<a class="navbar-brand" href="/"></a>
|
||||
</div>
|
||||
<div class="search-icon show"><i class="fa fa-search"></i> Search</div></div>
|
||||
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
||||
<div class="search-container tiny">
|
||||
<div id="gcse">
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var cx = '000108871792296872333:noj9nikm74i';
|
||||
var gcse = document.createElement('script');
|
||||
gcse.type = 'text/javascript';
|
||||
gcse.async = true;
|
||||
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
|
||||
'//www.google.com/cse/cse.js?cx=' + cx;
|
||||
var s = document.getElementsByTagName('script')[0];
|
||||
s.parentNode.insertBefore(gcse, s);
|
||||
})();
|
||||
</script>
|
||||
<gcse:search gname="standard"></gcse:search>
|
||||
</div>
|
||||
<i class="fa fa-times close-search"></i>
|
||||
</div>
|
||||
<ul class="nav navbar-nav navbar-main show">
|
||||
<li>
|
||||
<div id="gcse-mobile">
|
||||
<gcse:search gname="mobile"></gcse:search>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.openstack.org/software/" class="drop" id="dropdownMenuSoftware">Software <i class="fa fa-caret-down"></i></a>
|
||||
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenuSoftware">
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/software/">Overview</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/software/project-navigator/">Project Navigator</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/software/sample-configs/">Sample Configs</a></li>
|
||||
<li role="presentation" class="divider"></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/software/start/">Get Started</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/software/roadmap/">Roadmap</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/software/latest-release/">Latest Release</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/software/sourcecode/">Source Code</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.openstack.org/user-stories/" class="drop" id="dropdownMenuUsers">Users <i class="fa fa-caret-down"></i></a>
|
||||
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenuUsers">
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/user-stories/">Overview</a></li>
|
||||
<li role="presentation" class="divider"></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/enterprise/">OpenStack in the Enterprise</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/appdev/">Application Developers</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://superuser.openstack.org/">Superuser Magazine</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/surveys/landing">User Survey</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.openstack.org/community/" class="drop" id="dropdownMenuCommunity">Community <i class="fa fa-caret-down"></i></a>
|
||||
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenuCommunity">
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/community/">Welcome! Start Here</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/foundation/">OpenStack Foundation</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://wiki.openstack.org">OpenStack Wiki</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://groups.openstack.org">User Groups</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/community/speakers/">Speakers Bureau</a></li>
|
||||
<li role="presentation" class="divider"></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/foundation/companies/">Supporting Companies</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/community/jobs/">Jobs</a></li>
|
||||
<li role="presentation" class="divider"></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/join/">Join The Community</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.openstack.org/marketplace/">Marketplace</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.openstack.org/events/" class="drop" id="dropdownMenuEvents">Events <i class="fa fa-caret-down"></i></a>
|
||||
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenuEvents">
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="//www.openstack.org/community/events/">Overview</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://www.openstack.org/summit/">The OpenStack Summit</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="//www.openstack.org/community/events/">More OpenStack Events</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/community/events/#openstack_days">OpenStack Days</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.openstack.org/learn/" class="drop" id="dropdownMenuLearn">Learn <i class="fa fa-caret-down"></i></a>
|
||||
<ul class="dropdown-menu dropdown-hover" role="menu" aria-labelledby="dropdownMenuEvents">
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/marketplace/training/">Training</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="//superuser.openstack.org">Superuser Magazine</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="//ask.openstack.org">Ask a Technical Question</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/news/">News</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/blog/">Blog</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://www.openstack.org/summit/tokyo-2015/summit-videos/">Summit Videos</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://docs.openstack.org/">Docs</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
79
doc/source/_themes/releases/layout.html
Normal file
@ -0,0 +1,79 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
|
||||
{% block header %}{% endblock %}
|
||||
<title>OpenStack Docs: {{ title }}</title>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
{{ metatags }}
|
||||
{% include 'css.html' %}
|
||||
{# FAVICON #}
|
||||
{% if favicon %}
|
||||
<link rel="shortcut icon" href="{{ pathto('_static/favicon.ico') }}"/>
|
||||
{% endif %}
|
||||
{% if theme_analytics_tracking_code %}
|
||||
<!-- Google Analytics -->
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', '{{ theme_analytics_tracking_code }}', 'auto');
|
||||
ga('send', 'pageview');
|
||||
</script>
|
||||
<!-- End Google Analytics -->
|
||||
{% endif %}
|
||||
</head>
|
||||
<body>
|
||||
{% include 'header.html' %}
|
||||
<div class="container docs-book-wrapper">
|
||||
<div class="row">
|
||||
<div class="col-lg-9 col-md-8 col-sm-8 col-lg-push-3 col-md-push-4 col-sm-push-4">
|
||||
{% include 'titlerow.html' %}
|
||||
<div class="row docs-byline">
|
||||
<div class="docs-updated">updated: {{ last_updated }}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="docs-top-contents">
|
||||
{% include 'localtoc.html' %}
|
||||
</div>
|
||||
<div class="docs-body">
|
||||
{% block body %}{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="docs-actions">
|
||||
{% if prev %}
|
||||
<a href="{{ prev.link|e }}"><i class="fa fa-angle-double-left" data-toggle="tooltip" data-placement="top" title="Previous: {{ prev.title }}"></i></a>
|
||||
{% endif %}
|
||||
{% if next %}
|
||||
<a href="{{ next.link|e }}"><i class="fa fa-angle-double-right" data-toggle="tooltip" data-placement="top" title="Next: {{ next.title }}"></i></a>
|
||||
{% endif %}
|
||||
<a id="logABugLink3" href="" target="_blank" title="Found an error? Report a bug against this page"><i class="fa fa-bug" data-toggle="tooltip" data-placement="top" title="Report a Bug"></i></a>
|
||||
</div>
|
||||
<div class="row docs-byline bottom">
|
||||
<div class="docs-updated">updated: {{ last_updated }}</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-md-8 col-sm-8 docs-license">
|
||||
{% include 'license_cc.html' %}
|
||||
</div>
|
||||
<div class="col-lg-4 col-md-4 col-sm-4 docs-actions-wrapper">
|
||||
<!-- ID buglinkbottom added so that pre-filled doc bugs
|
||||
are sent to Launchpad projects related to the document -->
|
||||
<a href="#" id="logABugLink2" class="docs-footer-actions"><i class="fa fa-bug"></i> found an error? report a bug</a>
|
||||
<a href="http://ask.openstack.org" class="docs-footer-actions"><i class="fa fa-question-circle"></i> questions?</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include 'sidebartoc.html' %}
|
||||
</div>
|
||||
</div>
|
||||
{% include 'footer.html' %}
|
||||
{% include 'script_footer.html' %}
|
||||
</body>
|
||||
</html>
|
9
doc/source/_themes/releases/license_cc.html
Normal file
@ -0,0 +1,9 @@
|
||||
<a href="https://creativecommons.org/licenses/by/3.0/">
|
||||
<img src="{{pathto('_static/images/docs/license.png', 1)}}" alt="Creative Commons Attribution 3.0 License"/>
|
||||
</a>
|
||||
<p>
|
||||
Except where otherwise noted, this document is licensed under
|
||||
<a href="https://creativecommons.org/licenses/by/3.0/">Creative Commons
|
||||
Attribution 3.0 License</a>. See all <a href="http://www.openstack.org/legal">
|
||||
OpenStack Legal Documents</a>.
|
||||
</p>
|
4
doc/source/_themes/releases/localtoc.html
Normal file
@ -0,0 +1,4 @@
|
||||
{%- if display_toc %}
|
||||
<h5><a href="{{ pathto(master_doc) }}">Contents</a></h5>
|
||||
{{ toc }}
|
||||
{%- endif %}
|
29
doc/source/_themes/releases/navigation.html
Normal file
@ -0,0 +1,29 @@
|
||||
<ul id="Menu1">
|
||||
<li>
|
||||
<a href="http://www.openstack.org/" title="Go to the OpenStack Home page">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="link" href="http://www.openstack.org/software/" title="About OpenStack">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="link" href="http://www.openstack.org/user-stories/" title="Read stories about companies that use OpenStack to get work done.">User Stories</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="link" href="http://www.openstack.org/community/" title="Go to the OpenStack Community page">Community</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="link" href="http://www.openstack.org/profile/" title="Edit your OpenStack community profile">Profile</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.openstack.org/blog/" title="Go to the OpenStack Blog">Blog</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://wiki.openstack.org/" title="Go to the OpenStack Wiki">Wiki</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://docs.openstack.org/glossary/content/glossary.html" title="See definitions of OpenStack terms">Glossary</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="current" href="http://docs.openstack.org/" title="Go to the OpenStack Documentation">Documentation</a>
|
||||
</li>
|
||||
</ul>
|
71
doc/source/_themes/releases/script_footer.html
Normal file
@ -0,0 +1,71 @@
|
||||
<!-- jQuery -->
|
||||
<script type="text/javascript" src="{{pathto('_static/js/jquery-1.11.3.js', 1)}}"></script>
|
||||
|
||||
<!-- Bootstrap JavaScript -->
|
||||
<script type="text/javascript" src="{{pathto('_static/js/bootstrap.min.js', 1)}}"></script>
|
||||
|
||||
<!-- The rest of the JS -->
|
||||
<script type="text/javascript" src="{{pathto('_static/js/navigation.js', 1)}}"></script>
|
||||
|
||||
<!-- Docs JS -->
|
||||
<script type="text/javascript" src="{{pathto('_static/js/docs.js', 1)}}"></script>
|
||||
|
||||
<!-- Popovers -->
|
||||
<script type="text/javascript" src="{{pathto('_static/js/webui-popover.js', 1)}}"></script>
|
||||
|
||||
<!-- Javascript for page -->
|
||||
<script language="JavaScript">
|
||||
/* build a description of this page including SHA, source location on git repo,
|
||||
build time and the project's launchpad bug tag. Set the HREF of the bug
|
||||
buttons */
|
||||
|
||||
var lineFeed = "%0A";
|
||||
var gitURL = "Source: Can't derive source file URL";
|
||||
|
||||
/* there have been cases where "pagename" wasn't set; better check for it */
|
||||
{%- if giturl and pagename %}
|
||||
/* The URL of the source file on Git is based on the giturl variable
|
||||
in conf.py, which must be manually initialized to the source file
|
||||
URL in Git.
|
||||
"pagename" is a standard sphinx parameter containing the name of
|
||||
the source file, without extension. */
|
||||
|
||||
var sourceFile = "{{ pagename }}" + ".rst";
|
||||
gitURL = "Source: {{ giturl }}" + "/" + sourceFile;
|
||||
{%- endif %}
|
||||
|
||||
/* gitsha, project and bug_tag rely on variables in conf.py */
|
||||
var gitSha = "SHA: {{ gitsha }}";
|
||||
{%- if bug_project %}
|
||||
var bugProject = "{{ bug_project }}";
|
||||
{%- else %}
|
||||
var bugProject = "openstack-manuals";
|
||||
{%- endif %}
|
||||
var bugTitle = "{{ title }} in {{ project }}";
|
||||
var fieldTags = "{{ bug_tag }}";
|
||||
|
||||
/* "last_updated" is the build date and time. It relies on the
|
||||
conf.py variable "html_last_updated_fmt", which should include
|
||||
year/month/day as well as hours and minutes */
|
||||
var buildstring = "Release: {{ release }} on {{ last_updated }}";
|
||||
|
||||
var fieldComment = encodeURI(buildstring) +
|
||||
lineFeed + encodeURI(gitSha) +
|
||||
lineFeed + encodeURI(gitURL) ;
|
||||
|
||||
logABug(bugTitle, bugProject, fieldComment, fieldTags);
|
||||
</script>
|
||||
|
||||
<!-- Javascript for search boxes (both sidebar and top nav) -->
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var cx = '000108871792296872333:noj9nikm74i';
|
||||
var gcse = document.createElement('script');
|
||||
gcse.type = 'text/javascript';
|
||||
gcse.async = true;
|
||||
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
|
||||
'//www.google.com/cse/cse.js?cx=' + cx;
|
||||
var s = document.getElementsByTagName('script')[0];
|
||||
s.parentNode.insertBefore(gcse, s);
|
||||
})();
|
||||
</script>
|
28
doc/source/_themes/releases/script_search.html
Normal file
@ -0,0 +1,28 @@
|
||||
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
google.load('search', '1', {
|
||||
language: 'en'
|
||||
});
|
||||
var _gaq = _gaq ||[];
|
||||
_gaq.push([ "_setAccount", "UA-17511903-1"]);
|
||||
function _trackQuery(control, searcher, query) {
|
||||
var gaQueryParamName = "q";
|
||||
var loc = document.location;
|
||||
var url =[
|
||||
loc.pathname,
|
||||
loc.search,
|
||||
loc.search ? '&': '?',
|
||||
gaQueryParamName == '' ? 'q': encodeURIComponent(gaQueryParamName),
|
||||
'=',
|
||||
encodeURIComponent(query)].join('');
|
||||
_gaq.push([ "_trackPageview", url]);
|
||||
}
|
||||
google.setOnLoadCallback(function () {
|
||||
var customSearchControl = new google.search.CustomSearchControl('011012898598057286222:elxsl505o0o');
|
||||
customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
|
||||
customSearchControl.setSearchStartingCallback(null, _trackQuery);
|
||||
customSearchControl.draw('cse');
|
||||
},
|
||||
true);//]]>
|
||||
</script>
|
35
doc/source/_themes/releases/sidebartoc.html
Normal file
@ -0,0 +1,35 @@
|
||||
<div class="col-lg-3 col-md-4 col-sm-4 col-lg-pull-9 col-md-pull-8 col-sm-pull-8 docs-sidebar">
|
||||
<div class="search-icon show">
|
||||
<i class="fa fa-search"></i> Search
|
||||
</div>
|
||||
<div class="btn-group docs-sidebar-releases">
|
||||
<button onclick="location.href='/'" class="btn docs-sidebar-home" data-toggle="tooltip" data-placement="top" title="Docs Home"><i class="fa fa-arrow-circle-o-left"></i></button>
|
||||
<button href="#" type="button" data-toggle="dropdown" class="btn docs-sidebar-release-select">Release: Liberty (October 2015)<i class="fa fa-caret-down"></i></button>
|
||||
<ul class="dropdown-menu docs-sidebar-dropdown" role="menu" aria-labelledby="dLabel">
|
||||
<li role="presentation" class="dropdown-header">Guides</li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/index.html#install-guides">Install Guides</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/index.html#user-guides">User Guides</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/index.html#configuration-guides">Configuration Guides</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/index.html#ops-and-admin-guides">Operations And Administration Guides</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/index.html#api-guides">API Guides</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/index.html#contributor-guides">Contributor Guides</a></li>
|
||||
<li role="presentation" class="dropdown-header">Releases</li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/liberty/">Liberty (current release)</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/kilo/">Kilo (April 2015)</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/juno/">Juno (October 2014)</a></li>
|
||||
<li role="presentation" class="dropdown-header">Languages</li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/ja/">日本語 (Japanese)</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/de/">Deutsch (German)</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/fr/">Français (French)</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/pt_BR/">Português (Portuguese)</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/zh_CN/">简体中文 (Simplified Chinese)</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://docs.openstack.org/ko_KR/">한국어 (Korean)</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="docs-sidebar-toc">
|
||||
<div class="docs-sidebar-section" id="table-of-contents">
|
||||
<a href="{{ pathto(master_doc) }}" class="docs-sidebar-section-title"><h4>{{ _('Contents') }}</h4></a>
|
||||
{{ toctree(maxdepth=2) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
5
doc/source/_themes/releases/static/css/bootstrap.min.css
vendored
Normal file
4659
doc/source/_themes/releases/static/css/combined.css
Normal file
69
doc/source/_themes/releases/static/css/native.css
Normal file
@ -0,0 +1,69 @@
|
||||
.hll { background-color: #404040 }
|
||||
.c { color: #999999; font-style: italic } /* Comment */
|
||||
.err { color: #a61717; background-color: #e3d2d2 } /* Error */
|
||||
.g { color: #d0d0d0 } /* Generic */
|
||||
.k { color: #6ab825; font-weight: bold } /* Keyword */
|
||||
.l { color: #d0d0d0 } /* Literal */
|
||||
.n { color: #d0d0d0 } /* Name */
|
||||
.o { color: #d0d0d0 } /* Operator */
|
||||
.x { color: #d0d0d0 } /* Other */
|
||||
.p { color: #d0d0d0 } /* Punctuation */
|
||||
.cm { color: #999999; font-style: italic } /* Comment.Multiline */
|
||||
.cp { color: #cd2828; font-weight: bold } /* Comment.Preproc */
|
||||
.c1 { color: #999999; font-style: italic } /* Comment.Single */
|
||||
.cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */
|
||||
.gd { color: #d22323 } /* Generic.Deleted */
|
||||
.ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */
|
||||
.gr { color: #d22323 } /* Generic.Error */
|
||||
.gh { color: #ffffff; font-weight: bold } /* Generic.Heading */
|
||||
.gi { color: #589819 } /* Generic.Inserted */
|
||||
.go { color: #cccccc } /* Generic.Output */
|
||||
.gp { color: #aaaaaa } /* Generic.Prompt */
|
||||
.gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */
|
||||
.gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */
|
||||
.gt { color: #d22323 } /* Generic.Traceback */
|
||||
.kc { color: #6ab825; font-weight: bold } /* Keyword.Constant */
|
||||
.kd { color: #6ab825; font-weight: bold } /* Keyword.Declaration */
|
||||
.kn { color: #6ab825; font-weight: bold } /* Keyword.Namespace */
|
||||
.kp { color: #6ab825 } /* Keyword.Pseudo */
|
||||
.kr { color: #6ab825; font-weight: bold } /* Keyword.Reserved */
|
||||
.kt { color: #6ab825; font-weight: bold } /* Keyword.Type */
|
||||
.ld { color: #d0d0d0 } /* Literal.Date */
|
||||
.m { color: #3677a9 } /* Literal.Number */
|
||||
.s { color: #ed9d13 } /* Literal.String */
|
||||
.na { color: #bbbbbb } /* Name.Attribute */
|
||||
.nb { color: #24909d } /* Name.Builtin */
|
||||
.nc { color: #447fcf; text-decoration: underline } /* Name.Class */
|
||||
.no { color: #40ffff } /* Name.Constant */
|
||||
.nd { color: #ffa500 } /* Name.Decorator */
|
||||
.ni { color: #d0d0d0 } /* Name.Entity */
|
||||
.ne { color: #bbbbbb } /* Name.Exception */
|
||||
.nf { color: #447fcf } /* Name.Function */
|
||||
.nl { color: #d0d0d0 } /* Name.Label */
|
||||
.nn { color: #447fcf; text-decoration: underline } /* Name.Namespace */
|
||||
.nx { color: #d0d0d0 } /* Name.Other */
|
||||
.py { color: #d0d0d0 } /* Name.Property */
|
||||
.nt { color: #6ab825; font-weight: bold } /* Name.Tag */
|
||||
.nv { color: #40ffff } /* Name.Variable */
|
||||
.ow { color: #6ab825; font-weight: bold } /* Operator.Word */
|
||||
.w { color: #666666 } /* Text.Whitespace */
|
||||
.mf { color: #3677a9 } /* Literal.Number.Float */
|
||||
.mh { color: #3677a9 } /* Literal.Number.Hex */
|
||||
.mi { color: #3677a9 } /* Literal.Number.Integer */
|
||||
.mo { color: #3677a9 } /* Literal.Number.Oct */
|
||||
.sb { color: #ed9d13 } /* Literal.String.Backtick */
|
||||
.sc { color: #ed9d13 } /* Literal.String.Char */
|
||||
.sd { color: #ed9d13 } /* Literal.String.Doc */
|
||||
.s2 { color: #ed9d13 } /* Literal.String.Double */
|
||||
.se { color: #ed9d13 } /* Literal.String.Escape */
|
||||
.sh { color: #ed9d13 } /* Literal.String.Heredoc */
|
||||
.si { color: #ed9d13 } /* Literal.String.Interpol */
|
||||
.sx { color: #ffa500 } /* Literal.String.Other */
|
||||
.sr { color: #ed9d13 } /* Literal.String.Regex */
|
||||
.s1 { color: #ed9d13 } /* Literal.String.Single */
|
||||
.ss { color: #ed9d13 } /* Literal.String.Symbol */
|
||||
.bp { color: #24909d } /* Name.Builtin.Pseudo */
|
||||
.vc { color: #40ffff } /* Name.Variable.Class */
|
||||
.vg { color: #40ffff } /* Name.Variable.Global */
|
||||
.vi { color: #40ffff } /* Name.Variable.Instance */
|
||||
.il { color: #3677a9 } /* Literal.Number.Integer.Long */
|
1308
doc/source/_themes/releases/static/css/styles.css
Normal file
BIN
doc/source/_themes/releases/static/favicon.ico
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
doc/source/_themes/releases/static/images/docs/license.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
doc/source/_themes/releases/static/images/docs/superuser1.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
doc/source/_themes/releases/static/images/docs/superuser2.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
doc/source/_themes/releases/static/images/docs/superuser3.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
doc/source/_themes/releases/static/images/docs/superuser4.png
Normal file
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 1.1 KiB |
BIN
doc/source/_themes/releases/static/images/footer-facebook.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
BIN
doc/source/_themes/releases/static/images/footer-linkedin.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.2 KiB |
BIN
doc/source/_themes/releases/static/images/footer-twitter.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.0 KiB |
BIN
doc/source/_themes/releases/static/images/footer-youtube.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
doc/source/_themes/releases/static/images/loading.gif
Normal file
After Width: | Height: | Size: 729 B |
After Width: | Height: | Size: 3.1 KiB |
@ -0,0 +1,285 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="136px" height="33px" viewBox="0 0 136 33" enable-background="new 0 0 136 33" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#6D6D6D" d="M51.721,16.175c0,5.531-2.574,7.395-4.764,7.395c-2.574,0-4.645-2.336-4.645-7.365
|
||||
c0-5.237,2.336-7.427,4.792-7.427C49.649,8.779,51.721,11.175,51.721,16.175z M44.591,16.175c0,2.367,0.413,5.591,2.484,5.591
|
||||
c1.953,0,2.336-3.372,2.336-5.591c0-2.189-0.384-5.562-2.397-5.562C44.976,10.613,44.591,13.986,44.591,16.175z"/>
|
||||
<path fill="#6D6D6D" d="M54.235,13.484c0-2.19-0.09-3.462-0.118-4.468h2.041l0.118,1.834h0.059
|
||||
c0.768-1.538,1.893-2.071,3.018-2.071c2.483,0,4.143,2.663,4.143,7.367c0,5.295-2.19,7.425-4.439,7.425
|
||||
c-1.331,0-2.101-0.858-2.484-1.655h-0.058v7.1h-2.279V13.484z M56.514,18.069c0,0.443,0,0.857,0.087,1.183
|
||||
c0.443,2.041,1.479,2.426,2.101,2.426c1.894,0,2.484-2.604,2.484-5.502c0-2.958-0.71-5.444-2.514-5.444
|
||||
c-1.035,0-1.953,1.302-2.101,2.605c-0.058,0.354-0.058,0.708-0.058,1.093V18.069z"/>
|
||||
<path fill="#6D6D6D" d="M67.667,16.383c0.027,4.378,1.745,5.323,3.401,5.323c0.975,0,1.805-0.235,2.367-0.562l0.354,1.687
|
||||
c-0.798,0.443-2.011,0.682-3.136,0.682c-3.431,0-5.208-2.812-5.208-7.19c0-4.645,1.953-7.544,4.821-7.544
|
||||
c2.931,0,4.085,3.077,4.085,6.332c0,0.532,0,0.916-0.03,1.272H67.667z M72.162,14.696c0.061-2.869-1.037-4.141-2.13-4.141
|
||||
c-1.477,0-2.247,2.188-2.338,4.141H72.162z"/>
|
||||
<path fill="#6D6D6D" d="M76.805,12.714c0-1.687-0.087-2.544-0.118-3.698h1.985l0.117,1.715h0.059
|
||||
c0.623-1.153,1.774-1.952,3.285-1.952c1.981,0,3.461,1.48,3.461,4.941v9.615h-2.278v-9.23c0-1.687-0.326-3.402-1.982-3.402
|
||||
c-0.947,0-1.862,0.797-2.16,2.336c-0.058,0.354-0.089,0.8-0.089,1.272v9.024h-2.279V12.714z"/>
|
||||
<path fill="#CE3427" d="M88.403,20.967c0.503,0.326,1.392,0.739,2.309,0.739c1.3,0,2.101-0.797,2.101-2.07
|
||||
c0-1.094-0.387-1.834-1.836-2.81c-1.862-1.212-2.869-2.426-2.869-4.083c0-2.307,1.718-3.964,3.937-3.964
|
||||
c1.123,0,1.98,0.384,2.573,0.74l-0.623,1.716c-0.532-0.355-1.152-0.622-1.893-0.622c-1.243,0-1.863,0.887-1.863,1.805
|
||||
c0,0.976,0.354,1.509,1.773,2.484c1.658,1.065,2.958,2.367,2.958,4.35c0,2.869-1.952,4.261-4.287,4.261
|
||||
c-1.067,0-2.221-0.325-2.842-0.829L88.403,20.967z"/>
|
||||
<path fill="#CE3427" d="M100.117,5.23v3.786h2.751v1.746h-2.751v8.491c0,1.863,0.682,2.367,1.508,2.367
|
||||
c0.356,0,0.653-0.03,0.918-0.09l0.089,1.745c-0.414,0.147-0.946,0.238-1.685,0.238c-0.89,0-1.687-0.238-2.249-0.859
|
||||
c-0.562-0.651-0.859-1.627-0.859-3.607v-8.285h-1.744V9.016h1.744V5.88L100.117,5.23z"/>
|
||||
<path fill="#CE3427" d="M110.53,23.335l-0.146-1.51h-0.091c-0.62,1.095-1.626,1.745-2.838,1.745c-1.924,0-3.404-1.626-3.404-4.082
|
||||
c0-3.581,2.871-5.177,6.095-5.206v-0.443c0-1.924-0.473-3.255-2.278-3.255c-0.887,0-1.687,0.296-2.366,0.74l-0.503-1.598
|
||||
c0.593-0.443,1.924-0.947,3.344-0.947c2.868,0,4.112,1.894,4.112,5.118v6.183c0,1.097,0,2.337,0.148,3.256H110.53z M110.204,15.939
|
||||
c-1.181,0-3.935,0.207-3.935,3.313c0,1.863,0.947,2.544,1.747,2.544c1.007,0,1.862-0.739,2.129-2.16
|
||||
c0.059-0.266,0.059-0.562,0.059-0.798V15.939z"/>
|
||||
<path fill="#CE3427" d="M122.631,22.979c-0.505,0.296-1.361,0.534-2.367,0.534c-3.137,0-5.236-2.516-5.236-7.249
|
||||
c0-4.112,2.069-7.455,5.649-7.455c0.77,0,1.599,0.207,2.012,0.444l-0.443,1.863c-0.295-0.147-0.888-0.385-1.626-0.385
|
||||
c-2.279,0-3.312,2.722-3.312,5.533c0,3.344,1.271,5.355,3.37,5.355c0.623,0,1.124-0.148,1.656-0.385L122.631,22.979z"/>
|
||||
<path fill="#CE3427" d="M126.831,15.673h0.058c0.268-0.562,0.505-1.125,0.769-1.598l2.842-5.06h2.456l-3.787,6.036l4.112,8.283
|
||||
h-2.545l-3.106-6.746l-0.798,1.332v5.414h-2.28V2.863h2.28V15.673z"/>
|
||||
</g>
|
||||
<g>
|
||||
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="135.2939" y1="-289.2324" x2="150.7576" y2="-290.3611" gradientTransform="matrix(0.711 -0.7032 -0.7032 -0.711 -294.0409 -81.7453)">
|
||||
<stop offset="0" style="stop-color:#000000;stop-opacity:0"/>
|
||||
<stop offset="1" style="stop-color:#010201"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_1_)" d="M3.407,22.683c-0.546-0.552-0.542-0.74,0.011-1.286l6.262,0.35c0.552-0.546,1.489,0.218,2.035,0.771
|
||||
l3.739,2.75c0.547,0.553,2.563,1.941,2.011,2.487l-3.58,2.169c-0.552,0.547-2.675,0.635-3.221,0.083L3.407,22.683z"/>
|
||||
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="295.373" y1="-347.7021" x2="296.8124" y2="-346.4509" gradientTransform="matrix(1 0 0 -1 -268.5 -325.5)">
|
||||
<stop offset="0" style="stop-color:#C33A28"/>
|
||||
<stop offset="0.8825" style="stop-color:#8A241C"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_2_)" d="M25.441,20.554l3.321,3.294c0.795-0.128,0.926-0.529,0.833-1.422l-3.31-3.285l0,0
|
||||
C26.136,20.271,26.181,20.519,25.441,20.554L25.441,20.554z"/>
|
||||
|
||||
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="277.2236" y1="-332.2896" x2="278.9883" y2="-329.2331" gradientTransform="matrix(1 0 0 -1 -268.5 -325.5)">
|
||||
<stop offset="0" style="stop-color:#8A241C"/>
|
||||
<stop offset="1" style="stop-color:#C33A28"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_3_)" d="M10.542,7.84L7.219,4.55c0-0.742,0.532-1.597,1.662-1.744l3.285,3.311l0,0
|
||||
C11.036,6.264,10.577,7.1,10.542,7.84L10.542,7.84z"/>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="29.603,21.781 26.278,18.487 31.301,18.046 34.624,21.341 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="29.603,21.781 26.278,18.487 31.301,18.046 34.624,21.341 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="29.601,22.939 26.278,19.646 26.278,18.487 29.603,21.781 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#C33A28" points="16.385,24.936 13.065,21.641 25.441,20.554 28.762,23.848 "/>
|
||||
</g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<defs>
|
||||
<path id="SVGID_4_" d="M15.777,24.723c-0.052-0.05-0.118-0.114-0.169-0.166c-1.05-1.043-2.104-2.084-3.156-3.129
|
||||
c0.152,0.151,0.368,0.233,0.612,0.213l3.32,3.295C16.143,24.957,15.929,24.87,15.777,24.723z"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_5_">
|
||||
<use xlink:href="#SVGID_4_" overflow="visible"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#SVGID_5_)" enable-background="new ">
|
||||
<path fill="#942820" d="M15.777,24.723l-3.325-3.295c0.011,0.013,0.023,0.021,0.034,0.03l3.323,3.296
|
||||
C15.796,24.741,15.788,24.733,15.777,24.723"/>
|
||||
<path fill="#972920" d="M15.81,24.754l-3.323-3.296c0.017,0.018,0.036,0.031,0.053,0.045l3.322,3.293
|
||||
C15.844,24.782,15.827,24.766,15.81,24.754"/>
|
||||
<path fill="#9A2C21" d="M15.862,24.796l-3.322-3.293c0.015,0.012,0.032,0.021,0.049,0.031l3.323,3.293
|
||||
C15.897,24.817,15.88,24.807,15.862,24.796"/>
|
||||
<path fill="#9E2D21" d="M15.912,24.827l-3.323-3.293c0.017,0.012,0.034,0.021,0.051,0.027l3.323,3.294
|
||||
C15.946,24.849,15.929,24.839,15.912,24.827"/>
|
||||
<path fill="#A22C23" d="M15.963,24.855l-3.323-3.294c0.016,0.009,0.032,0.017,0.047,0.026l3.322,3.29
|
||||
C15.996,24.87,15.98,24.863,15.963,24.855"/>
|
||||
<path fill="#A72D24" d="M16.01,24.878l-3.322-3.29c0.017,0.003,0.036,0.011,0.051,0.017l3.321,3.293
|
||||
C16.044,24.89,16.028,24.886,16.01,24.878"/>
|
||||
<path fill="#AB3125" d="M16.06,24.897l-3.321-3.293c0.017,0.005,0.034,0.012,0.051,0.016l3.323,3.292
|
||||
C16.094,24.908,16.077,24.901,16.06,24.897"/>
|
||||
<path fill="#AE3125" d="M16.113,24.912l-3.323-3.292c0.015,0.005,0.034,0.008,0.053,0.012l3.32,3.291
|
||||
C16.146,24.92,16.128,24.915,16.113,24.912"/>
|
||||
<path fill="#B13126" d="M16.164,24.923l-3.32-3.291c0.017,0.002,0.034,0.005,0.054,0.007l3.323,3.292
|
||||
C16.204,24.931,16.181,24.93,16.164,24.923"/>
|
||||
<path fill="#B63327" d="M16.221,24.931l-3.323-3.292c0.02,0.004,0.041,0.004,0.06,0.005l3.323,3.294
|
||||
C16.258,24.938,16.242,24.936,16.221,24.931"/>
|
||||
<path fill="#B63627" d="M16.28,24.938l-3.323-3.294c0.021,0.001,0.045,0.001,0.066,0.001l3.324,3.293
|
||||
C16.325,24.938,16.304,24.938,16.28,24.938"/>
|
||||
<path fill="#BB3727" d="M16.349,24.938l-3.324-3.293c0.013-0.002,0.027-0.002,0.041-0.004l3.32,3.295
|
||||
C16.372,24.938,16.359,24.938,16.349,24.938"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<defs>
|
||||
<path id="SVGID_6_" d="M10.944,29.924l-3.323-3.293c-0.265-0.261-0.425-0.629-0.425-1.044l3.324,3.289
|
||||
C10.521,29.296,10.679,29.658,10.944,29.924z"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_7_">
|
||||
<use xlink:href="#SVGID_6_" overflow="visible"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#SVGID_7_)" enable-background="new ">
|
||||
<path fill="#82211A" d="M10.944,29.924l-3.323-3.293c-0.237-0.235-0.392-0.557-0.419-0.921l3.322,3.294
|
||||
C10.553,29.369,10.707,29.688,10.944,29.924"/>
|
||||
<path fill="#87241B" d="M10.524,29.004L7.202,25.71c-0.004-0.039-0.004-0.083-0.006-0.123l3.324,3.289
|
||||
C10.521,28.92,10.523,28.96,10.524,29.004"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#D83E27" d="M34.624,21.341l-0.008,5.421c-0.002,0.879-0.716,1.656-1.601,1.734l-20.903,1.836
|
||||
c-0.881,0.078-1.596-0.576-1.592-1.456l0.011-5.421l5.024-0.443l-0.002,1.162c0,0.461,0.372,0.801,0.833,0.762l12.26-1.088
|
||||
c0.459-0.042,0.952-0.445,0.956-0.908l0.001-1.158L34.624,21.341z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="10.531,23.455 7.209,20.163 12.234,19.72 15.555,23.012 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="10.531,23.455 7.209,20.163 12.234,19.72 15.555,23.012 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="10.521,28.876 7.196,25.587 7.209,20.163 10.531,23.455 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#E6584F" points="34.596,12.192 34.626,20.171 29.603,20.612 29.573,12.632 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#E2493C" points="34.596,12.192 34.626,20.171 29.603,20.612 29.573,12.632 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="29.603,20.612 26.284,17.318 26.25,9.337 29.573,12.632 "/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="29.573,12.632 26.25,9.337 31.274,8.898 34.596,12.192 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="29.573,12.632 26.25,9.337 31.274,8.898 34.596,12.192 "/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#E6584F" points="15.526,13.863 15.559,21.845 10.533,22.285 10.499,14.306 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#E2493C" points="15.526,13.863 15.559,21.845 10.533,22.285 10.499,14.306 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="10.533,22.285 7.21,18.992 7.179,11.015 10.499,14.306 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="10.499,14.306 7.179,11.015 12.204,10.573 15.526,13.863 "/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="29.598,11.441 26.273,8.151 26.278,7.148 29.601,10.441 "/>
|
||||
</g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<defs>
|
||||
<path id="SVGID_8_" d="M26.055,6.599c1.108,1.098,2.214,2.196,3.32,3.294c0.14,0.137,0.225,0.329,0.225,0.548
|
||||
l-3.323-3.293C26.278,6.928,26.192,6.737,26.055,6.599z"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_9_">
|
||||
<use xlink:href="#SVGID_8_" overflow="visible"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#SVGID_9_)" enable-background="new ">
|
||||
<path fill="#87241B" d="M29.601,10.441l-3.323-3.293c0-0.023-0.004-0.042-0.007-0.065l3.325,3.293
|
||||
C29.598,10.396,29.601,10.421,29.601,10.441"/>
|
||||
<path fill="#82211A" d="M29.596,10.376l-3.325-3.293c-0.012-0.193-0.091-0.362-0.216-0.484l3.32,3.293
|
||||
C29.5,10.016,29.581,10.184,29.596,10.376"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<g>
|
||||
<path id="SVGID_16_" fill="#C33A28" d="M30.891,1.404c0.223,0.216,0.445,0.437,0.663,0.655
|
||||
c0.888,0.879,1.774,1.757,2.66,2.634c-0.292-0.287-0.706-0.445-1.168-0.409l-3.323-3.291
|
||||
C30.185,0.953,30.602,1.112,30.891,1.404z"/>
|
||||
</g>
|
||||
<g>
|
||||
<defs>
|
||||
<path id="SVGID_10_" d="M30.891,1.404c0.223,0.216,0.445,0.437,0.663,0.655c0.888,0.879,1.774,1.757,2.66,2.634
|
||||
c-0.292-0.287-0.706-0.445-1.168-0.409l-3.323-3.291C30.185,0.953,30.602,1.112,30.891,1.404z"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_11_">
|
||||
<use xlink:href="#SVGID_10_" overflow="visible"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#SVGID_11_)">
|
||||
<path fill="#C33A28" d="M29.722,0.993l3.323,3.292c0.021,0,0.044-0.003,0.068-0.003L29.791,0.99
|
||||
C29.769,0.99,29.746,0.991,29.722,0.993z"/>
|
||||
<path fill="#C33A28" d="M29.791,0.99l3.323,3.292c0.042-0.003,0.085-0.003,0.126-0.001l-3.32-3.291
|
||||
C29.878,0.986,29.833,0.986,29.791,0.99z"/>
|
||||
<path fill="#C33A28" d="M29.919,0.99l3.32,3.291c0.041,0.001,0.081,0.004,0.118,0.01l-3.323-3.293
|
||||
C29.996,0.992,29.96,0.99,29.919,0.99z"/>
|
||||
<path fill="#C33A28" d="M30.035,0.998l3.323,3.293c0.036,0.004,0.072,0.009,0.106,0.016l-3.323-3.295
|
||||
C30.107,1.007,30.071,1,30.035,0.998z"/>
|
||||
<path fill="#C33A28" d="M30.142,1.012l3.323,3.295c0.034,0.003,0.071,0.012,0.103,0.021l-3.323-3.29
|
||||
C30.21,1.028,30.178,1.021,30.142,1.012z"/>
|
||||
<path fill="#C33A28" d="M30.245,1.037l3.323,3.29c0.031,0.011,0.063,0.019,0.096,0.03l-3.322-3.292
|
||||
C30.308,1.055,30.278,1.043,30.245,1.037z"/>
|
||||
<path fill="#C33A28" d="M30.341,1.065l3.322,3.292c0.033,0.01,0.064,0.022,0.097,0.036l-3.322-3.292
|
||||
C30.405,1.088,30.373,1.075,30.341,1.065z"/>
|
||||
<path fill="#C33A28" d="M30.438,1.101l3.322,3.292c0.034,0.014,0.062,0.027,0.095,0.045l-3.323-3.295
|
||||
C30.501,1.129,30.469,1.112,30.438,1.101z"/>
|
||||
<path fill="#C33A28" d="M30.531,1.143l3.323,3.295c0.032,0.015,0.063,0.033,0.096,0.051l-3.325-3.294
|
||||
C30.595,1.18,30.563,1.162,30.531,1.143z"/>
|
||||
<path fill="#C33A28" d="M30.625,1.194l3.325,3.295c0.032,0.02,0.064,0.042,0.097,0.064l-3.324-3.292
|
||||
C30.694,1.238,30.659,1.217,30.625,1.194z"/>
|
||||
<path fill="#C33A28" d="M30.723,1.262l3.324,3.291c0.036,0.027,0.068,0.052,0.1,0.078l-3.32-3.289
|
||||
C30.792,1.312,30.761,1.284,30.723,1.262z"/>
|
||||
<path fill="#C33A28" d="M30.891,1.404c-0.021-0.024-0.043-0.044-0.064-0.061l3.32,3.289
|
||||
c0.026,0.024,0.045,0.042,0.067,0.062L30.891,1.404z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="10.527,13.104 7.204,9.811 7.219,4.55 10.542,7.84 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#C33A28" points="12.14,6.109 8.817,2.816 29.722,0.993 33.045,4.285 "/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#E6584F" d="M12.14,6.109l20.905-1.825c0.881-0.073,1.594,0.575,1.591,1.459l-0.016,5.261l-5.022,0.438
|
||||
l0.002-1c0-0.459-0.371-0.8-0.833-0.76l-12.379,1.077c-0.458,0.041-0.834,0.447-0.834,0.908l-0.002,0.998l-5.025,0.439
|
||||
l0.014-5.263C10.544,6.961,11.261,6.187,12.14,6.109z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#E6584F" d="M12.14,6.109l20.905-1.825c0.881-0.073,1.594,0.575,1.591,1.459l-0.016,5.261l-5.022,0.438
|
||||
l0.002-1c0-0.459-0.371-0.8-0.833-0.76l-12.379,1.077c-0.458,0.041-0.834,0.447-0.834,0.908l-0.002,0.998l-5.025,0.439
|
||||
l0.014-5.263C10.544,6.961,11.261,6.187,12.14,6.109z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 2.5 KiB |
@ -0,0 +1,286 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="59.37px" height="54.166px" viewBox="0 0 59.37 54.166" enable-background="new 0 0 59.37 54.166" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#6D6D6D" d="M6.49,44.841c0,3.587-1.669,4.795-3.089,4.795c-1.668,0-3.011-1.515-3.011-4.774
|
||||
c0-3.396,1.515-4.815,3.107-4.815C5.146,40.046,6.49,41.6,6.49,44.841z M1.867,44.841c0,1.535,0.268,3.625,1.611,3.625
|
||||
c1.266,0,1.515-2.186,1.515-3.625c0-1.419-0.249-3.606-1.554-3.606C2.117,41.234,1.867,43.422,1.867,44.841z"/>
|
||||
<path fill="#6D6D6D" d="M8.12,43.096c0-1.419-0.058-2.244-0.076-2.896h1.322l0.077,1.189h0.038
|
||||
c0.499-0.997,1.228-1.343,1.957-1.343c1.611,0,2.686,1.727,2.686,4.776c0,3.433-1.42,4.813-2.878,4.813
|
||||
c-0.862,0-1.362-0.557-1.611-1.072H9.598v4.603H8.12V43.096z M9.598,46.069c0,0.288,0,0.556,0.057,0.767
|
||||
c0.288,1.324,0.959,1.573,1.362,1.573c1.228,0,1.611-1.688,1.611-3.568c0-1.917-0.46-3.529-1.63-3.529
|
||||
c-0.671,0-1.266,0.845-1.362,1.689c-0.038,0.229-0.038,0.459-0.038,0.708V46.069z"/>
|
||||
<path fill="#6D6D6D" d="M16.828,44.976c0.019,2.84,1.132,3.452,2.206,3.452c0.633,0,1.17-0.153,1.535-0.364l0.23,1.093
|
||||
c-0.518,0.288-1.305,0.441-2.034,0.441c-2.224,0-3.376-1.822-3.376-4.66c0-3.012,1.266-4.892,3.126-4.892
|
||||
c1.9,0,2.648,1.995,2.648,4.104c0,0.346,0,0.595-0.019,0.825H16.828z M19.744,43.882c0.039-1.859-0.672-2.685-1.381-2.685
|
||||
c-0.958,0-1.457,1.418-1.516,2.685H19.744z"/>
|
||||
<path fill="#6D6D6D" d="M22.754,42.598c0-1.095-0.057-1.649-0.077-2.398h1.287l0.076,1.112h0.038
|
||||
c0.403-0.748,1.15-1.266,2.13-1.266c1.285,0,2.244,0.96,2.244,3.204v6.232h-1.478v-5.984c0-1.093-0.21-2.206-1.285-2.206
|
||||
c-0.615,0-1.208,0.518-1.401,1.516c-0.037,0.23-0.057,0.519-0.057,0.824v5.851h-1.478V42.598z"/>
|
||||
<path fill="#CE3427" d="M30.273,47.948c0.326,0.212,0.902,0.479,1.497,0.479c0.844,0,1.361-0.518,1.361-1.343
|
||||
c0-0.709-0.25-1.188-1.189-1.821c-1.208-0.786-1.86-1.573-1.86-2.648c0-1.495,1.113-2.569,2.552-2.569
|
||||
c0.729,0,1.284,0.249,1.669,0.48l-0.404,1.111c-0.346-0.229-0.747-0.403-1.228-0.403c-0.806,0-1.207,0.575-1.207,1.171
|
||||
c0,0.633,0.229,0.979,1.15,1.611c1.073,0.69,1.917,1.535,1.917,2.819c0,1.861-1.266,2.762-2.781,2.762
|
||||
c-0.69,0-1.438-0.21-1.841-0.536L30.273,47.948z"/>
|
||||
<path fill="#CE3427" d="M37.869,37.744v2.455h1.782v1.132h-1.782v5.505c0,1.208,0.441,1.535,0.977,1.535
|
||||
c0.231,0,0.424-0.021,0.597-0.06l0.057,1.133c-0.268,0.096-0.613,0.153-1.092,0.153c-0.578,0-1.094-0.153-1.459-0.556
|
||||
c-0.364-0.422-0.557-1.057-0.557-2.34v-5.371H35.26v-1.132h1.132v-2.033L37.869,37.744z"/>
|
||||
<path fill="#CE3427" d="M44.619,49.482l-0.094-0.978h-0.061c-0.401,0.709-1.054,1.131-1.839,1.131
|
||||
c-1.248,0-2.207-1.054-2.207-2.646c0-2.322,1.861-3.358,3.952-3.376v-0.288c0-1.247-0.308-2.109-1.479-2.109
|
||||
c-0.574,0-1.094,0.191-1.533,0.479l-0.327-1.036c0.386-0.288,1.248-0.614,2.169-0.614c1.86,0,2.666,1.229,2.666,3.317v4.01
|
||||
c0,0.711,0,1.515,0.097,2.109H44.619z M44.409,44.688c-0.766,0-2.553,0.134-2.553,2.147c0,1.208,0.616,1.65,1.134,1.65
|
||||
c0.653,0,1.207-0.479,1.381-1.401c0.038-0.172,0.038-0.363,0.038-0.518V44.688z"/>
|
||||
<path fill="#CE3427" d="M52.465,49.253c-0.327,0.191-0.882,0.345-1.534,0.345c-2.033,0-3.395-1.631-3.395-4.699
|
||||
c0-2.665,1.341-4.833,3.663-4.833c0.498,0,1.037,0.134,1.304,0.287l-0.288,1.209c-0.19-0.096-0.575-0.25-1.055-0.25
|
||||
c-1.477,0-2.146,1.765-2.146,3.587c0,2.169,0.824,3.473,2.186,3.473c0.403,0,0.729-0.097,1.073-0.25L52.465,49.253z"/>
|
||||
<path fill="#CE3427" d="M55.189,44.516h0.037c0.173-0.365,0.326-0.729,0.498-1.036l1.843-3.28h1.592l-2.455,3.914l2.666,5.369
|
||||
h-1.649l-2.014-4.373l-0.518,0.864v3.509H53.71V36.21h1.479V44.516z"/>
|
||||
</g>
|
||||
<g>
|
||||
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="133.168" y1="-304.7446" x2="150.967" y2="-306.0438" gradientTransform="matrix(0.711 -0.7032 -0.7032 -0.711 -297.5767 -90.3491)">
|
||||
<stop offset="0" style="stop-color:#000000;stop-opacity:0"/>
|
||||
<stop offset="1" style="stop-color:#010201"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_1_)" d="M8.945,25.686c-0.629-0.635-0.624-0.852,0.013-1.481l7.208,0.403
|
||||
c0.635-0.628,1.713,0.25,2.342,0.888l4.304,3.166c0.629,0.637,2.95,2.234,2.314,2.863l-4.121,2.496
|
||||
c-0.636,0.63-3.079,0.73-3.708,0.096L8.945,25.686z"/>
|
||||
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="304.4561" y1="-328.6318" x2="306.1114" y2="-327.1929" gradientTransform="matrix(1 0 0 -1 -268.5 -303.5)">
|
||||
<stop offset="0" style="stop-color:#C33A28"/>
|
||||
<stop offset="0.8825" style="stop-color:#8A241C"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_2_)" d="M34.308,23.235l3.821,3.792c0.916-0.147,1.066-0.609,0.958-1.636l-3.81-3.782l0,0
|
||||
C35.108,22.911,35.16,23.195,34.308,23.235L34.308,23.235z"/>
|
||||
|
||||
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="283.5645" y1="-310.8936" x2="285.5962" y2="-307.3745" gradientTransform="matrix(1 0 0 -1 -268.5 -303.5)">
|
||||
<stop offset="0" style="stop-color:#8A241C"/>
|
||||
<stop offset="1" style="stop-color:#C33A28"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_3_)" d="M17.157,8.602l-3.824-3.788c0-0.854,0.612-1.837,1.913-2.007l3.781,3.812l0,0
|
||||
C17.726,6.788,17.198,7.75,17.157,8.602L17.157,8.602z"/>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="39.098,24.648 35.271,20.857 41.053,20.349 44.878,24.142 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="39.098,24.648 35.271,20.857 41.053,20.349 44.878,24.142 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="39.096,25.981 35.271,22.19 35.271,20.857 39.098,24.648 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#C33A28" points="23.883,28.279 20.062,24.486 34.308,23.235 38.129,27.027 "/>
|
||||
</g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<defs>
|
||||
<path id="SVGID_4_" d="M23.184,28.034c-0.059-0.058-0.135-0.131-0.194-0.191c-1.209-1.201-2.421-2.399-3.632-3.602
|
||||
c0.175,0.174,0.424,0.269,0.705,0.245l3.821,3.793C23.605,28.305,23.358,28.204,23.184,28.034z"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_5_">
|
||||
<use xlink:href="#SVGID_4_" overflow="visible"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#SVGID_5_)" enable-background="new ">
|
||||
<path fill="#942820" d="M23.184,28.034l-3.827-3.792c0.012,0.014,0.027,0.023,0.04,0.034l3.825,3.793
|
||||
C23.206,28.056,23.196,28.047,23.184,28.034"/>
|
||||
<path fill="#972920" d="M23.221,28.069l-3.825-3.793c0.02,0.021,0.042,0.037,0.061,0.053l3.824,3.79
|
||||
C23.26,28.104,23.241,28.084,23.221,28.069"/>
|
||||
<path fill="#9A2C21" d="M23.282,28.118l-3.824-3.79c0.017,0.013,0.037,0.024,0.057,0.035l3.825,3.791
|
||||
C23.322,28.144,23.302,28.131,23.282,28.118"/>
|
||||
<path fill="#9E2D21" d="M23.339,28.154l-3.825-3.791c0.02,0.014,0.04,0.024,0.059,0.032l3.825,3.792
|
||||
C23.378,28.179,23.358,28.168,23.339,28.154"/>
|
||||
<path fill="#A22C23" d="M23.398,28.188l-3.825-3.792c0.018,0.01,0.037,0.019,0.055,0.03l3.824,3.788
|
||||
C23.435,28.204,23.418,28.196,23.398,28.188"/>
|
||||
<path fill="#A72D24" d="M23.452,28.214l-3.824-3.788c0.02,0.004,0.042,0.013,0.059,0.019l3.823,3.791
|
||||
C23.491,28.227,23.472,28.222,23.452,28.214"/>
|
||||
<path fill="#AB3125" d="M23.509,28.235l-3.823-3.791c0.02,0.006,0.04,0.014,0.059,0.018l3.825,3.789
|
||||
C23.549,28.248,23.529,28.239,23.509,28.235"/>
|
||||
<path fill="#AE3125" d="M23.57,28.252l-3.825-3.789c0.017,0.006,0.04,0.009,0.062,0.013l3.822,3.789
|
||||
C23.607,28.261,23.587,28.256,23.57,28.252"/>
|
||||
<path fill="#B13126" d="M23.629,28.265l-3.822-3.789c0.02,0.003,0.04,0.006,0.062,0.008l3.826,3.79
|
||||
C23.675,28.274,23.648,28.272,23.629,28.265"/>
|
||||
<path fill="#B63327" d="M23.694,28.274l-3.826-3.79c0.023,0.005,0.047,0.005,0.069,0.006l3.825,3.791
|
||||
C23.737,28.281,23.718,28.279,23.694,28.274"/>
|
||||
<path fill="#B63627" d="M23.763,28.281l-3.825-3.791c0.025,0.001,0.052,0.001,0.076,0.001l3.827,3.79
|
||||
C23.814,28.281,23.79,28.281,23.763,28.281"/>
|
||||
<path fill="#BB3727" d="M23.841,28.281l-3.827-3.79c0.015-0.002,0.032-0.002,0.047-0.005l3.821,3.793
|
||||
C23.868,28.281,23.853,28.281,23.841,28.281"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<defs>
|
||||
<path id="SVGID_6_" d="M17.621,34.021l-3.825-3.79c-0.305-0.3-0.489-0.724-0.489-1.202l3.826,3.786
|
||||
C17.133,33.298,17.315,33.716,17.621,34.021z"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_7_">
|
||||
<use xlink:href="#SVGID_6_" overflow="visible"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#SVGID_7_)" enable-background="new ">
|
||||
<path fill="#82211A" d="M17.621,34.021l-3.825-3.79c-0.273-0.271-0.45-0.641-0.483-1.061l3.824,3.792
|
||||
C17.17,33.383,17.347,33.749,17.621,34.021"/>
|
||||
<path fill="#87241B" d="M17.137,32.962l-3.824-3.792c-0.004-0.044-0.004-0.095-0.006-0.142l3.826,3.786
|
||||
C17.133,32.866,17.136,32.911,17.137,32.962"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#D83E27" d="M44.878,24.142l-0.011,6.239c-0.003,1.013-0.824,1.906-1.842,1.996l-24.061,2.114
|
||||
c-1.014,0.089-1.837-0.663-1.832-1.677l0.013-6.24l5.783-0.51l-0.003,1.337c0,0.531,0.428,0.922,0.958,0.877l14.112-1.252
|
||||
c0.527-0.048,1.095-0.513,1.102-1.046l0.001-1.333L44.878,24.142z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="17.146,26.575 13.321,22.786 19.105,22.275 22.928,26.065 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="17.146,26.575 13.321,22.786 19.105,22.275 22.928,26.065 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="17.133,32.814 13.307,29.028 13.321,22.786 17.146,26.575 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#E6584F" points="44.844,13.61 44.881,22.795 39.098,23.303 39.063,14.118 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#E2493C" points="44.844,13.61 44.881,22.795 39.098,23.303 39.063,14.118 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="39.098,23.303 35.277,19.512 35.238,10.324 39.063,14.118 "/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="39.063,14.118 35.238,10.324 41.021,9.82 44.844,13.61 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="39.063,14.118 35.238,10.324 41.021,9.82 44.844,13.61 "/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#E6584F" points="22.895,15.535 22.933,24.722 17.147,25.229 17.108,16.044 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#E2493C" points="22.895,15.535 22.933,24.722 17.147,25.229 17.108,16.044 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="17.147,25.229 13.323,21.438 13.286,12.256 17.108,16.044 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="17.108,16.044 13.286,12.256 19.071,11.747 22.895,15.535 "/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="39.091,12.747 35.265,8.959 35.271,7.805 39.096,11.595 "/>
|
||||
</g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<defs>
|
||||
<path id="SVGID_8_" d="M35.014,7.173c1.277,1.264,2.549,2.527,3.821,3.792c0.162,0.157,0.261,0.378,0.261,0.631
|
||||
l-3.825-3.79C35.271,7.552,35.172,7.332,35.014,7.173z"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_9_">
|
||||
<use xlink:href="#SVGID_8_" overflow="visible"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#SVGID_9_)" enable-background="new ">
|
||||
<path fill="#87241B" d="M39.096,11.595l-3.825-3.79c0-0.026-0.006-0.048-0.008-0.075l3.826,3.791
|
||||
C39.091,11.543,39.096,11.572,39.096,11.595"/>
|
||||
<path fill="#82211A" d="M39.089,11.521L35.263,7.73c-0.014-0.222-0.104-0.416-0.249-0.557l3.821,3.791
|
||||
C38.979,11.106,39.072,11.299,39.089,11.521"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g enable-background="new ">
|
||||
<g>
|
||||
<g>
|
||||
<path id="SVGID_16_" fill="#C33A28" d="M40.58,1.193c0.256,0.249,0.513,0.502,0.763,0.753
|
||||
c1.022,1.012,2.043,2.023,3.062,3.032c-0.336-0.33-0.813-0.513-1.345-0.47l-3.824-3.788
|
||||
C39.767,0.674,40.247,0.857,40.58,1.193z"/>
|
||||
</g>
|
||||
<g>
|
||||
<defs>
|
||||
<path id="SVGID_10_" d="M40.58,1.193c0.256,0.249,0.513,0.502,0.763,0.753c1.022,1.012,2.043,2.023,3.062,3.032
|
||||
c-0.336-0.33-0.813-0.513-1.345-0.47l-3.824-3.788C39.767,0.674,40.247,0.857,40.58,1.193z"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_11_">
|
||||
<use xlink:href="#SVGID_10_" overflow="visible"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#SVGID_11_)">
|
||||
<path fill="#C33A28" d="M39.236,0.721l3.824,3.789c0.023,0,0.051-0.004,0.077-0.004l-3.824-3.789
|
||||
C39.289,0.716,39.262,0.718,39.236,0.721z"/>
|
||||
<path fill="#C33A28" d="M39.313,0.716l3.824,3.789c0.05-0.004,0.1-0.004,0.146-0.001l-3.821-3.788
|
||||
C39.415,0.713,39.363,0.713,39.313,0.716z"/>
|
||||
<path fill="#C33A28" d="M39.463,0.716l3.821,3.788c0.046,0.001,0.093,0.004,0.135,0.011l-3.824-3.79
|
||||
C39.551,0.719,39.509,0.716,39.463,0.716z"/>
|
||||
<path fill="#C33A28" d="M39.595,0.726l3.824,3.79c0.043,0.005,0.083,0.01,0.124,0.019l-3.825-3.793
|
||||
C39.679,0.736,39.637,0.729,39.595,0.726z"/>
|
||||
<path fill="#C33A28" d="M39.718,0.742l3.825,3.793c0.038,0.004,0.08,0.014,0.118,0.023l-3.825-3.787
|
||||
C39.797,0.761,39.76,0.752,39.718,0.742z"/>
|
||||
<path fill="#C33A28" d="M39.836,0.771l3.825,3.787c0.036,0.012,0.072,0.021,0.11,0.034l-3.824-3.789
|
||||
C39.909,0.792,39.875,0.778,39.836,0.771z"/>
|
||||
<path fill="#C33A28" d="M39.947,0.804l3.824,3.789c0.037,0.012,0.073,0.026,0.111,0.041l-3.824-3.789
|
||||
C40.02,0.83,39.984,0.815,39.947,0.804z"/>
|
||||
<path fill="#C33A28" d="M40.059,0.844l3.824,3.789c0.039,0.016,0.071,0.031,0.108,0.052l-3.825-3.792
|
||||
C40.131,0.877,40.095,0.857,40.059,0.844z"/>
|
||||
<path fill="#C33A28" d="M40.166,0.893l3.824,3.792c0.039,0.017,0.074,0.038,0.111,0.058l-3.827-3.791
|
||||
C40.239,0.936,40.202,0.914,40.166,0.893z"/>
|
||||
<path fill="#C33A28" d="M40.274,0.952l3.827,3.792c0.037,0.022,0.073,0.048,0.111,0.074L40.387,1.03
|
||||
C40.353,1.002,40.313,0.979,40.274,0.952z"/>
|
||||
<path fill="#C33A28" d="M40.387,1.03l3.826,3.789c0.041,0.031,0.079,0.06,0.114,0.09l-3.822-3.785
|
||||
C40.467,1.087,40.431,1.055,40.387,1.03z"/>
|
||||
<path fill="#C33A28" d="M40.58,1.193c-0.025-0.028-0.05-0.051-0.075-0.07l3.822,3.785
|
||||
c0.029,0.027,0.052,0.048,0.077,0.071L40.58,1.193z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#8A241C" points="17.141,14.66 13.316,10.87 13.333,4.814 17.157,8.602 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#C33A28" points="18.998,6.609 15.173,2.819 39.236,0.721 43.061,4.509 "/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#E6584F" d="M18.998,6.609l24.063-2.1c1.014-0.084,1.833,0.662,1.831,1.679l-0.02,6.055l-5.781,0.503
|
||||
l0.005-1.151c0-0.529-0.427-0.921-0.959-0.875l-14.249,1.24c-0.527,0.047-0.96,0.515-0.96,1.045l-0.003,1.149
|
||||
l-5.784,0.505l0.016-6.058C17.16,7.59,17.985,6.699,18.998,6.609z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#E6584F" d="M18.998,6.609l24.063-2.1c1.014-0.084,1.833,0.662,1.831,1.679l-0.02,6.055l-5.781,0.503
|
||||
l0.005-1.151c0-0.529-0.427-0.921-0.959-0.875l-14.249,1.24c-0.527,0.047-0.96,0.515-0.96,1.045l-0.003,1.149
|
||||
l-5.784,0.505l0.016-6.058C17.16,7.59,17.985,6.699,18.998,6.609z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 16 KiB |
BIN
doc/source/_themes/releases/static/images/search-icon.png
Normal file
After Width: | Height: | Size: 278 B |
6
doc/source/_themes/releases/static/js/bootstrap.min.js
vendored
Normal file
20
doc/source/_themes/releases/static/js/doc-characters.json
Normal file
@ -0,0 +1,20 @@
|
||||
{
|
||||
"images":[
|
||||
{
|
||||
"image":"superuser1.png",
|
||||
"caption":"Jesse Proudman"
|
||||
},
|
||||
{
|
||||
"image":"superuser2.png",
|
||||
"caption":"Narayan Desai"
|
||||
},
|
||||
{
|
||||
"image":"superuser3.png",
|
||||
"caption":"Elissa Murphy"
|
||||
},
|
||||
{
|
||||
"image":"superuser4.png",
|
||||
"caption":"Tim Bell"
|
||||
}
|
||||
]
|
||||
}
|
140
doc/source/_themes/releases/static/js/docs.js
Normal file
@ -0,0 +1,140 @@
|
||||
// Toggle main sections
|
||||
$(".docs-sidebar-section-title").click(function () {
|
||||
$('.docs-sidebar-section').not(this).closest('.docs-sidebar-section').removeClass('active');
|
||||
$(this).closest('.docs-sidebar-section').toggleClass('active');
|
||||
// Bug #1422454
|
||||
// Commenting out next line, the default behavior which was preventing links
|
||||
// from working.
|
||||
// event.preventDefault();
|
||||
});
|
||||
|
||||
/* Bug #1422454
|
||||
The toggle functions below enable the expand/collapse, but for now
|
||||
there's no easy way to get deeper links from other guides. So,
|
||||
commenting both toggle functions out.
|
||||
// Toggle 1st sub-sections
|
||||
$(".docs-sidebar-section ol lh").click(function () {
|
||||
$('.docs-sidebar-section ol').not(this).closest('.docs-sidebar-section ol').removeClass('active');
|
||||
$(this).closest('.docs-sidebar-section ol').toggleClass('active');
|
||||
if ($('.docs-has-sub').hasClass('active')) {
|
||||
$(this).closest('.docs-sidebar-section ol li').addClass('open');
|
||||
}
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
// Toggle 2nd sub-sections
|
||||
$(".docs-sidebar-section ol > li > a").click(function () {
|
||||
$('.docs-sidebar-section ol li').not(this).removeClass('active').removeClass('open');
|
||||
$(this).closest('.docs-sidebar-section ol li').toggleClass('active');
|
||||
if ($('.docs-has-sub').hasClass('active')) {
|
||||
$(this).closest('.docs-sidebar-section ol li').addClass('open');
|
||||
}
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
/* Bug #1417291
|
||||
The rule below creates a shaded plus sign next to
|
||||
a numbered sublist of a bulleted list.
|
||||
It's probably there to implement expand/collapse of
|
||||
list items, but unfortunately it affects also those
|
||||
lists where expand/collapse is not intended.
|
||||
|
||||
I am commenting it out to fix this bug. If it causes
|
||||
problems elsewhere, they have to be fixed elsewhere. */
|
||||
|
||||
// $('ol > li:has(ul)').addClass('docs-has-sub');
|
||||
|
||||
// webui popover
|
||||
$(document).ready(function() {
|
||||
function checkWidth() {
|
||||
var windowSize = $(window).width();
|
||||
|
||||
if (windowSize <= 767) {
|
||||
$('.gloss').webuiPopover({placement:'auto',trigger:'click'});
|
||||
}
|
||||
else if (windowSize >= 768) {
|
||||
$('.gloss').webuiPopover({placement:'auto',trigger:'hover'});
|
||||
}
|
||||
}
|
||||
|
||||
// Execute on load
|
||||
checkWidth();
|
||||
// Bind event listener
|
||||
$(window).resize(checkWidth);
|
||||
});
|
||||
|
||||
// Bootstrap stuff
|
||||
$('.docs-actions i').tooltip();
|
||||
$('.docs-sidebar-home').tooltip();
|
||||
|
||||
// Hide/Toggle definitions
|
||||
$("#toggle-definitions").click(function () {
|
||||
$(this).toggleClass('docs-info-off');
|
||||
if ($('.gloss').hasClass('on')) {
|
||||
$('.gloss').removeClass('on').addClass('off').webuiPopover('destroy');
|
||||
} else if ($('.gloss').hasClass('off')) {
|
||||
$('.gloss').removeClass('off').addClass('on').webuiPopover();
|
||||
}
|
||||
});
|
||||
|
||||
// Smooth scroll
|
||||
$('a').click(function(){
|
||||
$('html, body').animate({
|
||||
scrollTop: $( $.attr(this, 'href') ).offset().top
|
||||
}, 500);
|
||||
return false;
|
||||
});
|
||||
|
||||
// Change character image on refresh
|
||||
// Add file names and captions to doc-characters.json
|
||||
$.getJSON('common/js/doc-characters.json', function(data) {
|
||||
var item = data.images[Math.floor(Math.random()*data.images.length)];
|
||||
$('<img src="common/images/docs/' + item.image + '">').appendTo('#superuser-img');
|
||||
$('<p>' + item.caption + '<strong>OpenStack Operator</strong></p>').appendTo('#superuser-img');
|
||||
});
|
||||
|
||||
/* BB 150310
|
||||
openstackdocstheme provides three types of admonitions, important, note
|
||||
and warning. We decorate their title paragraphs with Font Awesome icons
|
||||
by adding the appropriate FA classes. */
|
||||
|
||||
$('div.important > p.admonition-title').addClass('fa fa-info-circle');
|
||||
$('div.note > p.admonition-title').addClass('fa fa-check-circle');
|
||||
$('div.warning > p.admonition-title').addClass('fa fa-exclamation-triangle');
|
||||
|
||||
/* BB 150310
|
||||
We also insert a space between the icon and the admonition title
|
||||
("Note", "Warning", "Important" or their i18n equivalents).
|
||||
|
||||
This could be done with a single clause $('p.admonition-title')....,
|
||||
affecting all types of admonitions. I play it safe here and explicitly
|
||||
work on the three openstackdocstheme admonitions.
|
||||
|
||||
The first parameter of the text() callback is not needed here (it's
|
||||
the index of the HTML element that we are modifying) */
|
||||
|
||||
$('div.important > p.admonition-title').text(function(ignored_para,original) {
|
||||
return " "+original
|
||||
});
|
||||
$('div.note > p.admonition-title').text(function(ignored_para,original) {
|
||||
return " "+original
|
||||
});
|
||||
$('div.warning > p.admonition-title').text(function(ignored_para,original) {
|
||||
return " "+original
|
||||
});
|
||||
|
||||
// Gives the log a bug icon the information it needs to generate the bug in
|
||||
// Launchpad with pre-filled information such as git SHA, git.openstack.org
|
||||
// source URL, published document URL and tag.
|
||||
function logABug(bugTitle, bugProject, fieldComment, fieldTags) {
|
||||
var lineFeed = "%0A";
|
||||
var urlBase = "https://bugs.launchpad.net/" + bugProject + "/+filebug?field.title="
|
||||
var currentURL = "URL: " + window.location.href;
|
||||
var bugLink = urlBase + encodeURIComponent(bugTitle) +
|
||||
"&field.comment=" + lineFeed + lineFeed + "-----------------------------------" + lineFeed + fieldComment +
|
||||
lineFeed + currentURL +
|
||||
"&field.tags=" + fieldTags;
|
||||
document.getElementById("logABugLink1").href=bugLink;
|
||||
document.getElementById("logABugLink2").href=bugLink;
|
||||
document.getElementById("logABugLink3").href=bugLink;
|
||||
}
|
5
doc/source/_themes/releases/static/js/jquery-1.11.3.js
vendored
Normal file
67
doc/source/_themes/releases/static/js/navigation.js
Normal file
@ -0,0 +1,67 @@
|
||||
// Open header search bar
|
||||
$(function() {
|
||||
$(".search-icon").click(function() {
|
||||
$(".navbar-main").toggleClass("show");
|
||||
$(".search-container").toggleClass("show");
|
||||
$(".search-icon").toggleClass("show");
|
||||
$('#gsc-i-id1').focus();
|
||||
});
|
||||
});
|
||||
|
||||
// Close header search bar
|
||||
$(function() {
|
||||
$(".close-search").click(function() {
|
||||
$(".navbar-main").toggleClass("show");
|
||||
$(".search-container").toggleClass("show")
|
||||
$(".search-icon").toggleClass("show");
|
||||
});
|
||||
});
|
||||
|
||||
// Open header drop downs on hover
|
||||
jQuery(document).ready(function(){
|
||||
if (jQuery(window).width() > 767) {
|
||||
$('ul.navbar-main li ul.dropdown-menu').addClass('dropdown-hover');
|
||||
$('ul.navbar-main li').hover(function() {
|
||||
$(this).find('.dropdown-hover').stop(true, true).delay(400).fadeIn(100);
|
||||
}, function() {
|
||||
$(this).find('.dropdown-hover').stop(true, true).delay(100).fadeOut(200);
|
||||
});
|
||||
} else {
|
||||
$('ul.navbar-main li ul.dropdown-menu').removeClass('dropdown-hover');
|
||||
}
|
||||
});
|
||||
jQuery(window).resize(function () {
|
||||
if (jQuery(window).width() > 767) {
|
||||
$('ul.navbar-main li ul.dropdown-menu').addClass('dropdown-hover');
|
||||
$('ul.navbar-main li').hover(function() {
|
||||
$(this).find('.dropdown-hover').stop(true, true).delay(400).fadeIn(100);
|
||||
}, function() {
|
||||
$(this).find('.dropdown-hover').stop(true, true).delay(100).fadeOut(200);
|
||||
});
|
||||
} else {
|
||||
$('ul.navbar-main li ul.dropdown-menu').removeClass('dropdown-hover');
|
||||
}
|
||||
});
|
||||
|
||||
// Remove Search text in smaller browser windows
|
||||
jQuery(document).ready(function(){
|
||||
if (jQuery(window).width() < 1050) {
|
||||
$('#search-label').text('');
|
||||
} else {
|
||||
$('#search-label').text('Search');
|
||||
}
|
||||
});
|
||||
jQuery(window).resize(function () {
|
||||
if (jQuery(window).width() < 1050) {
|
||||
$('#search-label').text('');
|
||||
} else {
|
||||
$('#search-label').text('Search');
|
||||
}
|
||||
});
|
||||
|
||||
// Show placeholder text in Google Search
|
||||
setTimeout( function() {
|
||||
$(".gsc-input").attr("placeholder", "search docs.openstack.org");
|
||||
}, 1000 );
|
||||
|
||||
|
434
doc/source/_themes/releases/static/js/webui-popover.js
Normal file
@ -0,0 +1,434 @@
|
||||
;(function ( $, window, document, undefined ) {
|
||||
|
||||
// Create the defaults once
|
||||
var pluginName = 'webuiPopover';
|
||||
var pluginClass = 'webui-popover';
|
||||
var pluginType = 'webui.popover';
|
||||
var defaults = {
|
||||
placement:'auto',
|
||||
width:'auto',
|
||||
height:'auto',
|
||||
trigger:'click',
|
||||
style:'',
|
||||
delay:300,
|
||||
cache:true,
|
||||
multi:false,
|
||||
arrow:true,
|
||||
title:'',
|
||||
content:'',
|
||||
closeable:false,
|
||||
padding:true,
|
||||
url:'',
|
||||
type:'html',
|
||||
template:'<div class="webui-popover">'+
|
||||
'<div class="arrow"></div>'+
|
||||
'<div class="webui-popover-inner">'+
|
||||
'<a href="#" class="close">x</a>'+
|
||||
'<h3 class="webui-popover-title"></h3>'+
|
||||
'<div class="webui-popover-content"><i class="icon-refresh"></i> <p> </p></div>'+
|
||||
'</div>'+
|
||||
'</div>'
|
||||
};
|
||||
|
||||
|
||||
// The actual plugin constructor
|
||||
function WebuiPopover ( element, options ) {
|
||||
this.$element = $(element);
|
||||
this.options = $.extend( {}, defaults, options );
|
||||
this._defaults = defaults;
|
||||
this._name = pluginName;
|
||||
this.init();
|
||||
|
||||
}
|
||||
|
||||
WebuiPopover.prototype = {
|
||||
//init webui popover
|
||||
init: function () {
|
||||
//init the event handlers
|
||||
if (this.options.trigger==='click'){
|
||||
this.$element.off('click').on('click',$.proxy(this.toggle,this));
|
||||
}else{
|
||||
this.$element.off('mouseenter mouseleave')
|
||||
.on('mouseenter',$.proxy(this.mouseenterHandler,this))
|
||||
.on('mouseleave',$.proxy(this.mouseleaveHandler,this));
|
||||
}
|
||||
this._poped = false;
|
||||
this._inited = true;
|
||||
},
|
||||
/* api methods and actions */
|
||||
destroy:function(){
|
||||
this.hide();
|
||||
this.$element.data('plugin_'+pluginName,null);
|
||||
this.$element.off();
|
||||
if (this.$target){
|
||||
this.$target.remove();
|
||||
}
|
||||
},
|
||||
hide:function(event){
|
||||
if (event){
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
var e = $.Event('hide.' + pluginType);
|
||||
this.$element.trigger(e);
|
||||
if (this.$target){this.$target.removeClass('in').hide();}
|
||||
this.$element.trigger('hidden.'+pluginType);
|
||||
},
|
||||
toggle:function(e){
|
||||
if (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
}
|
||||
this[this.getTarget().hasClass('in') ? 'hide' : 'show']();
|
||||
},
|
||||
hideAll:function(){
|
||||
$('div.webui-popover').not('.webui-popover-fixed').removeClass('in').hide();
|
||||
},
|
||||
/*core method ,show popover */
|
||||
show:function(){
|
||||
var
|
||||
$target = this.getTarget().removeClass().addClass(pluginClass);
|
||||
if (!this.options.multi){
|
||||
this.hideAll();
|
||||
}
|
||||
// use cache by default, if not cache set, reInit the contents
|
||||
if (!this.options.cache||!this._poped){
|
||||
this.setTitle(this.getTitle());
|
||||
if (!this.options.closeable){
|
||||
$target.find('.close').off('click').remove();
|
||||
}
|
||||
if (!this.isAsync()){
|
||||
this.setContent(this.getContent());
|
||||
}else{
|
||||
this.setContentASync(this.options.content);
|
||||
this.displayContent();
|
||||
return;
|
||||
}
|
||||
$target.show();
|
||||
}
|
||||
this.displayContent();
|
||||
this.bindBodyEvents();
|
||||
},
|
||||
displayContent:function(){
|
||||
var
|
||||
//element position
|
||||
elementPos = this.getElementPosition(),
|
||||
//target position
|
||||
$target = this.getTarget().removeClass().addClass(pluginClass),
|
||||
//target content
|
||||
$targetContent = this.getContentElement(),
|
||||
//target Width
|
||||
targetWidth = $target[0].offsetWidth,
|
||||
//target Height
|
||||
targetHeight = $target[0].offsetHeight,
|
||||
//placement
|
||||
placement = 'bottom',
|
||||
e = $.Event('show.' + pluginType);
|
||||
//if (this.hasContent()){
|
||||
this.$element.trigger(e);
|
||||
//}
|
||||
if (this.options.width!=='auto') {$target.width(this.options.width);}
|
||||
if (this.options.height!=='auto'){$targetContent.height(this.options.height);}
|
||||
|
||||
//init the popover and insert into the document body
|
||||
if (!this.options.arrow){
|
||||
$target.find('.arrow').remove();
|
||||
}
|
||||
$target.remove().css({ top: -1000, left: -1000, display: 'block' }).appendTo(document.body);
|
||||
targetWidth = $target[0].offsetWidth;
|
||||
targetHeight = $target[0].offsetHeight;
|
||||
placement = this.getPlacement(elementPos,targetHeight);
|
||||
this.initTargetEvents();
|
||||
var postionInfo = this.getTargetPositin(elementPos,placement,targetWidth,targetHeight);
|
||||
this.$target.css(postionInfo.position).addClass(placement).addClass('in');
|
||||
|
||||
if (this.options.type==='iframe'){
|
||||
var $iframe = $target.find('iframe');
|
||||
$iframe.width($target.width()).height($iframe.parent().height());
|
||||
}
|
||||
|
||||
if (this.options.style){
|
||||
this.$target.addClass(pluginClass+'-'+this.options.style);
|
||||
}
|
||||
|
||||
if (!this.options.padding){
|
||||
$targetContent.css('height',$targetContent.outerHeight());
|
||||
this.$target.addClass('webui-no-padding');
|
||||
}
|
||||
if (!this.options.arrow){
|
||||
this.$target.css({'margin':0});
|
||||
}
|
||||
if (this.options.arrow){
|
||||
var $arrow = this.$target.find('.arrow');
|
||||
$arrow.removeAttr('style');
|
||||
if (postionInfo.arrowOffset){
|
||||
$arrow.css(postionInfo.arrowOffset);
|
||||
}
|
||||
}
|
||||
this._poped = true;
|
||||
this.$element.trigger('shown.'+pluginType);
|
||||
|
||||
},
|
||||
|
||||
isTargetLoaded:function(){
|
||||
return this.getTarget().find('i.glyphicon-refresh').length===0;
|
||||
},
|
||||
|
||||
/*getter setters */
|
||||
getTarget:function(){
|
||||
if (!this.$target){
|
||||
this.$target = $(this.options.template);
|
||||
}
|
||||
return this.$target;
|
||||
},
|
||||
getTitleElement:function(){
|
||||
return this.getTarget().find('.'+pluginClass+'-title');
|
||||
},
|
||||
getContentElement:function(){
|
||||
return this.getTarget().find('.'+pluginClass+'-content');
|
||||
},
|
||||
getTitle:function(){
|
||||
return this.options.title||this.$element.attr('data-title')||this.$element.attr('title');
|
||||
},
|
||||
setTitle:function(title){
|
||||
var $titleEl = this.getTitleElement();
|
||||
if (title){
|
||||
$titleEl.html(title);
|
||||
}else{
|
||||
$titleEl.remove();
|
||||
}
|
||||
},
|
||||
hasContent:function () {
|
||||
return this.getContent();
|
||||
},
|
||||
getContent:function(){
|
||||
if (this.options.url){
|
||||
if (this.options.type==='iframe'){
|
||||
this.content = $('<iframe frameborder="0"></iframe>').attr('src',this.options.url);
|
||||
}
|
||||
}else if (!this.content){
|
||||
var content='';
|
||||
if ($.isFunction(this.options.content)){
|
||||
content = this.options.content.apply(this.$element[0],arguments);
|
||||
}else{
|
||||
content = this.options.content;
|
||||
}
|
||||
this.content = this.$element.attr('data-content')||content;
|
||||
}
|
||||
return this.content;
|
||||
},
|
||||
setContent:function(content){
|
||||
var $target = this.getTarget();
|
||||
this.getContentElement().html(content);
|
||||
this.$target = $target;
|
||||
},
|
||||
isAsync:function(){
|
||||
return this.options.type==='async';
|
||||
},
|
||||
setContentASync:function(content){
|
||||
var that = this;
|
||||
$.ajax({
|
||||
url:this.options.url,
|
||||
type:'GET',
|
||||
cache:this.options.cache,
|
||||
success:function(data){
|
||||
if (content&&$.isFunction(content)){
|
||||
that.content = content.apply(that.$element[0],[data]);
|
||||
}else{
|
||||
that.content = data;
|
||||
}
|
||||
that.setContent(that.content);
|
||||
var $targetContent = that.getContentElement();
|
||||
$targetContent.removeAttr('style');
|
||||
that.displayContent();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
bindBodyEvents:function(){
|
||||
$('body').off('keyup.webui-popover').on('keyup.webui-popover',$.proxy(this.escapeHandler,this));
|
||||
$('body').off('click.webui-popover').on('click.webui-popover',$.proxy(this.bodyClickHandler,this));
|
||||
},
|
||||
|
||||
/* event handlers */
|
||||
mouseenterHandler:function(){
|
||||
var self = this;
|
||||
if (self._timeout){clearTimeout(self._timeout);}
|
||||
if (!self.getTarget().is(':visible')){self.show();}
|
||||
},
|
||||
mouseleaveHandler:function(){
|
||||
var self = this;
|
||||
//key point, set the _timeout then use clearTimeout when mouse leave
|
||||
self._timeout = setTimeout(function(){
|
||||
self.hide();
|
||||
},self.options.delay);
|
||||
},
|
||||
escapeHandler:function(e){
|
||||
if (e.keyCode===27){
|
||||
this.hideAll();
|
||||
}
|
||||
},
|
||||
bodyClickHandler:function(){
|
||||
this.hideAll();
|
||||
},
|
||||
|
||||
targetClickHandler:function(e){
|
||||
e.stopPropagation();
|
||||
},
|
||||
|
||||
//reset and init the target events;
|
||||
initTargetEvents:function(){
|
||||
if (this.options.trigger!=='click'){
|
||||
this.$target.off('mouseenter mouseleave')
|
||||
.on('mouseenter',$.proxy(this.mouseenterHandler,this))
|
||||
.on('mouseleave',$.proxy(this.mouseleaveHandler,this));
|
||||
}
|
||||
this.$target.find('.close').off('click').on('click', $.proxy(this.hide,this));
|
||||
this.$target.off('click.webui-popover').on('click.webui-popover',$.proxy(this.targetClickHandler,this));
|
||||
},
|
||||
/* utils methods */
|
||||
//caculate placement of the popover
|
||||
getPlacement:function(pos,targetHeight){
|
||||
var
|
||||
placement,
|
||||
de = document.documentElement,
|
||||
db = document.body,
|
||||
clientWidth = de.clientWidth,
|
||||
clientHeight = de.clientHeight,
|
||||
scrollTop = Math.max(db.scrollTop,de.scrollTop),
|
||||
scrollLeft = Math.max(db.scrollLeft,de.scrollLeft),
|
||||
pageX = Math.max(0,pos.left - scrollLeft),
|
||||
pageY = Math.max(0,pos.top - scrollTop),
|
||||
arrowSize = 20;
|
||||
|
||||
//if placement equals auto,caculate the placement by element information;
|
||||
if (typeof(this.options.placement)==='function'){
|
||||
placement = this.options.placement.call(this, this.getTarget()[0], this.$element[0]);
|
||||
}else{
|
||||
placement = this.$element.data('placement')||this.options.placement;
|
||||
}
|
||||
|
||||
if (placement==='auto'){
|
||||
if (pageX<clientWidth/3){
|
||||
if (pageY<clientHeight/3){
|
||||
placement = 'bottom-right';
|
||||
}else if (pageY<clientHeight*2/3){
|
||||
placement = 'right';
|
||||
}else{
|
||||
placement = 'top-right';
|
||||
}
|
||||
//placement= pageY>targetHeight+arrowSize?'top-right':'bottom-right';
|
||||
}else if (pageX<clientWidth*2/3){
|
||||
if (pageY<clientHeight/3){
|
||||
placement = 'bottom';
|
||||
}else if (pageY<clientHeight*2/3){
|
||||
placement = 'bottom';
|
||||
}else{
|
||||
placement = 'top';
|
||||
}
|
||||
}else{
|
||||
placement = pageY>targetHeight+arrowSize?'top-left':'bottom-left';
|
||||
if (pageY<clientHeight/3){
|
||||
placement = 'bottom-left';
|
||||
}else if (pageY<clientHeight*2/3){
|
||||
placement = 'left';
|
||||
}else{
|
||||
placement = 'top-left';
|
||||
}
|
||||
}
|
||||
}
|
||||
return placement;
|
||||
},
|
||||
getElementPosition:function(){
|
||||
return $.extend({},this.$element.offset(), {
|
||||
width: this.$element[0].offsetWidth,
|
||||
height: this.$element[0].offsetHeight
|
||||
});
|
||||
},
|
||||
|
||||
getTargetPositin:function(elementPos,placement,targetWidth,targetHeight){
|
||||
var pos = elementPos,
|
||||
elementW = this.$element.outerWidth(),
|
||||
elementH = this.$element.outerHeight(),
|
||||
position={},
|
||||
arrowOffset=null,
|
||||
arrowSize = this.options.arrow?28:0,
|
||||
fixedW = elementW<arrowSize+10?arrowSize:0,
|
||||
fixedH = elementH<arrowSize+10?arrowSize:0;
|
||||
switch (placement) {
|
||||
case 'bottom':
|
||||
position = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - targetWidth / 2};
|
||||
break;
|
||||
case 'top':
|
||||
position = {top: pos.top - targetHeight, left: pos.left + pos.width / 2 - targetWidth / 2};
|
||||
break;
|
||||
case 'left':
|
||||
position = {top: pos.top + pos.height / 2 - targetHeight / 2, left: pos.left - targetWidth};
|
||||
break;
|
||||
case 'right':
|
||||
position = {top: pos.top + pos.height / 2 - targetHeight / 2, left: pos.left + pos.width};
|
||||
break;
|
||||
case 'top-right':
|
||||
position = {top: pos.top - targetHeight, left: pos.left-fixedW};
|
||||
arrowOffset = {left: elementW/2 + fixedW};
|
||||
break;
|
||||
case 'top-left':
|
||||
position = {top: pos.top - targetHeight, left: pos.left -targetWidth +pos.width + fixedW};
|
||||
arrowOffset = {left: targetWidth - elementW /2 -fixedW};
|
||||
break;
|
||||
case 'bottom-right':
|
||||
position = {top: pos.top + pos.height, left: pos.left-fixedW};
|
||||
arrowOffset = {left: elementW /2+fixedW};
|
||||
break;
|
||||
case 'bottom-left':
|
||||
position = {top: pos.top + pos.height, left: pos.left -targetWidth +pos.width+fixedW};
|
||||
arrowOffset = {left: targetWidth- elementW /2 - fixedW};
|
||||
break;
|
||||
case 'right-top':
|
||||
position = {top: pos.top -targetHeight + pos.height + fixedH, left: pos.left + pos.width};
|
||||
arrowOffset = {top: targetHeight - elementH/2 -fixedH};
|
||||
break;
|
||||
case 'right-bottom':
|
||||
position = {top: pos.top - fixedH, left: pos.left + pos.width};
|
||||
arrowOffset = {top: elementH /2 +fixedH };
|
||||
break;
|
||||
case 'left-top':
|
||||
position = {top: pos.top -targetHeight + pos.height+fixedH, left: pos.left - targetWidth};
|
||||
arrowOffset = {top: targetHeight - elementH/2 - fixedH};
|
||||
break;
|
||||
case 'left-bottom':
|
||||
position = {top: pos.top , left: pos.left -targetWidth};
|
||||
arrowOffset = {top: elementH /2 };
|
||||
break;
|
||||
|
||||
}
|
||||
return {position:position,arrowOffset:arrowOffset};
|
||||
}
|
||||
};
|
||||
$.fn[ pluginName ] = function ( options ) {
|
||||
return this.each(function() {
|
||||
var webuiPopover = $.data( this, 'plugin_' + pluginName );
|
||||
if (!webuiPopover) {
|
||||
if (!options){
|
||||
webuiPopover = new WebuiPopover( this, null);
|
||||
}else if (typeof options ==='string'){
|
||||
if (options!=='destroy'){
|
||||
webuiPopover = new WebuiPopover( this, null );
|
||||
webuiPopover[options]();
|
||||
}
|
||||
}else if (typeof options ==='object'){
|
||||
webuiPopover = new WebuiPopover( this, options );
|
||||
}
|
||||
$.data( this, 'plugin_' + pluginName, webuiPopover);
|
||||
}else{
|
||||
if (options==='destroy'){
|
||||
webuiPopover.destroy();
|
||||
}else if (typeof options ==='string'){
|
||||
webuiPopover[options]();
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
})( jQuery, window, document );
|
||||
|
7
doc/source/_themes/releases/theme.conf
Normal file
@ -0,0 +1,7 @@
|
||||
[theme]
|
||||
inherit = basic
|
||||
stylesheet = css/basic.css
|
||||
pygments_style = native
|
||||
|
||||
[options]
|
||||
analytics_tracking_code = UA-17511903-1
|
14
doc/source/_themes/releases/titlerow.html
Normal file
@ -0,0 +1,14 @@
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<h2>{{ title }}</h2>
|
||||
</div>
|
||||
<div class="docs-actions">
|
||||
{% if prev %}
|
||||
<a href="{{ prev.link|e }}"><i class="fa fa-angle-double-left" data-toggle="tooltip" data-placement="top" title="Previous: {{ prev.title }}"></i></a>
|
||||
{% endif %}
|
||||
{% if next %}
|
||||
<a href="{{ next.link|e }}"><i class="fa fa-angle-double-right" data-toggle="tooltip" data-placement="top" title="Next: {{ next.title }}"></i></a>
|
||||
{% endif %}
|
||||
<a id="logABugLink1" href="" target="_blank" title="Found an error? Report a bug against this page"><i class="fa fa-bug" data-toggle="tooltip" data-placement="top" title="Report a Bug"></i></a>
|
||||
</div>
|
||||
</div>
|
@ -7,7 +7,7 @@ import sys
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
||||
extensions = ['sphinx.ext.autodoc', 'oslosphinx', 'openstack_releases.sphinxext']
|
||||
extensions = ['sphinx.ext.autodoc', 'openstack_releases.sphinxext']
|
||||
|
||||
config_generator_config_file = 'config-generator.conf'
|
||||
|
||||
@ -42,8 +42,8 @@ pygments_style = 'sphinx'
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. Major themes that come with
|
||||
# Sphinx are currently 'default' and 'sphinxdoc'.
|
||||
# html_theme_path = ["."]
|
||||
# html_theme = '_theme'
|
||||
html_theme = 'releases'
|
||||
html_theme_path = ['_themes']
|
||||
html_static_path = ['static']
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
|