freeipa/install/ui/ipa.css

748 lines
12 KiB
CSS
Raw Normal View History

2011-06-21 10:58:26 -05:00
/* Authors:
* Pavel Zuna <pzuna@redhat.com>
* Adam Young <ayoung@redhat.com>
* Endi Sukma Dewata <edewata@redhat.com>
* Kyle Baker <kybaker@redhat.com>
* Petr Vobornik <pvoborni@redhat.com>
*
* Copyright (C) 2010 Red Hat
*/
html {
height: 100%;
}
body {
overflow: auto;
position: relative;
height: 100%;
}
textarea[readonly] {
color: Gray;
}
.network-activity-indicator {
width: 16px;
height: 16px;
line-height: 16px;
margin-right: 5px;
display: inline-block;
}
/* ---- Container ---- */
.app-container {
height: 100%;
}
/* ---- Password expiration */
.header-passwordexpires {
color: red;
font-weight: bold;
padding: 7px 10px;
line-height: 1;
}
/* ---- Notification area ---- */
.notification-area {
position: fixed;
left: 50%;
top: 15px;
}
.notification-area div {
position: relative;
left: -50%;
line-height: 1.5em;
z-index: 20;
padding: 4px;
text-align: center;
word-wrap: break-word;
max-width: 500px;
}
/* ---- Facet ---- */
.facet {
position: relative;
display: none;
}
.active-facet {
display: block;
}
.facet-title {
color: gray;
}
.facet-pkey {
color:black;
text-transform: none;
}
.breadcrumb {
padding: 0;
margin: 5px 0 0 0;
}
.breadcrumb a {
cursor: pointer;
}
/* ---- Facet Tabs ---- */
.facet-group {
float: left;
margin-right: 1em;
}
.facet-group-label {
height: 20px;
}
.facet-tab {
list-style-type: none;
margin: 0;
padding: 0;
cursor: pointer;
}
.facet-tab li {
display: inline-block;
padding-right: 1px;
}
.facet-tab li a {
background-color: #dedbde;
2011-06-21 09:21:14 -05:00
border-left: 1px solid #c9c3ba;
border-right: 1px solid #c9c3ba;
margin: 0 0 0;
padding: 8px 16px 4px 16px;
text-decoration: none;
display: inline-block;
line-height: 19px;
color: #666666;
}
.facet-tab li a.selected {
2011-06-21 09:21:14 -05:00
color: #6C6F73;
background-color: #f1f0ee;
font-weight: bold;
}
.facet-tab li.settings {
margin-left:1em; margin-right:1em;
}
/* Facet tabs coloring */
.facet-group li a {
background-image: url(images/facet-tab-off.png);
background-repeat: repeat-x;
background-position: 0px -33px;
}
.facet-group li a.selected {
background-image: url(images/facet-tab-on.png);
}
div[name=settings].facet-group li a {
background-position: 0px -66px;
}
.facet-group li[name^=member] a,
.facet-group li[name^=managedby] a {
background-position: 0px 0px;
}
.facet-group li[name^=memberof] a {
background-position: 0px -33px;
}
/* ---- Facet Controls ---- */
.facet-controls {
padding: 5px 0px;
clear: both;
}
.right-aligned-facet-controls {
float: right;
}
.facet-controls a {
font-size: 1.3em !important;
margin: 0 16px 0 0;
}
/* --- Facet error --- */
.facet-error {
padding: 2em 15em;
}
.facet-error h1 {
text-align: center;
}
.facet-error .error-details {
margin-top: 2em;
font-family: monospace;
}
/* ---- Search Facet ---- */
.search-option {
margin-right: 8px;
width: 178px;
display: inline-block;
}
.search-filter {
margin-top: -2px;
display: inline-block;
}
.search-filter input {
width: 178px;
display: inline-block;
}
.search-filter a {
position: relative;
margin: 0 0 0 -20px;
}
.pagination-control {
float: right;
}
.pagination-control a {
cursor:pointer;
}
.pagination-control input[name=current_page] {
width: 22px;
padding: 0 6px;
margin: 0;
}
/* ---- Details Facet ---- */
.details-content {
border-top: 1px solid #DFDFDF;
}
/* ---- Dialog ---- */
.action-button-disabled,
.action-button-disabled:focus,
.action-button-disabled:hover {
color: gray;
cursor: default;
outline: none;
}
.aci-attribute-table tbody {
height: 10em;
}
.aci-attribute-table .aci-attribute-column {
width: 200em; /* it will fit actual width */
}
.aci-attribute-table-container {
height: 13.5em;
overflow: hidden;
}
.strikethrough { text-decoration: line-through; }
textarea.certificate {
font-family: monospace;
width: 100%;
height: 250px;
}
.error-message-hinted {
color: red;
padding-top: 0.5em;
padding-bottom: 0.5em;
font-family: monospace;
}
/* ---- Table ---- */
/* Used in association tables */
th div[name="buttons"] .action-button {
margin: 0 0 0 6px;
}
table.scrollable thead {
display: block;
}
table.scrollable tbody {
display: block;
overflow: auto;
}
.adder-dialog {
position: relative;
height: 350px;
}
.adder-dialog-top {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3em;
line-height: 18px;
}
.adder-dialog-top input[name=filter] {
width: 244px;
}
.adder-dialog-top .network-activity-indicator img,
.adder-dialog-top button {
margin-top: -10px;
}
.adder-dialog-left {
position: absolute;
top: 3.5em;
left: 0;
right: 50%;
bottom: 0;
}
.adder-dialog-right {
position: absolute;
top: 3.5em;
left: 50%;
right: 0;
bottom: 0;
}
.adder-dialog .search-table {
width: 100%;
height: 100%;
}
.adder-dialog table.scrollable thead {
display: table-header-group;
}
.adder-dialog tbody {
position: absolute;
bottom: 32px;
left: 0;
right: 0;
top: 31px;
}
.adder-dialog-header {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 1.5em;
line-height: 1.5em;
Better displaying of long names in tables and facet headers Tables columns have computed width. If value in one column is very long it widens the column and shortens others. This change causes that body columns are not aligned with header columns which makes the table less readable. Applying 'word-break: break-all' style breaks the word to multiple lines and solves the problem. Simililar problem is in details facet when displaying text values. Very long values widens the table and a horizontal slider is displayed, which is bad. Applying same solution. In facet headers and breadcrumb navigation breaking the pkey looks bad - there should be only on line of pkey. To solve this, the pkey is limited to 63 characters (empirically measured). Long pkeys are cut. Uncut pkey is set as a title to avoid losing information. Whole breadcrump could be about 140 chars (with current styles). 10 chars is reserved for entity link, 60 for pkey the rest (about 60) for parent pkeys. The assumtion is that the parent pkeys wouldn't be so long so they won't be cut anyway. Column width calculation in tables was iproved. Now it counts with cell spacing, padding, border. It uses these assumtions: cell-spacing: 2px cell-padding: 6px th:right, left; td: left cell-border: th:1px; td:0px It would be better to get these measures dynamically. Right now it is good enough - better than previous calculation. Result: data cells are aligned with their header. This alignment fails if vertical scrollbar is displayed (existing problem). Also added padding to headers in association adder dialog. https://fedorahosted.org/freeipa/ticket/1890
2011-12-08 03:25:34 -06:00
padding: 0.2em 1em;
font-weight: 700;
}
.adder-dialog-content {
position: absolute;
Better displaying of long names in tables and facet headers Tables columns have computed width. If value in one column is very long it widens the column and shortens others. This change causes that body columns are not aligned with header columns which makes the table less readable. Applying 'word-break: break-all' style breaks the word to multiple lines and solves the problem. Simililar problem is in details facet when displaying text values. Very long values widens the table and a horizontal slider is displayed, which is bad. Applying same solution. In facet headers and breadcrumb navigation breaking the pkey looks bad - there should be only on line of pkey. To solve this, the pkey is limited to 63 characters (empirically measured). Long pkeys are cut. Uncut pkey is set as a title to avoid losing information. Whole breadcrump could be about 140 chars (with current styles). 10 chars is reserved for entity link, 60 for pkey the rest (about 60) for parent pkeys. The assumtion is that the parent pkeys wouldn't be so long so they won't be cut anyway. Column width calculation in tables was iproved. Now it counts with cell spacing, padding, border. It uses these assumtions: cell-spacing: 2px cell-padding: 6px th:right, left; td: left cell-border: th:1px; td:0px It would be better to get these measures dynamically. Right now it is good enough - better than previous calculation. Result: data cells are aligned with their header. This alignment fails if vertical scrollbar is displayed (existing problem). Also added padding to headers in association adder dialog. https://fedorahosted.org/freeipa/ticket/1890
2011-12-08 03:25:34 -06:00
top: 1.9em;
left: 0;
right: 0;
bottom: 0;
}
.adder-dialog-available {
2011-01-25 08:23:55 -06:00
background-color: #ffffff;
border: none;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 3em;
}
.adder-dialog-with-external .adder-dialog-available {
bottom: 5em;
}
.adder-dialog-selected {
2011-01-25 08:23:55 -06:00
background-color: #ffffff;
border: none;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 3em;
2011-01-25 08:23:55 -06:00
}
.adder-dialog-buttons {
width: 60px;
2011-01-25 08:23:55 -06:00
text-align: center;
margin: 0 auto;
position: absolute;
left: 0;
right: 0;
top: 10em;
}
.adder-dialog-buttons .button {
position: relative;
}
.adder-dialog-internal {
background-color: #ffffff;
border: none;
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 23em;
padding-top: 1em;
}
.adder-dialog-external {
border: none;
position: absolute;
left: 0;
bottom: 3em;
right: 3em;
height: 4em;
}
.adder-dialog-external .adder-dialog-content {
Better displaying of long names in tables and facet headers Tables columns have computed width. If value in one column is very long it widens the column and shortens others. This change causes that body columns are not aligned with header columns which makes the table less readable. Applying 'word-break: break-all' style breaks the word to multiple lines and solves the problem. Simililar problem is in details facet when displaying text values. Very long values widens the table and a horizontal slider is displayed, which is bad. Applying same solution. In facet headers and breadcrumb navigation breaking the pkey looks bad - there should be only on line of pkey. To solve this, the pkey is limited to 63 characters (empirically measured). Long pkeys are cut. Uncut pkey is set as a title to avoid losing information. Whole breadcrump could be about 140 chars (with current styles). 10 chars is reserved for entity link, 60 for pkey the rest (about 60) for parent pkeys. The assumtion is that the parent pkeys wouldn't be so long so they won't be cut anyway. Column width calculation in tables was iproved. Now it counts with cell spacing, padding, border. It uses these assumtions: cell-spacing: 2px cell-padding: 6px th:right, left; td: left cell-border: th:1px; td:0px It would be better to get these measures dynamically. Right now it is good enough - better than previous calculation. Result: data cells are aligned with their header. This alignment fails if vertical scrollbar is displayed (existing problem). Also added padding to headers in association adder dialog. https://fedorahosted.org/freeipa/ticket/1890
2011-12-08 03:25:34 -06:00
top: 2.1em;
}
.adder-dialog-external input {
width: 98%;
}
.adder-dialog-buttons > div:first-child{
margin-bottom: 0.5em;
}
/* ---- Widgets ---- */
.multivalued-widget [name=value] {
margin-bottom: 1em;
}
.multivalued-widget a[name=add] {
margin-right: 5px;
}
.option_widget {
list-style-type: none;
margin: 0;
padding: 0;
}
.option_widget.nested {
padding-left: 40px;
}
.option_widget.inline,
.option_widget.inline > li {
display: inline;
margin-right: 8px;
}
.option_widget.columns > li {
float: left;
width: 33%;
min-width: 90px;
max-width: 150px;
}
.combobox-widget-input {
position: relative;
}
.combobox-widget-input input {
padding-right: 20px;
}
.combobox-widget-input a i {
display: inline-block;
position: absolute;
top: 0;
bottom: 0;
right: 0;
margin-top: 4px;
margin-right: 8px;
font-size: 16px;
}
.combobox-widget-list {
border: 1px solid #A0A0A0;
background: #EEEEEE;
padding: 5px;
position: absolute;
left: 0;
right: 0;
}
.combobox-widget-list a {
position: absolute;
top: 0;
right: 0;
}
.combobox-widget-list a i {
margin-right: 5px;
}
.combobox-widget-list select {
margin-top: 3px;
}
.input-group .combobox-widget-input .form-control {
position: initial;
float: inherit;
}
/* ---- HBAC Test ---- */
.hbac-test-header .search-filter {
float: right;
}
.hbac-test-title {
font-size: 1.8em;
text-transform: uppercase;
margin: 0;
}
.hbac-test-title,
.hbac-test-title ~ label {
margin-right: 5px !important;
}
.hbac-test-top-panel {
position: relative;;
}
.hbac-test-navigation-buttons {
float: right;
}
/* ---- DNS ---- */
.dnstype-table div[name=position] {
padding-right: 9px;
}
.dnstype-table td {
font-weight: normal;
}
/* --- Automember --- */
.automember-header .default_group {
padding-bottom: 5px;
}
.automember-header .default_group h2 {
display: inline-block;
margin: 0 15px 0 0;
}
.automember-header .default_group label {
margin-right: 20px;
}
/* --- Stand alone forms --- */
#formwindow {
-moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.6);
-webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.6);
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.6);
background: none repeat scroll 0 0 #FFFFFF;
border-color: #FFFFFF #F0F0F0 #F0F0F0;
border-right: 1px solid #F0F0F0;
border-style: solid;
border-width: 1px;
color: #3F3F3F;
margin: 40px auto 100px;
width: 450px;
}
.form-box {
padding: 1em 2em;
}
#error-box, .error-box {
-moz-border-radius: 0.3em 0.3em 0.3em 0.3em;
-webkit-border-radius: 0.3em 0.3em 0.3em 0.3em;
background-color: #FFEBE8;
border: 1px solid #DD3C10;
margin: 0 2em 1em 2em;
padding: 1em 2em;
}
#success-box, .success-box {
-moz-border-radius: 0.3em 0.3em 0.3em 0.3em;
-webkit-border-radius: 0.3em 0.3em 0.3em 0.3em;
background-color: #FFEB80;
border: 1px solid #FFDE2E;
margin: 0 2em 1em 2em;
padding: 1em 2em;
}
#formwindow h2 {
background-color: #F0F0F0;
font-size: 1.6em;
padding: 18px 15px 14px 22px;
text-transform: uppercase;
margin: 0 0 1em 0;
font-weight: bold;
}
.formbutton input {
float: right;
margin: 1em 1em 1em 0;
-moz-border-radius: 0.3em 0.3em 0.3em 0.3em;
-webkit-border-radius: 0.3em 0.3em 0.3em 0.3em;
border-radius: 0.3em 0.3em 0.3em 0.3em;
background: -moz-linear-gradient(center top, #959595, #5e5e5e) repeat scroll 0 0 transparent;
background: -webkit-radial-gradient(center top, #959595, #5e5e5e) repeat scroll 0 0 transparent;
border: 1px solid #777777;
color: #ffffff;
font-weight: normal;
padding: 0.5em 0.8em;
}
.formcontent {
padding: 0em 1em 1em;
}
/* --- Login form --- */
#login li {
padding-bottom: 15px;
text-align: right;
width: 370px;
list-style-type: none;
}
#login li input {
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2);
margin-left: 15px;
padding: 2px 10px;
width: 210px;
}
#login li label, #modal li label {
font-weight: bold;
font-size: 1.2em;
list-style-type: none;
}
form#login {
display: inline-block;
padding-bottom: 15px;
width: 418px;
}
/* --- Login page --- */
.login-page #formwindow {
margin-top: 100px;
}
Action lists This patch add support fo Action Lists. Action list is a select widget with actions as options located in facet header. Action can be selected and then executed by clickin on 'apply' button. Actions lists are defined on facet level. Facet header takes them from facet. Action list options actions: list of actions state_evaluator: a state evaluator which is needed for enabling/disabling options. Can encapsulate more evaluators. State evaluator object ---------------------- State evaluator is resposible for evaluating a state from result set. State is a array of strings. Each evaluator should inherit from IPA.state_evaluator and override evaluate method. Methods: evaluate(record): should return string array which represents the state get_description(): human readable representation of a state Action ------ Action is a object which can perform certain action on a facet. Action has enabling and disabling conditions. action options: name: string, required, name of the option label: string, required, human readable name of the option enable_cond: string array, states which need to be present in order to run this action disable_cond: string array, states which must not be present in order to run this action handler: function, contains action's logic needs_confirm: boolean, default false, indicates if action needs user confirmation confirm_msg: string, default generic message, human readable confirmation message. Action list should contain logic which enables/disables action based on facet state and action's enabling/disabling conditions. It should also enforce presence of confirmation. In this patch is also slightly modified facet header, mostly title part. It was revised to contain status icon, title and action list on single line. Facet header is using state evaluator's get_description method to properly set tooltip for state icon. https://fedorahosted.org/freeipa/ticket/2247
2012-04-04 09:33:48 -05:00
/* --- Facet title states --- */
.facet-title h1 {
Action lists This patch add support fo Action Lists. Action list is a select widget with actions as options located in facet header. Action can be selected and then executed by clickin on 'apply' button. Actions lists are defined on facet level. Facet header takes them from facet. Action list options actions: list of actions state_evaluator: a state evaluator which is needed for enabling/disabling options. Can encapsulate more evaluators. State evaluator object ---------------------- State evaluator is resposible for evaluating a state from result set. State is a array of strings. Each evaluator should inherit from IPA.state_evaluator and override evaluate method. Methods: evaluate(record): should return string array which represents the state get_description(): human readable representation of a state Action ------ Action is a object which can perform certain action on a facet. Action has enabling and disabling conditions. action options: name: string, required, name of the option label: string, required, human readable name of the option enable_cond: string array, states which need to be present in order to run this action disable_cond: string array, states which must not be present in order to run this action handler: function, contains action's logic needs_confirm: boolean, default false, indicates if action needs user confirmation confirm_msg: string, default generic message, human readable confirmation message. Action list should contain logic which enables/disables action based on facet state and action's enabling/disabling conditions. It should also enforce presence of confirmation. In this patch is also slightly modified facet header, mostly title part. It was revised to contain status icon, title and action list on single line. Facet header is using state evaluator's get_description method to properly set tooltip for state icon. https://fedorahosted.org/freeipa/ticket/2247
2012-04-04 09:33:48 -05:00
display: inline-block;
}
.facet-title .header-icon {
display: none;
font-size: 70%;
vertical-align: 20%;
/* Font awesome style, TODO: use mixin */
display: inline-block;
font-family: FontAwesome;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
Action lists This patch add support fo Action Lists. Action list is a select widget with actions as options located in facet header. Action can be selected and then executed by clickin on 'apply' button. Actions lists are defined on facet level. Facet header takes them from facet. Action list options actions: list of actions state_evaluator: a state evaluator which is needed for enabling/disabling options. Can encapsulate more evaluators. State evaluator object ---------------------- State evaluator is resposible for evaluating a state from result set. State is a array of strings. Each evaluator should inherit from IPA.state_evaluator and override evaluate method. Methods: evaluate(record): should return string array which represents the state get_description(): human readable representation of a state Action ------ Action is a object which can perform certain action on a facet. Action has enabling and disabling conditions. action options: name: string, required, name of the option label: string, required, human readable name of the option enable_cond: string array, states which need to be present in order to run this action disable_cond: string array, states which must not be present in order to run this action handler: function, contains action's logic needs_confirm: boolean, default false, indicates if action needs user confirmation confirm_msg: string, default generic message, human readable confirmation message. Action list should contain logic which enables/disables action based on facet state and action's enabling/disabling conditions. It should also enforce presence of confirmation. In this patch is also slightly modified facet header, mostly title part. It was revised to contain status icon, title and action list on single line. Facet header is using state evaluator's get_description method to properly set tooltip for state icon. https://fedorahosted.org/freeipa/ticket/2247
2012-04-04 09:33:48 -05:00
}
.facet-title.enabled .header-icon:before {
content: "\f00c";
margin-right: 5px;
}
.facet-title.disabled .header-icon:before {
content: "\f068";
margin-right: 5px;
}
.facet-title.disabled h1,
.facet-title.disabled h1 .facet-pkey{
color: gray;
}
.action-panel {
position: absolute;
right: 0;
top: -30px;
width: 150px;
-moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.6);
-webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.6);
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.6);
}
.action-panel-list {
margin: 0 0 10px 0;
list-style: none;
padding: 0 0 0 15px;
}
.action-title {
font-size: 1em;
font-weight: bold;
margin: 15px 0 5px 15px;
line-height: 1em;
}
.disabled {
color: gray;
cursor: default;
}
/* --- Multiple choice widget --- */
.multiple-choice-section-header {
font-weight: bold;
font-size: 1.1em;
}