You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bloodhound.apache.org by gj...@apache.org on 2012/04/01 11:22:27 UTC

svn commit: r1308053 - in /incubator/bloodhound/trunk/bloodhound_theme/bhtheme: htdocs/bloodhound.css htdocs/scripts/theme.js htdocs/theme.js templates/bloodhound_theme.html theme.py

Author: gjm
Date: Sun Apr  1 09:22:26 2012
New Revision: 1308053

URL: http://svn.apache.org/viewvc?rev=1308053&view=rev
Log:
Theme code import: Quick create ticket box UI . bootstrap 2.0.1

Added:
    incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/scripts/theme.js
      - copied, changed from r1308039, incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/theme.js
Removed:
    incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/theme.js
Modified:
    incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css
    incubator/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bloodhound_theme.html
    incubator/bloodhound/trunk/bloodhound_theme/bhtheme/theme.py

Modified: incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css
URL: http://svn.apache.org/viewvc/incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css?rev=1308053&r1=1308052&r2=1308053&view=diff
==============================================================================
--- incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css (original)
+++ incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css Sun Apr  1 09:22:26 2012
@@ -1,5 +1,5 @@
 /*!
- * Bootstrap v2.0.0
+ * Bootstrap v2.0.1
  *
  * Copyright 2012 Twitter, Inc
  * Licensed under the Apache License v2.0
@@ -33,7 +33,7 @@ html {
   -ms-text-size-adjust: 100%;
 }
 a:focus {
-  outline: thin dotted;
+  outline: thin dotted #333;
   outline: 5px auto -webkit-focus-ring-color;
   outline-offset: -2px;
 }
@@ -94,6 +94,16 @@ textarea {
   overflow: auto;
   vertical-align: top;
 }
+.clearfix {
+  *zoom: 1;
+}
+.clearfix:before, .clearfix:after {
+  display: table;
+  content: "";
+}
+.clearfix:after {
+  clear: both;
+}
 body {
   margin: 0;
   font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
@@ -212,40 +222,40 @@ a:hover {
 .row-fluid > [class*="span"]:first-child {
   margin-left: 0;
 }
-.row-fluid .span1 {
+.row-fluid > .span1 {
   width: 6.382978723%;
 }
-.row-fluid .span2 {
+.row-fluid > .span2 {
   width: 14.89361702%;
 }
-.row-fluid .span3 {
+.row-fluid > .span3 {
   width: 23.404255317%;
 }
-.row-fluid .span4 {
+.row-fluid > .span4 {
   width: 31.914893614%;
 }
-.row-fluid .span5 {
+.row-fluid > .span5 {
   width: 40.425531911%;
 }
-.row-fluid .span6 {
+.row-fluid > .span6 {
   width: 48.93617020799999%;
 }
-.row-fluid .span7 {
+.row-fluid > .span7 {
   width: 57.446808505%;
 }
-.row-fluid .span8 {
+.row-fluid > .span8 {
   width: 65.95744680199999%;
 }
-.row-fluid .span9 {
+.row-fluid > .span9 {
   width: 74.468085099%;
 }
-.row-fluid .span10 {
+.row-fluid > .span10 {
   width: 82.97872339599999%;
 }
-.row-fluid .span11 {
+.row-fluid > .span11 {
   width: 91.489361693%;
 }
-.row-fluid .span12 {
+.row-fluid > .span12 {
   width: 99.99999998999999%;
 }
 .container {
@@ -374,7 +384,7 @@ ol {
 li {
   line-height: 18px;
 }
-ul.unstyled {
+ul.unstyled, ol.unstyled {
   margin-left: 0;
   list-style: none;
 }
@@ -393,7 +403,7 @@ dd {
 hr {
   margin: 18px 0;
   border: 0;
-  border-top: 1px solid #e5e5e5;
+  border-top: 1px solid #eeeeee;
   border-bottom: 1px solid #ffffff;
 }
 strong {
@@ -488,13 +498,20 @@ pre {
   white-space: pre;
   white-space: pre-wrap;
   word-break: break-all;
+  word-wrap: break-word;
 }
 pre.prettyprint {
   margin-bottom: 18px;
 }
 pre code {
   padding: 0;
+  color: inherit;
   background-color: transparent;
+  border: 0;
+}
+.pre-scrollable {
+  max-height: 340px;
+  overflow-y: scroll;
 }
 form {
   margin: 0 0 18px;
@@ -515,16 +532,25 @@ legend {
   border: 0;
   border-bottom: 1px solid #eee;
 }
+legend small {
+  font-size: 13.5px;
+  color: #999999;
+}
 label,
 input,
 button,
 select,
 textarea {
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
   font-size: 13px;
   font-weight: normal;
   line-height: 18px;
 }
+input,
+button,
+select,
+textarea {
+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+}
 label {
   display: block;
   margin-bottom: 5px;
@@ -563,11 +589,19 @@ input[type="image"], input[type="checkbo
   /* IE7 */
 
   line-height: normal;
