web/data/cubicweb.css
author Julien Cristau <julien.cristau@logilab.fr>
Mon, 29 Jun 2015 16:58:43 +0200
changeset 10463 9add9b7f9df7
parent 10122 67c947b4d2c9
permissions -rw-r--r--
[server/test] fix random error in unittest_security When entering a new Connection, we cache the user and its 'login' attribute (with no permissions checking). This test makes 'CWUser.login' unreadable by guests, and then proceeds to make sure the 'anon' user can actually not read any 'login' attribute. However, due to the above cnx initialization, anon's login is actually cached, hence readable. This happens to make the test fail sometimes depending on the order in which CWUser entities are returned, because one of them has .complete() called, which as a side effect sets the attribute cache to None for unreadable attributes. Call .complete() on both entities to reset the login cache. While this is still highly debatable, at least it's consistent.

/*
 *  :organization: Logilab
 *  :copyright: 2003-2011 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
 *  :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
 */

/***************************************/
/* xhtml tags                          */
/***************************************/
* {
  margin: 0px;
  padding: 0px;
}

html, body {
  background: #e2e2e2;
}

body {
  font-size: 69%;
  font-weight: normal;
  font-family: Verdana, sans-serif;
}

h1,
.vtitle {
  font-size: %(h1FontSize)s;
  margin: 0.2em 0px 0.5em;
  border-bottom: 1px solid #000;
}

h2, h3 {
  margin-top: 0.2em;
  margin-bottom: 0.5em;
}

h2 {
  font-size: %(h2FontSize)s;
}

h3 {
  font-size: %(h3FontSize)s;
}

h4 {
  font-size: %(h4FontSize)s;
  margin: 0.2em 0px;
}

h5 {
  font-size:110%;
}

h6{
  font-size:105%;
}

/* more specific selectors to override jQueryUI's braindamaged CSS rules */
#pageContent .ui-tabs-panel a,
#pageContent .ui-tabs-panel a:active,
#pageContent .ui-tabs-panel a:visited,
#pageContent .ui-tabs-panel a:link,
a, a:active, a:visited, a:link {
  color: %(aColor)s;
  text-decoration: none;
}

a:hover{
  text-decoration: underline;
}

a img{
  text-align: center;
}

img{
  border: none;
}

img.prevnext {
  width: 22px;
  height: 22px;
}

img.prevnext_nogo {
  width: 22px;
  height: 22px;
  filter:alpha(opacity=25); /* IE */
  opacity:.25;
}

p {
  margin: 0em 0px 0.5em;
  padding-top: 2px;
}

table, td, input, select{
  font-size: 100%;
}

table {
  border-collapse: collapse;
  border: none;
}

table th, table td {
  vertical-align: top;
}

table td img {
  vertical-align: middle;
  margin-right: 10px;
}

ol {
  margin: 1px 0px 1px 16px;
}

ul{
  margin: 1px 0px 1px 4px;
  list-style-type: none;
}

ul > li {
  margin-top: 2px;
  padding: 0px 0px 2px 8px;
  background: url("bullet_orange.png") 0% 6px no-repeat;
}

dt {
  font-size:1.17em;
  font-weight:600;
}

dd {
  margin: 0.6em 0 1.5em 2em;
}

fieldset {
  border: none;
}

legend {
  padding: 0px 2px;
  font: bold 1em Verdana, sans-serif;
}

input, textarea {
  padding: 0.2em;
  vertical-align: middle;
  border: 1px solid #ccc;
}

input:focus {
  border: 1px inset #ff7700;
}

label, .label {
  font-weight: bold;
}

iframe {
  border: 0px;
}

pre {
  font-family: Courier, "Courier New", Monaco, monospace;
  font-size: 100%;
  color: #000;
  background-color: #f2f2f2;
  border: 1px solid #ccc;
  margin: 10px 0;
  padding-bottom: 12px;
  padding-left: 5px;
}

code {
  font-size: 120%;
  color: #000;
  background-color: #f2f2f2;
  border: 1px solid #ccc;
}

blockquote {
  font-family: Courier, "Courier New", serif;
  font-size: 120%;
  margin: 5px 0px;
  padding: 0.8em;
  background-color: #f2f2f2;
  border: 1px solid #ccc;
}

/***************************************/
/* generic classes                     */
/***************************************/

.odd {
  background-color: #f7f6f1;
}

.even {
  background-color: transparent;
}

.hr {
  border-bottom: 1px dotted #ccc;
  margin: 1em 0px;
}

