freeipa/install/ui/ipa.css

1543 lines
25 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;
background-repeat: repeat-x;
background-position: left top;
background-color: #FFFFFF;
2010-11-17 13:13:33 -06:00
border-width: 0;
font-size: 11px;
2010-11-17 13:13:33 -06:00
margin: 0;
padding: 0;
height: 100%;
}
textarea[readonly] {
color: Gray;
}
.network-activity-indicator {
visibility: hidden;
width: 16px;
height: 16px;
line-height: 16px;
margin: 5px 3px;
display: inline-block;
}
/* ---- Container ---- */
.app-container {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: 0 auto 0;
}
/** Icons **/
.icon {
display: inline-block;
height: 16px;
width: 16px;
vertical-align: middle;
2011-01-27 15:37:48 -06:00
}
.combobox-icon {
background: url(images/combobox-open.png);
}
.expanded-icon {
background: url(images/arrow-expanded.png);
}
.collapsed-icon {
background: url(images/arrow-collapsed.png);
}
.search-icon {
background: url(images/search-icon.png) no-repeat;
}
.add-icon {
background: url(images/add-icon.png);
margin: -4px 0 0 1px;
}
2011-01-27 15:37:48 -06:00
.remove-icon {
background: url(images/remove-icon.png);
margin: -4px 0 0 1px;
}
2011-01-27 15:37:48 -06:00
.update-icon {
background: url(images/update-icon.png);
margin: -4px 0 0 1px;
2011-06-21 10:58:26 -05:00
}
.reset-icon {
background: url(images/reset-icon.png);
margin: -4px 0 0 1px;
2011-06-21 10:58:26 -05:00
}
.enabled-icon {
background-image: url(images/ui-icons_222222_256x240.png);
background-position: -64px -144px;
margin: -4px 0 0 1px;
}
.disabled-icon {
background-image: url(images/ui-icons_bbbbbb_256x240.png);
background-position: -64px -128px;
margin: -4px 0 0 1px;
}
.prev-icon {
background-image: url(images/ui-icons_bbbbbb_256x240.png);
background-position: -96px -16px;
margin: -4px 0 0 1px;
}
.next-icon {
background-image: url(images/ui-icons_bbbbbb_256x240.png);
background-position: -32px -16px;
margin: -4px 0 0 1px;
}
.ipa-icon {
font-size: 0.7em;
padding-right: 0.3em;
}
.ui-state-error,
.ui-widget-content .ui-state-error,
.ui-widget-header .ui-state-error {
font-weight: bold;
padding: 0.2em;
}
/* ---- Password expiration */
.header-passwordexpires {
color: red;
font-weight: bold;
padding: 7px 10px;
line-height: 1;
}
/* ---- Notification area ---- */
.notification-area {
position: absolute;
left: 50%;
top: 15px;
}
.notification-area div {
position: relative;
left: -50%;
line-height: 1.5em;
z-index: 20;
padding: 4px;
font-weight: bold;
text-align: center;
word-wrap: break-word;
max-width: 500px;
}
/* ---- Entity ---- */
.entity {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.entity h1 {
margin: 0 0 10px;
}
.entity-content {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
font-size: 10px;
margin: 0 0 0;
}
.entity-content div.content-buttons {
float: right;
margin-right: 1.5em;
}
.entity-content div.content-buttons img {
border: 0;
}
/* ---- Facet ---- */
.facet {
position: absolute;
top: 110px;
left: 10px;
right: 10px;
bottom: 0;
display: none;
}
.active-facet {
display: block;
}
.facet-header {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 130px;
margin: 0 12px 0;
}
.facet-title {
position: absolute;
top: 10px;
left: 0;
color: gray;
display: block;
}
.facet-title h3 {
margin: 0;
line-height: 1.8em;
}
.facet-title span {
display: inline;
}
.facet-pkey {
color:black;
text-transform: none;
}
.breadcrumb {
position: absolute;
top: -5px;
left: 0;
background-color: transparent;
padding: 0;
}
.breadcrumb a {
cursor: pointer;
}
/* ---- Facet Tabs ---- */
.facet-tabs {
position: absolute;
left: 0;
right: 0;
bottom: 30px;
z-index: 1; /* need to be above facet header */
border-bottom: 1px solid #C9C3BA;
}
.facet-group {
float: left;
margin-right: 1em;
position: relative;
height: 100%;
}
.facet-group-label {
height: 20px;
}
.facet-tab {
height: 31px;
list-style-type: none;
margin: 0;
padding: 0;
cursor: pointer;
}
.facet-tab li {
display: inline-block;
position: relative;
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;
height: 20px;
}
.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 {
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 30px;
line-height: 30px;
padding: 0 6px 0 6px;
}
.right-aligned-facet-controls {
position: absolute;
top: 0;
right: 0;
bottom: 0;
}
.facet-controls a {
font-size: 1.3em !important;
margin: 0 6px 0 0;
}
.facet-controls .network-activity-indicator img {
margin-top: -15px;
}
/* ---- Facet Content ---- */
.facet-content {
position: absolute;
top: 130px;
left: 0;
right: 0;
bottom: 0;
margin: 0 12px;
padding: 0;
}
/* ---- Facet Customization ---- */
.no-facet-tabs .facet-header {
height: 70px;
}
.no-facet-tabs .facet-content {
top: 70px;
}
/* --- 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 ---- */
.content-table {
position: relative;
width: 100%;
height: 100%;
border-collapse: separate;
border-spacing: 1px;
}
.content-table thead {
position: absolute;
top: 0px;
left: 3px;
right: 3px;
}
.content-table tbody {
position: absolute;
top: 31px;
left: 3px;
right: 3px;
bottom: 35px;
}
.content-table tbody tr.disabled {
color: gray;
}
.search-option {
margin-right: 8px;
width: 206px;
}
.search-filter {
width: 215px;
display: inline-block;
}
.search-filter input {
padding-right: 20px;
width: 178px;
}
.search-filter a {
position: relative;
margin: 0 0 0 -20px;
top: -5px;
}
.search-controls {
-moz-border-radius: .7em .7em 0 0;
-webkit-border-radius: .7em .7em 0 0;
height:2.5em;
background: -moz-linear-gradient(top, #eeeeee, #dfdfdf);
background: -webkit-gradient(linear, left top, left bottom, from(#eeeeee), to(#dfdfdf));
position: relative;
padding: 1em 1.5em;
margin-top: .8em;
}
.search-table {
padding: 0;
width: 100%;
border: none;
}
.search-table > a:link, a:visted {
color:black;
}
.search-table thead tr th {
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 6px;
background-color:#f6f6f6;
color:#333333;
text-align: left;
border: 1px solid #dfdfdf;
height: 25px;
}
.search-table thead tr th .action-button {
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
margin: 0 0 0 6px;
}
.search-table tbody td {
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 0 0 7px;
}
.search-table thead th div,
.search-table tbody td div
{
word-wrap: break-word;
}
.search-table tfoot td {
padding: 0.5em 0 0 1em;
border-top: 1px solid #dfdfdf;
height: 25px;
line-height: 25px;
margin-top: 1em;
}
.search-table span[name=summary] {
float: left;
margin-right: 4em;
}
.search-table .pagination-control {
float: right;
}
.search-table .pagination-control a {
cursor:pointer;
}
.search-table .pagination-control input[name=current_page] {
width: 22px;
padding: 0 6px;
margin: 0;
}
ul#viewtype {
padding-left: 2em;
}
ul#viewtype li {
color: #656565;
display: inline;
font-weight: bold;
list-style-type: none;
padding-right: 2em;
}
ul#viewtype li img {
vertical-align: middle;
}
ul#viewtype li a {
font-weight: normal;
}
h1 {
font-family: "Overpass Bold", OpenSansRegular, "Liberation Sans", Arial, sans-serif;
font-size: 1.5em;
color: #555555;
text-transform: uppercase;
text-shadow: 1px 1px 0 #FFFFFF;
}
h2 {
font-family: "Overpass Bold", OpenSansRegular, "Liberation Sans", Arial, sans-serif;
font-size: 1.5em;
color: #333333;
text-transform: uppercase;
margin-left: 1em;
margin-bottom: 0;
text-align: left;
}
h3 {
font-family: "Overpass Bold", OpenSansRegular, "Liberation Sans", Arial, sans-serif;
font-size: 1.8em;
color: #3c3c3c;
text-transform: uppercase;
text-shadow: 1px 1px 0 #FFFFFF;
}
.section-expand{
}
hr {
background-color: #EEEEEE;
clear: both;
color: #FFFFFF;
height: 0.1em;
margin-left: 1.5em;
margin-right: 1.5em;
margin-top: 1em;
}
/* ---- Details Facet ---- */
.details-content {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 32px;
overflow: auto;
border: none;
border-top: 1px solid #DFDFDF;
}
.details-summary {
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 29px;
border-top: 1px solid #DFDFDF;
padding-left: 0.5em;
line-height: 25px;
}
.dialog-section {
margin-bottom: 10px;
HBAC Details Page The UI framework has been extended to include a collection of widgets: - ipa_widget: base class - ipa_text_widget: text field - ipa_radio_widget: radio button - ipa_textarea_widget: textarea - ipa_button_widget: button - ipa_column_widget: column for table - ipa_table_widget: table These widgets can be used to create input controls. They can also be extended to create custom controls. The framework has also been enhanced to support custom layouts. This can be used to change the look of the application without changing the code. Initially this is only available in details section. Layout consists of a collection of HTML templates. Each template is a complete and valid HTML file representing a portion of a page. The template will be loaded and initialized by the code, then filled with the data from the server. The layouts are located in install/static/layouts/<name> folder. By default, if no templates are used, the fields in the details page are rendered vertically using dd/dt/dd tags. For pages that require different layout, a custom UI needs to be developed. There are two ways to do that: - write a custom widget to generate the UI dynamically - create an HTML template and write the initialization code For components that are quite complex or used frequently, it's might be better to use the first method. For simple pages that are used only in one location or need to support customization, the second method might be preferable. Other benefits of templates: - cleaner code and UI separation - more flexibility in customization - new pages can be developed quickly and require less coding - multiple templates can be used with the same initialization code - easier to maintain The HBAC details page has been implemented using both methods. By default it will use custom widgets to generate the page. To use a custom layout, add the following parameter to the URL, then reload the page: &layout=<name> Currently the only available layout is 'default' which produces the same look as the custom widgets. The HBAC details page is usable, but it still needs additional work. The access time is not working yet. There is no undo button, hint, or validation yet. The table in the association facet has also been changed to use ipa_association_widget which is derived from ipa_table_widget. The Makefile has been updated to include the layouts. The unit tests have been updated as well.
2010-11-02 20:16:55 -05:00
}
.section-table {
width: 100%;
2010-12-20 15:56:14 -06:00
}
.section-cell-label {
vertical-align: top;
width: 120px;
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
max-width: 120px;
}
.section-cell-field {
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
max-width: 650px;
}
.details-section {
position: relative;
margin-top: 1em;
margin-right: 3.3em;
margin-bottom: 1em;
}
.details-section .section-table {
width: 100%;
border-spacing: 12px;
}
.details-section .section-cell-label {
text-align: right;
vertical-align: top;
width: 120px;
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
word-wrap: break-word;
}
.details-section .section-cell-field {
font-weight: bold;
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
word-wrap: break-word;
}
.undo {
cursor:pointer;
padding: 0.2em;
}
span.attrhint {
font-size: 8pt;
left: 5em;
margin-left: 12.5em;
position: absolute;
overflow-x: hidden;
}
a, .ui-widget-content a {
text-decoration: none;
color: #1d85d5;
font-weight: normal;
text-transform: none;
}
/* ---- Dialog ---- */
.ui-dialog {
-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);
}
.ui-dialog .ui-dialog-content {
word-wrap: break-word;
2011-01-25 08:23:55 -06:00
}
2010-11-17 13:13:33 -06:00
.dialog-message {
margin: 5px 5px 10px;
padding: 10px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
text-align: center;
}
.ui-widget input, .ui-widget select,
.ui-widget textarea, .ui-widget button {
margin-right: .1em;
}
span.sub-nav-off > a:link, span.sub-nav-off > a:visited{
color:white;
}
span.main-nav-off > a:link, span.main-nav-off > a:visited{
color:white;
}
span.main-separator{
background: #333339;
padding:0.1em;
}
.button {
text-decoration: none;
cursor: pointer;
display: inline-block;
height: 18px;
}
.button-label {
padding: 0 0.2em;
display: inline-block;
height: 16px;
line-height: 16px;
}
.action-button {
background: none;
background-image: none;
font-family: OpenSansRegular, "Liberation Sans", Arial, sans-serif;
font-size: 0.9em;
}
.action-button-disabled {
color: gray;
cursor: default;
}
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
.button-disabled {
color: gray;
cursor: default;
}
.aci-attribute-table tbody {
border-bottom: 1px solid #8a8a8a;
height: 10em;
}
.aci-attribute-table .aci-attribute-column {
width: 200em; /* it will fit actual width */
}
.aci-attribute-table-container {
height: 13.5em;
overflow: hidden;
}
.entity-views{
list-style-type:none;
}
.entity-views li {
display:inline;
2010-09-16 20:44:03 -05:00
cursor: pointer;
padding: 0.4em;
}
.strikethrough { text-decoration: line-through; }
textarea.certificate {
font-family: "Courier New";
width: 100%;
height: 250px;
}
table.certificate-status {
line-height: 2;
}
table.kerberos-key-status {
line-height: 2;
}
.status-icon {
vertical-align: bottom;
}
.status-valid {
background-image: url(images/check-icon.png);
border: 0.2em solid #008000;
}
.status-valid-active {
background-color: #008000;
}
.status-revoked {
border: 0.2em solid #ff0000;
}
.status-revoked-active {
background-color: #ff0000;
}
.status-missing {
border: 0.2em solid #daa520;
}
.status-missing-active {
background-color: #daa520;
}
.error-message-hinted {
color: red;
padding-top: 0.5em;
padding-bottom: 0.5em;
font-family: monospace;
}
/* ---- Table ---- */
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: 3px;
right: 4px;
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 ---- */
.text-widget input {
width: 250px;
}
.multivalued-widget [name=value] {
margin-bottom: 1em;
}
.multivalued-widget input {
width: 250px;
}
.multivalued-widget a[name=add] {
margin-right: 5px;
}
.textarea-widget textarea {
width: 250px;
}
.facet-content .textarea-widget textarea {
width: 400px;
}
.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;
}
.combobox-widget-input {
display: inline-block;
position: relative;
}
.combobox-widget-input input {
width: 250px;
}
.combobox-widget-input .combobox-icon {
display: inline-block;
position: absolute;
top: 0;
bottom: 0;
right: 0;
margin-top: 4px;
margin-right: 4px;
}
.combobox-widget-list {
visibility: hidden;
border: 1px solid #A0A0A0;
background: #EEEEEE;
padding: 5px;
position: absolute;
left: 0;
right: 0;
}
.combobox-widget-list input {
width: 238px;
}
.combobox-widget-list a {
padding: 0;
margin: 0;
}
.combobox-widget-list .search-icon {
position: absolute;
top: 0;
bottom: 0;
right: 0;
margin-top: 6px;
margin-right: 3px;
}
.host-adder-dialog table.fqdn {
width: 100%;
}
.host-adder-dialog th.hostname {
width: 250px;
}
.host-adder-dialog td.hostname {
vertical-align: top;
}
.host-adder-dialog td.dnszone {
vertical-align: top;
}
.host-adder-dialog input[name=hostname] {
width: 100%;
}
.dnszone-adder-dialog .section-cell-label {
width: 180px;
}
/* Info and simple pages (not main app) */
body.info-page {
background: url(images/static-background.png) repeat-x scroll left top #EDEDED;
}
.info-page p {
margin: 0.5em 0em 1em 0em;
}
.info-page h1, .info-page h2, .info-page h3 {
font-family: "Overpass", OpenSansRegular, "Liberation Sans", Arial, sans-serif;
margin-left: 0px;
font-weight: normal;
color: #555555;
}
.info-page h1 {
font-size: 2em;
}
.info-page h2 {
margin-top: 2em;
}
.info-page .container_1 {
margin-left: auto;
margin-right: auto;
width: 960px;
background: url(images/centered-background.png) no-repeat scroll 0 7em transparent;
min-height: 40em;
}
.info-page .textblock {
text-align: center;
margin-top: 6em;
font-size: 1.1em;
}
.info-page .textblockkrb {
text-align: left;
margin-top: 5em;
font-size: 1.1em;
padding-left: 3em;
padding-right: 3em;
}
.info-page .textblockkrb ul li {
list-style-type: none;
padding: .15em;
}
.required-indicator {
color: #1d85d9;
font-weight: bold;
font-size: 125%;
}
.section-cell-label .required-indicator {
float: right;
margin-right: -10px;
}
.dialog-section .section-cell-label .required-indicator {
margin-right: 0px;
}
/* Browser config page */
.info-page .browser-config h1,
.info-page .browser-config h2,
.info-page .browser-config h3,
.info-page .browser-config.textblockkrb {
text-align: center;
}
.browser-config h2 {
margin-left: 0em;
margin-top: 2em;
}
/* ---- HBAC Test ---- */
.hbac-test-header {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 30px;
line-height: normal;
}
.hbac-test-header .search-filter {
float: right;
}
.hbac-test-content {
position: absolute;
top: 30px;
left: 0;
right: 0;
bottom: 30px;
}
.hbac-test-footer {
position: absolute;
height: 29px;
left: 0;
right: 0;
bottom: 0;
}
.hbac-test-title {
font-family: 'Overpass Bold', OpenSansRegular, 'Liberation Sans', Arial, Sans-Serif;
font-size: 1.8em;
color: #3c3c3c;
text-transform: uppercase;
text-shadow: 1px 1px 0 #FFFFFF;
margin: 0;
}
.hbac-test-title,
.hbac-test-title ~ label {
margin-right: 5px !important;
}
div.facet[data-entity=hbactest] .content-table tbody {
bottom: 68px;
}
div.facet[data-entity=hbactest] .content-table tfoot td[name=external] {
background-color: #F6F6F6;
border: 1px solid #DFDFDF;
color: #333333;
height: 30px;
padding: 0 0.5em;
text-align: left;
}
div.facet[data-name=run_test][data-entity=hbactest] .hbac-test-header {
height: 100px;
}
div.facet[data-name=run_test][data-entity=hbactest] .hbac-test-content {
top: 100px;
}
.hbac-test-top-panel {
position: relative;
width: 100%;
height: 50px;
margin-bottom: 20px;
}
.hbac-test-button-panel {
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 130px;
padding: 10px;
border: 1px solid #C9C3BA;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
background-color: #F6F6F6;
}
.hbac-test-result-panel {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 151px;
padding: 10px;
border: 1px solid #C9C3BA;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
background-color: #F6F6F6;
}
.hbac-test-navigation-buttons {
float: right;
}
/* ---- DNS ---- */
.dnstype-table div[name=position] {
padding-right: 9px;
}
.dnstype-table td {
font-weight: normal;
}
/* --- SSH key store --- */
span.sshkey-status, a.sshkey-set {
padding-right: 5px;
}
/* --- Automember --- */
.automember-header {
position: absolute;
top: 0;
left: 3px;
right: 3px;
height: 52px;
}
.automember-content {
position: absolute;
top: 52px;
left: 0;
right: 0;
bottom: 0px;
}
.automember-header .default_group {
border-bottom: 1px solid #DFDFDF;
border-top: 1px solid #DFDFDF;
padding-bottom: 5px;
padding-top: 8px;
}
.automember-header .default_group h2 {
display: inline-block;
margin: 0 15px 0 20px;
}
.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;
}
/* --- Unauthorized dialog --- */
.auth-dialog {
padding: 0 2em;
}
.auth-dialog h3 {
margin: 0.5em;
}
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
/* --- Action list --- */
.facet-action-list {
position: absolute;
left: 200px;
top: 15px;
height: 24px;
vertical-align: top;
}
.facet-action-list div {
display: inline-block;
vertical-align: top;
}
.facet-action-list div[name=apply] {
margin-left: 10px;
}
.facet-action-list .btn {
line-height: 20px;
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-action-list .separator {
width: 1px;
height: 24px;
margin-left: 10px;
margin-right: 15px;
background-color: #a1a1a1;
}
/* --- Facet title states --- */
.facet-title h3 {
display: inline-block;
}
.facet-title .header-icon {
display: none;
width: 17px;
height: 17px;
}
.facet-title.enabled .header-icon {
background-image: url(images/ui-icons_222222_256x240.png);
background-position: -64px -144px;
display: inline-block;
}
.facet-title.disabled .header-icon {
background-image: url(images/ui-icons_bbbbbb_256x240.png);
background-position: -64px -128px;
display: inline-block;
}
.facet-title.disabled h3,
.facet-title.disabled h3 .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;
}
.choice-header {
font-weight: bold;
}