From c1dd294ca958b83622d953b3bbb2aaee25d93549 Mon Sep 17 00:00:00 2001 From: Ryan Thomson Date: Mon, 28 Nov 2011 12:40:59 -0800 Subject: [PATCH 1/3] This code adds a basic "account activation" webapp GUI to FreeIPA. Code heavily is based on the "migration" webapp. The purpose of this webapp is allow accounts to be activated and passwords to be reset through a web browser. 1907 --- install/activation/Makefile.am | 19 + install/activation/activation.py | 123 +++++ install/activation/error.html | 35 ++ install/activation/index.html | 55 +++ install/activation/invalid.html | 38 ++ install/activation/ipa_activation.css | 863 +++++++++++++++++++++++++++++++++ install/activation/jquery-ui.css | 572 ++++++++++++++++++++++ install/activation/success.html | 32 ++ 8 files changed, 1737 insertions(+), 0 deletions(-) create mode 100644 install/activation/Makefile.am create mode 100644 install/activation/activation.py create mode 100644 install/activation/error.html create mode 100644 install/activation/index.html create mode 100644 install/activation/invalid.html create mode 100644 install/activation/ipa_activation.css create mode 100644 install/activation/jquery-ui.css create mode 100644 install/activation/success.html diff --git a/install/activation/Makefile.am b/install/activation/Makefile.am new file mode 100644 index 0000000..1a2e59e --- /dev/null +++ b/install/activation/Makefile.am @@ -0,0 +1,19 @@ +NULL = + +appdir = $(IPA_DATA_DIR)/migration +app_DATA = \ + error.html \ + index.html \ + invalid.html \ + success.html \ + ipa_migration.css \ + migration.py \ + $(NULL) + +EXTRA_DIST = \ + $(app_DATA) \ + $(NULL) + +MAINTAINERCLEANFILES = \ + *~ \ + Makefile.in diff --git a/install/activation/activation.py b/install/activation/activation.py new file mode 100644 index 0000000..8d121bf --- /dev/null +++ b/install/activation/activation.py @@ -0,0 +1,123 @@ +# Authors: +# Pavel Zuna +# Ryan Thomson +# +# Copyright (C) 2009 Red Hat +# see file 'COPYING' for use and warranty information +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +""" +Account activation & reset script +""" + +import cgi +import errno +import glob +import ldap +import wsgiref +import logging +from ipapython.ipautil import get_ipa_basedn + +BASE_DN = '' +LDAP_URI = 'ldaps://localhost:636' + +def convert_exception(error): + """ + Convert an LDAP exception into something more readable. + """ + if not isinstance(error, ldap.TIMEOUT): + desc = error.args[0]['desc'].strip() + info = error.args[0].get('info', '').strip() + else: + desc = '' + info = '' + + return '%s (%s)' % (desc, info) + +def wsgi_redirect(start_response, loc): + start_response('302 Found', [('Location', loc)]) + return [] + +def get_ui_url(environ): + full_url = wsgiref.util.request_uri(environ) + index = full_url.rfind(environ.get('SCRIPT_NAME','')) + if index == -1: + raise ValueError('Cannot strip the script URL from full URL "%s"' % full_url) + return full_url[:index] + "/ipa/ui" + +def get_base_dn(): + """ + Retrieve LDAP server base DN. + """ + global BASE_DN + + if BASE_DN: + return BASE_DN + try: + conn = ldap.initialize(LDAP_URI) + conn.simple_bind_s('', '') + BASE_DN = get_ipa_basedn(conn) + except ldap.LDAPError, e: + logging.error('migration context search failed: %s' % e) + return '' + finally: + conn.unbind_s() + + return BASE_DN + +def activate(username, oldpwd, newpwd): + """ + Activates account by issueing ldap_passwd() + """ + base_dn = get_base_dn() + if not base_dn: + logging.error('activation unable to get base dn') + raise IOError(errno.EIO, 'Cannot get Base DN') + bind_dn = 'uid=%s,cn=users,cn=accounts,%s' % (username, base_dn) + try: + conn = ldap.initialize(LDAP_URI) + conn.simple_bind_s(bind_dn, oldpwd) + conn.passwd_s(bind_dn, oldpwd, newpwd) + except (ldap.INVALID_CREDENTIALS, ldap.UNWILLING_TO_PERFORM, + ldap.NO_SUCH_OBJECT): + logging.error('activation invalid credentials for %s: %s' % (bind_dn, convert_exception(e))) + raise IOError(errno.EPERM, 'Invalid LDAP credentials for user %s' % username) + except ldap.LDAPError: + logging.error('activation failed: %s' % convert_exception(e)) + raise IOError(errno.EIO, 'LDAP error') + finally: + conn.unbind_s() + +def application(environ, start_response): + global LDAP_URI + + if environ.get('REQUEST_METHOD', None) != 'POST': + return wsgi_redirect(start_response, 'index.html') + + form_data = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) + if not form_data.has_key('username') or not form_data.has_key('password') or not form_data.has_key('newpwd') or not form_data.has_key('confirmpwd'): + return wsgi_redirect(start_response, 'invalid.html') + + if form_data['newpwd'].value == form_data['confirmpwd'].value: + try: + activate(form_data['username'].value, form_data['password'].value, form_data['newpwd'].value) + except IOError as err: + if err.errno == errno.EPERM: + return wsgi_redirect(start_response, 'invalid.html') + if err.errno == errno.EIO: + return wsgi_redirect(start_response, 'error.html') + finally: + return wsgi_redirect(start_response, 'success.html') + else: + return wsgi_redirect(start_response, 'invalid.html') diff --git a/install/activation/error.html b/install/activation/error.html new file mode 100644 index 0000000..3516798 --- /dev/null +++ b/install/activation/error.html @@ -0,0 +1,35 @@ + + + + + IPA: Identity Policy Audit + + + + + + + +
+ +
+
+
+

We're Sorry

+
+

+ There was a problem with your request. Please, try again later. +

+

+ +

+
+
+
+ + + + + diff --git a/install/activation/index.html b/install/activation/index.html new file mode 100644 index 0000000..8a54716 --- /dev/null +++ b/install/activation/index.html @@ -0,0 +1,55 @@ + + + + + IPA: Identity Policy Audit + + + + + + + +
+ +
+

Account Activation & Reset

+

If you have been sent here by your administrator, your account requires + activation or your password must be reset.

+

Please, enter your existing credentials and the new password you've + selected to activate your account or to reset your password.

+
+
+

Login

+
+
    +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
      + +
      + + +
+
+ + + + + diff --git a/install/activation/invalid.html b/install/activation/invalid.html new file mode 100644 index 0000000..8b9e58e --- /dev/null +++ b/install/activation/invalid.html @@ -0,0 +1,38 @@ + + + + + IPA: Identity Policy Audit + + + + + + + +
+ +
+
+
+

Invalid

+
+

+ There was a problem with your request. The username and/or + password entered was incorrect or your new password did not + match in the confirmation field. Please, + try again. +

+

+ +