.left {
  float: left;
}

.right {
  float: right;
}

.clear {
  clear: both;
}

.hidden {
  display: none;
  visibility: hidden;
}

/* copied verbatim from bootstrap 3.0 */
.invisible {
  visibility: hidden;
}

/* copied verbatim from bootstrap 3.0 */
.list-unstyled {
  padding-left: 0;
  list-style: none;
}

.caption {
  font-weight: bold;
}

.legend{
  font-style: italic;
}

/* rest related image classes generated with align: directive */

img.align-right {
  margin-left: auto;
  display:block;
}

img.align-left {
  margin-right: auto;
  display:block;
}

img.align-center{
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  display:block;
}


/***************************************/
/*   LAYOUT                            */
/***************************************/

/* header */

table#header {
  background-image: linear-gradient(white, #e2e2e2);
  width: 100%;
  border-bottom: 1px solid #bbb;
  text-shadow: 1px 1px 0 #f5f5f5;
}

table#header td {
  vertical-align: middle;
}

table#header, table#header a {
  color: #444;
}

table#header td#headtext {
  white-space: nowrap;
  padding: 0 10px;
  width: 10%;
}

#logo{
  width: 150px;
  height: 42px;
  background-image: url(logo-cubicweb.svg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  float: left;
}

table#header td#header-right {
  white-space: nowrap;
  width: 10%;
}
table#header td#header-center{
  border-bottom-left-radius: 10px;
  border-top-left-radius: 10px;
  padding-left: 1em;
}

span#appliName {
  font-weight: bold;
  white-space: nowrap;
}

/* FIXME appear with 4px width in IE6 */
div#stateheader{
  min-width: 66%;
}

/* Popup on login box and userActionBox */

.popupWrapper{
  position:relative;
}

div.popup {
  position: absolute;
  background: #fff;
  border: 1px solid black;
  text-align: left;
  z-index: 400;
}

div.popup ul li a {
  text-decoration: none;
  color: black;
}

/* main zone */

div#page {
  background: #e2e2e2;
  position: relative;
  min-height: 800px;
}

table#mainLayout{
 padding: 0px 3px;
}

table#mainLayout td#contentColumn {
  padding: 8px 10px 5px;
}

table#mainLayout td#navColumnLeft,
table#mainLayout td#navColumnRight {
  width: 150px;
}

#contentheader {
  margin: 0px;
  padding: 0.2em 0.5em 0.5em 0.5em;
}

#contentheader a {
  color: #000;
}

div#pageContent {
  clear: both;
  padding: 10px 1em 2em;
  background: #ffffff;
  border-radius: 3px;
  border: 1px solid #ccc;
}

/* rql bar */

div#rqlinput {
  border: 1px solid #cfceb7;
  margin-bottom: 8px;
  padding: 1px;
  background: #cfceb7;
  width: 100%;
}

input#rql {
  width: 99%;
}

input.rqlsubmit{
  display: block;
  width: 20px;
  height: 20px;
  background: %(buttonBgColor)s url("go.png") 50% 50% no-repeat;
  vertical-align: bottom;
}
/* old boxes, deprecated */

div.boxFrame {
  width: 100%;
}

div.boxTitle {
  padding-top: 0px;
  padding-bottom: 0.2em;
  color: #fff;
  background: #ff9900 url("search.png") left bottom repeat-x;
}

div.boxTitle span,
div.sideBoxTitle span {
  padding: 0px 5px;
  white-space: nowrap;
}

div.sideBoxTitle span {
  color: #222211;
}

.boxFrame a {
  color: #000;
}

div.boxContent {
  padding: 3px 0px;
  background: #fff;
  border-top: none;
}

div.shadow{
  height: 14px;
}

div.sideBoxTitle {
  background: #cfceb7;
  display: block;
  font: bold 100% Georgia;
  border-top-left-radius: 6px;
  border-top-right-radius: 6px;
}

#navColumnLeft div.boxTitle {
  border-top-left-radius: 0px;
}

div.sideBox {
  padding: 0 0 0.2em;
  margin-bottom: 0.5em;
}

ul.sideBox li {
 list-style: none;
 background: none;
 padding: 0px 0px 1px 1px;
 }

div.sideBoxBody {
  padding: 0.2em 5px;
  background: #eeedd9;
  border-bottom-left-radius: 6px;
  border-bottom-right-radius: 6px;
}

div.sideBoxBody a {
  color:#555544;
}

