Update the UI look and feel
@ -212,6 +212,8 @@ AC_CONFIG_FILES([
|
||||
ipa-gui/ipagui/static/Makefile
|
||||
ipa-gui/ipagui/static/css/Makefile
|
||||
ipa-gui/ipagui/static/images/Makefile
|
||||
ipa-gui/ipagui/static/images/template/Makefile
|
||||
ipa-gui/ipagui/static/images/branding/Makefile
|
||||
ipa-gui/ipagui/static/javascript/Makefile
|
||||
ipa-gui/ipagui/subcontrollers/Makefile
|
||||
ipa-gui/ipagui/templates/Makefile
|
||||
|
@ -1,272 +1,381 @@
|
||||
/*
|
||||
* Quick mash-up of CSS for the TG quick start page.
|
||||
*/
|
||||
*
|
||||
{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
html, body {
|
||||
color: #000;
|
||||
background:#fff;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: sans-serif;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
min-width: 750px;
|
||||
background-image: url('/static/images/template/background.png');
|
||||
background-repeat: repeat-x;
|
||||
background-color: #f9f9f9;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
padding-top: 8px;
|
||||
min-width: 750px;
|
||||
}
|
||||
|
||||
#page {
|
||||
background:#ccc; /* should be same as #sidebar */
|
||||
margin:0 auto;
|
||||
width:100%;
|
||||
clear:both;
|
||||
body, h1, h2, h3, h4, h5, p, ul, li, div, span {
|
||||
font-family: "Luxi Sans", "Gill Sans", "Verdana", "Helvetica", sans-serif;
|
||||
font-size: small;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
#head {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
padding-left: 12px;
|
||||
}
|
||||
|
||||
#header {
|
||||
background:#fff;
|
||||
#head h1 a {
|
||||
display: block;
|
||||
text-indent: -9999px;
|
||||
height: 54px;
|
||||
width: 350px;
|
||||
overflow: hidden;
|
||||
float: left;
|
||||
|
||||
background: url('/static/images/branding/logo.png') no-repeat;
|
||||
}
|
||||
|
||||
#header #logo {
|
||||
float:left;
|
||||
#searchbar {
|
||||
float: right;
|
||||
margin-right: 24px;
|
||||
margin-top: 18px;
|
||||
}
|
||||
|
||||
#header #headerinfo {
|
||||
text-align:right;
|
||||
padding-right:10px;
|
||||
#navbar {
|
||||
width: 100%;
|
||||
height: 64px;
|
||||
margin: 0px;
|
||||
clear: both;
|
||||
|
||||
background-image: url('/static/images/template/background-navbar.png');
|
||||
background-repeat: repeat-x;
|
||||
|
||||
}
|
||||
|
||||
#header #headerinfo #login {
|
||||
#navbar ul {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
padding-left: 10px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#header #headerinfo #topsearch {
|
||||
padding-top: 15px;
|
||||
#navbar li {
|
||||
float: left;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
.searchtext {
|
||||
background-color:#E5F1F4;
|
||||
border:1px solid #8E8E8E;
|
||||
color:#444444;
|
||||
#navbar a {
|
||||
display: block;
|
||||
margin: 22px 15px;
|
||||
}
|
||||
|
||||
#navbar .active {
|
||||
background-image: url('/static/images/template/background-navbar-active.png');
|
||||
height: 70px;
|
||||
width: 116px;
|
||||
|
||||
#nav {
|
||||
background:#cc0000;
|
||||
color:#fff;
|
||||
min-height:3px;
|
||||
max-height:3px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#nav ul {
|
||||
margin:0;
|
||||
padding:0;
|
||||
list-style:none;
|
||||
#login {
|
||||
float: right;
|
||||
padding-top: 15px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
#nav li {
|
||||
display:inline;
|
||||
#content {
|
||||
width: 100%;
|
||||
min-height: 50%;
|
||||
|
||||
background-color: #f9f9f9;
|
||||
background-image: url('/static/images/template/background-content.png');
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
|
||||
#nav a:visited {
|
||||
color:#fff;
|
||||
}
|
||||
#nav a:link {
|
||||
color:#fff;
|
||||
#details {
|
||||
height: 100%;
|
||||
margin: 0px 24px;
|
||||
margin-right: 300px;
|
||||
padding: 18px 18px;
|
||||
padding-bottom: 12%;
|
||||
border-top: 1px solid #bbdc5f;
|
||||
background-color: white;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
#main_content {
|
||||
background:#fff;
|
||||
float:right;
|
||||
width:84%;
|
||||
min-height:500px;
|
||||
border-left: 1px solid #000;
|
||||
padding: 10px;
|
||||
#details p {
|
||||
margin-top: 1ex;
|
||||
margin-bottom: 1ex;
|
||||
}
|
||||
|
||||
#main_content h1,h2 {
|
||||
margin-top: 0px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
|
||||
#sidebar {
|
||||
background:#ccc; /* should be same as #page */
|
||||
float:left;
|
||||
width:11%;
|
||||
padding: 5px;
|
||||
font-size: medium;
|
||||
width: 250px;
|
||||
text-align: left;
|
||||
|
||||
padding: 18px 13px;
|
||||
margin-right: 24px;
|
||||
float: right;
|
||||
height: 100%;
|
||||
|
||||
border: 1px solid #aaa;
|
||||
background-color: #ccc;
|
||||
background-image: url('/static/images/template/background-sidebar.png');
|
||||
background-repeat: repeat-y;
|
||||
}
|
||||
|
||||
#sidebar p {
|
||||
line-height: 150%;
|
||||
#sidebar h1, h2, h3 {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
#sidebar h2 {
|
||||
margin-top: 0;
|
||||
}
|
||||
#sidebar h2 { font-size: medium; }
|
||||
#sidebar h3 { font-size: small; }
|
||||
|
||||
#sidebar ul {
|
||||
margin-left: 1.5em;
|
||||
padding-left: 0;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
list-style: none;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
#sidebar a:visited,
|
||||
#sidebar a:link {
|
||||
color:#000;
|
||||
#sidebar ul, #sidebar li {
|
||||
margin-bottom: 6px;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
#sidebar hr {
|
||||
border-top: 1px solid #aaa;
|
||||
border-bottom: 1px solid #ddd;
|
||||
color: #ddd;
|
||||
margin-top: 20px !important;
|
||||
margin-bottom: 20px !important;
|
||||
}
|
||||
|
||||
input.text {
|
||||
border: 1px solid #8e8e8e;
|
||||
background-color: #e5f1f4;
|
||||
color: #444444;
|
||||
}
|
||||
|
||||
input.button {
|
||||
|
||||
}
|
||||
|
||||
#navbar-secondary li {
|
||||
font-size: medium;
|
||||
}
|
||||
|
||||
#navbar-secondary .active a:link,
|
||||
#navbar-secondary .active a:visited,
|
||||
#navbar-secondary .active a:active,
|
||||
#navbar-secondary .active a,
|
||||
#navbar-secondary li
|
||||
{
|
||||
color: #555 !important;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#details * {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
#details p,
|
||||
#details td,
|
||||
#details li {
|
||||
font-size: small;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
#details h1 {
|
||||
color: #7d7d5b;
|
||||
font-size: x-large;
|
||||
height: 40px;
|
||||
/*
|
||||
* padding-left: 48px;
|
||||
*/
|
||||
padding-top: 6px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#details h1.user {
|
||||
background-image: url('/static/images/objects/object-user.png');
|
||||
background-repeat: no-repeat;
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
|
||||
#details h2, #details table caption, h2.formsection {
|
||||
color: #999;
|
||||
font-size: large;
|
||||
font-weight: normal;
|
||||
|
||||
border-bottom: 1px solid #999;
|
||||
margin-bottom: 10px;
|
||||
|
||||
text-align: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
h2.formsection {
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
#details h3, table.formtable th {
|
||||
font-size: small;
|
||||
color: black;
|
||||
}
|
||||
|
||||
table.details {
|
||||
margin-bottom: 18px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#details table.details th {
|
||||
font-size: small;
|
||||
width: 150px;
|
||||
padding: 4px 0px;
|
||||
padding-right: 8px;
|
||||
border-bottom: 1px dotted #ddd;
|
||||
}
|
||||
|
||||
#details table.details th.even { background-color: white; }
|
||||
#details table.details th.odd { background-color: #eee; }
|
||||
|
||||
#details table.details td {
|
||||
padding-left: 8px;
|
||||
padding-bottom: 3px;
|
||||
border-bottom: 1px dotted #ddd;
|
||||
width: 60%;
|
||||
}
|
||||
|
||||
#details hr {
|
||||
margin-top: 48px;
|
||||
margin-bottom: 12px;
|
||||
height: 1px;
|
||||
border-color: #bbb;
|
||||
border-width: 0pt 0pt 1px;
|
||||
padding: 0.5em;
|
||||
border-style: none none dashed;
|
||||
}
|
||||
|
||||
input.submitbutton {
|
||||
float: right;
|
||||
}
|
||||
|
||||
#alertbox {
|
||||
width: 100%;
|
||||
padding: 6px 0px;
|
||||
margin-top: 12px;
|
||||
margin-bottom: 18px;
|
||||
vertical-align: middle;
|
||||
|
||||
-moz-border-radius: 6px;
|
||||
background-color: #6995d5;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#alertbox h2 {
|
||||
width: auto;
|
||||
padding: 0px 16px;
|
||||
float: left;
|
||||
font-size: medium;
|
||||
text-transform: uppercase;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#alertbox p {
|
||||
padding: 0px 0px;
|
||||
text-align: center;
|
||||
color: white;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
td, th {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#footer {
|
||||
background:#fff;
|
||||
clear:both;
|
||||
border-top: 1px solid #000;
|
||||
padding-top: 10px;
|
||||
text-align: center;
|
||||
font-size: x-small;
|
||||
text-align: center;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 30%;
|
||||
padding: 20px 20px;
|
||||
}
|
||||
|
||||
#footer a:visited,
|
||||
#footer a:link {
|
||||
color:#777;
|
||||
text-decoration: none;
|
||||
table.formtable {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
.formsection {
|
||||
color: #888888;
|
||||
width: 90%;
|
||||
font-weight: bold;
|
||||
border-bottom: 1px solid;
|
||||
margin: 20px 0px 20px 0px;
|
||||
table.formtable th, table.formtable td {
|
||||
vertical-align: top;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.formtable {
|
||||
width: 90%;
|
||||
table.formtable th {
|
||||
width: 28%;
|
||||
}
|
||||
|
||||
.formtable th {
|
||||
width: 20%;
|
||||
text-align: right;
|
||||
table.formtable td {
|
||||
}
|
||||
|
||||
.floatlist {
|
||||
float: right;
|
||||
width: 50%;
|
||||
input.submitbutton, input.searchbutton, #source_searcharea input.searchbutton {
|
||||
border: 1px outset #aaa;
|
||||
padding: 2px 1px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.floatheader {
|
||||
color: #885555;
|
||||
font-weight: bold;
|
||||
table.formtable td input[type="text"], input#criteria {
|
||||
border: 1px inset #dcdcdc;
|
||||
font-size: medium;
|
||||
padding: 2px 1px;
|
||||
background-color: #f5faff;
|
||||
}
|
||||
|
||||
.small {
|
||||
font-size: small;
|
||||
table.formtable td select {
|
||||
border: 1px inset #dcdcdc;
|
||||
font-size: small;
|
||||
padding: 2px 1px;
|
||||
background-color: #f5faff;
|
||||
}
|
||||
|
||||
.xsmall {
|
||||
font-size: x-small;
|
||||
p.empty-message {
|
||||
font-size: large;
|
||||
font-style: italic;
|
||||
color: #888 !important;
|
||||
}
|
||||
|
||||
#status_block {
|
||||
margin: 0 auto 0.5em auto;
|
||||
padding: 15px 10px 15px 55px;
|
||||
background: #ecc;
|
||||
border: 1px solid #c99;
|
||||
width: 450px;
|
||||
font-size: 120%;
|
||||
font-weight: bolder;
|
||||
div.instructions {
|
||||
padding: 2px 6px;
|
||||
margin-top: 16px;
|
||||
border-top: 1px solid #c0d5f1;
|
||||
border-bottom: 1px solid #c0d5f1;
|
||||
background-color: #eef4fd;
|
||||
}
|
||||
|
||||
.warning_message {
|
||||
font-size: 120%;
|
||||
color: #ee0000;
|
||||
font-weight: bolder;
|
||||
div#search {
|
||||
padding-top: 16px;
|
||||
padding-bottom: 24px;
|
||||
}
|
||||
|
||||
.fielderror {
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.requiredfield {
|
||||
background: #eebbbb;
|
||||
}
|
||||
|
||||
#resultstable,
|
||||
#resultstable th,
|
||||
#resultstable td {
|
||||
border-collapse: collapse;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
margin: 0px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#resultstable th {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
.deletebutton {
|
||||
}
|
||||
|
||||
/*
|
||||
* Used for checkboxlist of aci attributes
|
||||
*/
|
||||
ul.requiredfield {
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
ul.checkboxlist {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
ul.checkboxlist li {
|
||||
list-style: none;
|
||||
margin: 8px 0px;
|
||||
}
|
||||
|
||||
/*
|
||||
* TableKit css
|
||||
*/
|
||||
|
||||
.sortcol {
|
||||
cursor: pointer;
|
||||
padding-right: 20px !important;
|
||||
background-repeat: no-repeat !important;
|
||||
background-position: right center !important;
|
||||
ul.checkboxlist li input {
|
||||
background-color: yellow;
|
||||
height: 1.1em;
|
||||
width: 1.2em;
|
||||
border: 1px solid red;
|
||||
}
|
||||
.sortasc {
|
||||
background-image: url(/static/images/up.gif) !important;
|
||||
}
|
||||
.sortdesc {
|
||||
background-image: url(/static/images/down.gif) !important;
|
||||
}
|
||||
.nosort {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
th.resize-handle-active {
|
||||
cursor: e-resize;
|
||||
}
|
||||
|
||||
div.resize-handle {
|
||||
cursor: e-resize;
|
||||
width: 2px;
|
||||
border-right: 1px dashed #1E90FF;
|
||||
position:absolute;
|
||||
top:0;
|
||||
left:0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Overrides for printing
|
||||
*/
|
||||
@media print {
|
||||
#header { display:none; }
|
||||
#nav { display:none; }
|
||||
#sidebar { display:none; }
|
||||
#footer { display:none; }
|
||||
#main_content { width: 95%; margin:0; padding:0; border-left-style: none; }
|
||||
|
||||
.submitbutton { display:none; }
|
||||
.deletebutton { display:none; }
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,10 @@
|
||||
NULL =
|
||||
|
||||
SUBDIRS = \
|
||||
branding \
|
||||
template \
|
||||
$(NULL)
|
||||
|
||||
appdir = $(IPA_DATA_DIR)/ipagui/static/images
|
||||
app_DATA = \
|
||||
down.gif \
|
||||
|
14
ipa-server/ipa-gui/ipagui/static/images/branding/Makefile.am
Normal file
@ -0,0 +1,14 @@
|
||||
NULL =
|
||||
|
||||
appdir = $(IPA_DATA_DIR)/ipagui/static/images/branding
|
||||
app_DATA = \
|
||||
logo.png \
|
||||
$(NULL)
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(app_DATA) \
|
||||
$(NULL)
|
||||
|
||||
MAINTAINERCLEANFILES = \
|
||||
*~ \
|
||||
Makefile.in
|
BIN
ipa-server/ipa-gui/ipagui/static/images/branding/logo.png
Normal file
After Width: | Height: | Size: 36 KiB |
20
ipa-server/ipa-gui/ipagui/static/images/template/Makefile.am
Normal file
@ -0,0 +1,20 @@
|
||||
NULL =
|
||||
|
||||
appdir = $(IPA_DATA_DIR)/ipagui/static/images/template
|
||||
app_DATA = \
|
||||
background-content.png \
|
||||
background-navbar-active_fullsize.png \
|
||||
background-navbar-active.png \
|
||||
background-navbar_fullsize.png \
|
||||
background-navbar.png \
|
||||
background.png \
|
||||
background-sidebar.png \
|
||||
$(NULL)
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(app_DATA) \
|
||||
$(NULL)
|
||||
|
||||
MAINTAINERCLEANFILES = \
|
||||
*~ \
|
||||
Makefile.in
|
After Width: | Height: | Size: 194 B |
After Width: | Height: | Size: 610 B |
After Width: | Height: | Size: 634 B |
After Width: | Height: | Size: 253 B |
After Width: | Height: | Size: 251 B |
After Width: | Height: | Size: 170 B |
BIN
ipa-server/ipa-gui/ipagui/static/images/template/background.png
Normal file
After Width: | Height: | Size: 184 B |
@ -7,7 +7,7 @@
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h2>Edit Delegation</h2>
|
||||
<h1>Edit Delegation</h1>
|
||||
|
||||
${form.display(action=tg.url("/delegate/update"), value=delegate,
|
||||
actionname='Update')}
|
||||
|
@ -59,33 +59,23 @@
|
||||
|
||||
<form action="${action}" name="${name}" method="${method}" class="tableform">
|
||||
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
<input type="submit" class="submitbutton" name="submit"
|
||||
value="${actionname} Delegation"/>
|
||||
<br/><br/>
|
||||
</th>
|
||||
<td>
|
||||
<input type="submit" class="submitbutton" name="submit"
|
||||
value="Cancel ${actionname}"/>
|
||||
<br/><br/>
|
||||
</td>
|
||||
<td py:if='actionname == "Update"'>
|
||||
|
||||
<span py:if='actionname == "Update"'>
|
||||
<input type="button" class="deletebutton"
|
||||
value="Delete Delegation"
|
||||
onclick="return confirmDelete();"
|
||||
/>
|
||||
<br/><br/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</span>
|
||||
|
||||
<div py:for="field in hidden_fields"
|
||||
py:replace="field.display(value_for(field), **params_for(field))"
|
||||
/>
|
||||
|
||||
<h2>Delegation Details</h2>
|
||||
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th valign="top">
|
||||
@ -114,13 +104,11 @@
|
||||
py:content="tg.errors.get('source_group_dn')" />
|
||||
</div>
|
||||
<div id="source_searcharea" style="display:none">
|
||||
<div>
|
||||
<input id="source_criteria" type="text"
|
||||
onkeypress="return enterDoSearch(event, 'source');" />
|
||||
<input type="button" value="Find"
|
||||
<input class="searchbutton" type="button" value="Find"
|
||||
onclick="return doSearch('source');"
|
||||
/>
|
||||
</div>
|
||||
<div id="source_searchresults">
|
||||
</div>
|
||||
</div>
|
||||
@ -156,7 +144,7 @@
|
||||
<div>
|
||||
<input id="dest_criteria" type="text"
|
||||
onkeypress="return enterDoSearch(event, 'dest');" />
|
||||
<input type="button" value="Find"
|
||||
<input class="searchbutton" type="button" value="Find"
|
||||
onclick="return doSearch('dest');"
|
||||
/>
|
||||
</div>
|
||||
@ -167,28 +155,18 @@
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
<br/>
|
||||
<hr />
|
||||
|
||||
<input type="submit" class="submitbutton" name="submit"
|
||||
value="${actionname} Delegation"/>
|
||||
</th>
|
||||
<td>
|
||||
<br/>
|
||||
<input type="submit" class="submitbutton" name="submit"
|
||||
value="Cancel ${actionname}"/>
|
||||
</td>
|
||||
<td py:if='actionname == "Update"'>
|
||||
<br/>
|
||||
|
||||
<span py:if='actionname == "Update"'>
|
||||
<input type="button" class="deletebutton"
|
||||
value="Delete Delegation"
|
||||
onclick="return confirmDelete();"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</span>
|
||||
|
||||
<script py:if="not value.get('source_group_dn')"
|
||||
type="text/javascript">
|
||||
|
@ -6,11 +6,12 @@
|
||||
|
||||
<body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()">
|
||||
<div id="main_content">
|
||||
<div id="status_block" py:if="value_of('tg_flash', None)"
|
||||
py:content="XML(tg_flash)"></div>
|
||||
<div id="details">
|
||||
<div id="alertbox" py:if="value_of('tg_flash', None)"><p py:content="XML(tg_flash)"></p></div>
|
||||
|
||||
<div py:replace="[item.text]+item[:]"></div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
@ -25,10 +25,9 @@ from ipagui.helpers import ipahelper
|
||||
method="post" action="${tg.url('/delegate/edit')}">
|
||||
<input type="hidden" id="edit_acistr" name="acistr" value="" />
|
||||
</form>
|
||||
<h1>Delegations</h1>
|
||||
|
||||
<h2>Delegations</h2>
|
||||
|
||||
<table id="resultstable" class="sortable resizable">
|
||||
<table id="resultstable" class="details sortable resizable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>${fields.name.label}</th>
|
||||
|
@ -6,11 +6,9 @@
|
||||
<title>Add Delegation</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h2>Add Delegation</h2>
|
||||
<h1>Add Delegation</h1>
|
||||
|
||||
${form.display(action=tg.url("/delegate/create"), value=delegate,
|
||||
actionname='Add')}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@ -6,16 +6,14 @@
|
||||
<title>Edit Group</title>
|
||||
</head>
|
||||
<body>
|
||||
<div>
|
||||
<div style="float:right">
|
||||
<input type="checkbox" id="toggleprotected_checkbox"
|
||||
<div id="details">
|
||||
<h1>Edit Group</h1>
|
||||
<input type="checkbox" id="toggleprotected_checkbox"
|
||||
onclick="toggleProtectedFields(this);">
|
||||
<span class="small">edit protected fields</span>
|
||||
</input>
|
||||
</div>
|
||||
<h2>Edit Group</h2>
|
||||
</div>
|
||||
|
||||
${form.display(action=tg.url('/group/update'), value=group, members=members)}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -9,26 +9,15 @@
|
||||
<form action="${action}" name="${name}" method="${method}" class="tableform"
|
||||
onsubmit="preSubmit()" >
|
||||
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
<input type="submit" class="submitbutton" name="submit"
|
||||
value="Update Group"/>
|
||||
</th>
|
||||
<td>
|
||||
<input type="submit" class="submitbutton" name="submit"
|
||||
value="Cancel Edit" />
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<input type="button" class="deletebutton"
|
||||
value="Delete Group"
|
||||
onclick="return confirmDelete();"
|
||||
/>
|
||||
<br/><br/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<?python
|
||||
from ipagui.helpers import ipahelper
|
||||
@ -73,7 +62,7 @@ from ipagui.helpers import ipahelper
|
||||
py:replace="field.display(value_for(field), **params_for(field))"
|
||||
/>
|
||||
|
||||
<div class="formsection">Group Details</div>
|
||||
<h2 class="formsection">Group Details</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -120,7 +109,7 @@ from ipagui.helpers import ipahelper
|
||||
</table>
|
||||
|
||||
<div>
|
||||
<div class="formsection">Group Members</div>
|
||||
<h2 class="formsection">Group Members</h2>
|
||||
|
||||
<div class="floatlist">
|
||||
<div class="floatheader">To Remove:</div>
|
||||
@ -176,7 +165,7 @@ from ipagui.helpers import ipahelper
|
||||
</div>
|
||||
|
||||
<div style="clear:both">
|
||||
<div class="formsection">Add Members</div>
|
||||
<h2 class="formsection">Add Members</h2>
|
||||
|
||||
<div class="floatlist">
|
||||
<div class="floatheader">To Add:</div>
|
||||
@ -188,7 +177,7 @@ from ipagui.helpers import ipahelper
|
||||
<div id="search">
|
||||
<input id="criteria" type="text" name="criteria"
|
||||
onkeypress="return enterDoSearch(event);" />
|
||||
<input type="button" value="Find"
|
||||
<input class="searchbutton" type="button" value="Find"
|
||||
onclick="return doSearch();"
|
||||
/>
|
||||
</div>
|
||||
@ -196,30 +185,15 @@ from ipagui.helpers import ipahelper
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
<br />
|
||||
<hr />
|
||||
<input type="submit" class="submitbutton" name="submit"
|
||||
value="Update Group"/>
|
||||
</th>
|
||||
<td>
|
||||
<br />
|
||||
<input type="submit" class="submitbutton" name="submit"
|
||||
value="Cancel Edit" />
|
||||
</td>
|
||||
<td>
|
||||
<br />
|
||||
|
||||
<input type="button" class="deletebutton"
|
||||
value="Delete Group"
|
||||
onclick="return confirmDelete();"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</form>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
@ -6,8 +6,8 @@
|
||||
|
||||
<body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()">
|
||||
<div id="main_content">
|
||||
<div id="status_block" py:if="value_of('tg_flash', None)"
|
||||
py:content="XML(tg_flash)"></div>
|
||||
<div id="alertbox" py:if="value_of('tg_flash', None)">
|
||||
<p py:content="XML(tg_flash)"></p></div>
|
||||
|
||||
<div py:replace="[item.text]+item[:]"></div>
|
||||
</div>
|
||||
|
@ -6,6 +6,8 @@
|
||||
<title>Find Groups</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="details">
|
||||
<h1>Find Groups</h1>
|
||||
<script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script>
|
||||
<div id="search">
|
||||
<form action="${tg.url('/group/list')}" method="get">
|
||||
@ -18,7 +20,7 @@
|
||||
</div>
|
||||
<div py:if='(groups != None) and (len(groups) > 0)'>
|
||||
<h2>${len(groups)} results returned:</h2>
|
||||
<table id="resultstable" class="sortable resizable">
|
||||
<table id="resultstable" class="details sortable resizable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
@ -44,7 +46,7 @@
|
||||
<div py:if='(groups != None) and (len(groups) == 0)'>
|
||||
<h2>No results found for "${criteria}"</h2>
|
||||
</div>
|
||||
<div py:if='groups == None'>
|
||||
<div class="instructions" py:if='groups == None'>
|
||||
<p>
|
||||
Search automatically looks across multiple fields. If you want to find
|
||||
Joe in Finance, try typing "joe finance" into the search box.
|
||||
@ -61,5 +63,6 @@
|
||||
will allow you to resize the header.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -6,8 +6,10 @@
|
||||
<title>Add Group</title>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Add Group</h2>
|
||||
<div id="details">
|
||||
<h1>Add Group</h1>
|
||||
|
||||
${form.display(action=tg.url('/group/create'), value=group)}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -3,13 +3,7 @@
|
||||
<form action="${action}" name="${name}" method="${method}" class="tableform"
|
||||
onsubmit="preSubmit()" >
|
||||
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<td>
|
||||
<input type="submit" class="submitbutton" name="submit" value="Add Group"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<?python
|
||||
from ipagui.helpers import ipahelper
|
||||
@ -36,7 +30,7 @@ from ipagui.helpers import ipahelper
|
||||
py:replace="field.display(value_for(field), **params_for(field))"
|
||||
/>
|
||||
|
||||
<div class="formsection">Group Details</div>
|
||||
<h2 class="formsection">Group Details</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -76,7 +70,7 @@ from ipagui.helpers import ipahelper
|
||||
</table>
|
||||
|
||||
<div style="clear:both">
|
||||
<div class="formsection">Add Members</div>
|
||||
<h2 class="formsection">Add Members</h2>
|
||||
|
||||
<div class="floatlist">
|
||||
<div class="floatheader">To Add:</div>
|
||||
@ -97,14 +91,9 @@ from ipagui.helpers import ipahelper
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<td>
|
||||
<br />
|
||||
<input type="submit" class="submitbutton" name="submit" value="Add Group"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
|
||||
<input type="submit" class="submitbutton" name="submit" value="Add Group"/>
|
||||
|
||||
</form>
|
||||
|
||||
|
@ -9,13 +9,14 @@
|
||||
<?python
|
||||
edit_url = tg.url('/group/edit', cn=group.get('cn'))
|
||||
?>
|
||||
<h2>View Group</h2>
|
||||
<div id="details">
|
||||
<h1>View Group</h1>
|
||||
|
||||
<input type="button"
|
||||
<input class="submitbutton" type="button"
|
||||
onclick="document.location.href='${edit_url}'"
|
||||
value="Edit Group" />
|
||||
|
||||
<div class="formsection">Group Details</div>
|
||||
<h2 class="formsection">Group Details</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -39,7 +40,7 @@ edit_url = tg.url('/group/edit', cn=group.get('cn'))
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Group Members</div>
|
||||
<h2 class="formsection">Group Members</h2>
|
||||
<div py:for="member in members">
|
||||
<?python
|
||||
|
||||
@ -68,10 +69,10 @@ edit_url = tg.url('/group/edit', cn=group.get('cn'))
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
|
||||
<input type="button"
|
||||
<hr />
|
||||
<input class="submitbutton" type="button"
|
||||
onclick="document.location.href='${edit_url}'"
|
||||
value="Edit Group" />
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -16,26 +16,10 @@
|
||||
|
||||
<body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()">
|
||||
|
||||
<div id="header">
|
||||
<div id="logo">
|
||||
<a href="${tg.url('/')}"><img
|
||||
src="${tg.url('/static/images/logo.png')}"
|
||||
border="0" alt="homepage"
|
||||
/></a>
|
||||
</div>
|
||||
<div id="head">
|
||||
<h1><a href="${tg.url('/')}">Free IPA</a></h1>
|
||||
<div id="headerinfo">
|
||||
<div id="login">
|
||||
<div py:if="tg.config('identity.on') and not defined('logging_in')" id="pageLogin">
|
||||
<span py:if="tg.identity.anonymous">
|
||||
Kerberos login failed.
|
||||
</span>
|
||||
<span py:if="not tg.identity.anonymous">
|
||||
Logged in as: ${tg.identity.user.display_name}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div id="topsearch">
|
||||
<div id="searchbar">
|
||||
<form action="${tg.url('/topsearch')}" method="post">
|
||||
<select name="searchtype">
|
||||
<option>Users</option>
|
||||
@ -56,40 +40,60 @@
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="navbar">
|
||||
<!-- hiding the tabs
|
||||
<ul>
|
||||
<li><a href="#">Overview</a></li>
|
||||
<li class="active"><a href="#">Users</a></li>
|
||||
<li><a href="#">Groups</a></li>
|
||||
<li><a href="#">Resources</a></li>
|
||||
<li><a href="#">Policy</a></li>
|
||||
<li><a href="#">Search</a></li>
|
||||
</ul>
|
||||
-->
|
||||
<div id="login">
|
||||
<div py:if="tg.config('identity.on') and not defined('logging_in')" id="pageLogin">
|
||||
<span py:if="tg.identity.anonymous">
|
||||
Kerberos login failed.
|
||||
</span>
|
||||
<span py:if="not tg.identity.anonymous">
|
||||
Logged in as: ${tg.identity.user.display_name}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="page">
|
||||
<div id="nav"><!--
|
||||
This used to have links. Keeping around in case we move them back...
|
||||
--></div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<div id="sidebar">
|
||||
<h2>Tasks</h2>
|
||||
<p>
|
||||
<a href="${tg.url('/user/new')}">Add Person</a><br/>
|
||||
<a href="${tg.url('/user/list')}">Find People</a><br/>
|
||||
</p>
|
||||
<p>
|
||||
<a href="${tg.url('/group/new')}">Add Group</a><br/>
|
||||
<a href="${tg.url('/group/list')}">Find Groups</a><br/>
|
||||
</p>
|
||||
<p>
|
||||
<a href="${tg.url('/')}">Manage Policy</a><br/>
|
||||
<a href="${tg.url('/')}">Self Service</a><br/>
|
||||
</p>
|
||||
<p>
|
||||
<a href="${tg.url('/delegate/list')}">Delegations</a><br/>
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="${tg.url('/user/new')}">Add Person</a></li>
|
||||
<li><a href="${tg.url('/user/list')}">Find People</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><a href="${tg.url('/group/new')}">Add Group</a></li>
|
||||
<li><a href="${tg.url('/group/list')}">Find Groups</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><a href="${tg.url('/')}">Manage Policy</a></li>
|
||||
<li><a href="${tg.url('/')}">Self Service</a></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><a href="${tg.url('/delegate/list')}">Delegations</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div py:replace="[item.text]+item[:]"></div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<a href="http://www.freeipa.com/" target="_blank">Powered by FreeIPA</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<span class="small">edit protected fields</span>
|
||||
</input>
|
||||
</div>
|
||||
<h2>Edit Person</h2>
|
||||
<h1>Edit Person</h1>
|
||||
</div>
|
||||
|
||||
<?python
|
||||
|
@ -9,25 +9,14 @@
|
||||
<form action="${action}" name="${name}" method="${method}" class="tableform"
|
||||
onsubmit="preSubmit()">
|
||||
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
<input type="submit" class="submitbutton" name="submit"
|
||||
value="Update Person"/>
|
||||
</th>
|
||||
<td>
|
||||
<input type="submit" class="submitbutton" name="submit"
|
||||
value="Cancel Edit" />
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<input type="button" class="deletebutton"
|
||||
<input type="button" class="submitbutton"
|
||||
value="Delete Person"
|
||||
onclick="return confirmDelete();"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<?python
|
||||
from ipagui.helpers import ipahelper
|
||||
@ -38,7 +27,7 @@ from ipagui.helpers import ipahelper
|
||||
<script type="text/javascript" charset="utf-8"
|
||||
src="${tg.url('/static/javascript/dynamicselect.js')}"></script>
|
||||
|
||||
<?python
|
||||
<?python
|
||||
searchurl = tg.url('/user/edit_search')
|
||||
selectSearchurl = tg.url('/user/user_select_search')
|
||||
?>
|
||||
@ -110,7 +99,7 @@ from ipagui.helpers import ipahelper
|
||||
py:replace="field.display(value_for(field), **params_for(field))"
|
||||
/>
|
||||
|
||||
<div class="formsection">Identity Details</div>
|
||||
<h2 class="formsection">Identity Details</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -190,7 +179,7 @@ from ipagui.helpers import ipahelper
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Account Details</div>
|
||||
<h2 class="formsection">Account Details</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -359,7 +348,7 @@ from ipagui.helpers import ipahelper
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Contact Details</div>
|
||||
<h2 class="formsection">Contact Details</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -434,7 +423,7 @@ from ipagui.helpers import ipahelper
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Mailing Address</div>
|
||||
<h2 class="formsection">Mailing Address</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -497,7 +486,7 @@ from ipagui.helpers import ipahelper
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Employee Information</div>
|
||||
<h2 class="formsection">Employee Information</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -606,7 +595,7 @@ from ipagui.helpers import ipahelper
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Misc Information</div>
|
||||
<h2 class="formsection">Misc Information</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -633,7 +622,7 @@ from ipagui.helpers import ipahelper
|
||||
</table>
|
||||
|
||||
<div py:if='len(custom_fields) > 0'>
|
||||
<div class="formsection" >Custom Fields</div>
|
||||
<h2 class="formsection" >Custom Fields</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr py:for='custom_field in custom_fields'>
|
||||
<th>
|
||||
@ -651,7 +640,7 @@ from ipagui.helpers import ipahelper
|
||||
|
||||
|
||||
<div>
|
||||
<div class="formsection">Groups</div>
|
||||
<h2 class="formsection">Groups</h2>
|
||||
|
||||
<div class="floatlist">
|
||||
<div class="floatheader">To Remove:</div>
|
||||
@ -701,7 +690,7 @@ from ipagui.helpers import ipahelper
|
||||
</div>
|
||||
|
||||
<div style="clear:both">
|
||||
<div class="formsection">Add Groups</div>
|
||||
<h2 class="formsection">Add Groups</h2>
|
||||
|
||||
<div class="floatlist">
|
||||
<div class="floatheader">To Add:</div>
|
||||
@ -722,28 +711,16 @@ from ipagui.helpers import ipahelper
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
<br />
|
||||
<hr/>
|
||||
|
||||
<input type="submit" class="submitbutton" name="submit"
|
||||
value="Update Person"/>
|
||||
</th>
|
||||
<td>
|
||||
<br />
|
||||
<input type="submit" class="submitbutton" name="submit"
|
||||
value="Cancel Edit" />
|
||||
</td>
|
||||
<td>
|
||||
<br />
|
||||
|
||||
<input type="button" class="deletebutton"
|
||||
<input type="button" class="submitbutton"
|
||||
value="Delete Person"
|
||||
onclick="return confirmDelete();"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</form>
|
||||
|
||||
|
@ -6,8 +6,9 @@
|
||||
|
||||
<body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()">
|
||||
<div id="main_content">
|
||||
<div id="status_block" py:if="value_of('tg_flash', None)"
|
||||
py:content="XML(tg_flash)"></div>
|
||||
<div id="details">
|
||||
<div id="alertbox" py:if="value_of('tg_flash', None)">
|
||||
<p py:content="XML(tg_flash)"></p></div>
|
||||
|
||||
<div py:replace="[item.text]+item[:]"></div>
|
||||
</div>
|
||||
@ -17,6 +18,7 @@
|
||||
<a href="${tg.url('/user/new')}">Add Person</a><br/>
|
||||
<a href="${tg.url('/user/list')}">Find People</a><br/>
|
||||
</div> -->
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
@ -6,11 +6,12 @@
|
||||
<title>Find People</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Find People</h1>
|
||||
<script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script>
|
||||
<div id="search">
|
||||
<form action="${tg.url('/user/list')}" method="get">
|
||||
<input id="uid" type="text" name="uid" value="${uid}" />
|
||||
<input type="submit" value="Find People"/>
|
||||
<input class="searchbutton" type="submit" value="Find People"/>
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
document.getElementById("uid").focus();
|
||||
@ -18,7 +19,7 @@
|
||||
</div>
|
||||
<div py:if='(users != None) and (len(users) > 0)'>
|
||||
<h2>${len(users)} results returned:</h2>
|
||||
<table id="resultstable" class="sortable resizable">
|
||||
<table id="resultstable" class="details sortable resizable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
@ -55,10 +56,11 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div py:if='(users != None) and (len(users) == 0)'>
|
||||
<h2>No results found for "${uid}"</h2>
|
||||
<div id="alertbox" py:if='(users != None) and (len(users) == 0)'>
|
||||
<p id="alertbox">No results found for "${uid}"</p>
|
||||
</div>
|
||||
<div py:if='users == None'>
|
||||
|
||||
<div class="instructions" py:if='users == None'>
|
||||
<p>
|
||||
Search automatically looks across multiple fields. If you want to find
|
||||
Joe in Finance, try typing "joe finance" into the search box.
|
||||
|
@ -6,7 +6,7 @@
|
||||
<title>Add Person</title>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Add Person</h2>
|
||||
<h1>Add Person</h1>
|
||||
|
||||
${form.display(action=tg.url("/user/create"), value=user)}
|
||||
</body>
|
||||
|
@ -2,14 +2,8 @@
|
||||
class="simpleroster">
|
||||
<form action="${action}" name="${name}" method="${method}" class="tableform"
|
||||
onsubmit="preSubmit()">
|
||||
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<td>
|
||||
<input type="submit" class="submitbutton" name="submit" value="Add Person"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<input type="submit" class="submitbutton" name="submit" value="Add Person"/>
|
||||
|
||||
<?python
|
||||
from ipagui.helpers import ipahelper
|
||||
@ -20,7 +14,7 @@ from ipagui.helpers import ipahelper
|
||||
<script type="text/javascript" charset="utf-8"
|
||||
src="${tg.url('/static/javascript/dynamicselect.js')}"></script>
|
||||
|
||||
<?python
|
||||
<?python
|
||||
searchurl = tg.url('/user/edit_search')
|
||||
selectSearchurl = tg.url('/user/user_select_search')
|
||||
?>
|
||||
@ -44,7 +38,6 @@ from ipagui.helpers import ipahelper
|
||||
info.name + " "));
|
||||
}
|
||||
}
|
||||
|
||||
function doSelectSearch(which_select) {
|
||||
$(which_select + '_searchresults').update("Searching...");
|
||||
new Ajax.Updater(which_select + '_searchresults',
|
||||
@ -61,7 +54,7 @@ from ipagui.helpers import ipahelper
|
||||
py:replace="field.display(value_for(field), **params_for(field))"
|
||||
/>
|
||||
|
||||
<div class="formsection">Identity Details</div>
|
||||
<h2 class="formsection">Identity Details</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -209,7 +202,7 @@ from ipagui.helpers import ipahelper
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Account Details</div>
|
||||
<h2 class="formsection">Account Details</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -328,7 +321,7 @@ from ipagui.helpers import ipahelper
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Contact Details</div>
|
||||
<h2 class="formsection">Contact Details</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -403,7 +396,7 @@ from ipagui.helpers import ipahelper
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Mailing Address</div>
|
||||
<h2 class="formsection">Mailing Address</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -466,7 +459,7 @@ from ipagui.helpers import ipahelper
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Employee Information</div>
|
||||
<h2 class="formsection">Employee Information</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -575,7 +568,7 @@ from ipagui.helpers import ipahelper
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Misc Information</div>
|
||||
<h2 class="formsection">Misc Information</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -619,7 +612,8 @@ from ipagui.helpers import ipahelper
|
||||
</div>
|
||||
|
||||
<div style="clear:both">
|
||||
<div class="formsection">Add Groups</div>
|
||||
<h2 class="formsection">Add Groups</h2>
|
||||
|
||||
|
||||
<div class="floatlist">
|
||||
<div class="floatheader">To Add:</div>
|
||||
@ -631,7 +625,7 @@ from ipagui.helpers import ipahelper
|
||||
<div id="search">
|
||||
<input id="criteria" type="text" name="criteria"
|
||||
onkeypress="return enterDoSearch(event);" />
|
||||
<input type="button" value="Find"
|
||||
<input class="searchbutton" type="button" value="Find"
|
||||
onclick="return doSearch();"
|
||||
/>
|
||||
</div>
|
||||
@ -640,14 +634,8 @@ from ipagui.helpers import ipahelper
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<td>
|
||||
<br />
|
||||
<input type="submit" class="submitbutton" name="submit" value="Add Person"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
<input type="submit" class="submitbutton" name="submit" value="Add Person"/>
|
||||
|
||||
</form>
|
||||
|
||||
|
@ -9,9 +9,9 @@
|
||||
<?python
|
||||
edit_url = tg.url('/user/edit', uid=user.get('uid'))
|
||||
?>
|
||||
<h2>View Person</h2>
|
||||
<h1>View Person</h1>
|
||||
|
||||
<input type="button"
|
||||
<input class="submitbutton" type="button"
|
||||
onclick="document.location.href='${edit_url}'"
|
||||
value="Edit Person" />
|
||||
|
||||
@ -26,14 +26,14 @@ else:
|
||||
days_suffix = ""
|
||||
?>
|
||||
|
||||
<div py:if='pw_expires_soon' class="warning_message">
|
||||
<div id="alertbox" py:if='pw_expires_soon' class="warning_message">
|
||||
Password will expire in ${pw_expires_days} day${days_suffix}
|
||||
</div>
|
||||
<div py:if='pw_is_expired' class="warning_message">
|
||||
<div id="alertbox" py:if='pw_is_expired' class="warning_message">
|
||||
Password has expired
|
||||
</div>
|
||||
|
||||
<div class="formsection">Identity Details</div>
|
||||
<h2 class="formsection">Identity Details</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -73,7 +73,7 @@ else:
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Account Details</div>
|
||||
<h2 class="formsection">Account Details</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -119,7 +119,7 @@ else:
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Contact Details</div>
|
||||
<h2 class="formsection">Contact Details</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -160,7 +160,7 @@ else:
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Mailing Address</div>
|
||||
<h2 class="formsection">Mailing Address</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -194,7 +194,7 @@ else:
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Employee Information</div>
|
||||
<h2 class="formsection">Employee Information</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -240,7 +240,7 @@ else:
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="formsection">Misc Information</div>
|
||||
<h2 class="formsection">Misc Information</h2>
|
||||
<table class="formtable" cellpadding="2" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<th>
|
||||
@ -274,7 +274,7 @@ else:
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="formsection" py:if='len(user_reports) > 0'>Direct Reports</div>
|
||||
<h2 class="formsection" py:if='len(user_reports) > 0'>Direct Reports</h2>
|
||||
<ol py:if="len(user_reports) > 0">
|
||||
<li py:for="report in user_reports">
|
||||
<a href="${tg.url('/user/show', uid=report.uid)}"
|
||||
@ -282,16 +282,15 @@ else:
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<div class="formsection">Groups</div>
|
||||
<h2 class="formsection">Groups</h2>
|
||||
<div py:for="group in user_groups">
|
||||
<a href="${tg.url('/group/show', cn=group.cn)}">${group.cn}</a>
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
|
||||
<input type="button"
|
||||
<hr />
|
||||
<input class="submitbutton" type="button"
|
||||
onclick="document.location.href='${edit_url}'"
|
||||
value="Edit Person" />
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@ -6,9 +6,9 @@
|
||||
<title>Welcome</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="main_content">
|
||||
<div id="status_block" py:if="value_of('tg_flash', None)"
|
||||
py:content="XML(tg_flash)"></div>
|
||||
<div id="details">
|
||||
<div id="alertbox" py:if="value_of('tg_flash', None)">
|
||||
<p py:content="XML(tg_flash)"></p></div>
|
||||
<h1>Welcome to Free IPA</h1>
|
||||
|
||||
<noscript>
|
||||
@ -19,8 +19,7 @@
|
||||
</noscript>
|
||||
|
||||
<p>
|
||||
IPA is used to manage Identity, Policy, and Auditing for your
|
||||
organization.
|
||||
IPA is used to manage Identity, Policy, and Auditing for your organization.
|
||||
</p>
|
||||
<p>
|
||||
To get started, you can use the search box in the top right to find
|
||||
|