+
+
+
+ + + + + diff --git a/install/activation/ipa_activation.css b/install/activation/ipa_activation.css new file mode 100644 index 0000000..dfc5265 --- /dev/null +++ b/install/activation/ipa_activation.css @@ -0,0 +1,863 @@ +/* Authors: + * Pavel Zuna + * Adam Young + * Endi Sukma Dewata + * Kyle Baker + * + * Copyright (C) 2010 Red Hat +*/ + + +@font-face { + font-family: 'Overpass'; + src: url('../ui/overpass_regular-web.eot'); + src: url('../ui/overpass_regular-web.eot?#iefix') format('eot'), + url('../ui/overpass_regular-web.woff') format('woff'), + url('../ui/overpass_regular-web.ttf') format('truetype'), + url('../ui/overpass_regular-web.svg#webfontLTZe4IYH') format('svg'); + font-weight: normal; + font-style: normal; + +} + +@font-face { + font-family: 'Overpass Bold'; + src: url('../ui/overpass_bold-web.eot'); + src: url('../ui/overpass_bold-web.eot?#iefix') format('eot'), + url('../ui/overpass_bold-web.woff') format('woff'), + url('../ui/overpass_bold-web.ttf') format('truetype'), + url('../ui/overpass_bold-web.svg#webfontzAU82Ltw') format('svg'); + font-weight: bold; + font-style: normal; + +} + +body{ + background-image:url("../ui/outer-bg.png"); + background-repeat:repeat-x; + background-position:left top; + background-color:#F9F9F9; + border-width: 0; + font-family:"Liberation Sans",Arial,Sans; + font-size:11px; + margin: 0; +} + +.center-container { + margin-left: auto; + margin-right: auto; + width: 960px; +} + +.ui-widget { + font-size: 1em; +} + +.input_link { + padding: .4em 1em .4em 2em; + text-decoration: none; + position: relative; + cursor: pointer; +} + +.input_link span.ui-icon { + -moz-border-radius: 0.3em; + border: 1px solid #B8B8B8; + margin: -0.9em 0.4em 0em -0.3em; + position: absolute; + left: .2em; + top: 50%; +} + +/* ---- Header ---- */ +div.header { + background-color:#0C3B00; + width: 100%; + height: 4em; +} + +div.header a { + text-decoration: none; +} + +div.header a:link { + text-decoration: none; + color: white; +} + +div.header a:visited { + text-decoration: none; + color: white; +} + +div.header span.header-logo { + padding-left: 2em; +} + +div.header span.header-logo a img { + border: 0; +} + +div.header span.header-loggedinas { + width: 96em; + color: #fff; + display: block; + padding-left: 71em; + margin-top: -2.6em; + margin-left: auto; + margin-right: 27.6em; + width: 20em; +} + +/* ---- Navigation ---- */ +div.tabs { + overflow: auto; + width: 100%; + height: 100%; + min-height: 40em; +} + +div#content { + margin-top: 0; + position: relative; + width: 100%; +} + + +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; +} + +div.content div.content-buttons { + float: right; + margin-right: 1.5em; +} + +div.content div.content-buttons img { + border: 0; +} + +h2 { + font-family: "Overpass Bold","Liberation Sans", Arial, sans-serif; + font-size: 1.5em; + font-weight: normal; + color: #333333; + text-transform: uppercase; + margin-left: 1em; + margin-bottom: 0; + text-align: left; +} + +.section-expand{ + float:left; + -moz-border-radius: 0.3em; + background-color: -moz-linear-gradient(top, #959595, #5e5e5e); + border: 1px solid #b8b8b8; + color: #fff; + margin-right: 0.5em; + margin-top: 0.1em; +} + +hr { + background-color: #EEEEEE; + clear: both; + color: #FFFFFF; + height: 0.1em; + margin-left: 1.5em; + margin-right: 1.5em; + margin-top: 1em; +} + +.details-section { + margin-left: 4.5em; + margin-right: 1.5em; + margin-top: 1.8em; + white-space: nowrap; + padding-bottom: 1.8em; + padding-right: 1.8em; +} + +.undo { + cursor:pointer; +} + +dl.entryattrs { + clear: both; + margin-left: 1.5em; + margin-top: 1.8em; + white-space: nowrap; +} + +dl.entryattrs dt { + clear: left; + float: left; + padding-bottom: 1.8em; + padding-right: 1.8em; + text-align: right; + width: 16em; + margin: 0.5em -0.5em 0 -6em; +} + +dl.entryattrs dd { + float: left; + padding-bottom: 1.8em; +} + +dl.entryattrs dd.first { + margin-left: 0; + margin-top: 0.7em; +} + +dl.entryattrs dd.other { + clear: both; + margin-left: 10.7em; +} + +dl.entryattrs input { + margin-right: 0.5em; + margin-top: -1.2em; + min-width: 27.5em; +} + + +span.attrhint { + font-size: 8pt; + left: 5em; + margin-left: 12.5em; + position: absolute; + overflow-x: hidden; +} + + +/*Navigation */ +.tabs1 .ui-tabs-nav{ + padding-left: 2.5em; + padding-top: 2em; + margin: 0; + border: none; + background-image: url("../ui/Mainnav-background.png"); + -moz-border-radius: 0; +} + +.ui-tabs { + padding:0; +} + +#the positions for these are in the large icon image, +#and need to be specified in pixels. +.ui-icon-plus { + background-position: -16px -129px; +} + +.ui-icon-minus { + background-position: -48px -129px; +} + +.ui-icon-trash { + background-position: -176px -97px; +} + +.ui-widget-content .ui-icon { + background-image: url("../ui/ui-icons_222222_256x240.png"); + background-color: #e2e2e2; +} + +.ui-widget-content { +} + + +.ui-widget-content a { + text-decoration: none; + color: #1d85d5; + font-weight: normal; +} + +.ui-widget-header { + background: url("../ui/modal-background.png") repeat scroll 50% 50% #1f9123; + border: 1px solid #244c16; + color: #EEEEEE; + font-weight: bold; +} + +.tabs1 .ui-tabs-nav { + height: 3em; +} + +.ui-widget input, .ui-widget select, +.ui-widget textarea, .ui-widget button { + font-family: "Liberation Sans", Arial, sans-serif; + font-size: 1.3em; + margin-right: .1em; +} + +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { + -moz-border-radius: .3em; + background: -moz-linear-gradient(top, #959595, #5e5e5e); + border: 1px solid #777777; + color: #fff; + font-weight: normal; +} + +.tabs1 .ui-tabs-nav li { + -moz-border-radius: 0 !important; + background-image: url("../ui/Mainnav-offtab.png"); + margin: 0; + border-width: 0; + text-align: center; + vertical-align:baseline; + } + +.tabs1 .ui-tabs-nav li.ui-tabs-selected { + padding: 0 0; + background-image: url("../ui/Mainnav-ontab.png"); + text-align: center; + margin: 0; +} + +.tabs1 .ui-tabs-nav li a{ + -moz-border-radius: 0 !important; + font-family: "Overpass Bold", "Liberation Sans", Arial, Sans; + width:5.5em; + padding: none; + color: #7E7E7E; + margin: 0 auto; + text-align:center; + font-size:1.5em; +} + + +.tabs1 .ui-tabs-nav li > a:link, span.main-nav-off > a:visited{ + color: #7E7E7E; +} + +.tabs1 .ui-tabs-nav li.ui-tabs-selected a{ + color: #3D752A; +} + +.tabs1 .ui-tabs-panel { + display: block; + border-width: 0; + padding: 0 0 0 0; + background: none; + overflow-x: hidden; +} + +.tabs2 .ui-tabs-nav { + padding: 0.3em 6em 0 4em; + margin: 0; + height: 2.4em; + background-image: url("../ui/Subnav-background.png"); +} + +.tabs2 .ui-tabs-nav li { + width:auto; + padding-left: 1em; + margin: 0; + background: #326122 !important; + color: white; +} + +.tabs2 .ui-tabs-nav li.ui-tabs-selected { + padding-left: 1em; + height: 1em; + background: #326122 !important; +} + + +.tabs2 .ui-tabs-nav li a{ + width:auto; + padding: 0.4em 0.6em ; + -moz-border-radius: 2em !important; + border-radius: 2em !important; + color: white; + font-size: 1em; + font-family: "Liberation Sans", Arial, Sans; +} + +.tabs2 .ui-tabs-nav li > a:link, span.main-nav-off > a:visited{ + color:white; +} + + +.tabs2 .ui-tabs-nav li a:hover{ + background: none repeat scroll 0 0 #1C3612; +} + +.tabs2 .ui-tabs-nav li.ui-tabs-selected a{ + background: none repeat scroll 0 0 #1C3612; + color: white; + +} + +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; +} + + + +/* Entity */ + +.entity-container{ + position: relative; + left: 22em; + width: 80%; + margin: 0.06em; + padding: 0.06em; + background: #e8e8e8; +} + +.action-panel { + position: fixed; + height: 33em; + left: auto; + border: none; + float: none; + margin-top: 6.3em; + margin-left: -19.5em; + margin-right: 0; + padding-left: 0; + position: fixed; + width: 18em; + background-image:url("../ui/panel-background.png"); + background-repeat:no-repeat; + background-position:right; +} + +.action-panel h3{ + font-family: "Overpass Bold", "Liberation Sans", Arial, sans-serif; + color: #333333; + margin: 0; + background: #EEEEEE; + padding: .5em; + border-right: 1px solid #dfdfdf; + text-transform: uppercase; + font-size: 1.2em; +} + +.action-panel ul { + list-style-type:none; + padding-left: .5em; +} + +.action-panel h3{ + margin: 0; + background: #e8e8e8; +} + +.action-panel li { + font-family: "Overpass Bold", "Liberation Sans", Arial, sans-serif; + font-size: 1.1em; + color: #1d85d5; + list-style-type: none; + min-height: 2.1em; + padding: none; +} + +.action-panel li.search-facet { + font-family: "Overpass Bold", "Liberation Sans", Arial, Sans; + color: #1D85D5; + cursor: pointer; + text-transform: uppercase; + font-size: 1.2em; +} + +.action-panel li.entity-facet { + font-family: "Liberation Sans",Arial,sans-serif; + color: #1d85d5; + cursor: pointer; + margin-left:1.2em; + text-transform: none; +} + +.action-panel li.entity-facet-selected { + font-family: "Overpass Bold", "Liberation Sans", Arial, Sans; + color: black; + text-transform: uppercase; + cursor: pointer; +} + +.action-panel li.entity-facet-disabled { + font-family: "Liberation Sans",Arial,sans-serif; + color: gray; + cursor: default; + text-decoration: none; + text-transform: none; + +} + +.action-panel li.entity-facet-relation-label { + font-family: "Overpass Bold", "Liberation Sans", Arial, Sans; + color: #8a8a8a; + cursor: default; + text-transform: uppercase; + margin-left:1.8em; +} + +.action-panel li.facet-group-member { + margin-left: 2.9em +} + + +.action-button { + background: none; + background-image:none; + font-family: "Liberation Sans", Arial, sans-serif; + font-size: 0.9em; +} + +.action-controls { + position: relative; + display:inline; +} + +.client { + font-size: 10px; + margin-top: 0.4em; + float: left; + min-width: 70em; +} + +/* Activation */ + +body#header-bg { + background: url("../ui/Static-Background.png") repeat-x scroll left top #EDEDED; +} + +.container_1 { + margin-left: auto; + margin-right: auto; + width: 960px; + background: url("../ui/centered-bg.png") no-repeat scroll 0 7em transparent; + min-height: 40em; +} + +#formwindow { + -moz-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: 500px; +} + +.formcontent { + padding: 0 1em 2em 2em; +} + +#error-box { + -moz-border-radius: 0.3em 0.3em 0.3em 0.3em; + background-color: #FFEBE8; + border: 1px solid #DD3C10; + margin: 0 2em 1em; + padding: 1em 1em 0 0; +} + +.# { + background: url("../ui/ipalogo.png") no-repeat scroll left top transparent; + border: none; + float: left; + height: 36px; + width: 205px; +} + +#formwindow h4 { + background-color: #F0F0F0; + font-size: 1.6em; + padding: 18px 15px 14px 22px; + text-transform: uppercase; + margin-top: 0; +} + +#login li { + padding-bottom: 15px; + text-align: right; + width: 420px; + list-style-type: none; +} + +#login li input { + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2) inset; + margin-left: 15px; + padding: 2px 10px; + width: 248px; +} + +#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: 468px; +} + +.formbutton input { + float: right; + margin: 1em 1em 1em 0; + -moz-border-radius: 0.3em 0.3em 0.3em 0.3em; + background: -moz-linear-gradient(center top, #959595, #5e5e5e) repeat scroll 0 0 transparent; + border: 1px solid #777777; + color: #ffffff; + font-weight: normal; + padding: 0.5em 0.8em; +} + +.textblock { + text-align: center; + margin-top: 6em; + font-size: 1.1em; +} + +.textblockkrb { + text-align: left; + margin-top: 5em; + font-size: 1.1em; + padding-left: 3em; + +} + +.textblockkrb ul li { + list-style-type: none; + padding: .15em; + +} + + +h3 { + color: #333333; + font-family: "Overpass Bold", "Liberation Sans", Arial, sans-serif; + font-size: 1.5em; + font-weight: normal; + text-transform: uppercase; +} + +h5 { + color: #333333; + font-family: "Overpass Bold", "Liberation Sans", Arial, sans-serif; + font-size: 1em; + font-weight: normal; + text-transform: uppercase; + margin-bottom: 3em; + margin-left: 5em; + margin-top: -3em; + +} + + + +/* Search */ + +.search-controls { + -moz-border-radius: .7em .7em 0 0; + height:2.5em; + background: -moz-linear-gradient(top, #eeeeee, #dfdfdf); + position: relative; + padding: 1em 1.5em; + margin-top: 1.5em; +} + +.search-table > a:link,a:visted{ + color:black; +} + +.search-table{ + padding: 0; + width:100%; + border: none; +} + +.search-table td{ + padding-left: 0.5em; +} + +.search-table th{ + padding-left: 0.5em; + background-color:#f6f6f6; + color:#333333; + text-align: left; + border: 1px solid #dfdfdf; +} + +.search-table tfoot tr td span{ + border-top: 1px solid #dfdfdf; + padding: 0.9em 0 0 1em; + display: block; + margin-top: 2em; +} + +.search-table tr:nth-child(even){ +# background-color:#CCC; +} + +.search-table tr:nth-child(odd){ +# background-color:#FFF; +} + +.entity-views{ + list-style-type:none; +} + +.entity-views li { + display:inline; + cursor: pointer; + padding: 0.4em; +} + +.strikethrough { text-decoration: line-through; } + + +.key-status-valid { + list-style-type: circle; + color: #008000; +} + +.key-status-missing { + list-style-type: circle; + color: #daa520; +} + +.key-status-active { + list-style-type: disc; +} + +.certificate-status-valid { + list-style-type: circle; + color: #008000; +} + +.certificate-status-revoked { + list-style-type: circle; + color: #ff0000; +} + +.certificate-status-missing { + list-style-type: circle; + color: #daa520; +} + +.certificate-status-active { + list-style-type: disc; +} + +dl.modal { + clear: both; + margin-left: 1em; + margin-top: 1em; + white-space: nowrap; +} + +dl.modal dt { + clear: left; + float: left; + padding-bottom: 0; + padding-right: 0; + text-align: right; + width: 10em; +} + +dl.modal dd { + float: left; + padding-bottom: 0; + margin-left: 0.8em; +} + + + +.ui-widget-content { +border:0; +} + +table.scrollable thead { + display: block; +} + +table.scrollable tbody { + display: block; + overflow: auto; +} + +.adder-dialog-filter { + height: 2.5em; +} + +.adder-dialog-results { + position: relative; + height: 20.0em; +} + +.adder-dialog-available { + border: 1px solid black; + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 25.0em; +} + +.adder-dialog-buttons { + position: absolute; + top: 1.5em; + left: 25em; + right: 25; + bottom: 0; + text-align: center; +} + +.adder-dialog-selected { + border: 1px solid black; + position: absolute; + top: 0; + right: 0; + bottom: 0; + width: 25em; +} + +.adder-dialog-internal { + border: 1px solid black; + position: absolute; + top: 0; + left: 0; + bottom: 4.5em; + width: 25em; +} + +.adder-dialog-external { + border: 1px solid black; + position: absolute; + left: 0; + bottom: 0; + width: 25em; + height: 4em; +} diff --git a/install/activation/jquery-ui.css b/install/activation/jquery-ui.css new file mode 100644 index 0000000..01c3ec9 --- /dev/null +++ b/install/activation/jquery-ui.css @@ -0,0 +1,572 @@ +/* + * jQuery UI CSS Framework @VERSION + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* + * jQuery UI CSS Framework @VERSION + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,%20Arial,%20sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=0px&bgColorHeader=333333&bgTextureHeader=14_loop.png&bgImgOpacityHeader=8&borderColorHeader=a3a3a3&fcHeader=eeeeee&iconColorHeader=bbbbbb&bgColorContent=f9f9f9&bgTextureContent=04_highlight_hard.png&bgImgOpacityContent=100&borderColorContent=cccccc&fcContent=222222&iconColorContent=222222&bgColorDefault=111111&bgTextureDefault=02_glass.png&bgImgOpacityDefault=40&borderColorDefault=777777&fcDefault=e3e3e3&iconColorDefault=ededed&bgColorHover=1c1c1c&bgTextureHover=02_glass.png&bgImgOpacityHover=55&borderColorHover=000000&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=ffffff&bgTextureActive=01_flat.png&bgImgOpacityActive=65&borderColorActive=cccccc&fcActive=222222&iconColorActive=222222&bgColorHighlight=ffeb80&bgTextureHighlight=06_inset_hard.png&bgImgOpacityHighlight=55&borderColorHighlight=ffde2e&fcHighlight=363636&iconColorHighlight=4ca300&bgColorError=cd0a0a&bgTextureError=06_inset_hard.png&bgImgOpacityError=45&borderColorError=9e0505&fcError=ffffff&iconColorError=ffcf29&bgColorOverlay=aaaaaa&bgTextureOverlay=04_highlight_hard.png&bgImgOpacityOverlay=40&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=03_highlight_soft.png&bgImgOpacityShadow=50&opacityShadow=20&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana, Arial, sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana, Arial, sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #cccccc; background: #f9f9f9 url(ui-bg_highlight-hard_100_f9f9f9_1x100.png) 50% top repeat-x; color: #222222; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border: 1px solid #a3a3a3; background: #333333 url(ui-bg_loop_8_333333_21x21.png) 50% 50% repeat; color: #eeeeee; font-weight: bold; } +.ui-widget-header a { color: #eeeeee; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #777777; background: #111111 url(ui-bg_glass_40_111111_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #e3e3e3; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #e3e3e3; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #000000; background: #1c1c1c url(ui-bg_glass_55_1c1c1c_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; } +.ui-state-hover a, .ui-state-hover a:hover { color: #ffffff; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #cccccc; background: #ffffff url(ui-bg_flat_65_ffffff_40x100.png) 50% 50% repeat-x; font-weight: normal; color: #222222; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #222222; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #ffde2e; background: #ffeb80 url(ui-bg_inset-hard_55_ffeb80_1x100.png) 50% bottom repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #9e0505; background: #cd0a0a url(ui-bg_inset-hard_45_cd0a0a_1x100.png) 50% bottom repeat-x; color: #ffffff; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(ui-icons_bbbbbb_256x240.png); } +.ui-state-default .ui-icon { background-image: url(ui-icons_ededed_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(ui-icons_ffffff_256x240.png); } +.ui-state-active .ui-icon {background-image: url(ui-icons_222222_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(ui-icons_4ca300_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(ui-icons_ffcf29_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-tl { -moz-border-radius-topleft: 0px; -webkit-border-top-left-radius: 0px; border-top-left-radius: 0px; } +.ui-corner-tr { -moz-border-radius-topright: 0px; -webkit-border-top-right-radius: 0px; border-top-right-radius: 0px; } +.ui-corner-bl { -moz-border-radius-bottomleft: 0px; -webkit-border-bottom-left-radius: 0px; border-bottom-left-radius: 0px; } +.ui-corner-br { -moz-border-radius-bottomright: 0px; -webkit-border-bottom-right-radius: 0px; border-bottom-right-radius: 0px; } +.ui-corner-top { -moz-border-radius-topleft: 0px; -webkit-border-top-left-radius: 0px; border-top-left-radius: 0px; -moz-border-radius-topright: 0px; -webkit-border-top-right-radius: 0px; border-top-right-radius: 0px; } +.ui-corner-bottom { -moz-border-radius-bottomleft: 0px; -webkit-border-bottom-left-radius: 0px; border-bottom-left-radius: 0px; -moz-border-radius-bottomright: 0px; -webkit-border-bottom-right-radius: 0px; border-bottom-right-radius: 0px; } +.ui-corner-right { -moz-border-radius-topright: 0px; -webkit-border-top-right-radius: 0px; border-top-right-radius: 0px; -moz-border-radius-bottomright: 0px; -webkit-border-bottom-right-radius: 0px; border-bottom-right-radius: 0px; } +.ui-corner-left { -moz-border-radius-topleft: 0px; -webkit-border-top-left-radius: 0px; border-top-left-radius: 0px; -moz-border-radius-bottomleft: 0px; -webkit-border-bottom-left-radius: 0px; border-bottom-left-radius: 0px; } +.ui-corner-all { -moz-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(ui-bg_highlight-hard_40_aaaaaa_1x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(ui-bg_highlight-soft_50_aaaaaa_1x100.png) 50% top repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* + * jQuery UI Resizable @VERSION + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizable#theming + */ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* + * jQuery UI Selectable @VERSION + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectable#theming + */ +.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } +/* + * jQuery UI Accordion @VERSION + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Accordion#theming + */ +/* IE/Win - Fix animation bug - #4615 */ +.ui-accordion { width: 100%; } +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; }/* + * jQuery UI Autocomplete @VERSION + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete#theming + */ +.ui-autocomplete { position: absolute; cursor: default; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* + * jQuery UI Menu @VERSION + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Menu#theming + */ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; + float: left; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/* + * jQuery UI Button @VERSION + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Button#theming + */ +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ +/* + * jQuery UI Dialog @VERSION + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog#theming + */ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } +.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* + * jQuery UI Slider @VERSION + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* + * jQuery UI Tabs @VERSION + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs#theming + */ +.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/* + * jQuery UI Datepicker @VERSION + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Datepicker#theming + */ +.ui-datepicker { width: 17em; padding: .2em .2em 0; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* + * jQuery UI Progressbar @VERSION + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar#theming + */ +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/install/activation/success.html b/install/activation/success.html new file mode 100644 index 0000000..a7485d1 --- /dev/null +++ b/install/activation/success.html @@ -0,0 +1,32 @@ + + + + + IPA: Identity Policy Audit + + + + + + + +
+ +
+
+
+

Success!

+
+

+ Your account has been successfully activated. +

+
+
+
+ + + + + -- 1.7.7 From 4b4df9b3989ba4e57dd785600715f1bac441f232 Mon Sep 17 00:00:00 2001 From: Ryan Thomson Date: Mon, 28 Nov 2011 12:49:06 -0800 Subject: [PATCH 2/3] Added apache configuration for "activation" UI to ipa.conf 1907 --- ...dds-a-basic-account-activation-webapp-GUI.patch | 1817 ++++++++++++++++++++ install/conf/ipa.conf | 10 + 2 files changed, 1827 insertions(+), 0 deletions(-) create mode 100644 0001-This-code-adds-a-basic-account-activation-webapp-GUI.patch diff --git a/0001-This-code-adds-a-basic-account-activation-webapp-GUI.patch b/0001-This-code-adds-a-basic-account-activation-webapp-GUI.patch new file mode 100644 index 0000000..affaa66 --- /dev/null +++ b/0001-This-code-adds-a-basic-account-activation-webapp-GUI.patch @@ -0,0 +1,1817 @@ +From c1dd294ca958b83622d953b3bbb2aaee25d93549 Mon Sep 17 00:00:00 2001 +From: Ryan Thomson +Date: Mon, 28 Nov 2011 12:40:59 -0800 +Subject: [PATCH] This code adds a basic "account activation" webapp GUI to + FreeIPA. Code heavily is based on the "migration" webapp. + The purpose of this webapp is allow accounts to be + activated and passwords to be reset through a web browser. + +1907 +--- + install/activation/Makefile.am | 19 + + install/activation/activation.py | 123 +++++ + install/activation/error.html | 35 ++ + install/activation/index.html | 55 +++ + install/activation/invalid.html | 38 ++ + install/activation/ipa_activation.css | 863 +++++++++++++++++++++++++++++++++ + install/activation/jquery-ui.css | 572 ++++++++++++++++++++++ + install/activation/success.html | 32 ++ + 8 files changed, 1737 insertions(+), 0 deletions(-) + create mode 100644 install/activation/Makefile.am + create mode 100644 install/activation/activation.py + create mode 100644 install/activation/error.html + create mode 100644 install/activation/index.html + create mode 100644 install/activation/invalid.html + create mode 100644 install/activation/ipa_activation.css + create mode 100644 install/activation/jquery-ui.css + create mode 100644 install/activation/success.html + +diff --git a/install/activation/Makefile.am b/install/activation/Makefile.am +new file mode 100644 +index 0000000..1a2e59e +--- /dev/null ++++ b/install/activation/Makefile.am +@@ -0,0 +1,19 @@ ++NULL = ++ ++appdir = $(IPA_DATA_DIR)/migration ++app_DATA = \ ++ error.html \ ++ index.html \ ++ invalid.html \ ++ success.html \ ++ ipa_migration.css \ ++ migration.py \ ++ $(NULL) ++ ++EXTRA_DIST = \ ++ $(app_DATA) \ ++ $(NULL) ++ ++MAINTAINERCLEANFILES = \ ++ *~ \ ++ Makefile.in +diff --git a/install/activation/activation.py b/install/activation/activation.py +new file mode 100644 +index 0000000..8d121bf +--- /dev/null ++++ b/install/activation/activation.py +@@ -0,0 +1,123 @@ ++# Authors: ++# Pavel Zuna ++# Ryan Thomson ++# ++# Copyright (C) 2009 Red Hat ++# see file 'COPYING' for use and warranty information ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++""" ++Account activation & reset script ++""" ++ ++import cgi ++import errno ++import glob ++import ldap ++import wsgiref ++import logging ++from ipapython.ipautil import get_ipa_basedn ++ ++BASE_DN = '' ++LDAP_URI = 'ldaps://localhost:636' ++ ++def convert_exception(error): ++ """ ++ Convert an LDAP exception into something more readable. ++ """ ++ if not isinstance(error, ldap.TIMEOUT): ++ desc = error.args[0]['desc'].strip() ++ info = error.args[0].get('info', '').strip() ++ else: ++ desc = '' ++ info = '' ++ ++ return '%s (%s)' % (desc, info) ++ ++def wsgi_redirect(start_response, loc): ++ start_response('302 Found', [('Location', loc)]) ++ return [] ++ ++def get_ui_url(environ): ++ full_url = wsgiref.util.request_uri(environ) ++ index = full_url.rfind(environ.get('SCRIPT_NAME','')) ++ if index == -1: ++ raise ValueError('Cannot strip the script URL from full URL "%s"' % full_url) ++ return full_url[:index] + "/ipa/ui" ++ ++def get_base_dn(): ++ """ ++ Retrieve LDAP server base DN. ++ """ ++ global BASE_DN ++ ++ if BASE_DN: ++ return BASE_DN ++ try: ++ conn = ldap.initialize(LDAP_URI) ++ conn.simple_bind_s('', '') ++ BASE_DN = get_ipa_basedn(conn) ++ except ldap.LDAPError, e: ++ logging.error('migration context search failed: %s' % e) ++ return '' ++ finally: ++ conn.unbind_s() ++ ++ return BASE_DN ++ ++def activate(username, oldpwd, newpwd): ++ """ ++ Activates account by issueing ldap_passwd() ++ """ ++ base_dn = get_base_dn() ++ if not base_dn: ++ logging.error('activation unable to get base dn') ++ raise IOError(errno.EIO, 'Cannot get Base DN') ++ bind_dn = 'uid=%s,cn=users,cn=accounts,%s' % (username, base_dn) ++ try: ++ conn = ldap.initialize(LDAP_URI) ++ conn.simple_bind_s(bind_dn, oldpwd) ++ conn.passwd_s(bind_dn, oldpwd, newpwd) ++ except (ldap.INVALID_CREDENTIALS, ldap.UNWILLING_TO_PERFORM, ++ ldap.NO_SUCH_OBJECT): ++ logging.error('activation invalid credentials for %s: %s' % (bind_dn, convert_exception(e))) ++ raise IOError(errno.EPERM, 'Invalid LDAP credentials for user %s' % username) ++ except ldap.LDAPError: ++ logging.error('activation failed: %s' % convert_exception(e)) ++ raise IOError(errno.EIO, 'LDAP error') ++ finally: ++ conn.unbind_s() ++ ++def application(environ, start_response): ++ global LDAP_URI ++ ++ if environ.get('REQUEST_METHOD', None) != 'POST': ++ return wsgi_redirect(start_response, 'index.html') ++ ++ form_data = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) ++ if not form_data.has_key('username') or not form_data.has_key('password') or not form_data.has_key('newpwd') or not form_data.has_key('confirmpwd'): ++ return wsgi_redirect(start_response, 'invalid.html') ++ ++ if form_data['newpwd'].value == form_data['confirmpwd'].value: ++ try: ++ activate(form_data['username'].value, form_data['password'].value, form_data['newpwd'].value) ++ except IOError as err: ++ if err.errno == errno.EPERM: ++ return wsgi_redirect(start_response, 'invalid.html') ++ if err.errno == errno.EIO: ++ return wsgi_redirect(start_response, 'error.html') ++ finally: ++ return wsgi_redirect(start_response, 'success.html') ++ else: ++ return wsgi_redirect(start_response, 'invalid.html') +diff --git a/install/activation/error.html b/install/activation/error.html +new file mode 100644 +index 0000000..3516798 +--- /dev/null ++++ b/install/activation/error.html +@@ -0,0 +1,35 @@ ++ ++ ++ ++ ++ IPA: Identity Policy Audit ++ ++ ++ ++ ++ ++ ++ ++
++ ++
++
++
++

We're Sorry

++
++

++ There was a problem with your request. Please, try again later. ++

++

++ ++

++
++
++
++ ++ ++ ++ ++ +diff --git a/install/activation/index.html b/install/activation/index.html +new file mode 100644 +index 0000000..8a54716 +--- /dev/null ++++ b/install/activation/index.html +@@ -0,0 +1,55 @@ ++ ++ ++ ++ ++ IPA: Identity Policy Audit ++ ++ ++ ++ ++ ++ ++ ++
++ ++
++

Account Activation & Reset

++

If you have been sent here by your administrator, your account requires ++ activation or your password must be reset.

++

Please, enter your existing credentials and the new password you've ++ selected to activate your account or to reset your password.

++
++
++

Login

++
++
    ++
  • ++ ++ ++
  • ++
  • ++ ++ ++
  • ++
  • ++ ++ ++
  • ++
  • ++ ++ ++
  • ++
      ++ ++
      ++ ++ ++
++
++ ++ ++ ++ ++ +diff --git a/install/activation/invalid.html b/install/activation/invalid.html +new file mode 100644 +index 0000000..8b9e58e +--- /dev/null ++++ b/install/activation/invalid.html +@@ -0,0 +1,38 @@ ++ ++ ++ ++ ++ IPA: Identity Policy Audit ++ ++ ++ ++ ++ ++ ++ ++
++ ++
++
++
++

Invalid

++
++

++ There was a problem with your request. The username and/or ++ password entered was incorrect or your new password did not ++ match in the confirmation field. Please, ++ try again. ++

++

++ ++

++
++
++
++ ++ ++ ++ ++ +diff --git a/install/activation/ipa_activation.css b/install/activation/ipa_activation.css +new file mode 100644 +index 0000000..dfc5265 +--- /dev/null ++++ b/install/activation/ipa_activation.css +@@ -0,0 +1,863 @@ ++/* Authors: ++ * Pavel Zuna ++ * Adam Young ++ * Endi Sukma Dewata ++ * Kyle Baker ++ * ++ * Copyright (C) 2010 Red Hat ++*/ ++ ++ ++@font-face { ++ font-family: 'Overpass'; ++ src: url('../ui/overpass_regular-web.eot'); ++ src: url('../ui/overpass_regular-web.eot?#iefix') format('eot'), ++ url('../ui/overpass_regular-web.woff') format('woff'), ++ url('../ui/overpass_regular-web.ttf') format('truetype'), ++ url('../ui/overpass_regular-web.svg#webfontLTZe4IYH') format('svg'); ++ font-weight: normal; ++ font-style: normal; ++ ++} ++ ++@font-face { ++ font-family: 'Overpass Bold'; ++ src: url('../ui/overpass_bold-web.eot'); ++ src: url('../ui/overpass_bold-web.eot?#iefix') format('eot'), ++ url('../ui/overpass_bold-web.woff') format('woff'), ++ url('../ui/overpass_bold-web.ttf') format('truetype'), ++ url('../ui/overpass_bold-web.svg#webfontzAU82Ltw') format('svg'); ++ font-weight: bold; ++ font-style: normal; ++ ++} ++ ++body{ ++ background-image:url("../ui/outer-bg.png"); ++ background-repeat:repeat-x; ++ background-position:left top; ++ background-color:#F9F9F9; ++ border-width: 0; ++ font-family:"Liberation Sans",Arial,Sans; ++ font-size:11px; ++ margin: 0; ++} ++ ++.center-container { ++ margin-left: auto; ++ margin-right: auto; ++ width: 960px; ++} ++ ++.ui-widget { ++ font-size: 1em; ++} ++ ++.input_link { ++ padding: .4em 1em .4em 2em; ++ text-decoration: none; ++ position: relative; ++ cursor: pointer; ++} ++ ++.input_link span.ui-icon { ++ -moz-border-radius: 0.3em; ++ border: 1px solid #B8B8B8; ++ margin: -0.9em 0.4em 0em -0.3em; ++ position: absolute; ++ left: .2em; ++ top: 50%; ++} ++ ++/* ---- Header ---- */ ++div.header { ++ background-color:#0C3B00; ++ width: 100%; ++ height: 4em; ++} ++ ++div.header a { ++ text-decoration: none; ++} ++ ++div.header a:link { ++ text-decoration: none; ++ color: white; ++} ++ ++div.header a:visited { ++ text-decoration: none; ++ color: white; ++} ++ ++div.header span.header-logo { ++ padding-left: 2em; ++} ++ ++div.header span.header-logo a img { ++ border: 0; ++} ++ ++div.header span.header-loggedinas { ++ width: 96em; ++ color: #fff; ++ display: block; ++ padding-left: 71em; ++ margin-top: -2.6em; ++ margin-left: auto; ++ margin-right: 27.6em; ++ width: 20em; ++} ++ ++/* ---- Navigation ---- */ ++div.tabs { ++ overflow: auto; ++ width: 100%; ++ height: 100%; ++ min-height: 40em; ++} ++ ++div#content { ++ margin-top: 0; ++ position: relative; ++ width: 100%; ++} ++ ++ ++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; ++} ++ ++div.content div.content-buttons { ++ float: right; ++ margin-right: 1.5em; ++} ++ ++div.content div.content-buttons img { ++ border: 0; ++} ++ ++h2 { ++ font-family: "Overpass Bold","Liberation Sans", Arial, sans-serif; ++ font-size: 1.5em; ++ font-weight: normal; ++ color: #333333; ++ text-transform: uppercase; ++ margin-left: 1em; ++ margin-bottom: 0; ++ text-align: left; ++} ++ ++.section-expand{ ++ float:left; ++ -moz-border-radius: 0.3em; ++ background-color: -moz-linear-gradient(top, #959595, #5e5e5e); ++ border: 1px solid #b8b8b8; ++ color: #fff; ++ margin-right: 0.5em; ++ margin-top: 0.1em; ++} ++ ++hr { ++ background-color: #EEEEEE; ++ clear: both; ++ color: #FFFFFF; ++ height: 0.1em; ++ margin-left: 1.5em; ++ margin-right: 1.5em; ++ margin-top: 1em; ++} ++ ++.details-section { ++ margin-left: 4.5em; ++ margin-right: 1.5em; ++ margin-top: 1.8em; ++ white-space: nowrap; ++ padding-bottom: 1.8em; ++ padding-right: 1.8em; ++} ++ ++.undo { ++ cursor:pointer; ++} ++ ++dl.entryattrs { ++ clear: both; ++ margin-left: 1.5em; ++ margin-top: 1.8em; ++ white-space: nowrap; ++} ++ ++dl.entryattrs dt { ++ clear: left; ++ float: left; ++ padding-bottom: 1.8em; ++ padding-right: 1.8em; ++ text-align: right; ++ width: 16em; ++ margin: 0.5em -0.5em 0 -6em; ++} ++ ++dl.entryattrs dd { ++ float: left; ++ padding-bottom: 1.8em; ++} ++ ++dl.entryattrs dd.first { ++ margin-left: 0; ++ margin-top: 0.7em; ++} ++ ++dl.entryattrs dd.other { ++ clear: both; ++ margin-left: 10.7em; ++} ++ ++dl.entryattrs input { ++ margin-right: 0.5em; ++ margin-top: -1.2em; ++ min-width: 27.5em; ++} ++ ++ ++span.attrhint { ++ font-size: 8pt; ++ left: 5em; ++ margin-left: 12.5em; ++ position: absolute; ++ overflow-x: hidden; ++} ++ ++ ++/*Navigation */ ++.tabs1 .ui-tabs-nav{ ++ padding-left: 2.5em; ++ padding-top: 2em; ++ margin: 0; ++ border: none; ++ background-image: url("../ui/Mainnav-background.png"); ++ -moz-border-radius: 0; ++} ++ ++.ui-tabs { ++ padding:0; ++} ++ ++#the positions for these are in the large icon image, ++#and need to be specified in pixels. ++.ui-icon-plus { ++ background-position: -16px -129px; ++} ++ ++.ui-icon-minus { ++ background-position: -48px -129px; ++} ++ ++.ui-icon-trash { ++ background-position: -176px -97px; ++} ++ ++.ui-widget-content .ui-icon { ++ background-image: url("../ui/ui-icons_222222_256x240.png"); ++ background-color: #e2e2e2; ++} ++ ++.ui-widget-content { ++} ++ ++ ++.ui-widget-content a { ++ text-decoration: none; ++ color: #1d85d5; ++ font-weight: normal; ++} ++ ++.ui-widget-header { ++ background: url("../ui/modal-background.png") repeat scroll 50% 50% #1f9123; ++ border: 1px solid #244c16; ++ color: #EEEEEE; ++ font-weight: bold; ++} ++ ++.tabs1 .ui-tabs-nav { ++ height: 3em; ++} ++ ++.ui-widget input, .ui-widget select, ++.ui-widget textarea, .ui-widget button { ++ font-family: "Liberation Sans", Arial, sans-serif; ++ font-size: 1.3em; ++ margin-right: .1em; ++} ++ ++.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { ++ -moz-border-radius: .3em; ++ background: -moz-linear-gradient(top, #959595, #5e5e5e); ++ border: 1px solid #777777; ++ color: #fff; ++ font-weight: normal; ++} ++ ++.tabs1 .ui-tabs-nav li { ++ -moz-border-radius: 0 !important; ++ background-image: url("../ui/Mainnav-offtab.png"); ++ margin: 0; ++ border-width: 0; ++ text-align: center; ++ vertical-align:baseline; ++ } ++ ++.tabs1 .ui-tabs-nav li.ui-tabs-selected { ++ padding: 0 0; ++ background-image: url("../ui/Mainnav-ontab.png"); ++ text-align: center; ++ margin: 0; ++} ++ ++.tabs1 .ui-tabs-nav li a{ ++ -moz-border-radius: 0 !important; ++ font-family: "Overpass Bold", "Liberation Sans", Arial, Sans; ++ width:5.5em; ++ padding: none; ++ color: #7E7E7E; ++ margin: 0 auto; ++ text-align:center; ++ font-size:1.5em; ++} ++ ++ ++.tabs1 .ui-tabs-nav li > a:link, span.main-nav-off > a:visited{ ++ color: #7E7E7E; ++} ++ ++.tabs1 .ui-tabs-nav li.ui-tabs-selected a{ ++ color: #3D752A; ++} ++ ++.tabs1 .ui-tabs-panel { ++ display: block; ++ border-width: 0; ++ padding: 0 0 0 0; ++ background: none; ++ overflow-x: hidden; ++} ++ ++.tabs2 .ui-tabs-nav { ++ padding: 0.3em 6em 0 4em; ++ margin: 0; ++ height: 2.4em; ++ background-image: url("../ui/Subnav-background.png"); ++} ++ ++.tabs2 .ui-tabs-nav li { ++ width:auto; ++ padding-left: 1em; ++ margin: 0; ++ background: #326122 !important; ++ color: white; ++} ++ ++.tabs2 .ui-tabs-nav li.ui-tabs-selected { ++ padding-left: 1em; ++ height: 1em; ++ background: #326122 !important; ++} ++ ++ ++.tabs2 .ui-tabs-nav li a{ ++ width:auto; ++ padding: 0.4em 0.6em ; ++ -moz-border-radius: 2em !important; ++ border-radius: 2em !important; ++ color: white; ++ font-size: 1em; ++ font-family: "Liberation Sans", Arial, Sans; ++} ++ ++.tabs2 .ui-tabs-nav li > a:link, span.main-nav-off > a:visited{ ++ color:white; ++} ++ ++ ++.tabs2 .ui-tabs-nav li a:hover{ ++ background: none repeat scroll 0 0 #1C3612; ++} ++ ++.tabs2 .ui-tabs-nav li.ui-tabs-selected a{ ++ background: none repeat scroll 0 0 #1C3612; ++ color: white; ++ ++} ++ ++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; ++} ++ ++ ++ ++/* Entity */ ++ ++.entity-container{ ++ position: relative; ++ left: 22em; ++ width: 80%; ++ margin: 0.06em; ++ padding: 0.06em; ++ background: #e8e8e8; ++} ++ ++.action-panel { ++ position: fixed; ++ height: 33em; ++ left: auto; ++ border: none; ++ float: none; ++ margin-top: 6.3em; ++ margin-left: -19.5em; ++ margin-right: 0; ++ padding-left: 0; ++ position: fixed; ++ width: 18em; ++ background-image:url("../ui/panel-background.png"); ++ background-repeat:no-repeat; ++ background-position:right; ++} ++ ++.action-panel h3{ ++ font-family: "Overpass Bold", "Liberation Sans", Arial, sans-serif; ++ color: #333333; ++ margin: 0; ++ background: #EEEEEE; ++ padding: .5em; ++ border-right: 1px solid #dfdfdf; ++ text-transform: uppercase; ++ font-size: 1.2em; ++} ++ ++.action-panel ul { ++ list-style-type:none; ++ padding-left: .5em; ++} ++ ++.action-panel h3{ ++ margin: 0; ++ background: #e8e8e8; ++} ++ ++.action-panel li { ++ font-family: "Overpass Bold", "Liberation Sans", Arial, sans-serif; ++ font-size: 1.1em; ++ color: #1d85d5; ++ list-style-type: none; ++ min-height: 2.1em; ++ padding: none; ++} ++ ++.action-panel li.search-facet { ++ font-family: "Overpass Bold", "Liberation Sans", Arial, Sans; ++ color: #1D85D5; ++ cursor: pointer; ++ text-transform: uppercase; ++ font-size: 1.2em; ++} ++ ++.action-panel li.entity-facet { ++ font-family: "Liberation Sans",Arial,sans-serif; ++ color: #1d85d5; ++ cursor: pointer; ++ margin-left:1.2em; ++ text-transform: none; ++} ++ ++.action-panel li.entity-facet-selected { ++ font-family: "Overpass Bold", "Liberation Sans", Arial, Sans; ++ color: black; ++ text-transform: uppercase; ++ cursor: pointer; ++} ++ ++.action-panel li.entity-facet-disabled { ++ font-family: "Liberation Sans",Arial,sans-serif; ++ color: gray; ++ cursor: default; ++ text-decoration: none; ++ text-transform: none; ++ ++} ++ ++.action-panel li.entity-facet-relation-label { ++ font-family: "Overpass Bold", "Liberation Sans", Arial, Sans; ++ color: #8a8a8a; ++ cursor: default; ++ text-transform: uppercase; ++ margin-left:1.8em; ++} ++ ++.action-panel li.facet-group-member { ++ margin-left: 2.9em ++} ++ ++ ++.action-button { ++ background: none; ++ background-image:none; ++ font-family: "Liberation Sans", Arial, sans-serif; ++ font-size: 0.9em; ++} ++ ++.action-controls { ++ position: relative; ++ display:inline; ++} ++ ++.client { ++ font-size: 10px; ++ margin-top: 0.4em; ++ float: left; ++ min-width: 70em; ++} ++ ++/* Activation */ ++ ++body#header-bg { ++ background: url("../ui/Static-Background.png") repeat-x scroll left top #EDEDED; ++} ++ ++.container_1 { ++ margin-left: auto; ++ margin-right: auto; ++ width: 960px; ++ background: url("../ui/centered-bg.png") no-repeat scroll 0 7em transparent; ++ min-height: 40em; ++} ++ ++#formwindow { ++ -moz-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: 500px; ++} ++ ++.formcontent { ++ padding: 0 1em 2em 2em; ++} ++ ++#error-box { ++ -moz-border-radius: 0.3em 0.3em 0.3em 0.3em; ++ background-color: #FFEBE8; ++ border: 1px solid #DD3C10; ++ margin: 0 2em 1em; ++ padding: 1em 1em 0 0; ++} ++ ++.# { ++ background: url("../ui/ipalogo.png") no-repeat scroll left top transparent; ++ border: none; ++ float: left; ++ height: 36px; ++ width: 205px; ++} ++ ++#formwindow h4 { ++ background-color: #F0F0F0; ++ font-size: 1.6em; ++ padding: 18px 15px 14px 22px; ++ text-transform: uppercase; ++ margin-top: 0; ++} ++ ++#login li { ++ padding-bottom: 15px; ++ text-align: right; ++ width: 420px; ++ list-style-type: none; ++} ++ ++#login li input { ++ -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2) inset; ++ margin-left: 15px; ++ padding: 2px 10px; ++ width: 248px; ++} ++ ++#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: 468px; ++} ++ ++.formbutton input { ++ float: right; ++ margin: 1em 1em 1em 0; ++ -moz-border-radius: 0.3em 0.3em 0.3em 0.3em; ++ background: -moz-linear-gradient(center top, #959595, #5e5e5e) repeat scroll 0 0 transparent; ++ border: 1px solid #777777; ++ color: #ffffff; ++ font-weight: normal; ++ padding: 0.5em 0.8em; ++} ++ ++.textblock { ++ text-align: center; ++ margin-top: 6em; ++ font-size: 1.1em; ++} ++ ++.textblockkrb { ++ text-align: left; ++ margin-top: 5em; ++ font-size: 1.1em; ++ padding-left: 3em; ++ ++} ++ ++.textblockkrb ul li { ++ list-style-type: none; ++ padding: .15em; ++ ++} ++ ++ ++h3 { ++ color: #333333; ++ font-family: "Overpass Bold", "Liberation Sans", Arial, sans-serif; ++ font-size: 1.5em; ++ font-weight: normal; ++ text-transform: uppercase; ++} ++ ++h5 { ++ color: #333333; ++ font-family: "Overpass Bold", "Liberation Sans", Arial, sans-serif; ++ font-size: 1em; ++ font-weight: normal; ++ text-transform: uppercase; ++ margin-bottom: 3em; ++ margin-left: 5em; ++ margin-top: -3em; ++ ++} ++ ++ ++ ++/* Search */ ++ ++.search-controls { ++ -moz-border-radius: .7em .7em 0 0; ++ height:2.5em; ++ background: -moz-linear-gradient(top, #eeeeee, #dfdfdf); ++ position: relative; ++ padding: 1em 1.5em; ++ margin-top: 1.5em; ++} ++ ++.search-table > a:link,a:visted{ ++ color:black; ++} ++ ++.search-table{ ++ padding: 0; ++ width:100%; ++ border: none; ++} ++ ++.search-table td{ ++ padding-left: 0.5em; ++} ++ ++.search-table th{ ++ padding-left: 0.5em; ++ background-color:#f6f6f6; ++ color:#333333; ++ text-align: left; ++ border: 1px solid #dfdfdf; ++} ++ ++.search-table tfoot tr td span{ ++ border-top: 1px solid #dfdfdf; ++ padding: 0.9em 0 0 1em; ++ display: block; ++ margin-top: 2em; ++} ++ ++.search-table tr:nth-child(even){ ++# background-color:#CCC; ++} ++ ++.search-table tr:nth-child(odd){ ++# background-color:#FFF; ++} ++ ++.entity-views{ ++ list-style-type:none; ++} ++ ++.entity-views li { ++ display:inline; ++ cursor: pointer; ++ padding: 0.4em; ++} ++ ++.strikethrough { text-decoration: line-through; } ++ ++ ++.key-status-valid { ++ list-style-type: circle; ++ color: #008000; ++} ++ ++.key-status-missing { ++ list-style-type: circle; ++ color: #daa520; ++} ++ ++.key-status-active { ++ list-style-type: disc; ++} ++ ++.certificate-status-valid { ++ list-style-type: circle; ++ color: #008000; ++} ++ ++.certificate-status-revoked { ++ list-style-type: circle; ++ color: #ff0000; ++} ++ ++.certificate-status-missing { ++ list-style-type: circle; ++ color: #daa520; ++} ++ ++.certificate-status-active { ++ list-style-type: disc; ++} ++ ++dl.modal { ++ clear: both; ++ margin-left: 1em; ++ margin-top: 1em; ++ white-space: nowrap; ++} ++ ++dl.modal dt { ++ clear: left; ++ float: left; ++ padding-bottom: 0; ++ padding-right: 0; ++ text-align: right; ++ width: 10em; ++} ++ ++dl.modal dd { ++ float: left; ++ padding-bottom: 0; ++ margin-left: 0.8em; ++} ++ ++ ++ ++.ui-widget-content { ++border:0; ++} ++ ++table.scrollable thead { ++ display: block; ++} ++ ++table.scrollable tbody { ++ display: block; ++ overflow: auto; ++} ++ ++.adder-dialog-filter { ++ height: 2.5em; ++} ++ ++.adder-dialog-results { ++ position: relative; ++ height: 20.0em; ++} ++ ++.adder-dialog-available { ++ border: 1px solid black; ++ position: absolute; ++ top: 0; ++ left: 0; ++ bottom: 0; ++ width: 25.0em; ++} ++ ++.adder-dialog-buttons { ++ position: absolute; ++ top: 1.5em; ++ left: 25em; ++ right: 25; ++ bottom: 0; ++ text-align: center; ++} ++ ++.adder-dialog-selected { ++ border: 1px solid black; ++ position: absolute; ++ top: 0; ++ right: 0; ++ bottom: 0; ++ width: 25em; ++} ++ ++.adder-dialog-internal { ++ border: 1px solid black; ++ position: absolute; ++ top: 0; ++ left: 0; ++ bottom: 4.5em; ++ width: 25em; ++} ++ ++.adder-dialog-external { ++ border: 1px solid black; ++ position: absolute; ++ left: 0; ++ bottom: 0; ++ width: 25em; ++ height: 4em; ++} +diff --git a/install/activation/jquery-ui.css b/install/activation/jquery-ui.css +new file mode 100644 +index 0000000..01c3ec9 +--- /dev/null ++++ b/install/activation/jquery-ui.css +@@ -0,0 +1,572 @@ ++/* ++ * jQuery UI CSS Framework @VERSION ++ * ++ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) ++ * Dual licensed under the MIT or GPL Version 2 licenses. ++ * http://jquery.org/license ++ * ++ * http://docs.jquery.com/UI/Theming/API ++ */ ++ ++/* Layout helpers ++----------------------------------*/ ++.ui-helper-hidden { display: none; } ++.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } ++.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } ++.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } ++.ui-helper-clearfix { display: inline-block; } ++/* required comment for clearfix to work in Opera \*/ ++* html .ui-helper-clearfix { height:1%; } ++.ui-helper-clearfix { display:block; } ++/* end clearfix */ ++.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } ++ ++ ++/* Interaction Cues ++----------------------------------*/ ++.ui-state-disabled { cursor: default !important; } ++ ++ ++/* Icons ++----------------------------------*/ ++ ++/* states and images */ ++.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } ++ ++ ++/* Misc visuals ++----------------------------------*/ ++ ++/* Overlays */ ++.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } ++ ++ ++/* ++ * jQuery UI CSS Framework @VERSION ++ * ++ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) ++ * Dual licensed under the MIT or GPL Version 2 licenses. ++ * http://jquery.org/license ++ * ++ * http://docs.jquery.com/UI/Theming/API ++ * ++ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,%20Arial,%20sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=0px&bgColorHeader=333333&bgTextureHeader=14_loop.png&bgImgOpacityHeader=8&borderColorHeader=a3a3a3&fcHeader=eeeeee&iconColorHeader=bbbbbb&bgColorContent=f9f9f9&bgTextureContent=04_highlight_hard.png&bgImgOpacityContent=100&borderColorContent=cccccc&fcContent=222222&iconColorContent=222222&bgColorDefault=111111&bgTextureDefault=02_glass.png&bgImgOpacityDefault=40&borderColorDefault=777777&fcDefault=e3e3e3&iconColorDefault=ededed&bgColorHover=1c1c1c&bgTextureHover=02_glass.png&bgImgOpacityHover=55&borderColorHover=000000&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=ffffff&bgTextureActive=01_flat.png&bgImgOpacityActive=65&borderColorActive=cccccc&fcActive=222222&iconColorActive=222222&bgColorHighlight=ffeb80&bgTextureHighlight=06_inset_hard.png&bgImgOpacityHighlight=55&borderColorHighlight=ffde2e&fcHighlight=363636&iconColorHighlight=4ca300&bgColorError=cd0a0a&bgTextureError=06_inset_hard.png&bgImgOpacityError=45&borderColorError=9e0505&fcError=ffffff&iconColorError=ffcf29&bgColorOverlay=aaaaaa&bgTextureOverlay=04_highlight_hard.png&bgImgOpacityOverlay=40&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=03_highlight_soft.png&bgImgOpacityShadow=50&opacityShadow=20&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px ++ */ ++ ++ ++/* Component containers ++----------------------------------*/ ++.ui-widget { font-family: Verdana, Arial, sans-serif; font-size: 1.1em; } ++.ui-widget .ui-widget { font-size: 1em; } ++.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana, Arial, sans-serif; font-size: 1em; } ++.ui-widget-content { border: 1px solid #cccccc; background: #f9f9f9 url(ui-bg_highlight-hard_100_f9f9f9_1x100.png) 50% top repeat-x; color: #222222; } ++.ui-widget-content a { color: #222222; } ++.ui-widget-header { border: 1px solid #a3a3a3; background: #333333 url(ui-bg_loop_8_333333_21x21.png) 50% 50% repeat; color: #eeeeee; font-weight: bold; } ++.ui-widget-header a { color: #eeeeee; } ++ ++/* Interaction states ++----------------------------------*/ ++.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #777777; background: #111111 url(ui-bg_glass_40_111111_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #e3e3e3; } ++.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #e3e3e3; text-decoration: none; } ++.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #000000; background: #1c1c1c url(ui-bg_glass_55_1c1c1c_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; } ++.ui-state-hover a, .ui-state-hover a:hover { color: #ffffff; text-decoration: none; } ++.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #cccccc; background: #ffffff url(ui-bg_flat_65_ffffff_40x100.png) 50% 50% repeat-x; font-weight: normal; color: #222222; } ++.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #222222; text-decoration: none; } ++.ui-widget :active { outline: none; } ++ ++/* Interaction Cues ++----------------------------------*/ ++.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #ffde2e; background: #ffeb80 url(ui-bg_inset-hard_55_ffeb80_1x100.png) 50% bottom repeat-x; color: #363636; } ++.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } ++.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #9e0505; background: #cd0a0a url(ui-bg_inset-hard_45_cd0a0a_1x100.png) 50% bottom repeat-x; color: #ffffff; } ++.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } ++.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } ++.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } ++.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } ++.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } ++ ++/* Icons ++----------------------------------*/ ++ ++/* states and images */ ++.ui-icon { width: 16px; height: 16px; background-image: url(ui-icons_222222_256x240.png); } ++.ui-widget-content .ui-icon {background-image: url(ui-icons_222222_256x240.png); } ++.ui-widget-header .ui-icon {background-image: url(ui-icons_bbbbbb_256x240.png); } ++.ui-state-default .ui-icon { background-image: url(ui-icons_ededed_256x240.png); } ++.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(ui-icons_ffffff_256x240.png); } ++.ui-state-active .ui-icon {background-image: url(ui-icons_222222_256x240.png); } ++.ui-state-highlight .ui-icon {background-image: url(ui-icons_4ca300_256x240.png); } ++.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(ui-icons_ffcf29_256x240.png); } ++ ++/* positioning */ ++.ui-icon-carat-1-n { background-position: 0 0; } ++.ui-icon-carat-1-ne { background-position: -16px 0; } ++.ui-icon-carat-1-e { background-position: -32px 0; } ++.ui-icon-carat-1-se { background-position: -48px 0; } ++.ui-icon-carat-1-s { background-position: -64px 0; } ++.ui-icon-carat-1-sw { background-position: -80px 0; } ++.ui-icon-carat-1-w { background-position: -96px 0; } ++.ui-icon-carat-1-nw { background-position: -112px 0; } ++.ui-icon-carat-2-n-s { background-position: -128px 0; } ++.ui-icon-carat-2-e-w { background-position: -144px 0; } ++.ui-icon-triangle-1-n { background-position: 0 -16px; } ++.ui-icon-triangle-1-ne { background-position: -16px -16px; } ++.ui-icon-triangle-1-e { background-position: -32px -16px; } ++.ui-icon-triangle-1-se { background-position: -48px -16px; } ++.ui-icon-triangle-1-s { background-position: -64px -16px; } ++.ui-icon-triangle-1-sw { background-position: -80px -16px; } ++.ui-icon-triangle-1-w { background-position: -96px -16px; } ++.ui-icon-triangle-1-nw { background-position: -112px -16px; } ++.ui-icon-triangle-2-n-s { background-position: -128px -16px; } ++.ui-icon-triangle-2-e-w { background-position: -144px -16px; } ++.ui-icon-arrow-1-n { background-position: 0 -32px; } ++.ui-icon-arrow-1-ne { background-position: -16px -32px; } ++.ui-icon-arrow-1-e { background-position: -32px -32px; } ++.ui-icon-arrow-1-se { background-position: -48px -32px; } ++.ui-icon-arrow-1-s { background-position: -64px -32px; } ++.ui-icon-arrow-1-sw { background-position: -80px -32px; } ++.ui-icon-arrow-1-w { background-position: -96px -32px; } ++.ui-icon-arrow-1-nw { background-position: -112px -32px; } ++.ui-icon-arrow-2-n-s { background-position: -128px -32px; } ++.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } ++.ui-icon-arrow-2-e-w { background-position: -160px -32px; } ++.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } ++.ui-icon-arrowstop-1-n { background-position: -192px -32px; } ++.ui-icon-arrowstop-1-e { background-position: -208px -32px; } ++.ui-icon-arrowstop-1-s { background-position: -224px -32px; } ++.ui-icon-arrowstop-1-w { background-position: -240px -32px; } ++.ui-icon-arrowthick-1-n { background-position: 0 -48px; } ++.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } ++.ui-icon-arrowthick-1-e { background-position: -32px -48px; } ++.ui-icon-arrowthick-1-se { background-position: -48px -48px; } ++.ui-icon-arrowthick-1-s { background-position: -64px -48px; } ++.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } ++.ui-icon-arrowthick-1-w { background-position: -96px -48px; } ++.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } ++.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } ++.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } ++.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } ++.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } ++.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } ++.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } ++.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } ++.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } ++.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } ++.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } ++.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } ++.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } ++.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } ++.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } ++.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } ++.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } ++.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } ++.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } ++.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } ++.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } ++.ui-icon-arrow-4 { background-position: 0 -80px; } ++.ui-icon-arrow-4-diag { background-position: -16px -80px; } ++.ui-icon-extlink { background-position: -32px -80px; } ++.ui-icon-newwin { background-position: -48px -80px; } ++.ui-icon-refresh { background-position: -64px -80px; } ++.ui-icon-shuffle { background-position: -80px -80px; } ++.ui-icon-transfer-e-w { background-position: -96px -80px; } ++.ui-icon-transferthick-e-w { background-position: -112px -80px; } ++.ui-icon-folder-collapsed { background-position: 0 -96px; } ++.ui-icon-folder-open { background-position: -16px -96px; } ++.ui-icon-document { background-position: -32px -96px; } ++.ui-icon-document-b { background-position: -48px -96px; } ++.ui-icon-note { background-position: -64px -96px; } ++.ui-icon-mail-closed { background-position: -80px -96px; } ++.ui-icon-mail-open { background-position: -96px -96px; } ++.ui-icon-suitcase { background-position: -112px -96px; } ++.ui-icon-comment { background-position: -128px -96px; } ++.ui-icon-person { background-position: -144px -96px; } ++.ui-icon-print { background-position: -160px -96px; } ++.ui-icon-trash { background-position: -176px -96px; } ++.ui-icon-locked { background-position: -192px -96px; } ++.ui-icon-unlocked { background-position: -208px -96px; } ++.ui-icon-bookmark { background-position: -224px -96px; } ++.ui-icon-tag { background-position: -240px -96px; } ++.ui-icon-home { background-position: 0 -112px; } ++.ui-icon-flag { background-position: -16px -112px; } ++.ui-icon-calendar { background-position: -32px -112px; } ++.ui-icon-cart { background-position: -48px -112px; } ++.ui-icon-pencil { background-position: -64px -112px; } ++.ui-icon-clock { background-position: -80px -112px; } ++.ui-icon-disk { background-position: -96px -112px; } ++.ui-icon-calculator { background-position: -112px -112px; } ++.ui-icon-zoomin { background-position: -128px -112px; } ++.ui-icon-zoomout { background-position: -144px -112px; } ++.ui-icon-search { background-position: -160px -112px; } ++.ui-icon-wrench { background-position: -176px -112px; } ++.ui-icon-gear { background-position: -192px -112px; } ++.ui-icon-heart { background-position: -208px -112px; } ++.ui-icon-star { background-position: -224px -112px; } ++.ui-icon-link { background-position: -240px -112px; } ++.ui-icon-cancel { background-position: 0 -128px; } ++.ui-icon-plus { background-position: -16px -128px; } ++.ui-icon-plusthick { background-position: -32px -128px; } ++.ui-icon-minus { background-position: -48px -128px; } ++.ui-icon-minusthick { background-position: -64px -128px; } ++.ui-icon-close { background-position: -80px -128px; } ++.ui-icon-closethick { background-position: -96px -128px; } ++.ui-icon-key { background-position: -112px -128px; } ++.ui-icon-lightbulb { background-position: -128px -128px; } ++.ui-icon-scissors { background-position: -144px -128px; } ++.ui-icon-clipboard { background-position: -160px -128px; } ++.ui-icon-copy { background-position: -176px -128px; } ++.ui-icon-contact { background-position: -192px -128px; } ++.ui-icon-image { background-position: -208px -128px; } ++.ui-icon-video { background-position: -224px -128px; } ++.ui-icon-script { background-position: -240px -128px; } ++.ui-icon-alert { background-position: 0 -144px; } ++.ui-icon-info { background-position: -16px -144px; } ++.ui-icon-notice { background-position: -32px -144px; } ++.ui-icon-help { background-position: -48px -144px; } ++.ui-icon-check { background-position: -64px -144px; } ++.ui-icon-bullet { background-position: -80px -144px; } ++.ui-icon-radio-off { background-position: -96px -144px; } ++.ui-icon-radio-on { background-position: -112px -144px; } ++.ui-icon-pin-w { background-position: -128px -144px; } ++.ui-icon-pin-s { background-position: -144px -144px; } ++.ui-icon-play { background-position: 0 -160px; } ++.ui-icon-pause { background-position: -16px -160px; } ++.ui-icon-seek-next { background-position: -32px -160px; } ++.ui-icon-seek-prev { background-position: -48px -160px; } ++.ui-icon-seek-end { background-position: -64px -160px; } ++.ui-icon-seek-start { background-position: -80px -160px; } ++/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ ++.ui-icon-seek-first { background-position: -80px -160px; } ++.ui-icon-stop { background-position: -96px -160px; } ++.ui-icon-eject { background-position: -112px -160px; } ++.ui-icon-volume-off { background-position: -128px -160px; } ++.ui-icon-volume-on { background-position: -144px -160px; } ++.ui-icon-power { background-position: 0 -176px; } ++.ui-icon-signal-diag { background-position: -16px -176px; } ++.ui-icon-signal { background-position: -32px -176px; } ++.ui-icon-battery-0 { background-position: -48px -176px; } ++.ui-icon-battery-1 { background-position: -64px -176px; } ++.ui-icon-battery-2 { background-position: -80px -176px; } ++.ui-icon-battery-3 { background-position: -96px -176px; } ++.ui-icon-circle-plus { background-position: 0 -192px; } ++.ui-icon-circle-minus { background-position: -16px -192px; } ++.ui-icon-circle-close { background-position: -32px -192px; } ++.ui-icon-circle-triangle-e { background-position: -48px -192px; } ++.ui-icon-circle-triangle-s { background-position: -64px -192px; } ++.ui-icon-circle-triangle-w { background-position: -80px -192px; } ++.ui-icon-circle-triangle-n { background-position: -96px -192px; } ++.ui-icon-circle-arrow-e { background-position: -112px -192px; } ++.ui-icon-circle-arrow-s { background-position: -128px -192px; } ++.ui-icon-circle-arrow-w { background-position: -144px -192px; } ++.ui-icon-circle-arrow-n { background-position: -160px -192px; } ++.ui-icon-circle-zoomin { background-position: -176px -192px; } ++.ui-icon-circle-zoomout { background-position: -192px -192px; } ++.ui-icon-circle-check { background-position: -208px -192px; } ++.ui-icon-circlesmall-plus { background-position: 0 -208px; } ++.ui-icon-circlesmall-minus { background-position: -16px -208px; } ++.ui-icon-circlesmall-close { background-position: -32px -208px; } ++.ui-icon-squaresmall-plus { background-position: -48px -208px; } ++.ui-icon-squaresmall-minus { background-position: -64px -208px; } ++.ui-icon-squaresmall-close { background-position: -80px -208px; } ++.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } ++.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } ++.ui-icon-grip-solid-vertical { background-position: -32px -224px; } ++.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } ++.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } ++.ui-icon-grip-diagonal-se { background-position: -80px -224px; } ++ ++ ++/* Misc visuals ++----------------------------------*/ ++ ++/* Corner radius */ ++.ui-corner-tl { -moz-border-radius-topleft: 0px; -webkit-border-top-left-radius: 0px; border-top-left-radius: 0px; } ++.ui-corner-tr { -moz-border-radius-topright: 0px; -webkit-border-top-right-radius: 0px; border-top-right-radius: 0px; } ++.ui-corner-bl { -moz-border-radius-bottomleft: 0px; -webkit-border-bottom-left-radius: 0px; border-bottom-left-radius: 0px; } ++.ui-corner-br { -moz-border-radius-bottomright: 0px; -webkit-border-bottom-right-radius: 0px; border-bottom-right-radius: 0px; } ++.ui-corner-top { -moz-border-radius-topleft: 0px; -webkit-border-top-left-radius: 0px; border-top-left-radius: 0px; -moz-border-radius-topright: 0px; -webkit-border-top-right-radius: 0px; border-top-right-radius: 0px; } ++.ui-corner-bottom { -moz-border-radius-bottomleft: 0px; -webkit-border-bottom-left-radius: 0px; border-bottom-left-radius: 0px; -moz-border-radius-bottomright: 0px; -webkit-border-bottom-right-radius: 0px; border-bottom-right-radius: 0px; } ++.ui-corner-right { -moz-border-radius-topright: 0px; -webkit-border-top-right-radius: 0px; border-top-right-radius: 0px; -moz-border-radius-bottomright: 0px; -webkit-border-bottom-right-radius: 0px; border-bottom-right-radius: 0px; } ++.ui-corner-left { -moz-border-radius-topleft: 0px; -webkit-border-top-left-radius: 0px; border-top-left-radius: 0px; -moz-border-radius-bottomleft: 0px; -webkit-border-bottom-left-radius: 0px; border-bottom-left-radius: 0px; } ++.ui-corner-all { -moz-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; } ++ ++/* Overlays */ ++.ui-widget-overlay { background: #aaaaaa url(ui-bg_highlight-hard_40_aaaaaa_1x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); } ++.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(ui-bg_highlight-soft_50_aaaaaa_1x100.png) 50% top repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* ++ * jQuery UI Resizable @VERSION ++ * ++ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) ++ * Dual licensed under the MIT or GPL Version 2 licenses. ++ * http://jquery.org/license ++ * ++ * http://docs.jquery.com/UI/Resizable#theming ++ */ ++.ui-resizable { position: relative;} ++.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} ++.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } ++.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } ++.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } ++.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } ++.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } ++.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } ++.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } ++.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } ++.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* ++ * jQuery UI Selectable @VERSION ++ * ++ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) ++ * Dual licensed under the MIT or GPL Version 2 licenses. ++ * http://jquery.org/license ++ * ++ * http://docs.jquery.com/UI/Selectable#theming ++ */ ++.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } ++/* ++ * jQuery UI Accordion @VERSION ++ * ++ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) ++ * Dual licensed under the MIT or GPL Version 2 licenses. ++ * http://jquery.org/license ++ * ++ * http://docs.jquery.com/UI/Accordion#theming ++ */ ++/* IE/Win - Fix animation bug - #4615 */ ++.ui-accordion { width: 100%; } ++.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } ++.ui-accordion .ui-accordion-li-fix { display: inline; } ++.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } ++.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } ++.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } ++.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } ++.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } ++.ui-accordion .ui-accordion-content-active { display: block; }/* ++ * jQuery UI Autocomplete @VERSION ++ * ++ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) ++ * Dual licensed under the MIT or GPL Version 2 licenses. ++ * http://jquery.org/license ++ * ++ * http://docs.jquery.com/UI/Autocomplete#theming ++ */ ++.ui-autocomplete { position: absolute; cursor: default; } ++ ++/* workarounds */ ++* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ ++ ++/* ++ * jQuery UI Menu @VERSION ++ * ++ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) ++ * Dual licensed under the MIT or GPL Version 2 licenses. ++ * http://jquery.org/license ++ * ++ * http://docs.jquery.com/UI/Menu#theming ++ */ ++.ui-menu { ++ list-style:none; ++ padding: 2px; ++ margin: 0; ++ display:block; ++ float: left; ++} ++.ui-menu .ui-menu { ++ margin-top: -3px; ++} ++.ui-menu .ui-menu-item { ++ margin:0; ++ padding: 0; ++ zoom: 1; ++ float: left; ++ clear: left; ++ width: 100%; ++} ++.ui-menu .ui-menu-item a { ++ text-decoration:none; ++ display:block; ++ padding:.2em .4em; ++ line-height:1.5; ++ zoom:1; ++} ++.ui-menu .ui-menu-item a.ui-state-hover, ++.ui-menu .ui-menu-item a.ui-state-active { ++ font-weight: normal; ++ margin: -1px; ++} ++/* ++ * jQuery UI Button @VERSION ++ * ++ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) ++ * Dual licensed under the MIT or GPL Version 2 licenses. ++ * http://jquery.org/license ++ * ++ * http://docs.jquery.com/UI/Button#theming ++ */ ++.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ ++.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ ++button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ ++.ui-button-icons-only { width: 3.4em; } ++button.ui-button-icons-only { width: 3.7em; } ++ ++/*button text element */ ++.ui-button .ui-button-text { display: block; line-height: 1.4; } ++.ui-button-text-only .ui-button-text { padding: .4em 1em; } ++.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } ++.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } ++.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } ++.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } ++/* no icon support for input elements, provide padding by default */ ++input.ui-button { padding: .4em 1em; } ++ ++/*button icon element(s) */ ++.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } ++.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } ++.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } ++.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } ++.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } ++ ++/*button sets*/ ++.ui-buttonset { margin-right: 7px; } ++.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } ++ ++/* workarounds */ ++button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ ++/* ++ * jQuery UI Dialog @VERSION ++ * ++ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) ++ * Dual licensed under the MIT or GPL Version 2 licenses. ++ * http://jquery.org/license ++ * ++ * http://docs.jquery.com/UI/Dialog#theming ++ */ ++.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } ++.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; } ++.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } ++.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } ++.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } ++.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } ++.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } ++.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } ++.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } ++.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } ++.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } ++.ui-draggable .ui-dialog-titlebar { cursor: move; } ++/* ++ * jQuery UI Slider @VERSION ++ * ++ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) ++ * Dual licensed under the MIT or GPL Version 2 licenses. ++ * http://jquery.org/license ++ * ++ * http://docs.jquery.com/UI/Slider#theming ++ */ ++.ui-slider { position: relative; text-align: left; } ++.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } ++.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } ++ ++.ui-slider-horizontal { height: .8em; } ++.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } ++.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } ++.ui-slider-horizontal .ui-slider-range-min { left: 0; } ++.ui-slider-horizontal .ui-slider-range-max { right: 0; } ++ ++.ui-slider-vertical { width: .8em; height: 100px; } ++.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } ++.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } ++.ui-slider-vertical .ui-slider-range-min { bottom: 0; } ++.ui-slider-vertical .ui-slider-range-max { top: 0; }/* ++ * jQuery UI Tabs @VERSION ++ * ++ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) ++ * Dual licensed under the MIT or GPL Version 2 licenses. ++ * http://jquery.org/license ++ * ++ * http://docs.jquery.com/UI/Tabs#theming ++ */ ++.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ ++.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } ++.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } ++.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } ++.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } ++.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } ++.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ ++.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } ++.ui-tabs .ui-tabs-hide { display: none !important; } ++/* ++ * jQuery UI Datepicker @VERSION ++ * ++ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) ++ * Dual licensed under the MIT or GPL Version 2 licenses. ++ * http://jquery.org/license ++ * ++ * http://docs.jquery.com/UI/Datepicker#theming ++ */ ++.ui-datepicker { width: 17em; padding: .2em .2em 0; } ++.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } ++.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } ++.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } ++.ui-datepicker .ui-datepicker-prev { left:2px; } ++.ui-datepicker .ui-datepicker-next { right:2px; } ++.ui-datepicker .ui-datepicker-prev-hover { left:1px; } ++.ui-datepicker .ui-datepicker-next-hover { right:1px; } ++.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } ++.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } ++.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } ++.ui-datepicker select.ui-datepicker-month-year {width: 100%;} ++.ui-datepicker select.ui-datepicker-month, ++.ui-datepicker select.ui-datepicker-year { width: 49%;} ++.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } ++.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } ++.ui-datepicker td { border: 0; padding: 1px; } ++.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } ++.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } ++.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } ++.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } ++ ++/* with multiple calendars */ ++.ui-datepicker.ui-datepicker-multi { width:auto; } ++.ui-datepicker-multi .ui-datepicker-group { float:left; } ++.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } ++.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } ++.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } ++.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } ++.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } ++.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } ++.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } ++.ui-datepicker-row-break { clear:both; width:100%; } ++ ++/* RTL support */ ++.ui-datepicker-rtl { direction: rtl; } ++.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } ++.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } ++.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } ++.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } ++.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } ++.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } ++.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } ++.ui-datepicker-rtl .ui-datepicker-group { float:right; } ++.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } ++.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } ++ ++/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ ++.ui-datepicker-cover { ++ display: none; /*sorry for IE5*/ ++ display/**/: block; /*sorry for IE5*/ ++ position: absolute; /*must have*/ ++ z-index: -1; /*must have*/ ++ filter: mask(); /*must have*/ ++ top: -4px; /*must have*/ ++ left: -4px; /*must have*/ ++ width: 200px; /*must have*/ ++ height: 200px; /*must have*/ ++}/* ++ * jQuery UI Progressbar @VERSION ++ * ++ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) ++ * Dual licensed under the MIT or GPL Version 2 licenses. ++ * http://jquery.org/license ++ * ++ * http://docs.jquery.com/UI/Progressbar#theming ++ */ ++.ui-progressbar { height:2em; text-align: left; } ++.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } +\ No newline at end of file +diff --git a/install/activation/success.html b/install/activation/success.html +new file mode 100644 +index 0000000..a7485d1 +--- /dev/null ++++ b/install/activation/success.html +@@ -0,0 +1,32 @@ ++ ++ ++ ++ ++ IPA: Identity Policy Audit ++ ++ ++ ++ ++ ++ ++ ++
++ ++
++
++
++

Success!

++
++

++ Your account has been successfully activated. ++

++
++
++
++ ++ ++ ++ ++ +-- +1.7.7 + diff --git a/install/conf/ipa.conf b/install/conf/ipa.conf index 72e3e4c..76de39b 100644 --- a/install/conf/ipa.conf +++ b/install/conf/ipa.conf @@ -119,3 +119,13 @@ Alias /ipa/migration "/usr/share/ipa/migration" Options ExecCGI AddHandler wsgi-script .py + +# activation related pages +Alias /ipa/activation "/usr/share/ipa/activation" + + AllowOverride None + Satisfy Any + Allow from all + Options ExecCGI + AddHandler wsgi-script .py + -- 1.7.7 From 5f1030195ac81e82052ed528661648ba221ac2d0 Mon Sep 17 00:00:00 2001 From: Ryan Thomson Date: Mon, 28 Nov 2011 12:53:58 -0800 Subject: [PATCH 3/3] Fixed up Makefile.am for "activation" UI. 1907 --- install/activation/Makefile.am | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/install/activation/Makefile.am b/install/activation/Makefile.am index 1a2e59e..06d1de4 100644 --- a/install/activation/Makefile.am +++ b/install/activation/Makefile.am @@ -1,13 +1,13 @@ NULL = -appdir = $(IPA_DATA_DIR)/migration +appdir = $(IPA_DATA_DIR)/activation app_DATA = \ error.html \ index.html \ invalid.html \ success.html \ - ipa_migration.css \ - migration.py \ + ipa_activation.css \ + activation.py \ $(NULL) EXTRA_DIST = \ -- 1.7.7