div.sideBoxBody a:hover {
  text-decoration: underline;
}

div.sideBox table td {
  padding-right: 1em;
}

/* boxes */

div.navboxes {
  padding-top: 8px;
}

div.boxTitle {
  overflow: hidden;
  font-weight: bold;
  border-top-left-radius: 6px;
  border-top-right-radius: 6px;
}

div.boxTitle span {
  padding: 0px 0.5em;
  white-space: nowrap;
}

div.boxBody {
  padding: 3px 3px;
  border-top: none;
  background-color: %(leftrightBoxBodyBgColor)s;
  border-bottom-left-radius: 2px;
  border-bottom-right-radius: 2px;
}

div.boxBody a {
  color: %(leftrightBoxBodyColor)s;
}

div.boxBody a:hover {
  text-decoration: none;
  cursor: pointer;
  background-color: %(leftrightBoxBodyHoverBgColor)s;
}

hr.boxSeparator {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

/* boxes contextual customization */

.contextFreeBox div.boxTitle {
  background: %(contextFreeBoxTitleBg)s;
  color: %(contextFreeBoxTitleColor)s;
}
.contextFreeBox div.boxTitle span {
  text-shadow: 0px 1px 0 #ccc;
}

.contextualBox div.boxTitle {
  background: %(contextualBoxTitleBg)s;
  color: %(contextualBoxTitleColor)s;
}

.primaryRight div.boxTitle {
  background: %(incontextBoxTitleBg)s;
  color: %(incontextBoxTitleColor)s;
}

.primaryRight div.boxBody {
  padding: 0.2em 5px;
  background: %(incontextBoxBodyBgColor)s;
}

.primaryRight div.boxBody a {
  color: %(incontextBoxBodyColor)s;
}

.primaryRight div.boxBody a:hover {
  background-color: %(incontextBoxBodyHoverBgColor)s;
}

.primaryRight div.boxFooter {
  margin-bottom: 1em;
}

#navColumnLeft div.boxFooter, #navColumnRight div.boxFooter{
  height: 14px;
}

.navboxes {
  padding: 0px;
}

.boxBody, .boxTitle, #appMsg {
    box-shadow: 1px 1px 3px Gray;
}

/* boxes lists and menus */

ul.boxListing {
  margin: 0;
  padding: 0;
}

ul.boxListing ul {
  padding: 1px 3px;
}

ul.boxListing a {
  color: %(defaultColor)s;
  padding: 1px 3px;
  display: block; /* necessary to get links across all width available (see on mouse over) */
}

ul.boxListing a.action {
  padding: 0;
  display: inline;
}

ul.boxListing a.action + a{
  display: inline;
}

ul.boxListing li {
  margin: 0px;
  padding: 0px;
  background-image: none;
}

ul.boxListing ul li {
  margin: 0px;
  padding-left: 1em;
}

ul.boxListing ul li a {
  padding-left: 10px;
  background-image: url("bullet_orange.png");
  background-repeat: no-repeat;
  background-position: 0 6px;
}

ul.boxListing .selected {
  color: %(aColor)s;
  font-weight: bold;
}

ul.boxListing a.boxMenu:hover {
  border-top: medium none;
  background: %(leftrightBoxBodyHoverBgColor)s;
}

a.boxMenu,
ul.boxListing a.boxMenu {
  display: block;
  padding: 1px 3px;
  background: transparent %(bulletDownImg)s;
}

ul.boxListing a.boxMenu:hover {
  border-top: medium none;
  background: %(leftrightBoxBodyHoverBgColor)s %(bulletDownImg)s;
}

a.boxMenu:hover {
  cursor: pointer;
}

a.popupMenu {
  background: transparent url("puce_down_black.png") 2% 6px no-repeat;
  padding-left: 2em;
}


/* custom boxes */

.search_box div.boxBody {
  padding: 4px 4px 3px;
  background: #f0eff0 url("gradient-grey-up.png") left top repeat-x;
}

.bookmarks_box ul.boxListing div {
  padding-bottom: 0.3em;
}

.download_box div.boxTitle {
  background : #8fbc8f !important;
}

.download_box div.boxBody {
  background : #eefed9;
  vertical-align: center;
}

/* user actions menu */
a.logout, a.logout:visited, a.logout:hover{
  color: #fff;
  text-decoration: none;
}

div#userActionsBox {
  width: 14em;
  text-align: right;
  display: inline-block;
  padding-right: 10px;
}

div#userActionsBox a.popupMenu {
  color: black;
  text-decoration: underline;
  padding-right: 2em;
}

