From 54b973233904f8870bf2d4dc6a5dfedb031531fb Mon Sep 17 00:00:00 2001 From: Dean Troyer Date: Fri, 20 Jun 2014 17:53:55 -0500 Subject: [PATCH] Move static docs into master branch The hand-maintained static HTML docs for DevStack have been in a GitHub gh-pages branch; move them into the master branch in preparation for hosting them in openstack.org infrastructure. By default tools/build_docs.sh now builds the static HTML output into docs/html. Change-Id: Ide5f7d980a294c7a9f8a3decaed0939f1c239934 --- .gitignore | 26 +- docs/source/assets/css/bootstrap.css | 616 ++++++++ docs/source/assets/css/local.css | 122 ++ docs/source/assets/images/devstack.png | Bin 0 -> 1218 bytes docs/source/assets/images/header_bg.png | Bin 0 -> 1014 bytes docs/source/assets/images/logo.png | Bin 0 -> 8104 bytes docs/source/assets/images/quickstart.png | Bin 0 -> 11964 bytes docs/source/assets/images/small_logo.png | Bin 0 -> 1855 bytes docs/source/assets/js/bootstrap.js | 1722 +++++++++++++++++++++ docs/source/assets/js/bootstrap.min.js | 1 + docs/source/assets/js/jquery-1.7.1.min.js | 4 + docs/source/changes.html | 515 ++++++ docs/source/configuration.html | 243 +++ docs/source/contributing.html | 87 ++ docs/source/eucarc.html | 94 ++ docs/source/exerciserc.html | 88 ++ docs/source/faq.html | 169 ++ docs/source/guides/multinode-lab.html | 330 ++++ docs/source/guides/pxe-boot.html | 147 ++ docs/source/guides/ramdisk.html | 119 ++ docs/source/guides/single-machine.html | 131 ++ docs/source/guides/single-vm.html | 137 ++ docs/source/guides/usb-boot.html | 99 ++ docs/source/index.html | 529 +++++++ docs/source/local.conf.html | 64 + docs/source/localrc.html | 60 + docs/source/openrc.html | 115 ++ docs/source/overview.html | 118 ++ docs/source/plugins.html | 136 ++ docs/source/stackrc.html | 101 ++ tools/build_docs.sh | 107 +- 31 files changed, 5822 insertions(+), 58 deletions(-) create mode 100644 docs/source/assets/css/bootstrap.css create mode 100644 docs/source/assets/css/local.css create mode 100644 docs/source/assets/images/devstack.png create mode 100644 docs/source/assets/images/header_bg.png create mode 100644 docs/source/assets/images/logo.png create mode 100644 docs/source/assets/images/quickstart.png create mode 100644 docs/source/assets/images/small_logo.png create mode 100644 docs/source/assets/js/bootstrap.js create mode 100644 docs/source/assets/js/bootstrap.min.js create mode 100644 docs/source/assets/js/jquery-1.7.1.min.js create mode 100644 docs/source/changes.html create mode 100644 docs/source/configuration.html create mode 100644 docs/source/contributing.html create mode 100644 docs/source/eucarc.html create mode 100644 docs/source/exerciserc.html create mode 100644 docs/source/faq.html create mode 100644 docs/source/guides/multinode-lab.html create mode 100644 docs/source/guides/pxe-boot.html create mode 100644 docs/source/guides/ramdisk.html create mode 100644 docs/source/guides/single-machine.html create mode 100644 docs/source/guides/single-vm.html create mode 100644 docs/source/guides/usb-boot.html create mode 100644 docs/source/index.html create mode 100644 docs/source/local.conf.html create mode 100644 docs/source/localrc.html create mode 100644 docs/source/openrc.html create mode 100644 docs/source/overview.html create mode 100644 docs/source/plugins.html create mode 100644 docs/source/stackrc.html diff --git a/.gitignore b/.gitignore index 1840352636..b80b47674f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,23 +1,23 @@ -proto *~ .*.sw? *.log *.log.[1-9] -src -localrc -local.sh +*.pem +.localrc.auto +.prereqs +.stackenv +accrc +docs/files +docs/html files/*.gz files/*.qcow2 files/images files/pip-* files/get-pip.py -stack-screenrc -*.pem -accrc -.stackenv -.prereqs -devstack-docs-* -docs/ -docs-files -.localrc.auto local.conf +local.sh +localrc +proto +shocco +src +stack-screenrc diff --git a/docs/source/assets/css/bootstrap.css b/docs/source/assets/css/bootstrap.css new file mode 100644 index 0000000000..5fd10bcceb --- /dev/null +++ b/docs/source/assets/css/bootstrap.css @@ -0,0 +1,616 @@ +article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;} +audio,canvas,video{display:inline-block;*display:inline;*zoom:1;} +audio:not([controls]){display:none;} +html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;} +a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +a:hover,a:active{outline:0;} +sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;} +sup{top:-0.5em;} +sub{bottom:-0.25em;} +img{max-width:100%;height:auto;border:0;-ms-interpolation-mode:bicubic;} +button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;} +button,input{*overflow:visible;line-height:normal;} +button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;} +button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;} +input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;} +input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;} +textarea{overflow:auto;vertical-align:top;} +body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333333;background-color:#ffffff;} +a{color:#0088cc;text-decoration:none;} +a:hover{color:#005580;text-decoration:underline;} +.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} +.row:after{clear:both;} +[class*="span"]{float:left;margin-left:20px;} +.span1{width:60px;} +.span2{width:140px;} +.span3{width:220px;} +.span4{width:300px;} +.span5{width:380px;} +.span6{width:460px;} +.span7{width:540px;} +.span8{width:620px;} +.span9{width:700px;} +.span10{width:780px;} +.span11{width:860px;} +.span12,.container{width:940px;} +.offset1{margin-left:100px;} +.offset2{margin-left:180px;} +.offset3{margin-left:260px;} +.offset4{margin-left:340px;} +.offset5{margin-left:420px;} +.offset6{margin-left:500px;} +.offset7{margin-left:580px;} +.offset8{margin-left:660px;} +.offset9{margin-left:740px;} +.offset10{margin-left:820px;} +.offset11{margin-left:900px;} +.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} +.row-fluid:after{clear:both;} +.row-fluid>[class*="span"]{float:left;margin-left:2.127659574%;} +.row-fluid>[class*="span"]:first-child{margin-left:0;} +.row-fluid .span1{width:6.382978723%;} +.row-fluid .span2{width:14.89361702%;} +.row-fluid .span3{width:23.404255317%;} +.row-fluid .span4{width:31.914893614%;} +.row-fluid .span5{width:40.425531911%;} +.row-fluid .span6{width:48.93617020799999%;} +.row-fluid .span7{width:57.446808505%;} +.row-fluid .span8{width:65.95744680199999%;} +.row-fluid .span9{width:74.468085099%;} +.row-fluid .span10{width:82.97872339599999%;} +.row-fluid .span11{width:91.489361693%;} +.row-fluid .span12{width:99.99999998999999%;} +.container{width:940px;margin-left:auto;margin-right:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";} +.container:after{clear:both;} +.container-fluid{padding-left:20px;padding-right:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";} +.container-fluid:after{clear:both;} +p{margin:0 0 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;}p small{font-size:11px;color:#999999;} +.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px;} +h1,h2,h3,h4,h5,h6{margin:0;font-weight:bold;color:#333333;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999999;} +h1{font-size:30px;line-height:36px;}h1 small{font-size:18px;} +h2{font-size:24px;line-height:36px;}h2 small{font-size:18px;} +h3{line-height:27px;font-size:18px;}h3 small{font-size:14px;} +h4,h5,h6{line-height:18px;} +h4{font-size:14px;}h4 small{font-size:12px;} +h5{font-size:12px;} +h6{font-size:11px;color:#999999;text-transform:uppercase;} +.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eeeeee;} +.page-header h1{line-height:1;} +ul,ol{padding:0;margin:0 0 9px 25px;} +ul ul,ul ol,ol ol,ol ul{margin-bottom:0;} +ul{list-style:disc;} +ol{list-style:decimal;} +li{line-height:18px;} +ul.unstyled{margin-left:0;list-style:none;} +dl{margin-bottom:18px;} +dt,dd{line-height:18px;} +dt{font-weight:bold;} +dd{margin-left:9px;} +hr{margin:18px 0;border:0;border-top:1px solid #e5e5e5;border-bottom:1px solid #ffffff;} +strong{font-weight:bold;} +em{font-style:italic;} +.muted{color:#999999;} +abbr{font-size:90%;text-transform:uppercase;border-bottom:1px dotted #ddd;cursor:help;} +blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px;} +blockquote small{display:block;line-height:18px;color:#999999;}blockquote small:before{content:'\2014 \00A0';} +blockquote.pull-right{float:right;padding-left:0;padding-right:15px;border-left:0;border-right:5px solid #eeeeee;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;} +q:before,q:after,blockquote:before,blockquote:after{content:"";} +address{display:block;margin-bottom:18px;line-height:18px;font-style:normal;} +small{font-size:100%;} +cite{font-style:normal;} +code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +code{padding:3px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;} +pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:18px;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;white-space:pre;white-space:pre-wrap;word-break:break-all;}pre.prettyprint{margin-bottom:18px;} +pre code{padding:0;background-color:transparent;} +form{margin:0 0 18px;} +fieldset{padding:0;margin:0;border:0;} +legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333333;border:0;border-bottom:1px solid #eee;} +label,input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:18px;} +label{display:block;margin-bottom:5px;color:#333333;} +input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555555;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.uneditable-textarea{width:auto;height:auto;} +label input,label textarea,label select{display:block;} +input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;border:0;cursor:pointer;border-radius:0 \0/;} +input[type="file"]{padding:initial;line-height:initial;border:initial;background-color:#ffffff;background-color:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto;} +select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px;} +select{width:220px;background-color:#ffffff;} +select[multiple],select[size]{height:auto;} +input[type="image"]{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +textarea{height:auto;} +input[type="hidden"]{display:none;} +.radio,.checkbox{padding-left:18px;} +.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px;} +.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;} +.radio.inline,.checkbox.inline{display:inline-block;margin-bottom:0;vertical-align:middle;} +.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;} +.controls>.radio.inline:first-child,.controls>.checkbox.inline:first-child{padding-top:0;} +input,textarea{-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-ms-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;} +input:focus,textarea:focus{border-color:rgba(82, 168, 236, 0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);outline:0;outline:thin dotted \9;} +input[type="file"]:focus,input[type="checkbox"]:focus,select:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.input-mini{width:60px;} +.input-small{width:90px;} +.input-medium{width:150px;} +.input-large{width:210px;} +.input-xlarge{width:270px;} +.input-xxlarge{width:530px;} +input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{float:none;margin-left:0;} +input.span1,textarea.span1,.uneditable-input.span1{width:50px;} +input.span2,textarea.span2,.uneditable-input.span2{width:130px;} +input.span3,textarea.span3,.uneditable-input.span3{width:210px;} +input.span4,textarea.span4,.uneditable-input.span4{width:290px;} +input.span5,textarea.span5,.uneditable-input.span5{width:370px;} +input.span6,textarea.span6,.uneditable-input.span6{width:450px;} +input.span7,textarea.span7,.uneditable-input.span7{width:530px;} +input.span8,textarea.span8,.uneditable-input.span8{width:610px;} +input.span9,textarea.span9,.uneditable-input.span9{width:690px;} +input.span10,textarea.span10,.uneditable-input.span10{width:770px;} +input.span11,textarea.span11,.uneditable-input.span11{width:850px;} +input.span12,textarea.span12,.uneditable-input.span12{width:930px;} +input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#f5f5f5;border-color:#ddd;cursor:not-allowed;} +.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;} +.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853;}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:0 0 6px #dbc59e;-moz-box-shadow:0 0 6px #dbc59e;box-shadow:0 0 6px #dbc59e;} +.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;} +.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;} +.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48;}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow:0 0 6px #d59392;} +.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;} +.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;} +.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847;}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:0 0 6px #7aba7b;-moz-box-shadow:0 0 6px #7aba7b;box-shadow:0 0 6px #7aba7b;} +.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;} +input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;} +.form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#f5f5f5;border-top:1px solid #ddd;} +.uneditable-input{display:block;background-color:#ffffff;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;} +:-moz-placeholder{color:#999999;} +::-webkit-input-placeholder{color:#999999;} +.help-block{margin-top:5px;margin-bottom:0;color:#999999;} +.help-inline{display:inline-block;*display:inline;*zoom:1;margin-bottom:9px;vertical-align:middle;padding-left:5px;} +.input-prepend,.input-append{margin-bottom:5px;*zoom:1;}.input-prepend:before,.input-append:before,.input-prepend:after,.input-append:after{display:table;content:"";} +.input-prepend:after,.input-append:after{clear:both;} +.input-prepend input,.input-append input,.input-prepend .uneditable-input,.input-append .uneditable-input{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}.input-prepend input:focus,.input-append input:focus,.input-prepend .uneditable-input:focus,.input-append .uneditable-input:focus{position:relative;z-index:2;} +.input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc;} +.input-prepend .add-on,.input-append .add-on{float:left;display:block;width:auto;min-width:16px;height:18px;margin-right:-1px;padding:4px 5px;font-weight:normal;line-height:18px;color:#999999;text-align:center;text-shadow:0 1px 0 #ffffff;background-color:#f5f5f5;border:1px solid #ccc;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.input-prepend .active,.input-append .active{background-color:#a9dba9;border-color:#46a546;} +.input-prepend .add-on{*margin-top:1px;} +.input-append input,.input-append .uneditable-input{float:left;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.input-append .uneditable-input{border-right-color:#ccc;} +.input-append .add-on{margin-right:0;margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} +.input-append input:first-child{*margin-left:-160px;}.input-append input:first-child+.add-on{*margin-left:-21px;} +.search-query{padding-left:14px;padding-right:14px;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px;} +.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input{display:inline-block;margin-bottom:0;} +.form-search label,.form-inline label,.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{display:inline-block;} +.form-search .input-append .add-on,.form-inline .input-prepend .add-on,.form-search .input-append .add-on,.form-inline .input-prepend .add-on{vertical-align:middle;} +.control-group{margin-bottom:9px;} +.form-horizontal legend+.control-group{margin-top:18px;-webkit-margin-top-collapse:separate;} +.form-horizontal .control-group{margin-bottom:18px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";} +.form-horizontal .control-group:after{clear:both;} +.form-horizontal .control-group>label{float:left;width:140px;padding-top:5px;text-align:right;} +.form-horizontal .controls{margin-left:160px;} +.form-horizontal .form-actions{padding-left:160px;} +table{max-width:100%;border-collapse:collapse;border-spacing:0;} +.table{width:100%;margin-bottom:18px;}.table th,.table td{padding:8px;line-height:18px;text-align:left;border-top:1px solid #ddd;} +.table th{font-weight:bold;vertical-align:bottom;} +.table td{vertical-align:top;} +.table thead:first-child tr th,.table thead:first-child tr td{border-top:0;} +.table tbody+tbody{border-top:2px solid #ddd;} +.table-condensed th,.table-condensed td{padding:4px 5px;} +.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapsed;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th+th,.table-bordered td+td,.table-bordered th+td,.table-bordered td+th{border-left:1px solid #ddd;} +.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;} +.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0;} +.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0;} +.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;} +.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0;} +.table-striped tbody tr:nth-child(even) td,.table-striped tbody tr:nth-child(even) th{background-color:#f1f1f1;} +table .span1{float:none;width:44px;margin-left:0;} +table .span2{float:none;width:124px;margin-left:0;} +table .span3{float:none;width:204px;margin-left:0;} +table .span4{float:none;width:284px;margin-left:0;} +table .span5{float:none;width:364px;margin-left:0;} +table .span6{float:none;width:444px;margin-left:0;} +table .span7{float:none;width:524px;margin-left:0;} +table .span8{float:none;width:604px;margin-left:0;} +table .span9{float:none;width:684px;margin-left:0;} +table .span10{float:none;width:764px;margin-left:0;} +table .span11{float:none;width:844px;margin-left:0;} +table .span12{float:none;width:924px;margin-left:0;} +[class^="icon-"]{display:inline-block;width:14px;height:14px;vertical-align:text-top;background-image:url(../img/glyphicons-halflings.png);background-position:14px 14px;background-repeat:no-repeat;*margin-right:.3em;}[class^="icon-"]:last-child{*margin-left:0;} +.icon-white{background-image:url(../img/glyphicons-halflings-white.png);} +.icon-glass{background-position:0 0;} +.icon-music{background-position:-24px 0;} +.icon-search{background-position:-48px 0;} +.icon-envelope{background-position:-72px 0;} +.icon-heart{background-position:-96px 0;} +.icon-star{background-position:-120px 0;} +.icon-star-empty{background-position:-144px 0;} +.icon-user{background-position:-168px 0;} +.icon-film{background-position:-192px 0;} +.icon-th-large{background-position:-216px 0;} +.icon-th{background-position:-240px 0;} +.icon-th-list{background-position:-264px 0;} +.icon-ok{background-position:-288px 0;} +.icon-remove{background-position:-312px 0;} +.icon-zoom-in{background-position:-336px 0;} +.icon-zoom-out{background-position:-360px 0;} +.icon-off{background-position:-384px 0;} +.icon-signal{background-position:-408px 0;} +.icon-cog{background-position:-432px 0;} +.icon-trash{background-position:-456px 0;} +.icon-home{background-position:0 -24px;} +.icon-file{background-position:-24px -24px;} +.icon-time{background-position:-48px -24px;} +.icon-road{background-position:-72px -24px;} +.icon-download-alt{background-position:-96px -24px;} +.icon-download{background-position:-120px -24px;} +.icon-upload{background-position:-144px -24px;} +.icon-inbox{background-position:-168px -24px;} +.icon-play-circle{background-position:-192px -24px;} +.icon-repeat{background-position:-216px -24px;} +.icon-refresh{background-position:-240px -24px;} +.icon-list-alt{background-position:-264px -24px;} +.icon-lock{background-position:-287px -24px;} +.icon-flag{background-position:-312px -24px;} +.icon-headphones{background-position:-336px -24px;} +.icon-volume-off{background-position:-360px -24px;} +.icon-volume-down{background-position:-384px -24px;} +.icon-volume-up{background-position:-408px -24px;} +.icon-qrcode{background-position:-432px -24px;} +.icon-barcode{background-position:-456px -24px;} +.icon-tag{background-position:0 -48px;} +.icon-tags{background-position:-25px -48px;} +.icon-book{background-position:-48px -48px;} +.icon-bookmark{background-position:-72px -48px;} +.icon-print{background-position:-96px -48px;} +.icon-camera{background-position:-120px -48px;} +.icon-font{background-position:-144px -48px;} +.icon-bold{background-position:-167px -48px;} +.icon-italic{background-position:-192px -48px;} +.icon-text-height{background-position:-216px -48px;} +.icon-text-width{background-position:-240px -48px;} +.icon-align-left{background-position:-264px -48px;} +.icon-align-center{background-position:-288px -48px;} +.icon-align-right{background-position:-312px -48px;} +.icon-align-justify{background-position:-336px -48px;} +.icon-list{background-position:-360px -48px;} +.icon-indent-left{background-position:-384px -48px;} +.icon-indent-right{background-position:-408px -48px;} +.icon-facetime-video{background-position:-432px -48px;} +.icon-picture{background-position:-456px -48px;} +.icon-pencil{background-position:0 -72px;} +.icon-map-marker{background-position:-24px -72px;} +.icon-adjust{background-position:-48px -72px;} +.icon-tint{background-position:-72px -72px;} +.icon-edit{background-position:-96px -72px;} +.icon-share{background-position:-120px -72px;} +.icon-check{background-position:-144px -72px;} +.icon-move{background-position:-168px -72px;} +.icon-step-backward{background-position:-192px -72px;} +.icon-fast-backward{background-position:-216px -72px;} +.icon-backward{background-position:-240px -72px;} +.icon-play{background-position:-264px -72px;} +.icon-pause{background-position:-288px -72px;} +.icon-stop{background-position:-312px -72px;} +.icon-forward{background-position:-336px -72px;} +.icon-fast-forward{background-position:-360px -72px;} +.icon-step-forward{background-position:-384px -72px;} +.icon-eject{background-position:-408px -72px;} +.icon-chevron-left{background-position:-432px -72px;} +.icon-chevron-right{background-position:-456px -72px;} +.icon-plus-sign{background-position:0 -96px;} +.icon-minus-sign{background-position:-24px -96px;} +.icon-remove-sign{background-position:-48px -96px;} +.icon-ok-sign{background-position:-72px -96px;} +.icon-question-sign{background-position:-96px -96px;} +.icon-info-sign{background-position:-120px -96px;} +.icon-screenshot{background-position:-144px -96px;} +.icon-remove-circle{background-position:-168px -96px;} +.icon-ok-circle{background-position:-192px -96px;} +.icon-ban-circle{background-position:-216px -96px;} +.icon-arrow-left{background-position:-240px -96px;} +.icon-arrow-right{background-position:-264px -96px;} +.icon-arrow-up{background-position:-289px -96px;} +.icon-arrow-down{background-position:-312px -96px;} +.icon-share-alt{background-position:-336px -96px;} +.icon-resize-full{background-position:-360px -96px;} +.icon-resize-small{background-position:-384px -96px;} +.icon-plus{background-position:-408px -96px;} +.icon-minus{background-position:-433px -96px;} +.icon-asterisk{background-position:-456px -96px;} +.icon-exclamation-sign{background-position:0 -120px;} +.icon-gift{background-position:-24px -120px;} +.icon-leaf{background-position:-48px -120px;} +.icon-fire{background-position:-72px -120px;} +.icon-eye-open{background-position:-96px -120px;} +.icon-eye-close{background-position:-120px -120px;} +.icon-warning-sign{background-position:-144px -120px;} +.icon-plane{background-position:-168px -120px;} +.icon-calendar{background-position:-192px -120px;} +.icon-random{background-position:-216px -120px;} +.icon-comment{background-position:-240px -120px;} +.icon-magnet{background-position:-264px -120px;} +.icon-chevron-up{background-position:-288px -120px;} +.icon-chevron-down{background-position:-313px -119px;} +.icon-retweet{background-position:-336px -120px;} +.icon-shopping-cart{background-position:-360px -120px;} +.icon-folder-close{background-position:-384px -120px;} +.icon-folder-open{background-position:-408px -120px;} +.icon-resize-vertical{background-position:-432px -119px;} +.icon-resize-horizontal{background-position:-456px -118px;} +.dropdown{position:relative;} +.dropdown-toggle{*margin-bottom:-3px;} +.dropdown-toggle:active,.open .dropdown-toggle{outline:0;} +.caret{display:inline-block;width:0;height:0;text-indent:-99999px;*text-indent:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000000;opacity:0.3;filter:alpha(opacity=30);content:"\2193";} +.dropdown .caret{margin-top:8px;margin-left:2px;} +.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100);} +.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;max-width:220px;_width:160px;padding:4px 0;margin:0;list-style:none;background-color:#ffffff;border-color:#ccc;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px;}.dropdown-menu.bottom-up{top:auto;bottom:100%;margin-bottom:2px;} +.dropdown-menu .divider{height:1px;margin:5px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;*width:100%;*margin:-5px 0 5px;} +.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#555555;white-space:nowrap;} +.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#ffffff;text-decoration:none;background-color:#0088cc;} +.dropdown.open{*z-index:1000;}.dropdown.open .dropdown-toggle{color:#ffffff;background:#ccc;background:rgba(0, 0, 0, 0.3);} +.dropdown.open .dropdown-menu{display:block;} +.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0, 0, 0, 0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);} +.fade{-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;opacity:0;}.fade.in{opacity:1;} +.collapse{-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-ms-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;position:relative;overflow:hidden;height:0;}.collapse.in{height:auto;} +.close{float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;opacity:0.4;filter:alpha(opacity=40);cursor:pointer;} +.btn{display:inline-block;padding:4px 10px 4px;font-size:13px;line-height:18px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#fafafa;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);background-image:-ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border:1px solid #ccc;border-bottom-color:#bbb;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);cursor:pointer;*margin-left:.3em;}.btn:first-child{*margin-left:0;} +.btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;} +.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.btn.active,.btn:active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);background-color:#e6e6e6;background-color:#d9d9d9 \9;color:rgba(0, 0, 0, 0.5);outline:0;} +.btn.disabled,.btn[disabled]{cursor:default;background-image:none;background-color:#e6e6e6;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.btn-large .icon{margin-top:1px;} +.btn-small{padding:5px 9px;font-size:11px;line-height:16px;} +.btn-small .icon{margin-top:-1px;} +.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover{text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);color:#ffffff;} +.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active{color:rgba(255, 255, 255, 0.75);} +.btn-primary{background-color:#006dcc;background-image:-moz-linear-gradient(top, #0088cc, #0044cc);background-image:-ms-linear-gradient(top, #0088cc, #0044cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));background-image:-webkit-linear-gradient(top, #0088cc, #0044cc);background-image:-o-linear-gradient(top, #0088cc, #0044cc);background-image:linear-gradient(top, #0088cc, #0044cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);border-color:#0044cc #0044cc #002a80;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0044cc;} +.btn-primary:active,.btn-primary.active{background-color:#003399 \9;} +.btn-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;} +.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;} +.btn-danger{background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-ms-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(top, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;} +.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;} +.btn-success{background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-ms-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(top, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;} +.btn-success:active,.btn-success.active{background-color:#408140 \9;} +.btn-info{background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-ms-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(top, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;} +.btn-info:active,.btn-info.active{background-color:#24748c \9;} +button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;} +button.btn.large,input[type="submit"].btn.large{*padding-top:7px;*padding-bottom:7px;} +button.btn.small,input[type="submit"].btn.small{*padding-top:3px;*padding-bottom:3px;} +.btn-group{position:relative;*zoom:1;*margin-left:.3em;}.btn-group:before,.btn-group:after{display:table;content:"";} +.btn-group:after{clear:both;} +.btn-group:first-child{*margin-left:0;} +.btn-group+.btn-group{margin-left:5px;} +.btn-toolbar{margin-top:9px;margin-bottom:9px;}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1;} +.btn-group .btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.btn-group .btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;} +.btn-group .btn:last-child,.btn-group .dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;} +.btn-group .btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;} +.btn-group .btn.large:last-child,.btn-group .large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;} +.btn-group .btn:hover,.btn-group .btn:focus,.btn-group .btn:active,.btn-group .btn.active{z-index:2;} +.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;} +.btn-group .dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);*padding-top:5px;*padding-bottom:5px;} +.btn-group.open{*z-index:1000;}.btn-group.open .dropdown-menu{display:block;margin-top:1px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);} +.btn .caret{margin-top:7px;margin-left:0;} +.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100);} +.btn-primary .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret{border-top-color:#ffffff;opacity:0.75;filter:alpha(opacity=75);} +.btn-small .caret{margin-top:4px;} +.alert{padding:8px 35px 8px 14px;margin-bottom:18px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.alert,.alert-heading{color:#c09853;} +.alert .close{position:relative;top:-2px;right:-21px;line-height:18px;} +.alert-success{background-color:#dff0d8;border-color:#d6e9c6;} +.alert-success,.alert-success .alert-heading{color:#468847;} +.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;} +.alert-danger,.alert-error,.alert-danger .alert-heading,.alert-error .alert-heading{color:#b94a48;} +.alert-info{background-color:#d9edf7;border-color:#bce8f1;} +.alert-info,.alert-info .alert-heading{color:#3a87ad;} +.alert-block{padding-top:14px;padding-bottom:14px;} +.alert-block>p,.alert-block>ul{margin-bottom:0;} +.alert-block p+p{margin-top:5px;} +.nav{margin-left:0;margin-bottom:18px;list-style:none;} +.nav>li>a{display:block;} +.nav>li>a:hover{text-decoration:none;background-color:#eeeeee;} +.nav-list{padding-left:14px;padding-right:14px;margin-bottom:0;} +.nav-list>li>a,.nav-list .nav-header{display:block;padding:3px 15px;margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);} +.nav-list .nav-header{font-size:11px;font-weight:bold;line-height:18px;color:#999999;text-transform:uppercase;} +.nav-list>li+.nav-header{margin-top:9px;} +.nav-list .active>a{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;} +.nav-list .icon{margin-right:2px;} +.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";} +.nav-tabs:after,.nav-pills:after{clear:both;} +.nav-tabs>li,.nav-pills>li{float:left;} +.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;} +.nav-tabs{border-bottom:1px solid #ddd;} +.nav-tabs>li{margin-bottom:-1px;} +.nav-tabs>li>a{padding-top:9px;padding-bottom:9px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;} +.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;} +.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.nav-pills .active>a,.nav-pills .active>a:hover{color:#ffffff;background-color:#0088cc;} +.nav-stacked>li{float:none;} +.nav-stacked>li>a{margin-right:0;} +.nav-tabs.nav-stacked{border-bottom:0;} +.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;} +.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;} +.nav-tabs.nav-stacked>li>a:hover{border-color:#ddd;z-index:2;} +.nav-pills.nav-stacked>li>a{margin-bottom:3px;} +.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;} +.nav-tabs .dropdown-menu,.nav-pills .dropdown-menu{margin-top:1px;border-width:1px;} +.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{border-top-color:#0088cc;margin-top:6px;} +.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;} +.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333333;} +.nav>.dropdown.active>a:hover{color:#000000;cursor:pointer;} +.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;} +.nav .open .caret,.nav .open.active .caret,.nav .open a:hover .caret{border-top-color:#ffffff;opacity:1;filter:alpha(opacity=100);} +.tabs-stacked .open>a:hover{border-color:#999999;} +.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";} +.tabbable:after{clear:both;} +.tabs-below .nav-tabs,.tabs-right .nav-tabs,.tabs-left .nav-tabs{border-bottom:0;} +.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;} +.tab-content>.active,.pill-content>.active{display:block;} +.tabs-below .nav-tabs{border-top:1px solid #ddd;} +.tabs-below .nav-tabs>li{margin-top:-1px;margin-bottom:0;} +.tabs-below .nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below .nav-tabs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd;} +.tabs-below .nav-tabs .active>a,.tabs-below .nav-tabs .active>a:hover{border-color:transparent #ddd #ddd #ddd;} +.tabs-left .nav-tabs>li,.tabs-right .nav-tabs>li{float:none;} +.tabs-left .nav-tabs>li>a,.tabs-right .nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;} +.tabs-left .nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;} +.tabs-left .nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;} +.tabs-left .nav-tabs>li>a:hover{border-color:#eeeeee #dddddd #eeeeee #eeeeee;} +.tabs-left .nav-tabs .active>a,.tabs-left .nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;} +.tabs-right .nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;} +.tabs-right .nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.tabs-right .nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #eeeeee #dddddd;} +.tabs-right .nav-tabs .active>a,.tabs-right .nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;} +.navbar{overflow:visible;margin-bottom:18px;} +.navbar-inner{padding-left:20px;padding-right:20px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);} +.btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);}.btn-navbar:hover,.btn-navbar:active,.btn-navbar.active,.btn-navbar.disabled,.btn-navbar[disabled]{background-color:#222222;} +.btn-navbar:active,.btn-navbar.active{background-color:#080808 \9;} +.btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);} +.btn-navbar .icon-bar+.icon-bar{margin-top:3px;} +.nav-collapse.collapse{height:auto;} +.navbar .brand:hover{text-decoration:none;} +.navbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#ffffff;} +.navbar .navbar-text{margin-bottom:0;line-height:40px;color:#999999;}.navbar .navbar-text a:hover{color:#ffffff;background-color:transparent;} +.navbar .btn,.navbar .btn-group{margin-top:5px;} +.navbar .btn-group .btn{margin-top:0;} +.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";} +.navbar-form:after{clear:both;} +.navbar-form input,.navbar-form select{display:inline-block;margin-top:5px;margin-bottom:0;} +.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;} +.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;} +.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0;}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#ffffff;color:rgba(255, 255, 255, 0.75);background:#666;background:rgba(255, 255, 255, 0.3);border:1px solid #111;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.navbar-search .search-query :-moz-placeholder{color:#eeeeee;} +.navbar-search .search-query::-webkit-input-placeholder{color:#eeeeee;} +.navbar-search .search-query:hover{color:#ffffff;background-color:#999999;background-color:rgba(255, 255, 255, 0.5);} +.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;} +.navbar-fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030;} +.navbar-fixed-top .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;} +.navbar .nav.pull-right{float:right;} +.navbar .nav>li{display:block;float:left;} +.navbar .nav>li>a{float:none;padding:10px 10px 11px;line-height:19px;color:#999999;text-decoration:none;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);} +.navbar .nav>li>a:hover{background-color:transparent;color:#ffffff;text-decoration:none;} +.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#ffffff;text-decoration:none;background-color:#222222;background-color:rgba(0, 0, 0, 0.5);} +.navbar .divider-vertical{height:40px;width:1px;margin:0 9px;overflow:hidden;background-color:#222222;border-right:1px solid #333333;} +.navbar .nav.pull-right{margin-left:10px;margin-right:0;} +.navbar .dropdown-menu{margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.navbar .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;} +.navbar .dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;} +.navbar .nav .dropdown-toggle .caret,.navbar .nav .open.dropdown .caret{border-top-color:#ffffff;} +.navbar .nav .active .caret{opacity:1;filter:alpha(opacity=100);} +.navbar .nav .open>.dropdown-toggle,.navbar .nav .active>.dropdown-toggle,.navbar .nav .open.active>.dropdown-toggle{background-color:transparent;} +.navbar .nav .active>.dropdown-toggle:hover{color:#ffffff;} +.navbar .nav.pull-right .dropdown-menu{left:auto;right:0;}.navbar .nav.pull-right .dropdown-menu:before{left:auto;right:12px;} +.navbar .nav.pull-right .dropdown-menu:after{left:auto;right:13px;} +.breadcrumb{padding:7px 14px;margin:0 0 18px;background-color:#fbfbfb;background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline;text-shadow:0 1px 0 #ffffff;} +.breadcrumb .divider{padding:0 5px;color:#999999;} +.breadcrumb .active a{color:#333333;} +.pagination{height:36px;margin:18px 0;} +.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);} +.pagination li{display:inline;} +.pagination a{float:left;padding:0 14px;line-height:34px;text-decoration:none;border:1px solid #ddd;border-left-width:0;} +.pagination a:hover,.pagination .active a{background-color:#f5f5f5;} +.pagination .active a{color:#999999;cursor:default;} +.pagination .disabled a,.pagination .disabled a:hover{color:#999999;background-color:transparent;cursor:default;} +.pagination li:first-child a{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} +.pagination li:last-child a{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} +.pagination-centered{text-align:center;} +.pagination-right{text-align:right;} +.pager{margin-left:0;margin-bottom:18px;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";} +.pager:after{clear:both;} +.pager li{display:inline;} +.pager a{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;} +.pager a:hover{text-decoration:none;background-color:#f5f5f5;} +.pager .next a{float:right;} +.pager .previous a{float:left;} +.modal-open .dropdown-menu{z-index:2050;} +.modal-open .dropdown.open{*z-index:2050;} +.modal-open .popover{z-index:2060;} +.modal-open .tooltip{z-index:2070;} +.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;} +.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);} +.modal{position:fixed;top:50%;left:50%;z-index:1050;max-height:500px;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;} +.modal.fade.in{top:50%;} +.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;} +.modal-body{padding:15px;} +.modal-footer{padding:14px 15px 15px;margin-bottom:0;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";} +.modal-footer:after{clear:both;} +.modal-footer .btn{float:right;margin-left:5px;margin-bottom:0;} +.tooltip{position:absolute;z-index:1020;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);} +.tooltip.top{margin-top:-2px;} +.tooltip.right{margin-left:2px;} +.tooltip.bottom{margin-top:2px;} +.tooltip.left{margin-left:-2px;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.tooltip-arrow{position:absolute;width:0;height:0;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px;}.popover.top{margin-top:-5px;} +.popover.right{margin-left:5px;} +.popover.bottom{margin-top:5px;} +.popover.left{margin-left:-5px;} +.popover.top .arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} +.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} +.popover.bottom .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} +.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} +.popover .arrow{position:absolute;width:0;height:0;} +.popover-inner{padding:3px;width:280px;overflow:hidden;background:#000000;background:rgba(0, 0, 0, 0.8);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);} +.popover-title{padding:9px 15px;line-height:1;background-color:#f5f5f5;border-bottom:1px solid #eee;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;} +.popover-content{padding:14px;background-color:#ffffff;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;} +.thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";} +.thumbnails:after{clear:both;} +.thumbnails>li{float:left;margin:0 0 18px 20px;} +.thumbnail{display:block;padding:4px;line-height:1;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);} +a.thumbnail:hover{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);} +.thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;} +.thumbnail .caption{padding:9px;} +.label{padding:1px 3px 2px;font-size:9.75px;font-weight:bold;color:#ffffff;text-transform:uppercase;background-color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.label-important{background-color:#b94a48;} +.label-warning{background-color:#f89406;} +.label-success{background-color:#468847;} +.label-info{background-color:#3a87ad;} +@-webkit-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-ms-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(top, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.progress .bar{width:0%;height:18px;color:#ffffff;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-ms-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(top, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-ms-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;} +.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;} +.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;} +.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);} +.progress-danger.progress-striped .bar{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-ms-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(top, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);} +.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-ms-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(top, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);} +.progress-info.progress-striped .bar{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.accordion{margin-bottom:18px;} +.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.accordion-heading{border-bottom:0;} +.accordion-heading .accordion-toggle{display:block;padding:8px 15px;} +.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;} +.carousel{position:relative;margin-bottom:18px;line-height:1;} +.carousel-inner{overflow:hidden;width:100%;position:relative;} +.carousel .item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-ms-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;} +.carousel .item>img{display:block;line-height:1;} +.carousel .active,.carousel .next,.carousel .prev{display:block;} +.carousel .active{left:0;} +.carousel .next,.carousel .prev{position:absolute;top:0;width:100%;} +.carousel .next{left:100%;} +.carousel .prev{left:-100%;} +.carousel .next.left,.carousel .prev.right{left:0;} +.carousel .active.left{left:-100%;} +.carousel .active.right{left:100%;} +.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#ffffff;text-align:center;background:#222222;border:3px solid #ffffff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:0.5;filter:alpha(opacity=50);}.carousel-control.right{left:auto;right:15px;} +.carousel-control:hover{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);} +.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 15px 5px;background:#333333;background:rgba(0, 0, 0, 0.75);} +.carousel-caption h4,.carousel-caption p{color:#ffffff;} +.hero-unit{padding:60px;margin-bottom:30px;background-color:#f5f5f5;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;} +.hero-unit p{font-size:18px;font-weight:200;line-height:27px;} +.pull-right{float:right;} +.pull-left{float:left;} +.hide{display:none;} +.show{display:block;} +.invisible{visibility:hidden;} + + +/* Responsive css */ + +/*.hidden{display:none;visibility:hidden;}*/ +/*@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:18px;} input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} .input-prepend input[class*="span"],.input-append input[class*="span"]{width:auto;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .modal{position:absolute;top:10px;left:10px;right:10px;width:auto;margin:0;}.modal.fade.in{top:auto;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:768px){.container{width:auto;padding:0 20px;} .row-fluid{width:100%;} .row{margin-left:0;} .row>[class*="span"],.row-fluid>[class*="span"]{float:none;display:block;width:auto;margin:0;}}@media (min-width:768px) and (max-width:980px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:20px;} .span1{width:42px;} .span2{width:104px;} .span3{width:166px;} .span4{width:228px;} .span5{width:290px;} .span6{width:352px;} .span7{width:414px;} .span8{width:476px;} .span9{width:538px;} .span10{width:600px;} .span11{width:662px;} .span12,.container{width:724px;} .offset1{margin-left:82px;} .offset2{margin-left:144px;} .offset3{margin-left:206px;} .offset4{margin-left:268px;} .offset5{margin-left:330px;} .offset6{margin-left:392px;} .offset7{margin-left:454px;} .offset8{margin-left:516px;} .offset9{margin-left:578px;} .offset10{margin-left:640px;} .offset11{margin-left:702px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.762430939%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid .span1{width:5.801104972%;} .row-fluid .span2{width:14.364640883%;} .row-fluid .span3{width:22.928176794%;} .row-fluid .span4{width:31.491712705%;} .row-fluid .span5{width:40.055248616%;} .row-fluid .span6{width:48.618784527%;} .row-fluid .span7{width:57.182320438000005%;} .row-fluid .span8{width:65.74585634900001%;} .row-fluid .span9{width:74.30939226%;} .row-fluid .span10{width:82.87292817100001%;} .row-fluid .span11{width:91.436464082%;} .row-fluid .span12{width:99.999999993%;} input.span1,textarea.span1,.uneditable-input.span1{width:32px;} input.span2,textarea.span2,.uneditable-input.span2{width:94px;} input.span3,textarea.span3,.uneditable-input.span3{width:156px;} input.span4,textarea.span4,.uneditable-input.span4{width:218px;} input.span5,textarea.span5,.uneditable-input.span5{width:280px;} input.span6,textarea.span6,.uneditable-input.span6{width:342px;} input.span7,textarea.span7,.uneditable-input.span7{width:404px;} input.span8,textarea.span8,.uneditable-input.span8{width:466px;} input.span9,textarea.span9,.uneditable-input.span9{width:528px;} input.span10,textarea.span10,.uneditable-input.span10{width:590px;} input.span11,textarea.span11,.uneditable-input.span11{width:652px;} input.span12,textarea.span12,.uneditable-input.span12{width:714px;}}@media (max-width:980px){body{padding-top:0;} .navbar-fixed-top{position:static;margin-bottom:18px;} .navbar-fixed-top .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .navbar .nav-collapse{clear:left;} .navbar .nav{float:none;margin:0 0 9px;} .navbar .nav>li{float:none;} .navbar .nav>li>a{margin-bottom:2px;} .navbar .nav>.divider-vertical{display:none;} .navbar .nav>li>a,.navbar .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .navbar .dropdown-menu li+li a{margin-bottom:2px;} .navbar .nav>li>a:hover,.navbar .dropdown-menu a:hover{background-color:#222222;} .navbar .dropdown-menu{position:static;top:auto;left:auto;float:none;display:block;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .navbar .dropdown-menu:before,.navbar .dropdown-menu:after{display:none;} .navbar .dropdown-menu .divider{display:none;} .navbar-form,.navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222222;border-bottom:1px solid #222222;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);} .navbar .nav.pull-right{float:none;margin-left:0;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;} .btn-navbar{display:block;} .nav-collapse{overflow:hidden;height:0;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:30px;} .span1{width:70px;} .span2{width:170px;} .span3{width:270px;} .span4{width:370px;} .span5{width:470px;} .span6{width:570px;} .span7{width:670px;} .span8{width:770px;} .span9{width:870px;} .span10{width:970px;} .span11{width:1070px;} .span12,.container{width:1170px;} .offset1{margin-left:130px;} .offset2{margin-left:230px;} .offset3{margin-left:330px;} .offset4{margin-left:430px;} .offset5{margin-left:530px;} .offset6{margin-left:630px;} .offset7{margin-left:730px;} .offset8{margin-left:830px;} .offset9{margin-left:930px;} .offset10{margin-left:1030px;} .offset11{margin-left:1130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.564102564%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid .span1{width:5.982905983%;} .row-fluid .span2{width:14.529914530000001%;} .row-fluid .span3{width:23.076923077%;} .row-fluid .span4{width:31.623931624%;} .row-fluid .span5{width:40.170940171000005%;} .row-fluid .span6{width:48.717948718%;} .row-fluid .span7{width:57.264957265%;} .row-fluid .span8{width:65.81196581200001%;} .row-fluid .span9{width:74.358974359%;} .row-fluid .span10{width:82.905982906%;} .row-fluid .span11{width:91.45299145300001%;} .row-fluid .span12{width:100%;} input.span1,textarea.span1,.uneditable-input.span1{width:60px;} input.span2,textarea.span2,.uneditable-input.span2{width:160px;} input.span3,textarea.span3,.uneditable-input.span3{width:260px;} input.span4,textarea.span4,.uneditable-input.span4{width:360px;} input.span5,textarea.span5,.uneditable-input.span5{width:460px;} input.span6,textarea.span6,.uneditable-input.span6{width:560px;} input.span7,textarea.span7,.uneditable-input.span7{width:660px;} input.span8,textarea.span8,.uneditable-input.span8{width:760px;} input.span9,textarea.span9,.uneditable-input.span9{width:860px;} input.span10,textarea.span10,.uneditable-input.span10{width:960px;} input.span11,textarea.span11,.uneditable-input.span11{width:1060px;} input.span12,textarea.span12,.uneditable-input.span12{width:1160px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;}}*/ diff --git a/docs/source/assets/css/local.css b/docs/source/assets/css/local.css new file mode 100644 index 0000000000..5c703af3e4 --- /dev/null +++ b/docs/source/assets/css/local.css @@ -0,0 +1,122 @@ + +a.brand { + background: url(../images/small_logo.png) no-repeat left 6px; + width: 166px; + text-indent: -9999px; +} + +code { + background-color: #ffffff; +} + +#home .hero-unit { + background: url(../images/header_bg.png) top left repeat-x; + color: #fff; + padding-left: 25px; + padding-right: 25px; + height: 161px; +} + +#home .hero-unit { + margin-right: ; +} + +h1#main_header { + background: url(../images/logo.png) top left no-repeat; + text-indent: -9999px; +} + +.sub_header { + font-size: 12px; + font-family: "anivers"; + font-weight: normal; + width: 420px; +} + +#home .hero-unit a { + color: #fff; + text-decoration: underline; +} + +.clear { + clear: both; +} + +ol#getting_started { + list-style: none; + width: 396px; + margin-top: -45px; + margin-right: 0; + margin-left: 72px; +} + +ol#getting_started li { + background: url(../images/quickstart.png) top left no-repeat; +} + +ol#getting_started li pre { + font-size: 11px; + padding: 5px; + background: #4d7ead; + border-color: #2c5d8d; + color: #fff; + overflow: auto; +} + +li#ubuntu { + height: 46px; + padding: ; + padding-left: 82px; + padding-top: 27px; + margin-bottom: 14px; +} + +li#github { + background-position: left -70px !important; + height: 61px; + padding: ; + padding-left: 82px; + padding-top: 4px; + margin-bottom: 25px; +} + + +li#install { + background-position: left bottom !important; + height: 61px; + padding: ; + padding-left: 82px; + padding-top: 4px; + margin-bottom: 25px; +} + +h2 small { + font-size: 12px; + font-style: italic; +} + +.container section { + margin-bottom: 25px; +} + + +thead, tfoot{ + background: #ededed; + color: #444444; +} + +table { + color: #444; +} +a.table-action { + display: block; + width: 45px; +} + +footer { + clear: both; +} + +.wat { + margin-top: 33px; +} \ No newline at end of file diff --git a/docs/source/assets/images/devstack.png b/docs/source/assets/images/devstack.png new file mode 100644 index 0000000000000000000000000000000000000000..ca6297e1279fd094d92c414b6fa0d1af55c7ff0b GIT binary patch literal 1218 zcmaJ=U1$_n7#(X~K zxU>6EBq*pztB7JNHbNvqWtCuvl2}tLgbHn98!;;Qpr9fC;DhKxFs65s-RMKN^Kj?8 z_nvdU^WFR1eNBxUt14Gj5(H6|*c43?#G(L>eM{cKQ$YCAw=3ux0#iF!IT zOp&@KQCk8sD_aqe(KqF7kjgiv)qJ}e(x`^@WW6h50Rtd~bd4RRBf1hbrz_&vTV^P7 z4uaYxYTi_{+(bs84afk^`cyW^kwJmx1U4juJ|}sWV;PQT*jgXQih){@<;dbk;cT|n zDkh`xVlF(Bs0>1u$S~P#md^TVXtyz3C=_B?p5b{PM);hZi4@moIyEJQC~#C;w~!7^ z(o~y{a!&;Cvo#HX!17lppVmO-hN-6Sf%s&0BKa|~G)6Q+X{Qw52r zL}3kD*EKQB2I9eRED&QOJjcb@I-U>5g-E2<9}xJux?qVLg=(h(OjP1(uergpT(21n z3ulf3Ti*$^xD5?*u4qv&@5NtMugKNPdlAZV8El5}uJ(%I%0>TN+I(*BMfHbA z9}gGU2kUZ|t0x-z%;hic&fGh18Mn`jPs}de6&JkMO00Y)ulels<`W|W{7irE$j*CP zUG4j>w@xmXtGw-zKTmZZNnL7Jo?I_%JW-gM?vri}zgqSIQOIof_SxRAr>n0zx$WPc zp78bjJoIpN#lxe0y+>x39vnRPcEuNKe_G|i4jlS!bnWwjvAW5jZj9OU=y1o1Q{BWz zMUj!?aI!OhnO|{s>iE<9e_eQYwCg01iKP}}>MqVdHMyUg$v?X}xc>KJ(uY%RGv^OZ zukL>Xv2J|q{qbK92)|sp!1w(9&0uf$(2Z%aV9wW(xnJ`eF>x*R=^y?t2Rt{4SY!0; IhHYK{0-S`ZnE(I) literal 0 HcmV?d00001 diff --git a/docs/source/assets/images/header_bg.png b/docs/source/assets/images/header_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..4e6b2b899b5787479204ae00ebe2c4fdb8e3ece1 GIT binary patch literal 1014 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 P-?^Hywo=t&tBC&t7k4Bf literal 0 HcmV?d00001 diff --git a/docs/source/assets/images/quickstart.png b/docs/source/assets/images/quickstart.png new file mode 100644 index 0000000000000000000000000000000000000000..5f01bacf8a773ee45c0aa023d8b5a1299e3f6b71 GIT binary patch literal 11964 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 literal 0 HcmV?d00001 diff --git a/docs/source/assets/images/small_logo.png b/docs/source/assets/images/small_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..181459fe455937185b6a5280b717be274affc78c GIT binary patch literal 1855 zcmaJ?X;2eq7>-C=M9}f#5Yc7vKn>a5m_!pzAg2Tf0zo8Ilw`9&Aju}#l>|JYt*BTL zP!uZ+;K^7i0Yoictp^AwRofBNVyhMv@RmBLm2RwPf0XXb?)QD~ywCGq&o{dvGGe~F z>v&fhjpi;7kwjB#Gxd78d`f*|qJ~vdi#I8aBb9g}X;oV=nox^tFhFilCt=Z;TAOaZ zfX$=PhECSS#F24|a2|>q7;1+P!)7p1Xc}!^kj~2;LAxqNM-s@2?o;#S|jnkO;p1mo7w~+4A@c9fTKe3|E>nZ2XBIm#y;lz zpTtB=x(S1#F#=z1L8-wd`a43Icw!5tCUHv)j_U`y7@3TdIFXE-0I`zIKmdgr)fpX@ zcL;@oCpQwL+K6Iu2_K|57&@JnCuGZnh>XK#vAIkHks@^U-_h$#|rB?v5)4qzoX zy4-*n$pNhPBbGBL)*%LiiHa=2EV?vIE3@DR;9b!?-Qc;*8kFxnRy%kutU<95l?>z< z?Y~AnV50Qn*nSW$b@(8C%t-0oLJ2#mb&ra=FLt>^7-PHMvxKi7gN&^^7#j6eadu~jFhv%*&rOvPUUv0qNf+n* z)80!#_lWYB@&()H_TPNozN}-x%HLZ?>vjq<#l!Db9(^%pPb)Wwyk9WN#h&H4SSQrfrIrhnya?noqJE>c>xUj9E zK7h#gmDOAfcOYN4*PQ~HVIG+s<6PZ? zHwVkS|2PO1MqPG#*~Kb$3PPXsuN~z=II~Z$*)yy&Z^E+E&vu3O?ljpdj~b=QCguof zc!Aehy0eI_&0B5iNxtntHg}xSlq6@FC%1$te#)(E^Gz%9otY(Q6i?oSuAMYvZD(G0 zQupiqBUZ%}Pkwr6QtL+5pTfFXPH##!2Y~1M_L?ui_xndYo9;iPbf~c?eg3V*U$)t| zDg{;aAoNvBoX65H7OG|^oQTkO6XFf=L1W_MUnG{0Ebp3}bC%V{bnUTXWykUIZxiQ~ zF3Q7}>TAT(>+Ky4VX@N^I4!Xak=~)ZUjr&Z7CEcwhNgb_)w6VW_o5Uqu^qiSDKMv8 zx~>HFY=?!eH@m9K%!f}l*>gf%fBWt)_XhorO{m)oU8sv)qjGJV7Mzv0j&6JF(Ubws zor+(xn(LQ@r>xg2547auu6Wg$vMtYjID49qxv{JAPMU0JEw6Z2M1!cSFm%eM;2qie z9c||0oo&ln%N`zStX7vXA;F^u{s$MzIP{-)IbR59Dm=F}z-#v#tbhM{L%iMZQTWm) z@eOsAi`t>oiv>QNDJ=`XE(o$PsY9c5?hYPx(&CM?z+SHy;5sVDOqo6xzyiQ{&@Ng z<>6-Zw&+R7d7pzmoy@mQ{Z&r!c7r*?_wLR!&Li>yg7eEd1(e{!YPEgSPSa|y^;E4; Rxn?_lX>w_Vq*9cS^*7OF;<5k$ literal 0 HcmV?d00001 diff --git a/docs/source/assets/js/bootstrap.js b/docs/source/assets/js/bootstrap.js new file mode 100644 index 0000000000..c832ccb2e6 --- /dev/null +++ b/docs/source/assets/js/bootstrap.js @@ -0,0 +1,1722 @@ +/* =================================================== + * bootstrap-transition.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + +!function( $ ) { + + $(function () { + + "use strict" + + /* CSS TRANSITION SUPPORT (https://gist.github.com/373874) + * ======================================================= */ + + $.support.transition = (function () { + var thisBody = document.body || document.documentElement + , thisStyle = thisBody.style + , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined + + return support && { + end: (function () { + var transitionEnd = "TransitionEnd" + if ( $.browser.webkit ) { + transitionEnd = "webkitTransitionEnd" + } else if ( $.browser.mozilla ) { + transitionEnd = "transitionend" + } else if ( $.browser.opera ) { + transitionEnd = "oTransitionEnd" + } + return transitionEnd + }()) + } + })() + + }) + +}( window.jQuery ) +/* ========================================================== + * bootstrap-alert.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#alerts + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function( $ ){ + + "use strict" + + /* ALERT CLASS DEFINITION + * ====================== */ + + var dismiss = '[data-dismiss="alert"]' + , Alert = function ( el ) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype = { + + constructor: Alert + + , close: function ( e ) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.trigger('close') + + e && e.preventDefault() + + $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) + + $parent.removeClass('in') + + function removeElement() { + $parent.remove() + $parent.trigger('closed') + } + + $.support.transition && $parent.hasClass('fade') ? + $parent.on($.support.transition.end, removeElement) : + removeElement() + } + + } + + + /* ALERT PLUGIN DEFINITION + * ======================= */ + + $.fn.alert = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('alert') + if (!data) $this.data('alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + /* ALERT DATA-API + * ============== */ + + $(function () { + $('body').on('click.alert.data-api', dismiss, Alert.prototype.close) + }) + +}( window.jQuery ) +/* ============================================================ + * bootstrap-button.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#buttons + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + +!function( $ ){ + + "use strict" + + /* BUTTON PUBLIC CLASS DEFINITION + * ============================== */ + + var Button = function ( element, options ) { + this.$element = $(element) + this.options = $.extend({}, $.fn.button.defaults, options) + } + + Button.prototype = { + + constructor: Button + + , setState: function ( state ) { + var d = 'disabled' + , $el = this.$element + , data = $el.data() + , val = $el.is('input') ? 'val' : 'html' + + state = state + 'Text' + data.resetText || $el.data('resetText', $el[val]()) + + $el[val](data[state] || this.options[state]) + + // push to event loop to allow forms to submit + setTimeout(function () { + state == 'loadingText' ? + $el.addClass(d).attr(d, d) : + $el.removeClass(d).removeAttr(d) + }, 0) + } + + , toggle: function () { + var $parent = this.$element.parent('[data-toggle="buttons-radio"]') + + $parent && $parent + .find('.active') + .removeClass('active') + + this.$element.toggleClass('active') + } + + } + + + /* BUTTON PLUGIN DEFINITION + * ======================== */ + + $.fn.button = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('button') + , options = typeof option == 'object' && option + if (!data) $this.data('button', (data = new Button(this, options))) + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + $.fn.button.defaults = { + loadingText: 'loading...' + } + + $.fn.button.Constructor = Button + + + /* BUTTON DATA-API + * =============== */ + + $(function () { + $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) { + $(e.target).button('toggle') + }) + }) + +}( window.jQuery ) +/* ========================================================== + * bootstrap-carousel.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#carousel + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function( $ ){ + + "use strict" + + /* CAROUSEL CLASS DEFINITION + * ========================= */ + + var Carousel = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.carousel.defaults, options) + this.options.slide && this.slide(this.options.slide) + } + + Carousel.prototype = { + + cycle: function () { + this.interval = setInterval($.proxy(this.next, this), this.options.interval) + return this + } + + , to: function (pos) { + var $active = this.$element.find('.active') + , children = $active.parent().children() + , activePos = children.index($active) + , that = this + + if (pos > (children.length - 1) || pos < 0) return + + if (this.sliding) { + return this.$element.one('slid', function () { + that.to(pos) + }) + } + + if (activePos == pos) { + return this.pause().cycle() + } + + return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) + } + + , pause: function () { + clearInterval(this.interval) + return this + } + + , next: function () { + if (this.sliding) return + return this.slide('next') + } + + , prev: function () { + if (this.sliding) return + return this.slide('prev') + } + + , slide: function (type, next) { + var $active = this.$element.find('.active') + , $next = next || $active[type]() + , isCycling = this.interval + , direction = type == 'next' ? 'left' : 'right' + , fallback = type == 'next' ? 'first' : 'last' + , that = this + + this.sliding = true + + isCycling && this.pause() + + $next = $next.length ? $next : this.$element.find('.item')[fallback]() + + if (!$.support.transition && this.$element.hasClass('slide')) { + this.$element.trigger('slide') + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger('slid') + } else { + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + this.$element.trigger('slide') + this.$element.one($.support.transition.end, function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { that.$element.trigger('slid') }, 0) + }) + } + + isCycling && this.cycle() + + return this + } + + } + + + /* CAROUSEL PLUGIN DEFINITION + * ========================== */ + + $.fn.carousel = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('carousel') + , options = typeof option == 'object' && option + if (!data) $this.data('carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (typeof option == 'string' || (option = options.slide)) data[option]() + else data.cycle() + }) + } + + $.fn.carousel.defaults = { + interval: 5000 + } + + $.fn.carousel.Constructor = Carousel + + + /* CAROUSEL DATA-API + * ================= */ + + $(function () { + $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) + $target.carousel(options) + e.preventDefault() + }) + }) + +}( window.jQuery ) +/* ============================================================= + * bootstrap-collapse.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#collapse + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + +!function( $ ){ + + "use strict" + + var Collapse = function ( element, options ) { + this.$element = $(element) + this.options = $.extend({}, $.fn.collapse.defaults, options) + + if (this.options["parent"]) { + this.$parent = $(this.options["parent"]) + } + + this.options.toggle && this.toggle() + } + + Collapse.prototype = { + + constructor: Collapse + + , dimension: function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + , show: function () { + var dimension = this.dimension() + , scroll = $.camelCase(['scroll', dimension].join('-')) + , actives = this.$parent && this.$parent.find('.in') + , hasData + + if (actives && actives.length) { + hasData = actives.data('collapse') + actives.collapse('hide') + hasData || actives.data('collapse', null) + } + + this.$element[dimension](0) + this.transition('addClass', 'show', 'shown') + this.$element[dimension](this.$element[0][scroll]) + + } + + , hide: function () { + var dimension = this.dimension() + this.reset(this.$element[dimension]()) + this.transition('removeClass', 'hide', 'hidden') + this.$element[dimension](0) + } + + , reset: function ( size ) { + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + [dimension](size || 'auto') + [0].offsetWidth + + this.$element.addClass('collapse') + } + + , transition: function ( method, startEvent, completeEvent ) { + var that = this + , complete = function () { + if (startEvent == 'show') that.reset() + that.$element.trigger(completeEvent) + } + + this.$element + .trigger(startEvent) + [method]('in') + + $.support.transition && this.$element.hasClass('collapse') ? + this.$element.one($.support.transition.end, complete) : + complete() + } + + , toggle: function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + } + + /* COLLAPSIBLE PLUGIN DEFINITION + * ============================== */ + + $.fn.collapse = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('collapse') + , options = typeof option == 'object' && option + if (!data) $this.data('collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.defaults = { + toggle: true + } + + $.fn.collapse.Constructor = Collapse + + + /* COLLAPSIBLE DATA-API + * ==================== */ + + $(function () { + $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) { + var $this = $(this), href + , target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + , option = $(target).data('collapse') ? 'toggle' : $this.data() + $(target).collapse(option) + }) + }) + +}( window.jQuery ) +/* ============================================================ + * bootstrap-dropdown.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function( $ ){ + + "use strict" + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = '[data-toggle="dropdown"]' + , Dropdown = function ( element ) { + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) + } + + Dropdown.prototype = { + + constructor: Dropdown + + , toggle: function ( e ) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + , isActive + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.length || ($parent = $this.parent()) + + isActive = $parent.hasClass('open') + + clearMenus() + !isActive && $parent.toggleClass('open') + + return false + } + + } + + function clearMenus() { + $(toggle).parent().removeClass('open') + } + + + /* DROPDOWN PLUGIN DEFINITION + * ========================== */ + + $.fn.dropdown = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('dropdown') + if (!data) $this.data('dropdown', (data = new Dropdown(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.dropdown.Constructor = Dropdown + + + /* APPLY TO STANDARD DROPDOWN ELEMENTS + * =================================== */ + + $(function () { + $('html').on('click.dropdown.data-api', clearMenus) + $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) + }) + +}( window.jQuery ) +/* ========================================================= + * bootstrap-modal.js v2.0.0 + * http://twitter.github.com/bootstrap/javascript.html#modals + * ========================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================= */ + + +!function( $ ){ + + "use strict" + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function ( content, options ) { + this.options = $.extend({}, $.fn.modal.defaults, options) + this.$element = $(content) + .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) + } + + Modal.prototype = { + + constructor: Modal + + , toggle: function () { + return this[!this.isShown ? 'show' : 'hide']() + } + + , show: function () { + var that = this + + if (this.isShown) return + + $('body').addClass('modal-open') + + this.isShown = true + this.$element.trigger('show') + + escape.call(this) + backdrop.call(this, function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + !that.$element.parent().length && that.$element.appendTo(document.body) //don't move modals dom position + + that.$element + .show() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element.addClass('in') + + transition ? + that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : + that.$element.trigger('shown') + + }) + } + + , hide: function ( e ) { + e && e.preventDefault() + + if (!this.isShown) return + + var that = this + this.isShown = false + + $('body').removeClass('modal-open') + + escape.call(this) + + this.$element + .trigger('hide') + .removeClass('in') + + $.support.transition && this.$element.hasClass('fade') ? + hideWithTransition.call(this) : + hideModal.call(this) + } + + } + + + /* MODAL PRIVATE METHODS + * ===================== */ + + function hideWithTransition() { + var that = this + , timeout = setTimeout(function () { + that.$element.off($.support.transition.end) + hideModal.call(that) + }, 500) + + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout) + hideModal.call(that) + }) + } + + function hideModal( that ) { + this.$element + .hide() + .trigger('hidden') + + backdrop.call(this) + } + + function backdrop( callback ) { + var that = this + , animate = this.$element.hasClass('fade') ? 'fade' : '' + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $(' + + diff --git a/docs/source/local.conf.html b/docs/source/local.conf.html new file mode 100644 index 0000000000..ed53adfdb0 --- /dev/null +++ b/docs/source/local.conf.html @@ -0,0 +1,64 @@ + + + + + DevStack - local.conf + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+

© Openstack Foundation 2011-2014 — An OpenStack program

+ + +
+ + + diff --git a/docs/source/localrc.html b/docs/source/localrc.html new file mode 100644 index 0000000000..0f669bd679 --- /dev/null +++ b/docs/source/localrc.html @@ -0,0 +1,60 @@ + + + + + DevStack - localrc + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+

© Openstack Foundation 2011-2014 — An OpenStack program

+ + +
+ + + diff --git a/docs/source/openrc.html b/docs/source/openrc.html new file mode 100644 index 0000000000..b84d26839b --- /dev/null +++ b/docs/source/openrc.html @@ -0,0 +1,115 @@ + + + + + DevStack - openrc + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
OS_TENANT_NAME
+
The introduction of Keystone to the OpenStack ecosystem has standardized the + term tenant as the entity that owns resources. In some places references + still exist to the original Nova term project for this use. Also, + tenant_name is prefered to tenant_id. +
OS_TENANT_NAME=demo
+ +
OS_USERNAME
+
In addition to the owning entity (tenant), Nova stores the entity performing + the action as the user. +
OS_USERNAME=demo
+ +
OS_PASSWORD
+
With Keystone you pass the keystone password instead of an api key. + Recent versions of novaclient use OS_PASSWORD instead of NOVA_API_KEYs + or NOVA_PASSWORD. +
OS_PASSWORD=secrete
+ +
HOST_IP, SERVICE_HOST
+
Set API endpoint host using HOST_IP. SERVICE_HOST + may also be used to specify the endpoint, which is convenient for + some localrc configurations. Typically, HOST_IP + is set in the localrc section. +
HOST_IP=127.0.0.1
+SERVICE_HOST=$HOST_IP
+ +
OS_AUTH_URL
+
Authenticating against an OpenStack cloud using Keystone returns a Token + and Service Catalog. The catalog contains the endpoints for all services + the user/tenant has access to - including Nova, Glance, Keystone and Swift. +
OS_AUTH_URL=http://$SERVICE_HOST:5000/v2.0
+ +
GLANCE_HOST
+
Some exercises call Glance directly. On a single-node installation, Glance + should be listening on HOST_IP. If its running elsewhere + it can be set here. +
GLANCE_HOST=$HOST_IP
+ +
KEYSTONECLIENT_DEBUG, NOVACLIENT_DEBUG
+
Set command-line client log level to DEBUG. These are + commented out by default. +
# export KEYSTONECLIENT_DEBUG=1
+# export NOVACLIENT_DEBUG=1
+ +
+
+

© Openstack Foundation 2011-2013 — An + OpenStack program + created by Rackspace Cloud Builders

+ + +
+ + + diff --git a/docs/source/overview.html b/docs/source/overview.html new file mode 100644 index 0000000000..c0b6ea2f7c --- /dev/null +++ b/docs/source/overview.html @@ -0,0 +1,118 @@ + + + + + DevStack - Overview + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+

Overview DevStack from a cloud-height view

+

DevStack is not and has never been intended to be a general OpenStack installer. It has evolved to support a large number of configuration options and alternative platforms and support services. However, that evolution has grown well beyond what was originally intended and the majority of configuration combinations are rarely, if ever, tested. DevStack was never meant to be everything to everyone and can not continue in that direction.

+

Below is a list of what is specifically is supported (read that as "tested and assumed to work") going forward.

+ +

Supported Components

+ +

Base OS

+

The OpenStack Technical Committee (TC) has defined the current CI strategy to include the latest Ubuntu release and the latest RHEL release (for Python 2.6 testing).

+
    +
  • Ubuntu: current LTS release plus current development release
  • +
  • Fedora: current release plus previous release
  • +
  • RHEL: current major release
  • +
  • Other OS platforms may continue to be included but the maintenance of those platforms shall not be assumed simply due to their presence. Having a listed point-of-contact for each additional OS will greatly increase its chance of being well-maintained.
  • +
  • Patches for Ubuntu and/or Fedora will not be held up due to side-effects on other OS platforms.
  • +
+ +

Databases

+

As packaged by the host OS

+
    +
  • MySQL
  • +
  • PostgreSQL
  • +
+ +

Queues

+

As packaged by the host OS

+
    +
  • Rabbit
  • +
  • Qpid
  • + +
+ +

Web Server

+

As packaged by the host OS

+
    +
  • Apache
  • +
+ +

OpenStack Network

+

Default to Nova Network, optionally use Neutron

+
    +
  • Nova Network: FlatDHCP
  • +
  • Neutron: A basic configuration approximating the original FlatDHCP mode using linuxbridge or OpenVSwitch.
  • +
+ +

Services

+

The default services configured by DevStack are Identity (Keystone), Object Storage (Swift), Image Storage (Glance), Block Storage (Cinder), Compute (Nova), Network (Nova), Dashboard (Horizon)

+

Additional services not included directly in DevStack can be tied in to stack.sh using the plugin mechanism to call scripts that perform the configuration and startup of the service.

+ +

Node Configurations

+
    +
  • single node
  • +
  • multi-node is not tested regularly by the core team, and even then only minimal configurations are reviewed
  • +
+ +

Exercises

+

The DevStack exercise scripts have been replaced as integration and gating test with Tempest. They will continue to be maintained as they are valuable as demonstrations of using OpenStack from the command line and for quick operational testing.

+ +
+ +
+ + + +
+ + diff --git a/docs/source/plugins.html b/docs/source/plugins.html new file mode 100644 index 0000000000..85cf8e4a8c --- /dev/null +++ b/docs/source/plugins.html @@ -0,0 +1,136 @@ + + + + + DevStack - Plugins + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+

Plugins Add stuff

+

DevStack has a couple of plugin mechanisms to allow easily adding support for additional projects and features.

+ +

Extras.d Hooks

+

These relatively new hooks are an extension of the existing calls from stack.sh at the end of its run, plus unstack.sh and clean.sh. A number of the higher-layer projects are implemented in DevStack using this mechanism.

+ +

The script in extras.d is expected to be mostly a dispatcher to functions in a lib/* script. The scripts are named with a zero-padded two digits sequence number prefix to control the order that the scripts are called, and with a suffix of .sh. DevSack reserves for itself the sequence numbers 00 through 09 and 90 through 99.

+ +

Below is a template that shows handlers for the possible command-line arguments:

+ +
+# template.sh - DevStack extras.d dispatch script template
+
+# check for service enabled
+if is_service_enabled template; then
+
+    if [[ "$1" == "source" ]]; then
+        # Initial source of lib script
+        source $TOP_DIR/lib/template
+    fi
+
+    if [[ "$1" == "stack" && "$2" == "install" ]]; then
+        # Perform installation of service source
+        echo_summary "Installing Template"
+        install_template
+
+    elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
+        # Configure after the other layer 1 and 2 services have been configured
+        echo_summary "Configuring Template"
+        configure_template
+
+    elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
+        # Initialize and start the template service
+        echo_summary "Initializing Template"
+        ##init_template
+    fi
+
+    if [[ "$1" == "unstack" ]]; then
+        # Shut down template services
+        # no-op
+        :
+    fi
+
+    if [[ "$1" == "clean" ]]; then
+        # Remove state and transient data
+        # Remember clean.sh first calls unstack.sh
+        # no-op
+        :
+    fi
+fi
+
+ +

The arguments are: +

    +
  • source - Called by each script that utilizes extras.d hooks; this replaces directly sourcing the lib/* script.
  • +
  • stack - Called by stack.sh three times for different phases of its run: +
      +
    • install - Called after the layer 1 and 2 projects source and their dependencies have been installed.
    • +
    • post-config - Called after the layer 1 and 2 services have been configured. All configuration files for enabled services should exist at this point.
    • +
    • extra - Called near the end after layer 1 and 2 services have been started. This is the existing hook and has not otherwise changed.
    • +
  • +
  • unstack - Called by unstack.sh before other services are shut down.
  • +
  • clean - Called by clean.sh before other services are cleaned, but after unstack.sh has been called. +

+ + +

Hypervisor

+

Hypervisor plugins are fairly new and condense most hypervisor configuration into one place.

+ +

The initial plugin implemented was for Docker support and is a useful template for the required support. Plugins are placed in lib/nova_plugins and named hypervisor-<name> where <name> is the value of VIRT_DRIVER. Plugins must define the following functions:

+
    +
  • install_nova_hypervisor - install any external requirements
  • +
  • configure_nova_hypervisor - make configuration changes, including those to other services
  • +
  • start_nova_hypervisor - start any external services
  • +
  • stop_nova_hypervisor - stop any external services
  • +
  • cleanup_nova_hypervisor - remove transient data and cache
  • +
+
+ +
+ + + +
+ + diff --git a/docs/source/stackrc.html b/docs/source/stackrc.html new file mode 100644 index 0000000000..23a48c51d7 --- /dev/null +++ b/docs/source/stackrc.html @@ -0,0 +1,101 @@ + + + + + DevStack - stackrc + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
DATABASE_TYPE
+
Select the database backend to use. The default is mysql, + postgresql is also available.
+ +
ENABLED_SERVICES
+
Specify which services to launch. These generally correspond to + screen tabs. + The default includes: Glance (API and Registry), Keystone, Nova (API, + Certificate, Object Store, Compute, Network, Scheduler, VNC proxies, + Certificate Authentication), Cinder (Scheduler, API, Volume), Horizon, MySQL, RabbitMQ, Tempest. +
ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,cinder,c-sch,c-api,c-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,rabbit,tempest,$DATABASE_TYPE
+ Other services that are not enabled by default can be enabled in + localrc. For example, to add Swift: +
enable_service swift
+ A service can similarly be disabled: +
disable_service horizon
+ +
Service Repos
+
The Git repositories used to check out the source for each service + are controlled by a pair of variables set for each service. + *_REPO points to the repository and *_BRANCH + selects which branch to check out. These may be overridden in + local.conf to pull source from a different repo for testing, + such as a Gerrit branch proposal. GIT_BASE points to the primary repository server. +
NOVA_REPO=$GIT_BASE/openstack/nova.git
+NOVA_BRANCH=master
+ To pull a branch directly from Gerrit, get the repo and branch from the + Gerrit review page: +
git fetch https://review.openstack.org/p/openstack/nova refs/changes/50/5050/1 && git checkout FETCH_HEAD
+ The repo is the stanza following fetch and the branch + is the stanza following that: +
NOVA_REPO=https://review.openstack.org/p/openstack/nova
+NOVA_BRANCH=refs/changes/50/5050/1
+ +
+
+

© Openstack Foundation 2011-2014 — An OpenStack program

+ + +
+ + + diff --git a/tools/build_docs.sh b/tools/build_docs.sh index 384b1fabb6..77c2f4e02e 100755 --- a/tools/build_docs.sh +++ b/tools/build_docs.sh @@ -2,21 +2,22 @@ # **build_docs.sh** - Build the gh-pages docs for DevStack # -# - Install shocco if not found on PATH +# - Install shocco if not found on PATH and INSTALL_SHOCCO is set # - Clone MASTER_REPO branch MASTER_BRANCH -# - Re-creates ``docs`` directory from existing repo + new generated script docs +# - Re-creates ``docs/html`` directory from existing repo + new generated script docs # Usage: -## build_docs.sh [[-b branch] [-p] repo] | . -## -b branch The DevStack branch to check out (default is master; ignored if -## repo is not specified) -## -p Push the resulting docs tree to the source repo; fatal error if -## repo is not specified -## repo The DevStack repository to clone (default is DevStack github repo) +## build_docs.sh [-o ] [-g] [master| []] +## The DevStack repository to clone (default is DevStack github repo) ## If a repo is not supplied use the current directory ## (assumed to be a DevStack checkout) as the source. +## The DevStack branch to check out (default is master; ignored if +## repo is not specified) ## . Use the current repo and branch (do not use with -p to ## prevent stray files in the workspace being added tot he docs) +## -o Write the static HTML output to +## (Note that will be deleted and re-created to ensure it is clean) +## -g Update the old gh-pages repo (set PUSH=1 to actualy push up to RCB) # Defaults # -------- @@ -28,6 +29,9 @@ MASTER_BRANCH=${MASTER_BRANCH:-master} # http://devstack.org is a GitHub gh-pages site in the https://github.com/cloudbuilders/devtack.git repo GH_PAGES_REPO=git@github.com:cloudbuilders/devstack.git +DOCS_SOURCE=docs/source +HTML_BUILD=docs/html + # Keep track of the devstack directory TOP_DIR=$(cd $(dirname "$0")/.. && pwd) @@ -49,97 +53,110 @@ if ! which shocco; then git clone -b rst_support https://github.com/dtroyer/shocco shocco cd shocco ./configure - make + make || exit cd .. fi SHOCCO=$TOP_DIR/shocco/shocco fi # Process command-line args -while getopts b:p c; do +while getopts go: c; do case $c in - b) MASTER_BRANCH=$OPTARG + g) GH_UPDATE=1 ;; - p) PUSH_REPO=1 + o) HTML_BUILD=$OPTARG ;; esac done shift `expr $OPTIND - 1` -# Sanity check the args -if [[ "$1" == "." ]]; then - REPO="" - if [[ -n $PUSH_REPO ]]; then - echo "Push not allowed from an active workspace" - unset PUSH_REPO - fi -else - if [[ -z "$1" ]]; then + +if [[ -n "$1" ]]; then + master="master" + if [[ "${master/#$1}" != "master" ]]; then + # Partial match on "master" REPO=$MASTER_REPO else REPO=$1 fi + REPO_BRANCH=${2:-$MASTER_BRANCH} fi # Check out a specific DevStack branch if [[ -n $REPO ]]; then # Make a workspace - TMP_ROOT=$(mktemp -d devstack-docs-XXXX) + TMP_ROOT=$(mktemp -d work-docs-XXXX) echo "Building docs in $TMP_ROOT" cd $TMP_ROOT # Get the master branch git clone $REPO devstack cd devstack - git checkout $MASTER_BRANCH + if [[ -n "$REPO_BRANCH" ]]; then + git checkout $REPO_BRANCH + fi fi +# Assumption is we are now in the DevStack workspace to be processed + # Processing # ---------- -# Assumption is we are now in the DevStack repo workspace to be processed +# Clean up build dir +rm -rf $HTML_BUILD +mkdir -p $HTML_BUILD -# Pull the latest docs branch from devstack.org repo -if ! [ -d docs ]; then - git clone -b gh-pages $GH_PAGES_REPO docs -fi +# Get fully qualified dirs +FQ_DOCS_SOURCE=$(cd $DOCS_SOURCE && pwd) +FQ_HTML_BUILD=$(cd $HTML_BUILD && pwd) + +# Get repo static +cp -pr $FQ_DOCS_SOURCE/* $FQ_HTML_BUILD # Build list of scripts to process FILES="" for f in $(find . -name .git -prune -o \( -type f -name \*.sh -not -path \*shocco/\* -print \)); do echo $f FILES+="$f " - mkdir -p docs/`dirname $f`; - $SHOCCO $f > docs/$f.html + mkdir -p $FQ_HTML_BUILD/`dirname $f`; + $SHOCCO $f > $FQ_HTML_BUILD/$f.html done -for f in $(find functions lib samples -type f -name \*); do +for f in $(find functions functions-common lib samples -type f -name \*); do echo $f FILES+="$f " - mkdir -p docs/`dirname $f`; - $SHOCCO $f > docs/$f.html + mkdir -p $FQ_HTML_BUILD/`dirname $f`; + $SHOCCO $f > $FQ_HTML_BUILD/$f.html done -echo "$FILES" >docs-files +echo "$FILES" >docs/files -# Switch to the gh_pages repo -cd docs +if [[ -n $GH_UPDATE ]]; then + GH_ROOT=$(mktemp -d work-gh-XXXX) + cd $GH_ROOT -# Collect the new generated pages -find . -name \*.html -print0 | xargs -0 git add + # Pull the latest docs branch from devstack.org repo + git clone -b gh-pages $GH_PAGES_REPO gh-docs -# Push our changes back up to the docs branch -if ! git diff-index HEAD --quiet; then - git commit -a -m "Update script docs" - if [[ -n $PUSH ]]; then - git push + # Get the generated files + cp -pr $FQ_HTML_BUILD/* gh-docs + + # Collect the new generated pages + (cd gh-docs; find . -name \*.html -print0 | xargs -0 git add) + + # Push our changes back up to the docs branch + if ! git diff-index HEAD --quiet; then + git commit -a -m "Update script docs" + if [[ -n $PUSH ]]; then + git push + fi fi fi # Clean up or report the temp workspace if [[ -n REPO && -n $PUSH_REPO ]]; then - rm -rf $TMP_ROOT + echo rm -rf $TMP_ROOT else if [[ -z "$TMP_ROOT" ]]; then TMP_ROOT="$(pwd)" fi - echo "Built docs in $TMP_ROOT" + echo "Built docs in $HTML_BUILD" fi