-  border: 0;
   cursor: pointer;
-  border-radius: 0 \0/;
+  -webkit-border-radius: 0;
+  -moz-border-radius: 0;
+  border-radius: 0;
+  border: 0 \9;
+  /* IE9 and down */
+
+}
+input[type="image"] {
+  border: 0;
 }
 input[type="file"] {
+  width: auto;
   padding: initial;
   line-height: initial;
   border: initial;
@@ -590,6 +624,9 @@ select, input[type="file"] {
 
   line-height: 28px;
 }
+input[type="file"] {
+  line-height: 18px \9;
+}
 select {
   width: 220px;
   background-color: #ffffff;
@@ -620,15 +657,13 @@ input[type="hidden"] {
 }
 .radio.inline, .checkbox.inline {
   display: inline-block;
+  padding-top: 5px;
   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);
@@ -646,14 +681,17 @@ input:focus, textarea:focus {
   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;
-  /* IE6-8 */
+  /* IE6-9 */
 
 }
-input[type="file"]:focus, input[type="checkbox"]:focus, select:focus {
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus,
+select:focus {
   -webkit-box-shadow: none;
   -moz-box-shadow: none;
   box-shadow: none;
-  outline: thin dotted;
+  outline: thin dotted #333;
   outline: 5px auto -webkit-focus-ring-color;
   outline-offset: -2px;
 }
@@ -815,6 +853,7 @@ input:focus:required:invalid:focus, text
   color: #999999;
 }
 .help-block {
+  display: block;
   margin-top: 5px;
   margin-bottom: 0;
   color: #999999;
@@ -896,6 +935,7 @@ input:focus:required:invalid:focus, text
   border-radius: 3px 0 0 3px;
 }
 .input-append .uneditable-input {
+  border-left-color: #eee;
   border-right-color: #ccc;
 }
 .input-append .add-on {
@@ -937,6 +977,9 @@ input:focus:required:invalid:focus, text
   display: inline-block;
   margin-bottom: 0;
 }
+.form-search .hide, .form-inline .hide, .form-horizontal .hide {
+  display: none;
+}
 .form-search label,
 .form-inline label,
 .form-search .input-append,
@@ -951,10 +994,17 @@ input:focus:required:invalid:focus, text
 .form-inline .input-prepend .add-on {
   vertical-align: middle;
 }
+.form-search .radio,
+.form-inline .radio,
+.form-search .checkbox,
+.form-inline .checkbox {
+  margin-bottom: 0;
+  vertical-align: middle;
+}
 .control-group {
   margin-bottom: 9px;
 }
-.form-horizontal legend + .control-group {
+legend + .control-group {
   margin-top: 18px;
   -webkit-margin-top-collapse: separate;
 }
@@ -969,7 +1019,7 @@ input:focus:required:invalid:focus, text
 .form-horizontal .control-group:after {
   clear: both;
 }
-.form-horizontal .control-group > label {
+.form-horizontal .control-label {
   float: left;
   width: 140px;
   padding-top: 5px;
@@ -994,14 +1044,14 @@ table {
   padding: 8px;
   line-height: 18px;
   text-align: left;
+  vertical-align: top;
   border-top: 1px solid #ddd;
 }
 .table th {
   font-weight: bold;
-  vertical-align: bottom;
 }
-.table td {
-  vertical-align: top;
+.table thead th {
+  vertical-align: bottom;
 }
 .table thead:first-child tr th, .table thead:first-child tr td {
   border-top: 0;
@@ -1052,6 +1102,9 @@ table {
 .table-striped tbody tr:nth-child(odd) td, .table-striped tbody tr:nth-child(odd) th {
   background-color: #f9f9f9;
 }
+.table tbody tr:hover td, .table tbody tr:hover th {
+  background-color: #f5f5f5;
+}
 table .span1 {
   float: none;
   width: 44px;
@@ -1112,21 +1165,22 @@ table .span12 {
   width: 924px;
   margin-left: 0;
 }
-[class^="icon-"] {
+[class^="icon-"], [class*=" icon-"] {
   display: inline-block;
   width: 14px;
   height: 14px;
+  line-height: 14px;
   vertical-align: text-top;
-  background-image: url(images/glyphicons-halflings.png);
+  background-image: url("images/glyphicons-halflings.png");
   background-position: 14px 14px;
   background-repeat: no-repeat;
   *margin-right: .3em;
 }
-[class^="icon-"]:last-child {
+[class^="icon-"]:last-child, [class*=" icon-"]:last-child {
   *margin-left: 0;
 }
 .icon-white {
-  background-image: url(images/glyphicons-halflings-white.png);
+  background-image: url("images/glyphicons-halflings-white.png");
 }
 .icon-glass {
   background-position: 0      0;
@@ -1527,7 +1581,6 @@ table .span12 {
   float: left;
   display: none;
   min-width: 160px;
-  max-width: 220px;
   _width: 160px;
   padding: 4px 0;
   margin: 0;
@@ -1656,20 +1709,25 @@ table .span12 {
 .btn {
   display: inline-block;
   padding: 4px 10px 4px;
+  margin-bottom: 0;
   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;
+  vertical-align: middle;
+  background-color: #f5f5f5;
+  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
+  background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
+  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
+  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
+  background-image: linear-gradient(top, #ffffff, #e6e6e6);
+  background-repeat: repeat-x;
   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);
+  border-color: #e6e6e6 #e6e6e6 #bfbfbf;
+  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);
   border: 1px solid #ccc;
   border-bottom-color: #bbb;
   -webkit-border-radius: 4px;
@@ -1679,8 +1737,19 @@ table .span12 {
   -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;
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
   *margin-left: .3em;
 }
+.btn:hover,
+.btn:active,
+.btn.active,
+.btn.disabled,
+.btn[disabled] {
+  background-color: #e6e6e6;
+}
+.btn:active, .btn.active {
+  background-color: #cccccc \9;
+}
 .btn:first-child {
   *margin-left: 0;
 }
@@ -1696,7 +1765,7 @@ table .span12 {
   transition: background-position 0.1s linear;
 }
 .btn:focus {
-  outline: thin dotted;
+  outline: thin dotted #333;
   outline: 5px auto -webkit-focus-ring-color;
   outline-offset: -2px;
 }
@@ -1707,7 +1776,6 @@ table .span12 {
   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] {
@@ -1728,7 +1796,7 @@ table .span12 {
   -moz-border-radius: 5px;
   border-radius: 5px;
 }
-.btn-large .icon {
+.btn-large [class^="icon-"] {
   margin-top: 1px;
 }
 .btn-small {
@@ -1736,9 +1804,14 @@ table .span12 {
   font-size: 11px;
   line-height: 16px;
 }
-.btn-small .icon {
+.btn-small [class^="icon-"] {
   margin-top: -1px;
 }
+.btn-mini {
+  padding: 2px 6px;
+  font-size: 11px;
+  line-height: 14px;
+}
 .btn-primary,
 .btn-primary:hover,
 .btn-warning,
@@ -1748,7 +1821,9 @@ table .span12 {
 .btn-success,
 .btn-success:hover,
 .btn-info,
-.btn-info:hover {
+.btn-info:hover,
+.btn-inverse,
+.btn-inverse:hover {
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
   color: #ffffff;
 }
@@ -1756,7 +1831,8 @@ table .span12 {
 .btn-warning.active,
 .btn-danger.active,
 .btn-success.active,
-.btn-info.active {
+.btn-info.active,
+.btn-dark.active {
   color: rgba(255, 255, 255, 0.75);
 }
 .btn-primary {
@@ -1879,6 +1955,30 @@ table .span12 {
 .btn-info:active, .btn-info.active {
   background-color: #24748c \9;
 }
+.btn-inverse {
+  background-color: #393939;
+  background-image: -moz-linear-gradient(top, #454545, #262626);
+  background-image: -ms-linear-gradient(top, #454545, #262626);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#454545), to(#262626));
+  background-image: -webkit-linear-gradient(top, #454545, #262626);
+  background-image: -o-linear-gradient(top, #454545, #262626);
+  background-image: linear-gradient(top, #454545, #262626);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#454545', endColorstr='#262626', GradientType=0);
+  border-color: #262626 #262626 #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);
+}
+.btn-inverse:hover,
+.btn-inverse:active,
+.btn-inverse.active,
+.btn-inverse.disabled,
+.btn-inverse[disabled] {
+  background-color: #262626;
+}
+.btn-inverse:active, .btn-inverse.active {
+  background-color: #0c0c0c \9;
+}
 button.btn, input[type="submit"].btn {
   *padding-top: 2px;
   *padding-bottom: 2px;
@@ -2011,7 +2111,8 @@ button.btn.small, input[type="submit"].b
 .btn-primary .caret,
 .btn-danger .caret,
 .btn-info .caret,
-.btn-success .caret {
+.btn-success .caret,
+.btn-inverse .caret {
   border-top-color: #ffffff;
   opacity: 0.75;
   filter: alpha(opacity=75);
@@ -2084,34 +2185,38 @@ button.btn.small, input[type="submit"].b
   text-decoration: none;
   background-color: #eeeeee;
 }
+.nav .nav-header {
+  display: block;
+  padding: 3px 15px;
+  font-size: 11px;
+  font-weight: bold;
+  line-height: 18px;
+  color: #999999;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+  text-transform: uppercase;
+}
+.nav li + .nav-header {
+  margin-top: 9px;
+}
 .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 > li > a {
+  padding: 3px 15px;
 }
-.nav-list .active > a {
+.nav-list .active > a, .nav-list .active > a:hover {
   color: #ffffff;
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
   background-color: #0088cc;
 }
-.nav-list .icon {
+.nav-list [class^="icon-"] {
   margin-right: 2px;
 }
 .nav-tabs, .nav-pills {
@@ -2254,6 +2359,9 @@ button.btn.small, input[type="submit"].b
 .tabbable:after {
   clear: both;
 }
+.tab-content {
+  overflow: hidden;
+}
 .tabs-below .nav-tabs, .tabs-right .nav-tabs, .tabs-left .nav-tabs {
   border-bottom: 0;
 }
@@ -2449,6 +2557,13 @@ button.btn.small, input[type="submit"].b
 .navbar-form input[type="image"], .navbar-form input[type="checkbox"], .navbar-form input[type="radio"] {
   margin-top: 3px;
 }
+.navbar-form .input-append, .navbar-form .input-prepend {
+  margin-top: 6px;
+  white-space: nowrap;
+}
+.navbar-form .input-append input, .navbar-form .input-prepend input {
+  margin-top: 0;
+}
 .navbar-search {
   position: relative;
   float: left;
@@ -2542,7 +2657,6 @@ button.btn.small, input[type="submit"].b
   color: #ffffff;
   text-decoration: none;
   background-color: #222222;
-  background-color: rgba(0, 0, 0, 0.5);
 }
 .navbar .divider-vertical {
   height: 40px;
@@ -2808,6 +2922,9 @@ button.btn.small, input[type="submit"].b
 .modal-body {
   padding: 15px;
 }
+.modal-body .modal-form {
+  margin-bottom: 0;
+}
 .modal-footer {
   padding: 14px 15px 15px;
   margin-bottom: 0;
@@ -3043,28 +3160,44 @@ a.thumbnail:hover {
   padding: 9px;
 }
 .label {
-  padding: 1px 3px 2px;
-  font-size: 9.75px;
+  padding: 2px 4px 3px;
+  font-size: 11.049999999999999px;
   font-weight: bold;
   color: #ffffff;
-  text-transform: uppercase;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
   background-color: #999999;
   -webkit-border-radius: 3px;
   -moz-border-radius: 3px;
   border-radius: 3px;
 }
+.label:hover {
+  color: #ffffff;
+  text-decoration: none;
+}
 .label-important {
   background-color: #b94a48;
 }
+.label-important:hover {
+  background-color: #953b39;
+}
 .label-warning {
   background-color: #f89406;
 }
+.label-warning:hover {
+  background-color: #c67605;
+}
 .label-success {
   background-color: #468847;
 }
+.label-success:hover {
+  background-color: #356635;
+}
 .label-info {
   background-color: #3a87ad;
 }
+.label-info:hover {
+  background-color: #2d6987;
+}
 @-webkit-keyframes progress-bar-stripes {
   from {
     background-position: 0 0;

Copied: incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/scripts/theme.js (from r1308039, incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/theme.js)
URL: http://svn.apache.org/viewvc/incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/scripts/theme.js?p2=incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/scripts/theme.js&p1=incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/theme.js&r1=1308039&r2=1308053&rev=1308053&view=diff
==============================================================================
--- incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/theme.js (original)
+++ incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/scripts/theme.js Sun Apr  1 09:22:26 2012
@@ -1,26 +1,8 @@
 
-var FORWARD = 0.9;
-var BACK = -0.9;
-function move(target, direction) {
-  target = jQuery(target);
-  var pos = parseInt(target.css('marginLeft'), 10);
-  var tw = target.width();
-  var pw = target.parent().width();
-  var x = 0;
-  if (tw >= pw) {
-    x = pos + direction * pw;
-    if (x > 0)
-      x = 0;
-    else {
-      var last = target.find('.last');
-      var ll = last.offset().left;
-      var lw = last.width();
-      if (ll + lw <= pw && direction < 0)
-        x = pos;
-      else if (ll < pw && direction < 0)
-        x = pos - lw;
-    }
-  }
-  target.animate({marginLeft: x}, 'slow');
-}
+
+$( function () {
+    // Do not close dropdown menu if user clicks on form controls
+    $('.dropdown-menu input, .dropdown-menu label')
+        .click(function (e) { e.stopPropagation(); });
+  })
 

Modified: incubator/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bloodhound_theme.html
URL: http://svn.apache.org/viewvc/incubator/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bloodhound_theme.html?rev=1308053&r1=1308052&r2=1308053&view=diff
==============================================================================
--- incubator/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bloodhound_theme.html (original)
+++ incubator/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bloodhound_theme.html Sun Apr  1 09:22:26 2012
@@ -7,8 +7,9 @@
       py:strip="">
   <py:match path="head" once="true"><head>
     <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"/>
-    <title py:with="title = list(select('title/text()'))">
-      <py:if test="title">${title} – </py:if>${project.name or 'Apache(TM) Bloodhound'}
+    <title py:with="title = list(select('title/text()'))" py:choose="">
+      <py:when test="title">${title}</py:when>
+      <py:otherwise>${project.name or 'Apache(TM) Bloodhound'}</py:otherwise>
     </title>
     <py:if test="chrome.links">
       <py:for each="rel, links in chrome.links.items()">
@@ -21,9 +22,18 @@
     </py:if>
     <script py:for="script in chrome.scripts"
             type="${script.type}" src="${script.href}"></script>
-    <script src="${href.chrome('theme/scripts/jquery-1.7.1.min.js')}"></script>
-    <script src="${href.chrome('theme/scripts/bootstrap-dropdown.js')}"></script>
-    <script src="${href.chrome('theme/scripts/dashboard.js')}"></script>
+    <script src="${href.chrome('theme/scripts/jquery-1.7.1.min.js')}"
+        type="text/javascript"></script>
+    <script src="${href.chrome('theme/scripts/theme.js')}"
+        type="text/javascript"></script>
+    <script src="${href.chrome('theme/scripts/bootstrap-dropdown.js')}"
+        type="text/javascript"></script>
+    <!-- script src="${href.chrome('theme/scripts/bootstrap-tooltip.js')}"
+        type="text/javascript"></script>
+    <script src="${href.chrome('theme/scripts/bootstrap-popover.js')}"
+        type="text/javascript"></script -->
+    <script src="${href.chrome('theme/scripts/dashboard.js')}"
+        type="text/javascript"></script>
     ${Markup('&lt;!--[if lt IE 7]&gt;')}
     <script type="text/javascript" src="${chrome.htdocs_location}js/ie_pre7_hacks.js"></script>
     ${Markup('&lt;![endif]--&gt;')}
@@ -62,7 +72,80 @@
             <input type="submit" value="Search" class="btn btn-warning"/>
           </form>
         </div>
-        <div class="span4"><a href="#" class="btn">Create Ticket</a></div>
+        <div class="span4">
+          <py:def function="qct_box()">
+            <label for="qct_summary">Summary</label>
+            <input class="input-medium" type="text" id="qct_summary"
+                placeholder="Ticket summary" />
+            <label for="qct_project">Project</label>
+            <input class="input-medium disabled" type="text" 
+                placeholder="Target project" disabled="" />
+            <div class="form-horizontal">
+              <label class="control-label" for="qct_version">Version</label>
+              <div class="controls">
+                <input name="qct_version" class="input-mini" type="text" 
+                    placeholder="Version" />
+                <p class="help-block">Most recent (default)</p>
+              </div>
+              <label class="control-label" for="qct_type">Type</label>
+              <div class="controls">
+                <input name="qct_type" class="input-mini" type="text" 
+                    placeholder="Type" />
+                <p class="help-block">Select ticket type</p>
+              </div>
+              <label class="control-label" for="qct_component">Component</label>
+              <div class="controls">
+                <input name="qct_component" class="input-mini" type="text" 
+                    placeholder="Component" />
+                <p class="help-block">Select component</p>
+              </div>
+            </div>
+            <div class="btn-toolbar">
+              <div class="btn-group">
+                  <button class="btn btn-primary">
+                    Create
+                  </button> 
+                </div>
+                <div class="btn-group">
+                  <button class="btn btn-danger" href="#">
+                    Cancel
+                  </button>
+              </div>
+            </div>
+          </py:def>
+          <div class="btn-group">
+            <a href="${href.newticket()}" class="btn btn-inverse">
+              Create Ticket
+            </a>
+            <a href="#" class="btn btn-inverse dropdown-toggle"
+                data-toggle="dropdown">
+              <i class="caret"></i>
+            </a>
+            <div id="qct-box" class="dropdown-menu">
+              <style>
+                #qct-box .help-block { white-space: nowrap; }
+                #qct-box .form-horizontal .controls .help-block { 
+                  margin-left: -20px;
+                }
+                #qct-box .form-horizontal .controls { margin-left: 90px; }
+                #qct-box .form-horizontal .control-label { width : 70px; }
+              </style>
+              <div class="popover-content">
+              ${qct_box()}
+              </div>
+            </div>
+          </div>
+          <!-- div class="btn-group">
+            <a href="${href.newticket()}" class="btn btn-inverse">
+              Create Ticket
+            </a>
+            <a href="#" class="btn btn-inverse popover-target" 
+                rel="popover" title="Create Ticket"
+                data-content="Here" data-placement="bottom">
+              <i class="caret"></i>
+            </a>
+          </div -->
+        </div>
         <div class="span4">
           <ul py:if="chrome.nav.mainnav or chrome.nav.metanav"
               class="nav nav-tabs pull-right"

Modified: incubator/bloodhound/trunk/bloodhound_theme/bhtheme/theme.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/trunk/bloodhound_theme/bhtheme/theme.py?rev=1308053&r1=1308052&r2=1308053&view=diff
==============================================================================
--- incubator/bloodhound/trunk/bloodhound_theme/bhtheme/theme.py (original)
+++ incubator/bloodhound/trunk/bloodhound_theme/bhtheme/theme.py Sun Apr  1 09:22:26 2012
@@ -16,8 +16,10 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
+from genshi.core import Stream
 from trac.core import *
-from themeengine.api import ThemeBase
+
+from themeengine.api import IThemeProvider, ThemeBase
 
 class BloodhoundTheme(ThemeBase):
     """Look and feel of Bloodhound issue tracker."""