/**************/
/* navigation */
/**************/
div#etyperestriction {
  margin-bottom: 1ex;
  border-bottom: 1px solid #ccc;
}

div.pagination{
  margin: 0.5em 0;
}

span.slice a:visited,
span.slice a:hover{
  color: #555544;
}

span.selectedSlice a:visited,
span.selectedSlice a {
  background-color: #EBE8D9;
}

/* FIXME should be moved to cubes/folder */
div.navigation a {
  text-align: center;
  text-decoration: none;
}

div.prevnext {
  width: 100%;
  margin-bottom: 1em;
}

div.prevnext a {
  color: #000;
}

/***************************************/
/* entity views                        */
/***************************************/

.mainInfo  {
  margin-right: 1em;
  padding: 0.2em;
}


div.mainRelated {
  border: none;
  margin-right: 1em;
  padding: 0.5em 0.2em 0.2em;
}

div.primaryRight{
 }

div.metadata {
  font-size: 90%;
  margin: 5px 0px 3px;
  color: #666;
  font-style: italic;
  text-align: right;
}

div.section {
  margin-top: 0.5em;
  width:100%;
}

div.section a:hover {
  text-decoration: none;
}

/* basic entity view */

tr.entityfield th {
  text-align: left;
  padding-right: 0.5em;
}

div.field {
  display: inline;
}

div.ctxtoolbar {
  float: right;
  padding-left: 24px;
  position: relative;
}
div.toolbarButton {
  display: inline;
}

/***************************************/
/* messages                            */
/***************************************/

.warning,
.message,
.errorMessage ,
.searchMessage{
  padding: 0.3em 0.3em 0.3em 1em;
  font-weight: bold;
}

.loginMessage {
  margin: 4px 0px;
  font-weight: bold;
  color: #ff7700;
}

div#appMsg, div.appMsg{
  border: 1px solid #cfceb7;
  margin-bottom: 8px;
  padding: 3px;
  background: #f8f8ee;
}

.message {
  margin: 0px;
  background: #f8f8ee url("information.png") 5px center no-repeat;
  padding-left: 15px;
}

.errorMessage {
  margin: 10px 0px;
  padding-left: 25px;
  background: #f7f6f1 url("critical.png") 2px center no-repeat;
  color: #ed0d0d;
  border: 1px solid #cfceb7;
}

.searchMessage {
  margin-top: 0.5em;
  border-top: 1px solid #cfceb7;
  background: #eeedd9 url("information.png") 0% 50% no-repeat; /*dcdbc7*/
}

.stateMessage {
  border: 1px solid #ccc;
  background: #f8f8ee url("information.png") 10px 50% no-repeat;
  padding:4px 0px 4px 20px;
  border-width: 1px 0px 1px 0px;
}

/* warning messages like "There are too many results ..." */
.warning {
  padding-left: 25px;
  background: #f2f2f2 url("critical.png") 3px 50% no-repeat;
}

/* label shown in the top-right hand corner during form validation */
div#progress {
  position: fixed;
  right: 5px;
  top: 0px;
  background: #222211;
  color: white;
  font-weight: bold;
  display: none;
}

/***************************************/
/* listing table                       */
/***************************************/

table.listing {
 padding: 10px 0em;
 color: #000;
 width: 100%;
 border-right: 1px solid #dfdfdf;
}


table.listing thead th.over {
  background-color: #746B6B;
  cursor: pointer;
}

table.listing tr th {
  border: 1px solid #dfdfdf;
  border-right:none;
  font-size: 8pt;
  padding: 4px;
}

table.listing tr .header {
  border-right: 1px solid #dfdfdf;
  cursor: pointer;
}

table.listing td {
  color: #3D3D3D;
  padding: 4px;
  background-color: #FFF;
  vertical-align: top;
}

table.listing th,
table.listing td {
  padding: 3px 0px 3px 5px;
  border: 1px solid #dfdfdf;
  border-right: none;
}

table.listing th {
  font-weight: bold;
  background: %(listingHeaderBgColor)s;
}

table.listing td a,
table.listing td a:visited {
  color: #666;
}

table.listing a:hover,
table.listing tr.highlighted td a {
  color:#000;
}

table.listing td.top {
  border: 1px solid white;
  border-bottom: none;
  text-align: right ! important;
  /* insane IE row bug workaround */
  position: relative;
  left: -1px;
  top: -1px;
}

