diff options
author | Kevin McCarthy <kmccarth@redhat.com> | 2007-10-12 15:11:55 -0700 |
---|---|---|
committer | Kevin McCarthy <kmccarth@redhat.com> | 2007-10-12 15:11:55 -0700 |
commit | 63f7cdf7f7e1c39b791dad6951fa39d9a6d58c9d (patch) | |
tree | 72f1bd539e6fcbbce99a31f4b6695c149e828c2a /ipa-server/ipa-gui/ipagui/templates | |
parent | af0a1d989b1eb483ae3e76fa5a3008fda3fafb5e (diff) | |
download | freeipa-63f7cdf7f7e1c39b791dad6951fa39d9a6d58c9d.tar.gz freeipa-63f7cdf7f7e1c39b791dad6951fa39d9a6d58c9d.tar.xz freeipa-63f7cdf7f7e1c39b791dad6951fa39d9a6d58c9d.zip |
Adds delegation listing and creation to the GUI.
Diffstat (limited to 'ipa-server/ipa-gui/ipagui/templates')
6 files changed, 279 insertions, 0 deletions
diff --git a/ipa-server/ipa-gui/ipagui/templates/delegategroupsearch.kid b/ipa-server/ipa-gui/ipagui/templates/delegategroupsearch.kid new file mode 100644 index 000000000..f97355f8b --- /dev/null +++ b/ipa-server/ipa-gui/ipagui/templates/delegategroupsearch.kid @@ -0,0 +1,31 @@ +<div xmlns:py="http://purl.org/kid/ns#"> + +<?python +from ipagui.helpers import ipahelper +?> + <div py:if='(groups != None) and (len(groups) > 0)'> + <div id="search-results-count"> + ${len(groups)} results returned: + <span py:if="counter < 0"> + (truncated) + </span> + </div> + + <div py:for="group in groups"> + <?python + group_dn_esc = ipahelper.javascript_string_escape(group.dn) + group_cn_esc = ipahelper.javascript_string_escape(group.cn) + which_group_esc = ipahelper.javascript_string_escape(which_group) + ?> + + ${group.cn} + <a href="" + onclick="selectGroup('${which_group_esc}', '${group_dn_esc}', '${group_cn_esc}'); + return false;" + >select</a> + </div> + </div> + <div py:if='(groups != None) and (len(groups) == 0)'> + No results found for "${criteria}" + </div> +</div> diff --git a/ipa-server/ipa-gui/ipagui/templates/delegatelayout.kid b/ipa-server/ipa-gui/ipagui/templates/delegatelayout.kid new file mode 100644 index 000000000..6cec389cb --- /dev/null +++ b/ipa-server/ipa-gui/ipagui/templates/delegatelayout.kid @@ -0,0 +1,16 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#" + py:extends="'master.kid'"> +<head> +</head> + +<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 py:replace="[item.text]+item[:]"></div> + </div> +</body> + +</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/delegatelist.kid b/ipa-server/ipa-gui/ipagui/templates/delegatelist.kid new file mode 100644 index 000000000..c88b6e31f --- /dev/null +++ b/ipa-server/ipa-gui/ipagui/templates/delegatelist.kid @@ -0,0 +1,60 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#" + py:extends="'delegatelayout.kid'"> +<head> +<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> +<title>Delegations</title> +</head> +<body> + <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script> + + <h2>Delegations</h2> + + <table id="resultstable" class="sortable resizable"> + <thead> + <tr> + <th>Name</th> + <th>People in Group</th> + <th>Can Modify</th> + <th>For People in Group</th> + <th>Action</th> + </tr> + </thead> + <tbody> + <tr py:for='aci in aci_list'> + <?python + source_cn = group_dn_to_cn.get(aci.source_group) + dest_cn = group_dn_to_cn.get(aci.dest_group) + ?> + <td> + ${aci.name} + </td> + <td> + <a href="${tg.url('/group/show', cn=source_cn)}" + >${source_cn}</a> + </td> + <td> + ${", ".join(aci.attrs)} + </td> + <td> + <a href="${tg.url('/group/show', cn=dest_cn)}" + >${dest_cn}</a> + </td> + <td> + <a href="${tg.url('/delegate/edit')}">edit</a> (TODO)<br /> + </td> + </tr> + </tbody> + </table> + + <table border="0"> + <tbody> + <tr> + <td> + <a href="${tg.url('/delegate/new')}">add new delegation</a><br /> + </td> + </tr> + </tbody> + </table> +</body> +</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/delegatenew.kid b/ipa-server/ipa-gui/ipagui/templates/delegatenew.kid new file mode 100644 index 000000000..71d9e7e2a --- /dev/null +++ b/ipa-server/ipa-gui/ipagui/templates/delegatenew.kid @@ -0,0 +1,15 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#" + py:extends="'delegatelayout.kid'"> +<head> +<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> +<title>Add Delegation</title> +</head> +<body> + + <h2>Add Delegation</h2> + + ${form.display(action=tg.url("/delegate/create"), value=delegate)} + +</body> +</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/delegatenewform.kid b/ipa-server/ipa-gui/ipagui/templates/delegatenewform.kid new file mode 100644 index 000000000..95f93b5b4 --- /dev/null +++ b/ipa-server/ipa-gui/ipagui/templates/delegatenewform.kid @@ -0,0 +1,154 @@ +<div xmlns:py="http://purl.org/kid/ns#" + class="simpleroster"> + + <?python searchurl = tg.url('/delegate/group_search') ?> + + <script type="text/javascript"> + + function enterDoSearch(e, which_group) { + var keyPressed; + if (window.event) { + keyPressed = window.event.keyCode; + } else { + keyPressed = e.which; + } + + if (keyPressed == 13) { + return doSearch(which_group); + } else { + return true; + } + } + + function doSearch(which_group) { + $(which_group + '_searchresults').update("Searching..."); + new Ajax.Updater(which_group + '_searchresults', + '${searchurl}', + { asynchronous:true, + parameters: { criteria: $(which_group + '_criteria').value, + which_group: which_group}, + evalScripts: true }); + return false; + } + + function selectGroup(which_group, group_dn, group_cn) { + group_dn_field = $('form_' + which_group + '_group_dn'); + group_cn_field = $('form_' + which_group + '_group_cn'); + group_cn_span = $(which_group + '_group_cn'); + + group_dn_field.value = group_dn; + group_cn_field.value = group_cn; + group_cn_span.update(group_cn); + + new Effect.Fade($(which_group + '_searcharea'), {duration: 0.25}); + new Effect.Appear($(which_group + '_change_link'), {duration: 0.25}); + } + </script> + + <form action="${action}" name="${name}" method="${method}" class="tableform"> + + <table class="formtable" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td> + <input type="submit" class="submitbutton" name="submit" + value="Add Delegation"/> + </td> + </tr> + </table> + + <div py:for="field in hidden_fields" + py:replace="field.display(value_for(field), **params_for(field))" + /> + + <table class="formtable" cellpadding="2" cellspacing="0" border="0"> + <tr> + <th valign="top"> + <label class="fieldlabel" for="${delegate.name.field_id}" + py:content="delegate.name.label" />: + </th> + <td> + <span py:replace="delegate.name.display(value_for(delegate.name))" /> + <span py:if="tg.errors.get('name')" class="fielderror" + py:content="tg.errors.get('name')" /> + </td> + </tr> + <tr> + <th valign="top"> + <label class="fieldlabel" for="${delegate.source_group_cn.field_id}" + py:content="delegate.source_group_cn.label" />: + </th> + <td> + <div> + <span id='source_group_cn'>${value_for(delegate.source_group_cn)}</span> + <a href="#" id='source_change_link' + onclick="new Effect.Appear($('source_searcharea'), {duration: 0.25}); + new Effect.Fade(this, {duration: 0.25}); + return false;">change</a> + <span py:if="tg.errors.get('source_group_dn')" class="fielderror" + 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" + onclick="return doSearch('source');" + /> + </div> + <div id="source_searchresults"> + </div> + </div> + </td> + </tr> + <tr> + <th valign="top"> + <label class="fieldlabel" for="${delegate.attrs.field_id}" + py:content="delegate.attrs.label" />: + </th> + <td valign="top"> + <span py:if="tg.errors.get('attrs')" class="fielderror" + py:content="tg.errors.get('attrs')" /> + <span py:replace="delegate.attrs.display(value_for(delegate.attrs))" /> + </td> + </tr> + <tr> + <th valign="top"> + <label class="fieldlabel" for="${delegate.dest_group_cn.field_id}" + py:content="delegate.dest_group_cn.label" />: + </th> + <td> + <div> + <span id='dest_group_cn'>${value_for(delegate.dest_group_cn)}</span> + <a href="#" id='dest_change_link' + onclick="new Effect.Appear($('dest_searcharea'), {duration: 0.25}); + new Effect.Fade(this, {duration: 0.25}); + return false;">change</a> + <span py:if="tg.errors.get('dest_group_dn')" class="fielderror" + py:content="tg.errors.get('dest_group_dn')" /> + </div> + <div id="dest_searcharea" style="display:none"> + <div> + <input id="dest_criteria" type="text" + onkeypress="return enterDoSearch(event, 'dest');" /> + <input type="button" value="Find" + onclick="return doSearch('dest');" + /> + </div> + <div id="dest_searchresults"> + </div> + </div> + </td> + </tr> + </table> + + <table class="formtable" cellpadding="2" cellspacing="0" border="0"> + <tr> + <td> + <input type="submit" class="submitbutton" name="submit" + value="Add Delegation"/> + </td> + </tr> + </table> + + </form> +</div> diff --git a/ipa-server/ipa-gui/ipagui/templates/master.kid b/ipa-server/ipa-gui/ipagui/templates/master.kid index 52b88e37c..2926c4f90 100644 --- a/ipa-server/ipa-gui/ipagui/templates/master.kid +++ b/ipa-server/ipa-gui/ipagui/templates/master.kid @@ -77,6 +77,9 @@ <a href="${tg.url('/')}">Manage Policy</a><br/> <a href="${tg.url('/')}">Self Service</a><br/> </p> + <p> + <a href="${tg.url('/delegate/list')}">Delegation Mgmt</a><br/> + </p> </div> <div py:replace="[item.text]+item[:]"></div> |