table.htableForm label, table.oneRowTableForm label {
  vertical-align: middle;
}
table.htableForm td {
  padding-left: 1em;
  padding-top: 0.5em;
}
table.htableForm th {
  padding-left: 1em;
}
table.htableForm .validateButton {
  margin-right: 0.2em;
  margin-bottom: 0.2em;
}

table.oneRowTableForm td {
  padding-left: 0.5em;
}
table.oneRowTableForm th {
  padding-left: 1em;
}
table.oneRowTableForm .validateButton {
  margin: 0 0 0 1em ;
}

table.ajaxEditRelationTable{
  margin-bottom: 0.5em;
}
table.ajaxEditRelationTable td.entity{
  padding-left: 0.5em;
}

/***************************************/
/* error view (views/management.py)    */
/***************************************/

div.pycontext { /* html traceback */
  font-family: Verdana, sans-serif;
  font-size: 80%;
  padding: 1em;
  margin: 10px 0px 5px 20px;
  background-color: #dee7ec;
}

div.pycontext span.name {
  color: #ff0000;
}


/***************************************/
/* addcombobox                         */
/***************************************/

input#newopt{
 width:120px ;
 display:block;
 float:left;
 }

div#newvalue{
 margin-top:2px;
 }

#add_newopt{
 background: #fffff8 url("go.png") 50% 50% no-repeat;
 width: 20px;
 line-height: 20px;
 display:block;
 float:left;
}

/***************************************/
/* buttons                             */
/***************************************/

input.button{
  margin: 1em 1em 0px 0px;
  border: 1px solid #edecd2;
  border-color:#edecd2 #cfceb7 #cfceb7  #edecd2;
  background: #fffff8 url("button.png") bottom left repeat-x;
}

/* FileItemInnerView  jquery.treeview.css */
.folder {
  /* disable odd/even under folder class */
  background-color: transparent;
}

a.addButton {
  margin-left: 0.5em;
  padding-left: 16px;
  background: transparent url("add_button.png") 0% 50% no-repeat;
}

/***************************************/
/* footer                              */
/***************************************/

div#footer {
  text-align: center;
}
div#footer a {
  color: #000;
  text-decoration: none;
}


/****************************************/
/* FIXME must by managed by cubes       */
/****************************************/
.needsvalidation {
  font-style: italic;
  color: gray;
}


/***************************************/
/* FIXME : Deprecated ? entity view ?  */
/***************************************/
.title {
  text-align: left;
  font-size:  large;
  font-weight: bold;
}

.validateButton {
  margin: 1em 1em 0px 0px;
  border: 1px solid #edecd2;
  border-color:#edecd2 #cfceb7 #cfceb7  #edecd2;
  background: #fffff8 url("button.png") bottom left repeat-x;
}

/********************************/
/* placement of alt. view icons */
/********************************/

.otherView {
  float: right;
}


/******************************/
/* reledit                    */
/******************************/

.releditField {
    display: inline;
}

.releditForm {
 display:none;
}

/********************************/
/* overwite other css here      */
/********************************/

.ui-menu li.ui-menu-item {
  /* remove background image (orange bullet) for autocomplete suggestions */
  background-image: none;
}

div.ui-tabs.ui-widget-content {
  background:none;
  border:none;
  color:inherit;
}

div.ui-tabs ul.ui-tabs-nav {
  padding-left: 0.5em;
}

div.ui-tabs ul.ui-tabs-nav a {
  color:#27537A;
  padding: 0.3em 0.6em;
  outline:0;
}

div.ui-tabs ul.ui-tabs-nav li.ui-tabs-selected a {
  color:black;
}

div.ui-tabs ul.ui-tabs-nav li.ui-state-hover, div.ui-tabs ul.ui-tabs-nav li.ui-state-focus {
  background:white;
}

div.ui-tabs .ui-widget-header {
  background:none;
  border:none;
}

div.ui-tabs .ui-widget-header li {
  border-color:#333333;
}

div.ui-tabs .ui-tabs-panel {
  border-top:1px solid #97A5B0;
  padding-left:0.5em;
  padding-right: 2px;
  color:inherit;
}

/* cubicweb.views.undohistory uses :
 *   - span.undo around undo link
 *   - ul.undo-transactions to list transaction
 *   - ol.undo-actions to list actions in a transaction
 */

span.undo {
  border: 1pt;
}

ol.undo-actions > li {
  margin-left: 2em;
  margin-top: 2px;
  padding: 0px 0px 2px 0px;
  background-image: none;
}