diff options
Diffstat (limited to 'ipa-server/ipa-gui/ipagui/templates')
39 files changed, 0 insertions, 5082 deletions
diff --git a/ipa-server/ipa-gui/ipagui/templates/Makefile.am b/ipa-server/ipa-gui/ipagui/templates/Makefile.am deleted file mode 100644 index ddc8666c..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/Makefile.am +++ /dev/null @@ -1,55 +0,0 @@ -NULL = - -appdir = $(IPA_DATA_DIR)/ipagui/templates -app_PYTHON = \ - __init__.py \ - $(NULL) - -app_DATA = \ - delegateedit.kid \ - delegateform.kid \ - delegategroupsearch.kid \ - delegatelayout.kid \ - delegatelist.kid \ - delegatenew.kid \ - dynamiceditsearch.kid \ - groupeditform.kid \ - groupedit.kid \ - grouplayout.kid \ - grouplist.kid \ - groupnewform.kid \ - groupnew.kid \ - groupshow.kid \ - ipapolicyeditform.kid \ - ipapolicyedit.kid \ - ipapolicyshow.kid \ - loginfailed.kid \ - master.kid \ - not_found.kid \ - policyindex.kid \ - policylayout.kid \ - principallayout.kid \ - principallist.kid \ - principalshow.kid \ - principalnewform.kid \ - principalnew.kid \ - usereditform.kid \ - useredit.kid \ - userlayout.kid \ - userlist.kid \ - usernewform.kid \ - usernew.kid \ - userselectsearch.kid \ - usershow.kid \ - welcome.kid \ - unhandled_exception.kid \ - $(NULL) - -EXTRA_DIST = \ - $(app_DATA) \ - $(NULL) - -MAINTAINERCLEANFILES = \ - *~ \ - *.pyc \ - Makefile.in diff --git a/ipa-server/ipa-gui/ipagui/templates/__init__.py b/ipa-server/ipa-gui/ipagui/templates/__init__.py deleted file mode 100644 index e69de29b..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/__init__.py +++ /dev/null diff --git a/ipa-server/ipa-gui/ipagui/templates/delegateedit.kid b/ipa-server/ipa-gui/ipagui/templates/delegateedit.kid deleted file mode 100644 index d9f6c3c4..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/delegateedit.kid +++ /dev/null @@ -1,33 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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>Edit Delegation</title> -</head> -<body> - - <h1 class="accesscontrol">Edit Delegation</h1> - - ${form.display(action=tg.url("/delegate/update"), value=delegate, - actionname='Update')} - -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/delegateform.kid b/ipa-server/ipa-gui/ipagui/templates/delegateform.kid deleted file mode 100644 index 71d08a4f..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/delegateform.kid +++ /dev/null @@ -1,213 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<div xmlns:py="http://purl.org/kid/ns#" - class="simpleroster"> - - <?python searchurl = tg.url('/delegate/group_search') ?> - - <script type="text/javascript"> - function lostFocus(which_group) { - /* The user has left the field, save what they put in there in case - * they don't do a Find. */ - group_cn_field = $('form_' + which_group + '_group_cn'); - group_criteria_field = $(which_group + '_criteria') - group_cn_field.value = group_criteria_field.value - } - - 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}); - } - - function confirmDelete() { - if (confirm("Are you sure you want to delete this delegation?")) { - $('deleteform').submit(); - } - return false; - } - </script> - - <form style="display:none" id='deleteform' - method="post" action="${tg.url('/delegate/delete')}"> - <input type="hidden" name="acistr" value="${value.get('orig_acistr')}" /> - </form> - - <form action="${action}" name="${name}" method="${method}" class="tableform"> - - <input type="submit" class="submitbutton" name="submit" - value="${actionname} Delegation"/> - <input type="submit" class="submitbutton" name="submit" - value="Cancel ${actionname}"/> - <span py:if='actionname == "Update"'> - <input type="button" class="deletebutton" - value="Delete Delegation" - onclick="return confirmDelete();" - /> - </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"> - <label class="fieldlabel" for="${delegate_fields.name.field_id}" - py:content="delegate_fields.name.label" />: - </th> - <td> - <span py:replace="delegate_fields.name.display(value_for(delegate_fields.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_fields.source_group_cn.field_id}" - py:content="delegate_fields.source_group_cn.label" />: - </th> - <td> - <div> - <span id='source_group_cn'>${value_for(delegate_fields.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"> - <input class="requiredfield" id="source_criteria" type="text" - onkeypress="return enterDoSearch(event, 'source');" onblur="return lostFocus('source');"/> - <input class="searchbutton" type="button" value="Find" - onclick="return doSearch('source');" - /> - <div id="source_searchresults"> - </div> - </div> - </td> - </tr> - <tr> - <th valign="top"> - <label class="fieldlabel" for="${delegate_fields.attrs.field_id}" - py:content="delegate_fields.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_fields.attrs.display(value_for(delegate_fields.attrs))" /> - </td> - </tr> - <tr> - <th valign="top"> - <label class="fieldlabel" for="${delegate_fields.dest_group_cn.field_id}" - py:content="delegate_fields.dest_group_cn.label" />: - </th> - <td> - <div> - <span id='dest_group_cn'>${value_for(delegate_fields.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 class="requiredfield" id="dest_criteria" type="text" - onkeypress="return enterDoSearch(event, 'dest');" onblur="return lostFocus('dest');"/> - <input class="searchbutton" type="button" value="Find" - onclick="return doSearch('dest');" - /> - </div> - <div id="dest_searchresults"> - </div> - </div> - </td> - </tr> - </table> - -<hr /> - - <input type="submit" class="submitbutton" name="submit" - value="${actionname} Delegation"/> - <input type="submit" class="submitbutton" name="submit" - value="Cancel ${actionname}"/> - <span py:if='actionname == "Update"'> - <input type="button" class="deletebutton" - value="Delete Delegation" - onclick="return confirmDelete();" - /> - </span> - - <script py:if="not value.get('source_group_dn')" - type="text/javascript"> - new Effect.Appear($('source_searcharea'), {duration: 0.25}); - new Effect.Fade($('source_change_link'), {duration: 0.25}); - </script> - <script py:if="not value.get('dest_group_dn')" - type="text/javascript"> - new Effect.Appear($('dest_searcharea'), {duration: 0.25}); - new Effect.Fade($('dest_change_link'), {duration: 0.25}); - </script> - - </form> - - - <script type="text/javascript"> - document.getElementById("form_name").focus(); - </script> - -</div> diff --git a/ipa-server/ipa-gui/ipagui/templates/delegategroupsearch.kid b/ipa-server/ipa-gui/ipagui/templates/delegategroupsearch.kid deleted file mode 100644 index f8f8b5c6..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/delegategroupsearch.kid +++ /dev/null @@ -1,48 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<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 deleted file mode 100644 index 7ece6cf9..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/delegatelayout.kid +++ /dev/null @@ -1,34 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="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> diff --git a/ipa-server/ipa-gui/ipagui/templates/delegatelist.kid b/ipa-server/ipa-gui/ipagui/templates/delegatelist.kid deleted file mode 100644 index 81ecfeb0..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/delegatelist.kid +++ /dev/null @@ -1,93 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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> - -<?python -from ipagui.helpers import ipahelper -?> - - <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script> - - <script type="text/javascript"> - function editDelegation(acistr) { - $('edit_acistr').value = acistr; - $('editform').submit(); - return false; - } - </script> - - <form style="display:none" id='editform' - method="post" action="${tg.url('/delegate/edit')}"> - <input type="hidden" id="edit_acistr" name="acistr" value="" /> - </form> - <h1 class="accesscontrol">Delegations</h1> - - <table id="resultstable" class="details sortable resizable"> - <thead> - <tr> - <th>${fields.name.label}</th> - <th>${fields.source_group_cn.label}</th> - <th>${fields.attrs.label}</th> - <th>${fields.dest_group_cn.label}</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) - acistr = aci.orig_acistr - acistr_esc = ipahelper.javascript_string_escape(acistr) - ?> - <td> - <a href="#" onclick="return editDelegation('${acistr_esc}');" - >${aci.name}</a> - </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> - </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 deleted file mode 100644 index 12ba9e36..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/delegatenew.kid +++ /dev/null @@ -1,31 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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> - <h1 class="accesscontrol">Add Delegation</h1> - - ${form.display(action=tg.url("/delegate/create"), value=delegate, - actionname='Add')} -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/dynamiceditsearch.kid b/ipa-server/ipa-gui/ipagui/templates/dynamiceditsearch.kid deleted file mode 100644 index 2407f665..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/dynamiceditsearch.kid +++ /dev/null @@ -1,97 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<div xmlns:py="http://purl.org/kid/ns#"> - -<?python -from ipagui.helpers import ipahelper -# -# This file is used to render the results from an AJAX search onto a page. -# It has many expectations of the page being rendered into: -# - Source page must have included dynamicedit.js and followed all of its -# requirements -# -?> - <div id="search-results-count"> - </div> - <?python - criteria_esc = ipahelper.javascript_string_escape(criteria) - ?> - <script type="text/javascript"> - search_string = "${criteria_esc}"; - results_counter = 0; - </script> - <?python search_div_counter = 1 ?> - <div py:for="entities in (users, groups)"> - <div py:if='(entities != None) and (len(entities) > 0)'> - <div py:for="entity in entities" id="search-${search_div_counter}"> - <?python - ent_dn_esc = ipahelper.javascript_string_escape(entity.dn) - ent_uid = entity.uid - if ent_uid: - ent_name = "%s %s" % (entity.getValue('givenName', ''), - entity.getValue('sn', '')) - ent_descr = "(%s)" % entity.uid - ent_type = "user" - else: - ent_name = entity.cn - ent_descr = "[group]" - ent_type = "group" - ent_name_esc = ipahelper.javascript_string_escape(ent_name) - ent_descr_esc = ipahelper.javascript_string_escape(ent_descr) - ent_type_esc = ipahelper.javascript_string_escape(ent_type) - ?> - <span id="search-info-${search_div_counter}"></span> - <script type="text/javascript"> - if ((added_hash["${ent_dn_esc}"] == 1) || - (member_hash["${ent_dn_esc}"] == 1)) { - $("search-${search_div_counter}").style.display = 'none'; - } else { - results_counter = results_counter + 1; - } - - renderMemberInfo($('search-info-${search_div_counter}'), - new MemberDisplayInfo('${ent_name_esc}', - '${ent_descr_esc}', - '${ent_type_esc}')); - </script> - <a href="" - onclick="addmemberHandler(this, '${ent_dn_esc}', - new MemberDisplayInfo('${ent_name_esc}', - '${ent_descr_esc}', - '${ent_type_esc}')); - return false;" - >add</a> - <?python - search_div_counter = search_div_counter + 1 - ?> - </div> - </div> - </div> - <script type="text/javascript"> - if (results_counter == 0) { - var message = "No results found for '" + search_string + "'"; - } else { - var message = results_counter + " results found:"; - } - $('search-results-count').appendChild(document.createTextNode(message)); - </script> - <script py:if="counter < 0"> - $('search-results-count').appendChild(document.createTextNode( - " (truncated)")); - </script> -</div> diff --git a/ipa-server/ipa-gui/ipagui/templates/groupedit.kid b/ipa-server/ipa-gui/ipagui/templates/groupedit.kid deleted file mode 100644 index 9614770f..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/groupedit.kid +++ /dev/null @@ -1,36 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="'grouplayout.kid'"> -<head> - <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> - <title>Edit Group</title> -</head> -<body> - <div id="details"> - <h1 class="usergroup">Edit Group</h1> -<input type="checkbox" id="toggleprotected_checkbox" - onclick="toggleProtectedFields(this);"> - <span class="small">edit protected fields</span> - </input> - - ${form.display(action=tg.url('/group/update'), value=group, members=members)} -</div> -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid b/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid deleted file mode 100644 index 78f76b0a..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid +++ /dev/null @@ -1,289 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<div xmlns:py="http://purl.org/kid/ns#" - class="simpleroster"> - - <form style="display:none" id='deleteform' - method="post" action="${tg.url('/group/delete')}"> - <input type="hidden" name="dn" value="${value.get('dn')}" /> - </form> - - <form action="${action}" name="${name}" method="${method}" class="tableform" - onsubmit="preSubmit()" > - - <input type="submit" class="submitbutton" name="submit" - value="Update Group"/> - <input type="submit" class="submitbutton" name="submit" - value="Cancel Edit" /> - <input type="button" class="deletebutton" - value="Delete Group" - onclick="return confirmDelete();" - /> - - -<?python -from ipagui.helpers import ipahelper -?> - - <script type="text/javascript" charset="utf-8" - src="${tg.url('/static/javascript/dynamicedit.js')}"></script> - <script type="text/javascript" charset="utf-8" - src="${tg.url('/tg_widgets/tg_expanding_form_widget/javascript/expanding_form.js')}"></script> - - <?python searchurl = tg.url('/group/edit_search') ?> - - <script type="text/javascript"> - function toggleProtectedFields(checkbox) { - var gidnumberField = $('form_gidnumber'); - var cnField = $('form_cn'); - if (checkbox.checked) { - gidnumberField.disabled = false; - cnField.disabled = false; - $('form_editprotected').value = 'true'; - } else { - gidnumberField.disabled = true; - cnField.disabled = true; - $('form_editprotected').value = ''; - } - } - - function doSearch() { - $('searchresults').update("Searching..."); - new Ajax.Updater('searchresults', - '${searchurl}', - { asynchronous:true, - parameters: { criteria: $('criteria').value }, - evalScripts: true }); - return false; - } - - function confirmDelete() { - if (confirm("Are you sure you want to delete this group?")) { - $('deleteform').submit(); - } - return false; - } - </script> - - <div py:for="field in hidden_fields" - py:replace="field.display(value_for(field), **params_for(field))" - /> - - <h2 class="formsection">Group Details</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" for="${group_fields.cn.field_id}" - py:content="group_fields.cn.label" />: - </th> - <td> - <span py:replace="group_fields.cn.display(value_for(group_fields.cn))" /> - <span py:if="tg.errors.get('cn')" class="fielderror" - py:content="tg.errors.get('cn')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${group_fields.description.field_id}" - py:content="group_fields.description.label" />: - </th> - <td> - <span py:replace="group_fields.description.display(value_for(group_fields.description))" /> - <span py:if="tg.errors.get('description')" class="fielderror" - py:content="tg.errors.get('description')" /> - - <script type="text/javascript"> - document.getElementById('form_cn').disabled = true; - </script> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${group_fields.gidnumber.field_id}" - py:content="group_fields.gidnumber.label" />: - </th> - <td> - <span py:replace="group_fields.gidnumber.display(value_for(group_fields.gidnumber))" /> - <span py:if="tg.errors.get('gidnumber')" class="fielderror" - py:content="tg.errors.get('gidnumber')" /> - - <script type="text/javascript"> - document.getElementById('form_gidnumber').disabled = true; - </script> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" for="${group_fields.nsAccountLock.field_id}" py:content="group_fields.nsAccountLock.label" />: - </th> - <td> - <span py:replace="group_fields.nsAccountLock.display(value_for(group_fields.nsAccountLock))" /> - <span py:if="tg.errors.get('nsAccountLock')" class="fielderror" - py:content="tg.errors.get('nsAccountLock')" /> - </td> - </tr> - </table> - - <div> - <h2 class="formsection">Group Members</h2> - - <div class="floatlist"> - <div class="floatheader">To Remove:</div> - <div id="delmembers"> - </div> - </div> - - <div> - <?python div_counter = 1 ?> - <div py:for="member in members" id="member-${div_counter}"> - <?python - member_dn = member.get('dn') - member_dn_esc = ipahelper.javascript_string_escape(member_dn) - - member_uid = member.get('uid') - member_inherited = member.get('inherited') - if member_uid: - member_name = "%s %s" % (member.get('givenName', ''), - member.get('sn', '')) - member_descr = "(%s)" % member.get('uid') - if member_inherited: - member_type = "iuser" - else: - member_type = "user" - else: - member_name = member.get('cn') - member_descr = "[group]" - if member_inherited: - member_type = "igroup" - else: - member_type = "group" - member_name_esc = ipahelper.javascript_string_escape(member_name) - member_descr_esc = ipahelper.javascript_string_escape(member_descr) - member_type_esc = ipahelper.javascript_string_escape(member_type) - ?> - <span id="member-info-${div_counter}"></span> - <script type="text/javascript"> - renderMemberInfo($('member-info-${div_counter}'), - new MemberDisplayInfo('${member_name_esc}', - '${member_descr_esc}', - '${member_type_esc}')); - </script> - <a py:if="member_inherited != True" href="#" - onclick="removememberHandler(this, '${member_dn_esc}', - new MemberDisplayInfo('${member_name_esc}', - '${member_descr_esc}', - '${member_type_esc}')); - return false;" - >remove</a> - <script type="text/javascript"> - dn_to_member_div_id['${member_dn_esc}'] = "member-${div_counter}"; - member_hash["${member_dn_esc}"] = 1; - </script> - <?python - div_counter = div_counter + 1 - ?> - </div> - <!-- a space here to prevent an empty div --> - </div> - - </div> - - <div style="clear:both"> - <h2 class="formsection">Add Members</h2> - - <div class="floatlist"> - <div class="floatheader">To Add:</div> - <div id="newmembers"> - </div> - </div> - - <div> - <div id="search"> - <input id="criteria" type="text" name="criteria" - onkeypress="return enterDoSearch(event);" /> - <input class="searchbutton" type="button" value="Find" - onclick="return doSearch();" - /> - </div> - <div id="searchresults"> - </div> - </div> - </div> -<hr /> - <input type="submit" class="submitbutton" name="submit" - value="Update Group"/> - <input type="submit" class="submitbutton" name="submit" - value="Cancel Edit" /> - <input type="button" class="deletebutton" - value="Delete Group" - onclick="return confirmDelete();" - /> - </form> - - <script type="text/javascript"> - /* - * This section restores the contents of the add and remove lists - * dynamically if we have to refresh the page - */ - if ($('form_dn_to_info_json').value != "") { - dn_to_info_hash = new Hash($('form_dn_to_info_json').value.evalJSON()); - } - - if ($('form_editprotected').value != "") { - $('toggleprotected_checkbox').checked = true; - toggleProtectedFields($('toggleprotected_checkbox')); - } - </script> - - <?python - dnadds = value.get('dnadd', []) - if not(isinstance(dnadds,list) or isinstance(dnadds,tuple)): - dnadds = [dnadds] - - dndels = value.get('dndel', []) - if not(isinstance(dndels,list) or isinstance(dndels,tuple)): - dndels = [dndels] - ?> - - <script py:for="dnadd in dnadds"> - <?python - dnadd_esc = ipahelper.javascript_string_escape(dnadd) - ?> - var dn = "${dnadd_esc}"; - var info = dn_to_info_hash[dn]; - var newdiv = addmember(dn, info); - if (newdiv != null) { - newdiv.style.display = 'block'; - } - </script> - - <script py:for="dndel in dndels"> - <?python - dndel_esc = ipahelper.javascript_string_escape(dndel) - ?> - var dn = "${dndel_esc}"; - var info = dn_to_info_hash[dn]; - var newdiv = removemember(dn, info); - newdiv.style.display = 'block'; - orig_div_id = dn_to_member_div_id[dn] - $(orig_div_id).style.display = 'none'; - </script> - -</div> diff --git a/ipa-server/ipa-gui/ipagui/templates/grouplayout.kid b/ipa-server/ipa-gui/ipagui/templates/grouplayout.kid deleted file mode 100644 index fe013ca0..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/grouplayout.kid +++ /dev/null @@ -1,40 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="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 id="sidebar"> - <h2>Tools</h2> - <a href="${tg.url('/group/index')}">Add Group</a><br/> - <a href="${tg.url('/group/index')}">Find Group</a><br/> - <a href="${tg.url('/group/index')}">List Groups</a><br/> - </div> --> -</body> - -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/grouplist.kid b/ipa-server/ipa-gui/ipagui/templates/grouplist.kid deleted file mode 100644 index 00fd03aa..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/grouplist.kid +++ /dev/null @@ -1,93 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="'grouplayout.kid'"> -<head> -<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> -<title>Find Groups</title> -</head> -<body> -<div id="details"> - <h1 class="usergroup">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"> - <input id="criteria" type="text" name="criteria" value="${criteria}" /> - <input type="submit" value="Find Groups"/> - </form> - <script type="text/javascript"> - document.getElementById("criteria").focus(); - </script> - </div> - <div py:if='(groups != None) and (len(groups) > 0)'> - <h2>${len(groups)} results returned:</h2> - <table id="resultstable" class="details sortable resizable" cellspacing="0"> - <thead> - <tr> - <th> - ${fields.cn.label} - </th> - <th> - ${fields.description.label} - </th> - </tr> - </thead> - <tbody> - <tr py:for="group in groups" py:if="group.nsAccountLock != 'true'"> - <td> - <a href="${tg.url('/group/show',cn=group.cn)}">${group.cn}</a> - </td> - <td> - ${group.description} - </td> - </tr> - <tr id="inactive" py:for="group in groups" py:if="group.nsAccountLock == 'true'"> - <td> - <a href="${tg.url('/group/show',cn=group.cn)}">${group.cn}</a> - </td> - <td> - ${group.description} - </td> - </tr> - </tbody> - </table> - </div> - <div py:if='(groups != None) and (len(groups) == 0)'> - <h2>No results found for "${criteria}"</h2> - </div> - <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. - </p> - <p> - Exact matches are listed first, followed by partial matches. If your search - is too broad, you will get a warning that the search returned too many - results. Try being more specific. - </p> - <p> - The results that come back are sortable. Simply click on a column - header to sort on that header. A triangle will indicate the sorted - column, along with its direction. Clicking and dragging between headers - will allow you to resize the header. - </p> - </div> -</div> -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/groupnew.kid b/ipa-server/ipa-gui/ipagui/templates/groupnew.kid deleted file mode 100644 index f5c83cae..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/groupnew.kid +++ /dev/null @@ -1,32 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="'grouplayout.kid'"> -<head> - <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> - <title>Add Group</title> -</head> -<body> -<div id="details"> - <h1 class="usergroup">Add Group</h1> - - ${form.display(action=tg.url('/group/create'), value=group)} -</div> -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/groupnewform.kid b/ipa-server/ipa-gui/ipagui/templates/groupnewform.kid deleted file mode 100644 index ef321079..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/groupnewform.kid +++ /dev/null @@ -1,149 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<div xmlns:py="http://purl.org/kid/ns#" - class="simpleroster"> - <form action="${action}" name="${name}" method="${method}" class="tableform" - onsubmit="preSubmit()" > - - <input type="submit" class="submitbutton" name="submit" value="Add Group"/> - -<?python -from ipagui.helpers import ipahelper -?> - - <script type="text/javascript" charset="utf-8" - src="${tg.url('/static/javascript/dynamicedit.js')}"></script> - - <?python searchurl = tg.url('/group/edit_search') ?> - - <script type="text/javascript"> - function doSearch() { - $('searchresults').update("Searching..."); - new Ajax.Updater('searchresults', - '${searchurl}', - { asynchronous:true, - parameters: { criteria: $('criteria').value }, - evalScripts: true }); - return false; - } - </script> - - <div py:for="field in hidden_fields" - py:replace="field.display(value_for(field), **params_for(field))" - /> - - <h2 class="formsection">Group Details</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" for="${group_fields.cn.field_id}" - py:content="group_fields.cn.label" />: - </th> - <td> - <span py:replace="group_fields.cn.display(value_for(group_fields.cn))" /> - <span py:if="tg.errors.get('cn')" class="fielderror" - py:content="tg.errors.get('cn')" /> - - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${group_fields.description.field_id}" - py:content="group_fields.description.label" />: - </th> - <td> - <span py:replace="group_fields.description.display(value_for(group_fields.description))" /> - <span py:if="tg.errors.get('description')" class="fielderror" - py:content="tg.errors.get('description')" /> - - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${group_fields.gidnumber.field_id}" - py:content="group_fields.gidnumber.label" />: - </th> - <td> - Generated by server - </td> - </tr> - </table> - - <div style="clear:both"> - <h2 class="formsection">Add Members</h2> - - <div class="floatlist"> - <div class="floatheader">To Add:</div> - <div id="newmembers"> - </div> - </div> - - <div> - <div id="search"> - <input id="criteria" type="text" name="criteria" - onkeypress="return enterDoSearch(event);" /> - <input type="button" value="Find" - onclick="return doSearch();" - /> - </div> - <div id="searchresults"> - </div> - </div> - </div> - -<hr /> - - <input type="submit" class="submitbutton" name="submit" value="Add Group"/> - - </form> - - <script type="text/javascript"> - document.getElementById("form_cn").focus(); - </script> - - <script type="text/javascript"> - /* - * This section restores the contents of the add and remove lists - * dynamically if we have to refresh the page - */ - if ($('form_dn_to_info_json').value != "") { - dn_to_info_hash = new Hash($('form_dn_to_info_json').value.evalJSON()); - } - </script> - - <?python - dnadds = value.get('dnadd', []) - if not(isinstance(dnadds,list) or isinstance(dnadds,tuple)): - dnadds = [dnadds] - ?> - - <script py:for="dnadd in dnadds"> - <?python - dnadd_esc = ipahelper.javascript_string_escape(dnadd) - ?> - var dn = "${dnadd_esc}"; - var info = dn_to_info_hash[dn]; - var newdiv = addmember(dn, info); - if (newdiv != null) { - newdiv.style.display = 'block'; - } - </script> - -</div> diff --git a/ipa-server/ipa-gui/ipagui/templates/groupshow.kid b/ipa-server/ipa-gui/ipagui/templates/groupshow.kid deleted file mode 100644 index d0ca6982..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/groupshow.kid +++ /dev/null @@ -1,131 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="'grouplayout.kid'"> -<head> - <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> - <title>View Group</title> -</head> -<body> -<?python -cn = group.get('cn') -if isinstance(cn, list): - cn = cn[0] -edit_url = tg.url('/group/edit', cn=cn) -from ipagui.helpers import userhelper -?> -<div id="details"> - <h1 class="usergroup">View Group</h1> - - <input py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups" - class="submitbutton" type="button" - onclick="document.location.href='${edit_url}'" - value="Edit Group" /> - - <h2 class="formsection">Group Details</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" py:content="fields.cn.label" />: - </th> - <td>${group.get("cn")}</td> - </tr> - - <tr> - <th> - <label class="fieldlabel" py:content="fields.description.label" />: - </th> - <td>${group.get("description")}</td> - </tr> - - <tr> - <th> - <label class="fieldlabel" py:content="fields.gidnumber.label" />: - </th> - <td>${group.get("gidnumber")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.nsAccountLock.label" />: - </th> - <td>${userhelper.account_status_display(group.get("nsAccountLock"))}</td> - </tr> - </table> - - <h2 class="formsection">Group Members</h2> - <div py:for="member in members"> - <?python - - member_uid = member.get('uid') - member_inherited = member.get('inherited') - if member_uid: - member_cn = "%s %s" % (member.get('givenName', ''), member.get('sn', '')) - member_desc = "(%s)" % member_uid - if member_inherited: - member_type = "iuser" - else: - member_type = "user" - view_url = tg.url('/user/show', uid=member_uid) - else: - mem = member.get('cn') - if isinstance(mem, list): - mem = mem[0] - member_cn = "%s" % mem - member_desc = "[group]" - if member_inherited: - member_type = "igroup" - else: - member_type = "group" - view_url = tg.url('/group/show', cn=member_cn) - ?> - <span py:if='member_type == "user"'> - <b> - <a href="${view_url}" - >${member_cn}</a> ${member_desc} - </b> - </span> - <span py:if='member_type == "iuser"'> - <a href="${view_url}" - >${member_cn}</a> ${member_desc} - </span> - <span py:if='member_type == "group"'> - <b> - <i> - <a href="${view_url}" - >${member_cn}</a> ${member_desc} - </i> - </b> - </span> - <span py:if='member_type == "igroup"'> - <i> - <a href="${view_url}" - >${member_cn}</a> ${member_desc} - </i> - </span> - </div> - - <br/> -<hr /> - <input py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups" - class="submitbutton" type="button" - onclick="document.location.href='${edit_url}'" - value="Edit Group" /> -</div> -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/ipapolicyedit.kid b/ipa-server/ipa-gui/ipagui/templates/ipapolicyedit.kid deleted file mode 100644 index 6b071d2d..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/ipapolicyedit.kid +++ /dev/null @@ -1,32 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="'policylayout.kid'"> -<head> - <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> - <title>Edit IPA Policy</title> -</head> -<body> - <div> - <h1 class="policy">Edit IPA Policy</h1> - - ${form.display(action=tg.url('/ipapolicy/update'), value=ipapolicy)} -</div> -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/ipapolicyeditform.kid b/ipa-server/ipa-gui/ipagui/templates/ipapolicyeditform.kid deleted file mode 100644 index a608829c..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/ipapolicyeditform.kid +++ /dev/null @@ -1,280 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<div xmlns:py="http://purl.org/kid/ns#" - class="simpleroster"> - - <form action="${action}" name="${name}" method="${method}" class="tableform" - onsubmit="preSubmit()" > - - <input type="submit" class="submitbutton" name="submit" - value="Update Policy"/> - <input type="submit" class="submitbutton" name="submit" - value="Cancel Edit" /> - -<?python -from ipagui.helpers import ipahelper -?> - - <script type="text/javascript" charset="utf-8" - src="${tg.url('/static/javascript/dynamicedit.js')}"></script> - <script type="text/javascript" charset="utf-8" - src="${tg.url('/tg_widgets/tg_expanding_form_widget/javascript/expanding_form.js')}"></script> - - <div py:for="field in hidden_fields" - py:replace="field.display(value_for(field), **params_for(field))" - /> - - <h2 class="formsection">Search</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" py:content="ipapolicy_fields.ipasearchtimelimit.label" />: - </th> - <td> - <span py:replace="ipapolicy_fields.ipasearchtimelimit.display(value_for(ipapolicy_fields.ipasearchtimelimit))" /> - <span py:if="tg.errors.get('ipasearchtimelimit')" class="fielderror" - py:content="tg.errors.get('ipasearchtimelimit')" /> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="ipapolicy_fields.ipasearchrecordslimit.label" />: - </th> - <td> - <span py:replace="ipapolicy_fields.ipasearchrecordslimit.display(value_for(ipapolicy_fields.ipasearchrecordslimit))" /> - <span py:if="tg.errors.get('ipasearchrecordslimit')" class="fielderror" - py:content="tg.errors.get('ipasearchrecordslimit')" /> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="ipapolicy_fields.ipausersearchfields.label" />: - </th> - <td> - <span py:replace="ipapolicy_fields.ipausersearchfields.display(value_for(ipapolicy_fields.ipausersearchfields))" /> - <span py:if="tg.errors.get('ipausersearchfields')" class="fielderror" - py:content="tg.errors.get('ipausersearchfields')" /> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="ipapolicy_fields.ipagroupsearchfields.label" />: - </th> - <td> - <span py:replace="ipapolicy_fields.ipagroupsearchfields.display(value_for(ipapolicy_fields.ipagroupsearchfields))" /> - <span py:if="tg.errors.get('ipagroupsearchfields')" class="fielderror" - py:content="tg.errors.get('ipagroupsearchfields')" /> - </td> - </tr> - </table> - - <h2 class="formsection">Password Policy</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" py:content="ipapolicy_fields.ipapwdexpadvnotify.label" />: - </th> - <td> - <span py:replace="ipapolicy_fields.ipapwdexpadvnotify.display(value_for(ipapolicy_fields.ipapwdexpadvnotify))" /> - <span py:if="tg.errors.get('ipapwdexpadvnotify')" class="fielderror" - py:content="tg.errors.get('ipapwdexpadvnotify')" /> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="ipapolicy_fields.krbminpwdlife.label" />: - </th> - <td> - <span py:replace="ipapolicy_fields.krbminpwdlife.display(value_for(ipapolicy_fields.krbminpwdlife))" /> - <span py:if="tg.errors.get('krbminpwdlife')" class="fielderror" - py:content="tg.errors.get('krbminpwdlife')" /> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="ipapolicy_fields.krbmaxpwdlife.label" />: - </th> - <td> - <span py:replace="ipapolicy_fields.krbmaxpwdlife.display(value_for(ipapolicy_fields.krbmaxpwdlife))" /> - <span py:if="tg.errors.get('krbmaxpwdlife')" class="fielderror" - py:content="tg.errors.get('krbmaxpwdlife')" /> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="ipapolicy_fields.krbpwdmindiffchars.label" />: - </th> - <td> - <span py:replace="ipapolicy_fields.krbpwdmindiffchars.display(value_for(ipapolicy_fields.krbpwdmindiffchars))" /> - <span py:if="tg.errors.get('krbpwdmindiffchars')" class="fielderror" - py:content="tg.errors.get('krbpwdmindiffchars')" /> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="ipapolicy_fields.krbpwdminlength.label" />: - </th> - <td> - <span py:replace="ipapolicy_fields.krbpwdminlength.display(value_for(ipapolicy_fields.krbpwdminlength))" /> - <span py:if="tg.errors.get('krbpwdminlength')" class="fielderror" - py:content="tg.errors.get('krbpwdminlength')" /> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="ipapolicy_fields.krbpwdhistorylength.label" />: - </th> - <td> - <span py:replace="ipapolicy_fields.krbpwdhistorylength.display(value_for(ipapolicy_fields.krbpwdhistorylength))" /> - <span py:if="tg.errors.get('krbpwdhistorylength')" class="fielderror" - py:content="tg.errors.get('krbpwdhistorylength')" /> - </td> - </tr> - </table> - - <h2 class="formsection">User Settings</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" py:content="ipapolicy_fields.ipamaxusernamelength.label" />: - </th> - <td> - <span py:replace="ipapolicy_fields.ipamaxusernamelength.display(value_for(ipapolicy_fields.ipamaxusernamelength))" /> - <span py:if="tg.errors.get('ipamaxusernamelength')" class="fielderror" - py:content="tg.errors.get('ipamaxusernamelength')" /> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="ipapolicy_fields.ipahomesrootdir.label" />: - </th> - <td> - <span py:replace="ipapolicy_fields.ipahomesrootdir.display(value_for(ipapolicy_fields.ipahomesrootdir))" /> - <span py:if="tg.errors.get('ipahomesrootdir')" class="fielderror" - py:content="tg.errors.get('ipahomesrootdir')" /> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="ipapolicy_fields.ipadefaultloginshell.label" />: - </th> - <td> - <span py:replace="ipapolicy_fields.ipadefaultloginshell.display(value_for(ipapolicy_fields.ipadefaultloginshell))" /> - <span py:if="tg.errors.get('ipadefaultloginshell')" class="fielderror" - py:content="tg.errors.get('ipadefaultloginshell')" /> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="ipapolicy_fields.ipadefaultprimarygroup.label" />: - </th> - <td> - <span py:replace="ipapolicy_fields.ipadefaultprimarygroup.display(value_for(ipapolicy_fields.ipadefaultprimarygroup))" /> - <span py:if="tg.errors.get('ipadefaultprimarygroup')" class="fielderror" - py:content="tg.errors.get('ipadefaultprimarygroup')" /> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="ipapolicy_fields.ipadefaultemaildomain.label" />: - </th> - <td> - <span py:replace="ipapolicy_fields.ipadefaultemaildomain.display(value_for(ipapolicy_fields.ipadefaultemaildomain))" /> - <span py:if="tg.errors.get('ipadefaultemaildomain')" class="fielderror" - py:content="tg.errors.get('ipadefaultemaildomain')" /> - </td> - </tr> - <!-- - <tr> - <th> - <label class="fieldlabel" for="${ipapolicy_fields.userobjectclasses.field_id}" - py:content="ipapolicy_fields.userobjectclasses.label" />: - </th> - <td colspan="3"> - <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${ipapolicy_fields.userobjectclasses.field_id}"> - <tbody> - <?python repetition = 0 - fld_index = 0 - fld_error = tg.errors.get('ipauserobjectclasses') - ?> - <tr py:for="fld in value_for(ipapolicy_fields.ipauserobjectclasses)" - id="${ipapolicy_fields.userobjectclasses.field_id}_${repetition}" - class="${ipapolicy_fields.userobjectclasses.field_class}"> - - <td py:for="field in ipapolicy_fields.userobjectclasses.fields"> - <span><input class="textfield" type="text" id="${ipapolicy_fields.userobjectclasses.field_id}_${repetition}_ipauserobjectclasses" name="userobjectclasses-${repetition}.ipauserobjectclasses" value="${fld}"/></span> - <span py:if="fld_error and fld_error[fld_index]" class="fielderror" - py:content="tg.errors.get('ipauserobjectclasses')" /> - </td> - <?python fld_index = fld_index + 1 ?> - <td> - <a - href="javascript:ExpandingForm.removeItem('${ipapolicy_fields.userobjectclasses.field_id}_${repetition}')">Remove</a> - </td> - <?python repetition = repetition + 1?> - </tr> - </tbody> - </table> - <a id="${ipapolicy_fields.userobjectclasses.field_id}_doclink" href="javascript:ExpandingForm.addItem('${ipapolicy_fields.userobjectclasses.field_id}');">Add User Object Class</a> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" for="${ipapolicy_fields.groupobjectclasses.field_id}" - py:content="ipapolicy_fields.groupobjectclasses.label" />: - </th> - <td colspan="3"> - <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${ipapolicy_fields.groupobjectclasses.field_id}"> - <tbody> - <?python repetition = 0 - fld_index = 0 - fld_error = tg.errors.get('ipagroupobjectclasses') - ?> - <tr py:for="fld in value_for(ipapolicy_fields.ipagroupobjectclasses)" - id="${ipapolicy_fields.groupobjectclasses.field_id}_${repetition}" - class="${ipapolicy_fields.groupobjectclasses.field_class}"> - - <td py:for="field in ipapolicy_fields.groupobjectclasses.fields"> - <span><input class="textfield" type="text" id="${ipapolicy_fields.groupobjectclasses.field_id}_${repetition}_ipagroupobjectclasses" name="groupobjectclasses-${repetition}.ipagroupobjectclasses" value="${fld}"/></span> - <span py:if="fld_error and fld_error[fld_index]" class="fielderror" - py:content="tg.errors.get('ipagroupobjectclasses')" /> - </td> - <?python fld_index = fld_index + 1 ?> - <td> - <a - href="javascript:ExpandingForm.removeItem('${ipapolicy_fields.groupobjectclasses.field_id}_${repetition}')">Remove</a> - </td> - <?python repetition = repetition + 1?> - </tr> - </tbody> - </table> - <a id="${ipapolicy_fields.groupobjectclasses.field_id}_doclink" href="javascript:ExpandingForm.addItem('${ipapolicy_fields.groupobjectclasses.field_id}');">Add Group Object Class</a> - </td> - </tr> - --> - </table> - - <hr/> - - <input type="submit" class="submitbutton" name="submit" - value="Update Policy"/> - <input type="submit" class="submitbutton" name="submit" - value="Cancel Edit" /> - </form> - -</div> diff --git a/ipa-server/ipa-gui/ipagui/templates/ipapolicyshow.kid b/ipa-server/ipa-gui/ipagui/templates/ipapolicyshow.kid deleted file mode 100644 index 3549a9f1..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/ipapolicyshow.kid +++ /dev/null @@ -1,188 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="'policylayout.kid'"> -<head> -<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> -<title>Manage IPA Policy</title> -</head> -<body> - -<?python -from ipagui.helpers import ipahelper -edit_url = tg.url('/ipapolicy/edit') -?> - - <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script> - - <h1 class="policy">Manage IPA Policy</h1> - <input class="submitbutton" type="button" - onclick="document.location.href='${edit_url}'" - value="Edit Policy" /> - - <h2 class="formsection">Search</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" py:content="fields.ipasearchtimelimit.label" />: - </th> - <td>${ipapolicy.get("ipasearchtimelimit")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.ipasearchrecordslimit.label" />: - </th> - <td>${ipapolicy.get("ipasearchrecordslimit")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.ipausersearchfields.label" />: - </th> - <td>${ipapolicy.get("ipausersearchfields")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.ipagroupsearchfields.label" />: - </th> - <td>${ipapolicy.get("ipagroupsearchfields")}</td> - </tr> - </table> - - <h2 class="formsection">Password Policy</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" py:content="fields.ipapwdexpadvnotify.label" />: - </th> - <td>${ipapolicy.get("ipapwdexpadvnotify")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.krbminpwdlife.label" />: - </th> - <td>${password.get("krbminpwdlife")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.krbmaxpwdlife.label" />: - </th> - <td>${password.get("krbmaxpwdlife")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.krbpwdmindiffchars.label" />: - </th> - <td>${password.get("krbpwdmindiffchars")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.krbpwdminlength.label" />: - </th> - <td>${password.get("krbpwdminlength")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.krbpwdhistorylength.label" />: - </th> - <td>${password.get("krbpwdhistorylength")}</td> - </tr> - </table> - <h2 class="formsection">User Settings</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" py:content="fields.ipamaxusernamelength.label" />: - </th> - <td>${ipapolicy.get("ipamaxusernamelength")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.ipahomesrootdir.label" />: - </th> - <td>${ipapolicy.get("ipahomesrootdir")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.ipadefaultloginshell.label" />: - </th> - <td>${ipapolicy.get("ipadefaultloginshell")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.ipadefaultprimarygroup.label" />: - </th> - <td>${ipapolicy.get("ipadefaultprimarygroup")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.ipadefaultemaildomain.label" />: - </th> - <td>${ipapolicy.get("ipadefaultemaildomain")}</td> - </tr> - <!-- - <tr> - <th> - <label class="fieldlabel" py:content="fields.ipauserobjectclasses.label" />: - </th> - <td> - <table cellpadding="2" cellspacing="0" border="0"> - <tbody> - <?python - index = 0 - values = ipapolicy.get("ipauserobjectclasses", '') - if isinstance(values, str): - values = [values] - ?> - <tr py:for="index in range(len(values))"> - <td>${values[index]}</td> - </tr> - </tbody> - </table> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.ipagroupobjectclasses.label" />: - </th> - <td> - <table cellpadding="2" cellspacing="0" border="0"> - <tbody> - <?python - index = 0 - values = ipapolicy.get("ipagroupobjectclasses", '') - if isinstance(values, str): - values = [values] - ?> - <tr py:for="index in range(len(values))"> - <td>${values[index]}</td> - </tr> - </tbody> - </table> - </td> - </tr> - --> - </table> -<hr /> - <input class="submitbutton" type="button" - onclick="document.location.href='${edit_url}'" - value="Edit Policy" /> - - -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/loginfailed.kid b/ipa-server/ipa-gui/ipagui/templates/loginfailed.kid deleted file mode 100644 index 064cebbb..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/loginfailed.kid +++ /dev/null @@ -1,41 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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> -<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> -<title>Permission Denied</title> -</head> - -<body> - <div id="main_content"> - <div id="details"> - <div id="alertbox" py:if="value_of('tg_flash', None)"> - <p py:content="XML(tg_flash)"></p></div> - <h1>Permission Denied</h1> - <div class="instructions"> - <p> - You do not have permission to access this page. - </p> - </div> - </div> - </div> -</body> - -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/master.kid b/ipa-server/ipa-gui/ipagui/templates/master.kid deleted file mode 100644 index d8b34142..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/master.kid +++ /dev/null @@ -1,121 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<?python import sitetemplate ?> -<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#" py:extends="sitetemplate"> - -<head py:match="item.tag=='{http://www.w3.org/1999/xhtml}head'" py:attrs="item.items()"> - <meta content="text/html; charset=UTF-8" http-equiv="content-type" py:replace="''"/> - <title py:replace="''">Your title goes here</title> - <meta py:replace="item[:]"/> - <style type="text/css" media="all"> - @import "${tg.url('/static/css/style_platform.css')}"; - @import "${tg.url('/static/css/style_platform-objects.css')}"; - @import "${tg.url('/static/css/style_freeipa.css')}"; - </style> - <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/prototype.js')}"></script> - <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/scriptaculous.js?load=effects')}"></script> - <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/ipautil.js')}"></script> -</head> - -<body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()"> - - <div id="head"> - <h1><a href="${tg.url('/')}">Free IPA</a></h1> - <div id="headerinfo"> - <div id="searchbar"> - <form action="${tg.url('/topsearch')}" method="post"> - <select name="searchtype"> - <option>Users</option> - <option>Groups</option> - </select> - <input class="searchtext" id="topsearchbox" type="text" - name="searchvalue" - value="Type search terms here." - onfocus="clearsearch()" /> - <input type="submit" value="Search"/> - </form> - <script type="text/javascript"> - function clearsearch() { - topsearchbox = document.getElementById('topsearchbox'); - topsearchbox.onfocus = null; - topsearchbox.value = ""; - } - </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> - - <div id="content"> - <div id="sidebar"> - <h2>Tasks</h2> - <ul> - <li py:if="'admins' in tg.identity.groups"><a href="${tg.url('/user/new')}">Add User</a></li> - <li><a href="${tg.url('/user/list')}">Find Users</a></li> - </ul> - <ul> - <li py:if="'admins' in tg.identity.groups"><a href="${tg.url('/group/new')}">Add Group</a></li> - <li><a href="${tg.url('/group/list')}">Find Groups</a></li> - </ul> - <ul py:if="'admins' in tg.identity.groups"> - <li><a href="${tg.url('/principal/new')}">Add Service Principal</a></li> - <li><a href="${tg.url('/principal/list')}">Find Service Principal</a></li> - </ul> - <ul py:if="'admins' in tg.identity.groups"> - <li><a href="${tg.url('/policy/index')}">Manage Policy</a></li> - </ul> - <ul> - <li py:if="not tg.identity.anonymous"><a href="${tg.url('/user/edit/', principal=tg.identity.user.display_name)}">Self Service</a></li> - </ul> - <ul py:if="'admins' in tg.identity.groups"> - <li><a href="${tg.url('/delegate/list')}">Delegations</a></li> - </ul> - </div> - - <div py:replace="[item.text]+item[:]"></div> - - - </div> - -</body> - -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/not_found.kid b/ipa-server/ipa-gui/ipagui/templates/not_found.kid deleted file mode 100644 index 0bc4c05c..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/not_found.kid +++ /dev/null @@ -1,37 +0,0 @@ -<!-- - Copyright (C) 2007-2008 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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> -<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> -<title>Page Not Found</title> -</head> - -<body> - <div id="main_content"> - <h1>Page Not Found</h1> - <div py:if='message'> - ${message} - </div> - - </div> - -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/policyindex.kid b/ipa-server/ipa-gui/ipagui/templates/policyindex.kid deleted file mode 100644 index 081b942d..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/policyindex.kid +++ /dev/null @@ -1,48 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="'policylayout.kid'"> -<head> -<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> -<title>Manage Policy</title> -</head> -<body> - -<?python -from ipagui.helpers import ipahelper -?> - - <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script> - - <h1 class="policy">Manage Policy</h1> - - <table> - <tbody> - <tr> - <td> - <a href="${tg.url('/ipapolicy/show')}" - >IPA Policy</a> - </td> - </tr> - </tbody> - </table> - - -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/policylayout.kid b/ipa-server/ipa-gui/ipagui/templates/policylayout.kid deleted file mode 100644 index 7ece6cf9..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/policylayout.kid +++ /dev/null @@ -1,34 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="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> diff --git a/ipa-server/ipa-gui/ipagui/templates/principallayout.kid b/ipa-server/ipa-gui/ipagui/templates/principallayout.kid deleted file mode 100644 index 62ec92bc..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/principallayout.kid +++ /dev/null @@ -1,36 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="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> diff --git a/ipa-server/ipa-gui/ipagui/templates/principallist.kid b/ipa-server/ipa-gui/ipagui/templates/principallist.kid deleted file mode 100644 index 9dc627ea..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/principallist.kid +++ /dev/null @@ -1,82 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="'principallayout.kid'"> -<head> -<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> -<title>Find Service Principals</title> -</head> -<body> - <h1 class="system">Find Service Principals</h1> - <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script> - <div id="search"> - <form action="${tg.url('/principal/list')}" method="get"> - <input id="hostname" type="text" name="hostname" value="${hostname}" /> - <input class="searchbutton" type="submit" value="Find Service Principals"/> - </form> - <script type="text/javascript"> - document.getElementById("hostname").focus(); - </script> - </div> - <div py:if='(principals != None) and (len(principals) > 0)'> - <h2>${len(principals)} results returned:</h2> - <table id="resultstable" class="details sortable resizable" cellspacing="0"> - <thead> - <tr> - <th> - Hostname - </th> - <th> - Service - </th> - </tr> - </thead> - <tbody> - <tr py:for="principal in principals"> - <td> - <a href="${tg.url('/principal/show',principal=principal.krbprincipalname,principal_dn=principal.dn)}" - >${principal.hostname}</a> - </td> - <td> - <a href="${tg.url('/principal/show',principal=principal.krbprincipalname,principal_dn=principal.dn)}" - >${principal.service}</a> - </td> - </tr> - </tbody> - </table> - </div> - <div id="alertbox" py:if='(principals != None) and (len(principals) == 0)'> - <p>No results found for "${hostname}"</p> - </div> - - <div class="instructions" py:if='principals == None'> - <p> - Exact matches are listed first, followed by partial matches. If your search - is too broad, you will get a warning that the search returned too many - results. Try being more specific. - </p> - <p> - The results that come back are sortable. Simply click on a column - header to sort on that header. A triangle will indicate the sorted - column, along with its direction. Clicking and dragging between headers - will allow you to resize the header. - </p> - </div> -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/principalnew.kid b/ipa-server/ipa-gui/ipagui/templates/principalnew.kid deleted file mode 100644 index b7e02891..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/principalnew.kid +++ /dev/null @@ -1,30 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="'principallayout.kid'"> -<head> - <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> - <title>Add Service Principal</title> -</head> -<body> - <h1 class="system">Add Service Principal</h1> - - ${form.display(action=tg.url('/principal/create'), value=principal)} -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/principalnewform.kid b/ipa-server/ipa-gui/ipagui/templates/principalnewform.kid deleted file mode 100644 index fe865b52..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/principalnewform.kid +++ /dev/null @@ -1,119 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<div xmlns:py="http://purl.org/kid/ns#" - class="simpleroster"> - <form action="${action}" name="${name}" method="${method}" class="tableform" - onsubmit="preSubmit()" > - - <input type="submit" class="submitbutton" name="submit" value="Add Principal"/> - -<?python -from ipagui.helpers import ipahelper -?> - - <script type="text/javascript" charset="utf-8" - src="${tg.url('/static/javascript/dynamicedit.js')}"></script> - - <?python searchurl = tg.url('/principal/edit_search') ?> - - <script type="text/javascript"> - function toggleOther(field) { - otherField = document.getElementById('form_other'); - var e=document.getElementById(field).value; - if ( e == "other") { - otherField.disabled = false; - } else { - otherField.disabled =true; - } - } - - function doSearch() { - $('searchresults').update("Searching..."); - new Ajax.Updater('searchresults', - '${searchurl}', - { asynchronous:true, - parameters: { criteria: $('criteria').value }, - evalScripts: true }); - return false; - } - </script> - - <div py:for="field in hidden_fields" - py:replace="field.display(value_for(field), **params_for(field))" - /> - - <h2 class="formsection">Service Principal Details</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" for="${principal_fields.hostname.field_id}" - py:content="principal_fields.hostname.label" />: - </th> - <td> - <span py:replace="principal_fields.hostname.display(value_for(principal_fields.hostname))" /> - <span py:if="tg.errors.get('hostname')" class="fielderror" - py:content="tg.errors.get('hostname')" /> - - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${principal_fields.service.field_id}" - py:content="principal_fields.service.label" />: - </th> - <td> - <span py:replace="principal_fields.service.display(value_for(principal_fields.service))" /> - <span py:if="tg.errors.get('service')" class="fielderror" - py:content="tg.errors.get('service')" /> - - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${principal_fields.other.field_id}" - py:content="principal_fields.other.label" />: - </th> - <td> - <span py:replace="principal_fields.other.display(value_for(principal_fields.other))" /> - <span py:if="tg.errors.get('other')" class="fielderror" - py:content="tg.errors.get('other')" /> - <script type="text/javascript"> - var e=document.getElementById('form_service').value; - if ( e != "other") { - document.getElementById('form_other').disabled = true; - } - </script> - - </td> - </tr> - - </table> - -<hr /> - - <input type="submit" class="submitbutton" name="submit" value="Add Principal"/> - - </form> - - <script type="text/javascript"> - document.getElementById("form_hostname").focus(); - </script> - -</div> diff --git a/ipa-server/ipa-gui/ipagui/templates/principalshow.kid b/ipa-server/ipa-gui/ipagui/templates/principalshow.kid deleted file mode 100644 index 5904f034..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/principalshow.kid +++ /dev/null @@ -1,70 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="'policylayout.kid'"> -<head> -<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> -<title>View Service Principal</title> -</head> -<body> - - <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script> - - <script type="text/javascript" charset="utf-8"> - function confirmDelete() { - if (confirm("Are you sure you want to delete this service principal?")) { - $('deleteform').submit(); - } - return false; - } - </script> - - <form id='deleteform' - method="post" action="${tg.url('/principal/delete')}"> - - <input type="hidden" name="principal" value="${principal.get('principal_dn')}" /> - - <input type="submit" class="submitbutton" - value="Delete Principal" - onclick="return confirmDelete();" - /> - - <h1 class="system">View Service Principal</h1> - - <h2 class="formsection">Principal</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel">Host</label>: - </th> - <td>${principal.get("hostname")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel">Service</label>: - </th> - <td>${principal.get("service")}</td> - </tr> - </table> - </form> - -<hr /> - -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/unhandled_exception.kid b/ipa-server/ipa-gui/ipagui/templates/unhandled_exception.kid deleted file mode 100644 index 89aececc..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/unhandled_exception.kid +++ /dev/null @@ -1,48 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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> -<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> -<title>Error</title> -</head> - -<body> - <div id="main_content"> - <h1>An unexpected error occured</h1> - - <div py:if='message'> - <b>Message:</b> - <pre>${message}</pre> - </div> - - <div py:if='error_msg'> - <b>HTTP Error Message:</b> - <pre>${error_msg}</pre> - </div> - - <div py:if='details'> - <b>Stack Trace:</b> - <pre>${details}</pre> - </div> - </div> - -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/useredit.kid b/ipa-server/ipa-gui/ipagui/templates/useredit.kid deleted file mode 100644 index 9633b53a..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/useredit.kid +++ /dev/null @@ -1,57 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="'userlayout.kid'"> -<head> -<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> -<title>Edit User</title> -</head> -<body> - - <div> - <div style="float:right"> - <input type="checkbox" id="toggleprotected_checkbox" - onclick="toggleProtectedFields(this);"> - <span class="small">edit protected fields</span> - </input> - </div> - <h1 class="user">Edit User</h1> - </div> - -<?python -from ipagui.helpers import userhelper -pw_expires_days = userhelper.password_expires_in(user.get("krbPasswordExpiration")) -pw_expires_soon = userhelper.password_expires_soon(pw_expires_days) -pw_is_expired = userhelper.password_is_expired(pw_expires_days) -if pw_expires_days != 1: - days_suffix = "s" -else: - days_suffix = "" -?> - - <div py:if='pw_expires_soon' class="warning_message"> - ${user.get("uid")}'s password will expire in ${pw_expires_days} day${days_suffix} - </div> - <div py:if='pw_is_expired' class="warning_message"> - ${user.get("uid")}'s password has expired - </div> - - ${form.display(action=tg.url('/user/update'), value=user, user_groups=user_groups)} -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/usereditform.kid b/ipa-server/ipa-gui/ipagui/templates/usereditform.kid deleted file mode 100644 index b2a3c39c..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/usereditform.kid +++ /dev/null @@ -1,949 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<div xmlns:py="http://purl.org/kid/ns#" - class="simpleroster"> - - <form style="display:none" id='deleteform' - method="post" action="${tg.url('/user/delete')}"> - <input type="hidden" name="uid" value="${value.get('uid')}" /> - </form> - - <form action="${action}" name="${name}" method="${method}" class="tableform" - onsubmit="preSubmit()"> - - <input type="submit" class="submitbutton" name="submit" - value="Update User"/> - <input type="submit" class="submitbutton" name="submit" - value="Cancel Edit" /> - <input py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups and tg.identity.display_name != value.get('uid')" - type="button" class="submitbutton" - value="Delete User" - onclick="return confirmDelete();" - /> - -<?python -from ipagui.helpers import ipahelper -?> - - <script type="text/javascript" charset="utf-8" - src="${tg.url('/static/javascript/dynamicedit.js')}"></script> - <script type="text/javascript" charset="utf-8" - src="${tg.url('/static/javascript/dynamicselect.js')}"></script> - <script type="text/javascript" charset="utf-8" - src="${tg.url('/tg_widgets/tg_expanding_form_widget/javascript/expanding_form.js')}"></script> - - <?python - searchurl = tg.url('/user/edit_search') - selectSearchurl = tg.url('/user/user_select_search') - ?> - - <script type="text/javascript"> - function toggleProtectedFields(checkbox) { - passwordField = document.getElementById('form_krbprincipalkey'); - passwordConfirmField = document.getElementById('form_krbprincipalkey_confirm'); - uidField = document.getElementById('form_uid'); - uidnumberField = document.getElementById('form_uidnumber'); - gidnumberField = document.getElementById('form_gidnumber'); - homedirectoryField = document.getElementById('form_homedirectory'); - if (checkbox.checked) { - passwordField.disabled = false; - passwordConfirmField.disabled = false; - uidField.disabled = false; - uidnumberField.disabled = false; - gidnumberField.disabled = false; - homedirectoryField.disabled = false; - $('form_editprotected').value = 'true'; - } else { - passwordField.disabled = true; - passwordConfirmField.disabled = true; - uidField.disabled = true; - uidnumberField.disabled = true; - gidnumberField.disabled = true; - homedirectoryField.disabled = true; - $('form_editprotected').value = ''; - } - } - - function warnRDN() { - if (confirm("Are you sure you want to change the login name?\nThis can have unexpected results. Additionally, a password change will be required.")) { - return true; - } - return false; - } - - function doSearch() { - $('searchresults').update("Searching..."); - new Ajax.Updater('searchresults', - '${searchurl}', - { asynchronous:true, - parameters: { criteria: $('criteria').value }, - evalScripts: true }); - return false; - } - - // override dynamicedit.js version - // we don't need to show [group] nor italize groups - function renderMemberInfo(newdiv, info) { - if (info.type == "group") { - newdiv.appendChild(document.createTextNode( - info.name + " ")); - } - } - - function doSelectSearch(which_select) { - $(which_select + '_searchresults').update("Searching..."); - new Ajax.Updater(which_select + '_searchresults', - '${selectSearchurl}', - { asynchronous:true, - parameters: { criteria: $(which_select + '_criteria').value, - which_select: which_select}, - evalScripts: true }); - return false; - } - - function confirmDelete() { - if (confirm("Are you sure you want to delete this person?")) { - $('deleteform').submit(); - } - return false; - } - </script> - - - <div py:for="field in hidden_fields" - py:replace="field.display(value_for(field), **params_for(field))" - /> - - <h2 class="formsection">Identity Details</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.title.field_id}" - py:content="user_fields.title.label" />: - </th> - <td> - <span py:replace="user_fields.title.display(value_for(user_fields.title))" /> - <span py:if="tg.errors.get('title')" class="fielderror" - py:content="tg.errors.get('title')" /> - - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.givenname.field_id}" - py:content="user_fields.givenname.label" />: - </th> - <td> - <span py:replace="user_fields.givenname.display(value_for(user_fields.givenname))" /> - <span py:if="tg.errors.get('givenname')" class="fielderror" - py:content="tg.errors.get('givenname')" /> - - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.sn.field_id}" - py:content="user_fields.sn.label" />: - </th> - <td> - <span py:replace="user_fields.sn.display(value_for(user_fields.sn))" /> - <span py:if="tg.errors.get('sn')" class="fielderror" - py:content="tg.errors.get('sn')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.cns.field_id}" - py:content="user_fields.cns.label" />: - </th> - <td colspan="3"> - <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.cns.field_id}"> - <tbody> - <?python repetition = 0 - cn_index = 0 - cn_error = tg.errors.get('cn') - ?> - <tr py:for="cn in value_for(user_fields.cn)" - id="${user_fields.cns.field_id}_${repetition}" - class="${user_fields.cns.field_class}"> - - <td py:for="field in user_fields.cns.fields"> - <span><input class="textfield" type="text" id="${user_fields.cns.field_id}_${repetition}_cn" name="cns-${repetition}.cn" value="${cn}"/></span> - <span py:if="cn_error and cn_error[cn_index]" class="fielderror" - py:content="tg.errors.get('cn')" /> - </td> - <?python cn_index = cn_index + 1 ?> - <td> - <a - href="javascript:ExpandingForm.removeItem('${user_fields.cns.field_id}_${repetition}')">Remove</a> - </td> - <?python repetition = repetition + 1?> - </tr> - </tbody> - </table> - <a id="${user_fields.cns.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.cns.field_id}');">Add Full Name</a> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.displayname.field_id}" - py:content="user_fields.displayname.label" />: - </th> - <td> - <span py:replace="user_fields.displayname.display(value_for(user_fields.displayname))" /> - <span py:if="tg.errors.get('displayname')" class="fielderror" - py:content="tg.errors.get('displayname')" /> - - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.initials.field_id}" - py:content="user_fields.initials.label" />: - </th> - <td> - <span py:replace="user_fields.initials.display(value_for(user_fields.initials))" /> - <span py:if="tg.errors.get('initials')" class="fielderror" - py:content="tg.errors.get('initials')" /> - - </td> - </tr> - </table> - - <h2 class="formsection">Account Details</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.nsAccountLock.field_id}" - py:content="user_fields.nsAccountLock.label" />: - </th> - <td> - <span py:replace="user_fields.nsAccountLock.display(value_for(user_fields.nsAccountLock))" /> - <span py:if="tg.errors.get('nsAccountLock')" class="fielderror" - py:content="tg.errors.get('nsAccountLock')" /> - <script py:if="tg.identity.display_name == value.get('uid')" type="text/javascript"> - document.getElementById('form_nsAccountLock').disabled = true; - </script> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.uid.field_id}" - py:content="user_fields.uid.label" />: - </th> - <td> - <span py:replace="user_fields.uid.display( - value_for(user_fields.uid))" /> - <span py:if="tg.errors.get('uid')" class="fielderror" - py:content="tg.errors.get('uid')" /> - - <script type="text/javascript"> - document.getElementById('form_uid').disabled = true; - </script> - </td> - </tr> - - <tr> - <th valign="top"> - <label class="fieldlabel" for="${user_fields.krbprincipalkey.field_id}" - py:content="user_fields.krbprincipalkey.label" />: - </th> - <td valign="top"> - <span py:replace="user_fields.krbprincipalkey.display(value_for(user_fields.krbprincipalkey))" /> - <span py:if="tg.errors.get('krbprincipalkey')" class="fielderror" - py:content="tg.errors.get('krbprincipalkey')" /> - - <script type="text/javascript"> - document.getElementById('form_krbprincipalkey').disabled = true; - </script> - - <!-- - <span id="password_text">********</span> - <input id="genpassword_button" type="button" value="Generate Password" - disabled="true" - onclick="new Ajax.Request('${tg.url('/user/generate_password')}', - { - method: 'get', - onSuccess: function(transport) { - document.getElementById('form_krbprincipalkey').value = - transport.responseText; - } - });" /> - <br /> - <input type="checkbox" - onclick="togglePassword(this);"><span class="xsmall">edit</span></input> - <script type="text/javascript"> - document.getElementById('form_krbprincipalkey').style.display='none'; - - function togglePassword(checkbox) { - passwordField = document.getElementById('form_krbprincipalkey'); - passwordText = document.getElementById('password_text'); - passwordButton = document.getElementById('genpassword_button'); - if (checkbox.checked) { - passwordField.style.display='inline'; - passwordText.style.display='none'; - passwordButton.disabled=false; - } else { - passwordField.style.display='none'; - passwordText.style.display='inline'; - passwordButton.disabled=true; - } - } - </script> - --> - </td> - </tr> - - <tr> - <th valign="top"> - <label class="fieldlabel" for="${user_fields.krbprincipalkey_confirm.field_id}" - py:content="user_fields.krbprincipalkey_confirm.label" />: - </th> - <td valign="top"> - <span py:replace="user_fields.krbprincipalkey_confirm.display( - value_for(user_fields.krbprincipalkey_confirm))" /> - <span py:if="tg.errors.get('krbprincipalkey_confirm')" class="fielderror" - py:content="tg.errors.get('krbprincipalkey_confirm')" /> - - <script type="text/javascript"> - document.getElementById('form_krbprincipalkey_confirm').disabled = true; - </script> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.uidnumber.field_id}" - py:content="user_fields.uidnumber.label" />: - </th> - <td> - <span py:replace="user_fields.uidnumber.display( - value_for(user_fields.uidnumber))" /> - <span py:if="tg.errors.get('uidnumber')" class="fielderror" - py:content="tg.errors.get('uidnumber')" /> - - <script type="text/javascript"> - document.getElementById('form_uidnumber').disabled = true; - </script> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.gidnumber.field_id}" - py:content="user_fields.gidnumber.label" />: - </th> - <td> - <span py:replace="user_fields.gidnumber.display( - value_for(user_fields.gidnumber))" /> - <span py:if="tg.errors.get('gidnumber')" class="fielderror" - py:content="tg.errors.get('gidnumber')" /> - - <script type="text/javascript"> - document.getElementById('form_gidnumber').disabled = true; - </script> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.homedirectory.field_id}" - py:content="user_fields.homedirectory.label" />: - </th> - <td> - <span py:replace="user_fields.homedirectory.display( - value_for(user_fields.homedirectory))" /> - <span py:if="tg.errors.get('homedirectory')" class="fielderror" - py:content="tg.errors.get('homedirectory')" /> - - <script type="text/javascript"> - document.getElementById('form_homedirectory').disabled = true; - </script> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.loginshell.field_id}" - py:content="user_fields.loginshell.label" />: - </th> - <td> - <span py:replace="user_fields.loginshell.display( - value_for(user_fields.loginshell))" /> - <span py:if="tg.errors.get('loginshell')" class="fielderror" - py:content="tg.errors.get('loginshell')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.gecos.field_id}" - py:content="user_fields.gecos.label" />: - </th> - <td> - <span py:replace="user_fields.gecos.display( - value_for(user_fields.gecos))" /> - <span py:if="tg.errors.get('gecos')" class="fielderror" - py:content="tg.errors.get('gecos')" /> - </td> - </tr> - </table> - - <h2 class="formsection">Contact Details</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.mail.field_id}" - py:content="user_fields.mail.label" />: - </th> - <td> - <span py:replace="user_fields.mail.display(value_for(user_fields.mail))" /> - <span py:if="tg.errors.get('mail')" class="fielderror" - py:content="tg.errors.get('mail')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.telephonenumbers.field_id}" - py:content="user_fields.telephonenumbers.label" />: - </th> - <td colspan="3"> - <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.telephonenumbers.field_id}"> - <tbody> - <?python repetition = 0 - tele_index = 0 - tele_error = tg.errors.get('telephonenumber') - ?> - <tr py:for="tele in value_for(user_fields.telephonenumber)" - id="${user_fields.telephonenumbers.field_id}_${repetition}" - class="${user_fields.telephonenumbers.field_class}"> - - <td py:for="field in user_fields.telephonenumbers.fields"> - <span><input class="textfield" type="text" id="${user_fields.telephonenumbers.field_id}_${repetition}_telephonenumber" name="telephonenumbers-${repetition}.telephonenumber" value="${tele}"/></span> - <span py:if="tele_error and tele_error[tele_index]" class="fielderror" - py:content="tg.errors.get('telephonenumber')" /> - </td> - <?python tele_index = tele_index + 1 ?> - <td> - <a - href="javascript:ExpandingForm.removeItem('${user_fields.telephonenumbers.field_id}_${repetition}')">Remove</a> - </td> - <?python repetition = repetition + 1?> - </tr> - </tbody> - </table> - <a id="${user_fields.telephonenumbers.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.telephonenumbers.field_id}');">Add Work Number</a> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.facsimiletelephonenumbers.field_id}" - py:content="user_fields.facsimiletelephonenumbers.label" />: - </th> - <td colspan="3"> - <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.facsimiletelephonenumbers.field_id}"> - <tbody> - <?python repetition = 0 - fax_index = 0 - fax_error = tg.errors.get('facsimiletelephonenumber') - ?> - <tr py:for="fax in value_for(user_fields.facsimiletelephonenumber)" - id="${user_fields.facsimiletelephonenumbers.field_id}_${repetition}" - class="${user_fields.facsimiletelephonenumbers.field_class}"> - - <td py:for="field in user_fields.facsimiletelephonenumbers.fields"> - <span><input class="textfield" type="text" id="${user_fields.facsimiletelephonenumbers.field_id}_${repetition}_facsimiletelephonenumber" name="facsimiletelephonenumbers-${repetition}.facsimiletelephonenumber" value="${fax}"/></span> - <span py:if="fax_error and fax_error[fax_index]" class="fielderror" - py:content="tg.errors.get('facsimiletelephonenumber')" /> - </td> - <?python fax_index = fax_index + 1 ?> - <td> - <a - href="javascript:ExpandingForm.removeItem('${user_fields.facsimiletelephonenumbers.field_id}_${repetition}')">Remove</a> - </td> - <?python repetition = repetition + 1?> - </tr> - </tbody> - </table> - <a id="${user_fields.facsimiletelephonenumbers.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.facsimiletelephonenumbers.field_id}');">Add Fax Number</a> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.mobiles.field_id}" - py:content="user_fields.mobiles.label" />: - </th> - <td colspan="3"> - <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.mobiles.field_id}"> - <tbody> - <?python repetition = 0 - mobile_index = 0 - mobile_error = tg.errors.get('mobile') - ?> - <tr py:for="mobile in value_for(user_fields.mobile)" - id="${user_fields.mobiles.field_id}_${repetition}" - class="${user_fields.mobiles.field_class}"> - - <td py:for="field in user_fields.mobiles.fields"> - <span><input class="textfield" type="text" id="${user_fields.mobiles.field_id}_${repetition}_mobile" name="mobiles-${repetition}.mobile" value="${mobile}"/></span> - <span py:if="mobile_error and mobile_error[mobile_index]" class="fielderror" - py:content="tg.errors.get('mobile')" /> - </td> - <?python mobile_index = mobile_index + 1 ?> - <td> - <a - href="javascript:ExpandingForm.removeItem('${user_fields.mobiles.field_id}_${repetition}')">Remove</a> - </td> - <?python repetition = repetition + 1?> - </tr> - </tbody> - </table> - <a id="${user_fields.mobiles.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.mobiles.field_id}');">Add Cell Number</a> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.pagers.field_id}" - py:content="user_fields.pagers.label" />: - </th> - <td colspan="3"> - <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.pagers.field_id}"> - <tbody> - <?python repetition = 0 - pager_index = 0 - pager_error = tg.errors.get('pager') - ?> - <tr py:for="pager in value_for(user_fields.pager)" - id="${user_fields.pagers.field_id}_${repetition}" - class="${user_fields.pagers.field_class}"> - - <td py:for="field in user_fields.pagers.fields"> - <span><input class="textfield" type="text" id="${user_fields.pagers.field_id}_${repetition}_pager" name="pagers-${repetition}.pager" value="${pager}"/></span> - <span py:if="pager_error and pager_error[pager_index]" class="fielderror" - py:content="tg.errors.get('pager')" /> - </td> - <?python pager_index = pager_index + 1 ?> - <td> - <a - href="javascript:ExpandingForm.removeItem('${user_fields.pagers.field_id}_${repetition}')">Remove</a> - </td> - <?python repetition = repetition + 1?> - </tr> - </tbody> - </table> - <a id="${user_fields.pagers.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.pagers.field_id}');">Add Pager Number</a> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.homephones.field_id}" - py:content="user_fields.homephones.label" />: - </th> - <td colspan="3"> - <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.homephones.field_id}"> - <tbody> - <?python repetition = 0 - homephone_index = 0 - homephone_error = tg.errors.get('homephone') - ?> - <tr py:for="homephone in value_for(user_fields.homephone)" - id="${user_fields.homephones.field_id}_${repetition}" - class="${user_fields.homephones.field_class}"> - - <td py:for="field in user_fields.homephones.fields"> - <span><input class="textfield" type="text" id="${user_fields.homephones.field_id}_${repetition}_homephone" name="homephones-${repetition}.homephone" value="${homephone}"/></span> - <span py:if="homephone_error and homephone_error[homephone_index]" class="fielderror" - py:content="tg.errors.get('homephone')" /> - </td> - <?python homephone_index = homephone_index + 1 ?> - <td> - <a - href="javascript:ExpandingForm.removeItem('${user_fields.homephones.field_id}_${repetition}')">Remove</a> - </td> - <?python repetition = repetition + 1?> - </tr> - </tbody> - </table> - <a id="${user_fields.homephones.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.homephones.field_id}');">Add Home Phone</a> - </td> - </tr> - </table> - - <h2 class="formsection">Mailing Address</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.street.field_id}" - py:content="user_fields.street.label" />: - </th> - <td> - <span py:replace="user_fields.street.display(value_for(user_fields.street))" /> - <span py:if="tg.errors.get('street')" class="fielderror" - py:content="tg.errors.get('street')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.roomnumber.field_id}" - py:content="user_fields.roomnumber.label" />: - </th> - <td> - <span py:replace="user_fields.roomnumber.display(value_for(user_fields.roomnumber))" /> - <span py:if="tg.errors.get('roomnumber')" class="fielderror" - py:content="tg.errors.get('roomnumber')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.l.field_id}" - py:content="user_fields.l.label" />: - </th> - <td> - <span py:replace="user_fields.l.display(value_for(user_fields.l))" /> - <span py:if="tg.errors.get('l')" class="fielderror" - py:content="tg.errors.get('l')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.st.field_id}" - py:content="user_fields.st.label" />: - </th> - <td> - <span py:replace="user_fields.st.display(value_for(user_fields.st))" /> - <span py:if="tg.errors.get('st')" class="fielderror" - py:content="tg.errors.get('st')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.postalcode.field_id}" - py:content="user_fields.postalcode.label" />: - </th> - <td> - <span py:replace="user_fields.postalcode.display(value_for(user_fields.postalcode))" /> - <span py:if="tg.errors.get('postalcode')" class="fielderror" - py:content="tg.errors.get('postalcode')" /> - </td> - </tr> - </table> - - <h2 class="formsection">Employee Information</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.ou.field_id}" - py:content="user_fields.ou.label" />: - </th> - <td> - <span py:replace="user_fields.ou.display(value_for(user_fields.ou))" /> - <span py:if="tg.errors.get('ou')" class="fielderror" - py:content="tg.errors.get('ou')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.businesscategory.field_id}" - py:content="user_fields.businesscategory.label" />: - </th> - <td> - <span py:replace="user_fields.businesscategory.display(value_for(user_fields.businesscategory))" /> - <span py:if="tg.errors.get('businesscategory')" class="fielderror" - py:content="tg.errors.get('businesscategory')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.description.field_id}" - py:content="user_fields.description.label" />: - </th> - <td> - <span py:replace="user_fields.description.display(value_for(user_fields.description))" /> - <span py:if="tg.errors.get('description')" class="fielderror" - py:content="tg.errors.get('description')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.employeetype.field_id}" - py:content="user_fields.employeetype.label" />: - </th> - <td> - <span py:replace="user_fields.employeetype.display(value_for(user_fields.employeetype))" /> - <span py:if="tg.errors.get('employeetype')" class="fielderror" - py:content="tg.errors.get('employeetype')" /> - </td> - </tr> - - <tr> - <th valign="top"> - <label class="fieldlabel" for="${user_fields.manager.field_id}" - py:content="user_fields.manager.label" />: - </th> - <td valign="top"> - <div> - <span id='manager_select_cn'>${value_for(user_fields.manager_cn)}</span> - <span py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups or tg.identity.display_name != value.get('uid')" id='manager_links'> - <a href="#" onclick="return clearSelect('manager');">clear</a> - <a href="#" onclick="return startSelect('manager');">change</a> - </span> - <span py:if="tg.errors.get('manager')" class="fielderror" - py:content="tg.errors.get('manager')" /> - </div> - <div id="manager_searcharea" style="display:none"> - <div> - <input id="manager_criteria" type="text" - onkeypress="return enterDoSelectSearch(event, 'manager');" /> - <input type="button" value="Find" - onclick="return doSelectSearch('manager');" - /> - </div> - <div id="manager_searchresults"> - </div> - </div> - </td> - </tr> - - <tr> - <th valign="top"> - <label class="fieldlabel" for="${user_fields.secretary.field_id}" - py:content="user_fields.secretary.label" />: - </th> - <td valign="top"> - <div> - <span id='secretary_select_cn'>${value_for(user_fields.secretary_cn)}</span> - <span id='secretary_links'> - <a href="#" onclick="return clearSelect('secretary');">clear</a> - <a href="#" onclick="return startSelect('secretary');">change</a> - </span> - <span py:if="tg.errors.get('secretary')" class="fielderror" - py:content="tg.errors.get('secretary')" /> - </div> - <div id="secretary_searcharea" style="display:none"> - <div> - <input id="secretary_criteria" type="text" - onkeypress="return enterDoSelectSearch(event, 'secretary');" /> - <input type="button" value="Find" - onclick="return doSelectSearch('secretary');" - /> - </div> - <div id="secretary_searchresults"> - </div> - </div> - </td> - </tr> - </table> - - <h2 class="formsection">Misc Information</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.carlicense.field_id}" - py:content="user_fields.carlicense.label" />: - </th> - <td> - <span py:replace="user_fields.carlicense.display(value_for(user_fields.carlicense))" /> - <span py:if="tg.errors.get('carlicense')" class="fielderror" - py:content="tg.errors.get('carlicense')" /> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.labeleduri.field_id}" - py:content="user_fields.labeleduri.label" />: - </th> - <td> - <span py:replace="user_fields.labeleduri.display(value_for(user_fields.labeleduri))" /> - <span py:if="tg.errors.get('labeleduri')" class="fielderror" - py:content="tg.errors.get('labeleduri')" /> - </td> - </tr> - </table> - - <div py:if='len(custom_fields) > 0'> - <h2 class="formsection" >Custom Fields</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr py:for='custom_field in custom_fields'> - <th> - <label class="fieldlabel" for="${custom_field.field_id}" - py:content="custom_field.label" />: - </th> - <td> - <span py:replace="custom_field.display(value_for(custom_field))" /> - <span py:if="tg.errors.get(custom_field.name)" class="fielderror" - py:content="tg.errors.get(custom_field.name)" /> - </td> - </tr> - </table> - </div> - - - <div> - <h2 class="formsection">Groups</h2> - - <div class="floatlist"> - <div py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups or tg.identity.display_name != value.get('uid')" class="floatheader">To Remove:</div> - <div id="delmembers"> - </div> - </div> - - <div> - <?python div_counter = 1 ?> - <div py:for="group in user_groups" id="member-${div_counter}"> - <?python - group_dn = group.get('dn') - group_dn_esc = ipahelper.javascript_string_escape(group_dn) - - group_name = group.get('cn') - group_descr = "[group]" - group_type = "group" - - group_name_esc = ipahelper.javascript_string_escape(group_name) - group_descr_esc = ipahelper.javascript_string_escape(group_descr) - group_type_esc = ipahelper.javascript_string_escape(group_type) - ?> - <span id="member-info-${div_counter}"></span> - <script type="text/javascript"> - renderMemberInfo($('member-info-${div_counter}'), - new MemberDisplayInfo('${group_name_esc}', - '${group_descr_esc}', - '${group_type_esc}')); - </script> - <a py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups or tg.identity.display_name != value.get('uid')" href="#" - onclick="removememberHandler(this, '${group_dn_esc}', - new MemberDisplayInfo('${group_name_esc}', - '${group_descr_esc}', - '${group_type_esc}')); - return false;" - >remove</a> - <script type="text/javascript"> - dn_to_member_div_id['${group_dn_esc}'] = "member-${div_counter}"; - member_hash["${group_dn_esc}"] = 1; - </script> - <?python - div_counter = div_counter + 1 - ?> - </div> - <!-- a space here to prevent an empty div --> - </div> - - </div> - - <div py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups or tg.identity.display_name != value.get('uid')" style="clear:both"> - <h2 class="formsection">Add Groups</h2> - - <div class="floatlist"> - <div class="floatheader">To Add:</div> - <div id="newmembers"> - </div> - </div> - - <div> - <div id="search"> - <input id="criteria" type="text" name="criteria" - onkeypress="return enterDoSearch(event);" /> - <input type="button" value="Find" - onclick="return doSearch();" - /> - </div> - <div id="searchresults"> - </div> - </div> - </div> - - <hr/> - - <input type="submit" class="submitbutton" name="submit" - value="Update User"/> - <input type="submit" class="submitbutton" name="submit" - value="Cancel Edit" /> - <input py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups and tg.identity.display_name != value.get('uid')" - type="button" class="submitbutton" - value="Delete User" - onclick="return confirmDelete();" - /> - - </form> - - <script type="text/javascript"> - /* - * This section restores the contents of the add and remove lists - * dynamically if we have to refresh the page - */ - if ($('form_dn_to_info_json').value != "") { - dn_to_info_hash = new Hash($('form_dn_to_info_json').value.evalJSON()); - } - - if ($('form_editprotected').value != "") { - $('toggleprotected_checkbox').checked = true; - toggleProtectedFields($('toggleprotected_checkbox')); - } - </script> - - <?python - dnadds = value.get('dnadd', []) - if not(isinstance(dnadds,list) or isinstance(dnadds,tuple)): - dnadds = [dnadds] - - dndels = value.get('dndel', []) - if not(isinstance(dndels,list) or isinstance(dndels,tuple)): - dndels = [dndels] - ?> - - <script py:for="dnadd in dnadds"> - <?python - dnadd_esc = ipahelper.javascript_string_escape(dnadd) - ?> - var dn = "${dnadd_esc}"; - var info = dn_to_info_hash[dn]; - var newdiv = addmember(dn, info); - if (newdiv != null) { - newdiv.style.display = 'block'; - } - </script> - - <script py:for="dndel in dndels"> - <?python - dndel_esc = ipahelper.javascript_string_escape(dndel) - ?> - var dn = "${dndel_esc}"; - var info = dn_to_info_hash[dn]; - var newdiv = removemember(dn, info); - newdiv.style.display = 'block'; - orig_div_id = dn_to_member_div_id[dn] - $(orig_div_id).style.display = 'none'; - </script> - -</div> diff --git a/ipa-server/ipa-gui/ipagui/templates/userlayout.kid b/ipa-server/ipa-gui/ipagui/templates/userlayout.kid deleted file mode 100644 index 7625ffdd..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/userlayout.kid +++ /dev/null @@ -1,41 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="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 id="sidebar"> - <h2>Tools</h2> - <a href="${tg.url('/user/new')}">Add User</a><br/> - <a href="${tg.url('/user/list')}">Find Users</a><br/> - </div> --> - </div> -</body> - -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/userlist.kid b/ipa-server/ipa-gui/ipagui/templates/userlist.kid deleted file mode 100644 index 5dfe2bde..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/userlist.kid +++ /dev/null @@ -1,118 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="'userlayout.kid'"> -<head> -<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> -<title>Find Users</title> -</head> -<body> - <h1 class="user">Find Users</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 class="searchbutton" type="submit" value="Find Users"/> - </form> - <script type="text/javascript"> - document.getElementById("uid").focus(); - </script> - </div> - <div py:if='(users != None) and (len(users) > 0)'> - <h2>${len(users)} results returned:</h2> - <table id="resultstable" class="details sortable resizable" cellspacing="0"> - <thead> - <tr> - <th> - User - </th> - <th> - Phone - </th> - <th> - Unit - </th> - <th> - Job Title - </th> - </tr> - </thead> - <tbody> - <tr py:for="user in users" py:if="user.nsAccountLock != 'true'"> - <td> - <a - href="${tg.url('/user/show',uid=user.uid)}" - py:content="u'%s %s (%s)' % (user.givenName, user.sn, user.uid)" - /> - </td> - <td> - ${user.telephoneNumber} - </td> - <td> - ${user.ou} - </td> - <td> - ${user.title} - </td> - </tr> - </tbody> - <tbody> - <tr id="inactive" py:for="user in users" py:if="user.nsAccountLock == 'true'"> - <td> - <a - href="${tg.url('/user/show',uid=user.uid)}" - py:content="u'%s %s (%s)' % (user.givenName, user.sn, user.uid)" - /> - </td> - <td> - ${user.telephoneNumber} - </td> - <td> - ${user.ou} - </td> - <td> - ${user.title} - </td> - </tr> - </tbody> - </table> - </div> - <div id="alertbox" py:if='(users != None) and (len(users) == 0)'> - <p>No results found for "${uid}"</p> - </div> - - <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. - </p> - <p> - Exact matches are listed first, followed by partial matches. If your search - is too broad, you will get a warning that the search returned too many - results. Try being more specific. - </p> - <p> - The results that come back are sortable. Simply click on a column - header to sort on that header. A triangle will indicate the sorted - column, along with its direction. Clicking and dragging between headers - will allow you to resize the header. - </p> - </div> -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/usernew.kid b/ipa-server/ipa-gui/ipagui/templates/usernew.kid deleted file mode 100644 index bbb74324..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/usernew.kid +++ /dev/null @@ -1,30 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="'userlayout.kid'"> -<head> - <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> - <title>Add User</title> -</head> -<body> - <h1 class="user">Add User</h1> - - ${form.display(action=tg.url("/user/create"), value=user)} -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/usernewform.kid b/ipa-server/ipa-gui/ipagui/templates/usernewform.kid deleted file mode 100644 index cd924a72..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/usernewform.kid +++ /dev/null @@ -1,842 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<div xmlns:py="http://purl.org/kid/ns#" - class="simpleroster"> - <form action="${action}" name="${name}" method="${method}" class="tableform" - onsubmit="preSubmit()"> - -<input type="submit" class="submitbutton" name="submit" value="Add User"/> - -<?python -from ipagui.helpers import ipahelper -?> - - <script type="text/javascript" charset="utf-8" - src="${tg.url('/static/javascript/dynamicedit.js')}"></script> - <script type="text/javascript" charset="utf-8" - src="${tg.url('/static/javascript/dynamicselect.js')}"></script> - <script type="text/javascript" charset="utf-8" - src="${tg.url('/tg_widgets/tg_expanding_form_widget/javascript/expanding_form.js')}"></script> - - <?python - searchurl = tg.url('/user/edit_search') - selectSearchurl = tg.url('/user/user_select_search') - ?> - - <script type="text/javascript"> - function doSearch() { - $('searchresults').update("Searching..."); - new Ajax.Updater('searchresults', - '${searchurl}', - { asynchronous:true, - parameters: { criteria: $('criteria').value }, - evalScripts: true }); - return false; - } - - // override dynamicedit.js version - // we don't need to show [group] nor italize groups - function renderMemberInfo(newdiv, info) { - if (info.type == "group") { - newdiv.appendChild(document.createTextNode( - info.name + " ")); - } - } - function doSelectSearch(which_select) { - $(which_select + '_searchresults').update("Searching..."); - new Ajax.Updater(which_select + '_searchresults', - '${selectSearchurl}', - { asynchronous:true, - parameters: { criteria: $(which_select + '_criteria').value, - which_select: which_select}, - evalScripts: true }); - return false; - } - </script> - - <div py:for="field in hidden_fields" - py:replace="field.display(value_for(field), **params_for(field))" - /> - - <h2 class="formsection">Identity Details</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.title.field_id}" - py:content="user_fields.title.label" />: - </th> - <td> - <span py:replace="user_fields.title.display(value_for(user_fields.title))" /> - <span py:if="tg.errors.get('title')" class="fielderror" - py:content="tg.errors.get('title')" /> - - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.givenname.field_id}" - py:content="user_fields.givenname.label" />: - </th> - <td> - <span py:replace="user_fields.givenname.display(value_for(user_fields.givenname))" /> - <span py:if="tg.errors.get('givenname')" class="fielderror" - py:content="tg.errors.get('givenname')" /> - - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.sn.field_id}" - py:content="user_fields.sn.label" />: - </th> - <td> - <span py:replace="user_fields.sn.display(value_for(user_fields.sn))" /> - <span py:if="tg.errors.get('sn')" class="fielderror" - py:content="tg.errors.get('sn')" /> - <script type="text/javascript"> - var uid_suggest = ""; - var mail_suggest = ""; - var cn_suggest = ""; - var displayname_suggest = ""; - var initials_suggest = ""; - - function autofill(self) { - var givenname = $('form_givenname'); - var sn = $('form_sn'); - if ((givenname.value == "") || (sn.value == "")) { - return; - } - - var uid = $('form_uid'); - var mail = $('form_mail'); - var cn = $('form_cns_0_cn'); - var displayname = $('form_displayname'); - var initials = $('form_initials'); - - if ((cn.value == "") || (cn.value == cn_suggest)) { - cn.value = givenname.value + " " + sn.value; - cn_suggest = cn.value; - new Effect.Highlight(cn); - } - - if ((displayname.value == "") || - (displayname.value == displayname_suggest)) { - displayname.value = givenname.value + " " + sn.value; - displayname_suggest = displayname.value; - new Effect.Highlight(displayname); - } - - if ((initials.value == "") || - (initials.value == initials_suggest)) { - initials.value = givenname.value[0] + sn.value[0]; - initials_suggest = initials.value; - new Effect.Highlight(initials); - } - - if ((uid.value == "") || (uid.value == uid_suggest)) { - new Ajax.Request('${tg.url('/user/suggest_uid')}', { - method: 'get', - parameters: {'givenname': givenname.value, 'sn': sn.value}, - onSuccess: function(transport) { - uid.value = transport.responseText; - uid_suggest = uid.value; - new Effect.Highlight(uid); - } - }); - } - - if ((mail.value == "") || (mail.value == mail_suggest)) { - new Ajax.Request('${tg.url('/user/suggest_email')}', { - method: 'get', - parameters: {'givenname': givenname.value, 'sn': sn.value}, - onSuccess: function(transport) { - mail.value = transport.responseText; - mail_suggest = mail.value; - new Effect.Highlight(mail); - } - }); - } - } - - document.getElementById('form_givenname').onchange = autofill; - document.getElementById('form_sn').onchange = autofill; - </script> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.cns.field_id}" - py:content="user_fields.cns.label" />: - </th> - <td colspan="3"> - <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.cns.field_id}"> - <tbody> - <?python repetition = 0 - cn_index = 0 - cn_error = tg.errors.get('cn') - values = value_for(user_fields.cn) - if values is None: - values=[''] - ?> - <tr py:for="cn in values" - id="${user_fields.cns.field_id}_${repetition}" - class="${user_fields.cns.field_class}"> - - <td py:for="field in user_fields.cns.fields"> - <span><input class="textfield" type="text" id="${user_fields.cns.field_id}_${repetition}_cn" name="cns-${repetition}.cn" value="${cn}"/></span> - <span py:if="cn_error and cn_error[cn_index]" class="fielderror" - py:content="tg.errors.get('cn')" /> - </td> - <?python cn_index = cn_index + 1 ?> - <td> - <a - href="javascript:ExpandingForm.removeItem('${user_fields.cns.field_id}_${repetition}')">Remove</a> - </td> - <?python repetition = repetition + 1?> - </tr> - </tbody> - </table> - <a id="${user_fields.cns.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.cns.field_id}');">Add Full Name</a> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.displayname.field_id}" - py:content="user_fields.displayname.label" />: - </th> - <td> - <span py:replace="user_fields.displayname.display(value_for(user_fields.displayname))" /> - <span py:if="tg.errors.get('displayname')" class="fielderror" - py:content="tg.errors.get('displayname')" /> - - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.initials.field_id}" - py:content="user_fields.initials.label" />: - </th> - <td> - <span py:replace="user_fields.initials.display(value_for(user_fields.initials))" /> - <span py:if="tg.errors.get('initials')" class="fielderror" - py:content="tg.errors.get('initials')" /> - - </td> - </tr> - </table> - - <h2 class="formsection">Account Details</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.nsAccountLock.field_id}" - py:content="user_fields.nsAccountLock.label" />: - </th> - <td> - <span py:replace="user_fields.nsAccountLock.display(value_for(user_fields.nsAccountLock))" /> - <span py:if="tg.errors.get('nsAccountLock')" class="fielderror" - py:content="tg.errors.get('nsAccountLock')" /> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.uid.field_id}" - py:content="user_fields.uid.label" />: - </th> - <td> - <span py:replace="user_fields.uid.display(value_for(user_fields.uid))" /> - <span py:if="tg.errors.get('uid')" class="fielderror" - py:content="tg.errors.get('uid')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.krbprincipalkey.field_id}" - py:content="user_fields.krbprincipalkey.label" />: - </th> - <td> - <span py:replace="user_fields.krbprincipalkey.display(value_for(user_fields.krbprincipalkey))" /> - <span py:if="tg.errors.get('krbprincipalkey')" class="fielderror" - py:content="tg.errors.get('krbprincipalkey')" /> - - <!-- - <input type="button" value="Generate Password" - onclick="new Ajax.Request('${tg.url('/user/generate_password')}', - { - method: 'get', - onSuccess: function(transport) { - document.getElementById('form_krbprincipalkey').value = - transport.responseText; - } - });" /> - --> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.krbprincipalkey_confirm.field_id}" - py:content="user_fields.krbprincipalkey_confirm.label" />: - </th> - <td> - <span py:replace="user_fields.krbprincipalkey_confirm.display( - value_for(user_fields.krbprincipalkey_confirm))" /> - <span py:if="tg.errors.get('krbprincipalkey_confirm')" class="fielderror" - py:content="tg.errors.get('krbprincipalkey_confirm')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.uidnumber.field_id}" - py:content="user_fields.uidnumber.label" />: - </th> - <td> - Generated by server - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.gidnumber.field_id}" - py:content="user_fields.gidnumber.label" />: - </th> - <td> - Generated by server - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.homedirectory.field_id}" - py:content="user_fields.homedirectory.label" />: - </th> - <td> - Generated by server - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.loginshell.field_id}" - py:content="user_fields.loginshell.label" />: - </th> - <td> - <span py:replace="user_fields.loginshell.display( - value_for(user_fields.loginshell))" /> - <span py:if="tg.errors.get('loginshell')" class="fielderror" - py:content="tg.errors.get('loginshell')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.gecos.field_id}" - py:content="user_fields.gecos.label" />: - </th> - <td> - <span py:replace="user_fields.gecos.display( - value_for(user_fields.gecos))" /> - <span py:if="tg.errors.get('gecos')" class="fielderror" - py:content="tg.errors.get('gecos')" /> - </td> - </tr> - </table> - - <h2 class="formsection">Contact Details</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.mail.field_id}" - py:content="user_fields.mail.label" />: - </th> - <td> - <span py:replace="user_fields.mail.display(value_for(user_fields.mail))" /> - <span py:if="tg.errors.get('mail')" class="fielderror" - py:content="tg.errors.get('mail')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.telephonenumbers.field_id}" - py:content="user_fields.telephonenumbers.label" />: - </th> - <td colspan="3"> - <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.telephonenumbers.field_id}"> - <tbody> - <?python repetition = 0 - tele_index = 0 - tele_error = tg.errors.get('telephonenumber') - values = value_for(user_fields.telephonenumber) - if values is None: - values=[''] - ?> - <tr py:for="tele in values" - id="${user_fields.telephonenumbers.field_id}_${repetition}" - class="${user_fields.telephonenumbers.field_class}"> - - <td py:if="user_fields.telephonenumbers.fields is not None" py:for="field in user_fields.telephonenumbers.fields"> - <span><input class="textfield" type="text" id="${user_fields.telephonenumbers.field_id}_${repetition}_telephonenumber" name="telephonenumbers-${repetition}.telephonenumber" value="${tele}"/></span> - <span py:if="tele_error and tele_error[tele_index]" class="fielderror" - py:content="tg.errors.get('telephonenumber')" /> - </td> - <?python tele_index = tele_index + 1 ?> - <td> - <a - href="javascript:ExpandingForm.removeItem('${user_fields.telephonenumbers.field_id}_${repetition}')">Remove</a> - </td> - <?python repetition = repetition + 1?> - </tr> - </tbody> - </table> - <a id="${user_fields.telephonenumbers.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.telephonenumbers.field_id}');">Add Work Number</a> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.facsimiletelephonenumbers.field_id}" - py:content="user_fields.facsimiletelephonenumbers.label" />: - </th> - <td colspan="3"> - <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.facsimiletelephonenumbers.field_id}"> - <tbody> - <?python repetition = 0 - fax_index = 0 - fax_error = tg.errors.get('facsimiletelephonenumber') - values = value_for(user_fields.facsimiletelephonenumber) - if values is None: - values=[''] - ?> - <tr py:for="fax in values" - id="${user_fields.facsimiletelephonenumbers.field_id}_${repetition}" - class="${user_fields.facsimiletelephonenumbers.field_class}"> - - <td py:for="field in user_fields.facsimiletelephonenumbers.fields"> - <span><input class="textfield" type="text" id="${user_fields.facsimiletelephonenumbers.field_id}_${repetition}_facsimiletelephonenumber" name="facsimiletelephonenumbers-${repetition}.facsimiletelephonenumber" value="${fax}"/></span> - <span py:if="fax_error and fax_error[fax_index]" class="fielderror" - py:content="tg.errors.get('facsimiletelephonenumber')" /> - </td> - <?python fax_index = fax_index + 1 ?> - <td> - <a - href="javascript:ExpandingForm.removeItem('${user_fields.facsimiletelephonenumbers.field_id}_${repetition}')">Remove</a> - </td> - <?python repetition = repetition + 1?> - </tr> - </tbody> - </table> - <a id="${user_fields.facsimiletelephonenumbers.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.facsimiletelephonenumbers.field_id}');">Add Fax Number</a> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.mobiles.field_id}" - py:content="user_fields.mobiles.label" />: - </th> - <td colspan="3"> - <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.mobiles.field_id}"> - <tbody> - <?python repetition = 0 - mobile_index = 0 - mobile_error = tg.errors.get('mobile') - values = value_for(user_fields.mobile) - if values is None: - values=[''] - ?> - <tr py:for="mobile in values" - id="${user_fields.mobiles.field_id}_${repetition}" - class="${user_fields.mobiles.field_class}"> - - <td py:for="field in user_fields.mobiles.fields"> - <span><input class="textfield" type="text" id="${user_fields.mobiles.field_id}_${repetition}_mobile" name="mobiles-${repetition}.mobile" value="${mobile}"/></span> - <span py:if="mobile_error and mobile_error[mobile_index]" class="fielderror" - py:content="tg.errors.get('mobile')" /> - </td> - <?python mobile_index = mobile_index + 1 ?> - <td> - <a - href="javascript:ExpandingForm.removeItem('${user_fields.mobiles.field_id}_${repetition}')">Remove</a> - </td> - <?python repetition = repetition + 1?> - </tr> - </tbody> - </table> - <a id="${user_fields.mobiles.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.mobiles.field_id}');">Add Cell Number</a> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.pagers.field_id}" - py:content="user_fields.pagers.label" />: - </th> - <td colspan="3"> - <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.pagers.field_id}"> - <tbody> - <?python repetition = 0 - pager_index = 0 - pager_error = tg.errors.get('pager') - values = value_for(user_fields.pager) - if values is None: - values=[''] - ?> - <tr py:for="pager in values" - id="${user_fields.pagers.field_id}_${repetition}" - class="${user_fields.pagers.field_class}"> - - <td py:for="field in user_fields.pagers.fields"> - <span><input class="textfield" type="text" id="${user_fields.pagers.field_id}_${repetition}_pager" name="pagers-${repetition}.pager" value="${pager}"/></span> - <span py:if="pager_error and pager_error[pager_index]" class="fielderror" - py:content="tg.errors.get('pager')" /> - </td> - <?python pager_index = pager_index + 1 ?> - <td> - <a - href="javascript:ExpandingForm.removeItem('${user_fields.pagers.field_id}_${repetition}')">Remove</a> - </td> - <?python repetition = repetition + 1?> - </tr> - </tbody> - </table> - <a id="${user_fields.pagers.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.pagers.field_id}');">Add Pager Number</a> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.homephones.field_id}" - py:content="user_fields.homephones.label" />: - </th> - <td colspan="3"> - <table class="formtable" cellpadding="2" cellspacing="0" border="0" id="${user_fields.homephones.field_id}"> - <tbody> - <?python repetition = 0 - homephone_index = 0 - homephone_error = tg.errors.get('homephone') - values = value_for(user_fields.homephone) - if values is None: - values=[''] - ?> - <tr py:for="homephone in values" - id="${user_fields.homephones.field_id}_${repetition}" - class="${user_fields.homephones.field_class}"> - - <td py:for="field in user_fields.homephones.fields"> - <span><input class="textfield" type="text" id="${user_fields.homephones.field_id}_${repetition}_homephone" name="homephones-${repetition}.homephone" value="${homephone}"/></span> - <span py:if="homephone_error and homephone_error[homephone_index]" class="fielderror" - py:content="tg.errors.get('homephone')" /> - </td> - <?python homephone_index = homephone_index + 1 ?> - <td> - <a - href="javascript:ExpandingForm.removeItem('${user_fields.homephones.field_id}_${repetition}')">Remove</a> - </td> - <?python repetition = repetition + 1?> - </tr> - </tbody> - </table> - <a id="${user_fields.homephones.field_id}_doclink" href="javascript:ExpandingForm.addItem('${user_fields.homephones.field_id}');">Add Home Phone</a> - </td> - </tr> - - </table> - - <h2 class="formsection">Mailing Address</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.street.field_id}" - py:content="user_fields.street.label" />: - </th> - <td> - <span py:replace="user_fields.street.display(value_for(user_fields.street))" /> - <span py:if="tg.errors.get('street')" class="fielderror" - py:content="tg.errors.get('street')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.roomnumber.field_id}" - py:content="user_fields.roomnumber.label" />: - </th> - <td> - <span py:replace="user_fields.roomnumber.display(value_for(user_fields.roomnumber))" /> - <span py:if="tg.errors.get('roomnumber')" class="fielderror" - py:content="tg.errors.get('roomnumber')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.l.field_id}" - py:content="user_fields.l.label" />: - </th> - <td> - <span py:replace="user_fields.l.display(value_for(user_fields.l))" /> - <span py:if="tg.errors.get('l')" class="fielderror" - py:content="tg.errors.get('l')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.st.field_id}" - py:content="user_fields.st.label" />: - </th> - <td> - <span py:replace="user_fields.st.display(value_for(user_fields.st))" /> - <span py:if="tg.errors.get('st')" class="fielderror" - py:content="tg.errors.get('st')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.postalcode.field_id}" - py:content="user_fields.postalcode.label" />: - </th> - <td> - <span py:replace="user_fields.postalcode.display(value_for(user_fields.postalcode))" /> - <span py:if="tg.errors.get('postalcode')" class="fielderror" - py:content="tg.errors.get('postalcode')" /> - </td> - </tr> - </table> - - <h2 class="formsection">Employee Information</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.ou.field_id}" - py:content="user_fields.ou.label" />: - </th> - <td> - <span py:replace="user_fields.ou.display(value_for(user_fields.ou))" /> - <span py:if="tg.errors.get('ou')" class="fielderror" - py:content="tg.errors.get('ou')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.businesscategory.field_id}" - py:content="user_fields.businesscategory.label" />: - </th> - <td> - <span py:replace="user_fields.businesscategory.display(value_for(user_fields.businesscategory))" /> - <span py:if="tg.errors.get('businesscategory')" class="fielderror" - py:content="tg.errors.get('businesscategory')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.description.field_id}" - py:content="user_fields.description.label" />: - </th> - <td> - <span py:replace="user_fields.description.display(value_for(user_fields.description))" /> - <span py:if="tg.errors.get('description')" class="fielderror" - py:content="tg.errors.get('description')" /> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.employeetype.field_id}" - py:content="user_fields.employeetype.label" />: - </th> - <td> - <span py:replace="user_fields.employeetype.display(value_for(user_fields.employeetype))" /> - <span py:if="tg.errors.get('employeetype')" class="fielderror" - py:content="tg.errors.get('employeetype')" /> - </td> - </tr> - - <tr> - <th valign="top"> - <label class="fieldlabel" for="${user_fields.manager.field_id}" - py:content="user_fields.manager.label" />: - </th> - <td valign="top"> - <div> - <span id='manager_select_cn'>${value_for(user_fields.manager)}</span> - <span id='manager_links'> - <a href="#" onclick="return clearSelect('manager');">clear</a> - <a href="#" onclick="return startSelect('manager');">change</a> - </span> - <span py:if="tg.errors.get('manager')" class="fielderror" - py:content="tg.errors.get('manager')" /> - </div> - <div id="manager_searcharea" style="display:none"> - <div> - <input id="manager_criteria" type="text" - onkeypress="return enterDoSelectSearch(event, 'manager');" /> - <input type="button" value="Find" - onclick="return doSelectSearch('manager');" - /> - </div> - <div id="manager_searchresults"> - </div> - </div> - </td> - </tr> - - <tr> - <th> - <label class="fieldlabel" for="${user_fields.secretary.field_id}" - py:content="user_fields.secretary.label" />: - </th> - <td> - <div> - <span id='secretary_select_cn'>${value_for(user_fields.secretary)}</span> - <span id='secretary_links'> - <a href="#" onclick="return clearSelect('secretary');">clear</a> - <a href="#" onclick="return startSelect('secretary');">change</a> - </span> - <span py:if="tg.errors.get('secretary')" class="fielderror" - py:content="tg.errors.get('secretary')" /> - </div> - <div id="secretary_searcharea" style="display:none"> - <div> - <input id="secretary_criteria" type="text" - onkeypress="return enterDoSelectSearch(event, 'secretary');" /> - <input type="button" value="Find" - onclick="return doSelectSearch('secretary');" - /> - </div> - <div id="secretary_searchresults"> - </div> - </div> - </td> - </tr> - </table> - - <h2 class="formsection">Misc Information</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.carlicense.field_id}" - py:content="user_fields.carlicense.label" />: - </th> - <td> - <span py:replace="user_fields.carlicense.display(value_for(user_fields.carlicense))" /> - <span py:if="tg.errors.get('carlicense')" class="fielderror" - py:content="tg.errors.get('carlicense')" /> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" for="${user_fields.labeleduri.field_id}" - py:content="user_fields.labeleduri.label" />: - </th> - <td> - <span py:replace="user_fields.labeleduri.display(value_for(user_fields.labeleduri))" /> - <span py:if="tg.errors.get('labeleduri')" class="fielderror" - py:content="tg.errors.get('labeleduri')" /> - </td> - </tr> - </table> - - <div py:if='len(custom_fields) > 0'> - <div class="formsection" >Custom Fields</div> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr py:for='custom_field in custom_fields'> - <th> - <label class="fieldlabel" for="${custom_field.field_id}" - py:content="custom_field.label" />: - </th> - <td> - <span py:replace="custom_field.display(value_for(custom_field))" /> - <span py:if="tg.errors.get(custom_field.name)" class="fielderror" - py:content="tg.errors.get(custom_field.name)" /> - </td> - </tr> - </table> - </div> - - <div style="clear:both"> - <h2 class="formsection">Add Groups</h2> - - - <div class="floatlist"> - <div class="floatheader">To Add:</div> - <div id="newmembers"> - </div> - </div> - - <div> - <div id="search"> - <input id="criteria" type="text" name="criteria" - onkeypress="return enterDoSearch(event);" /> - <input class="searchbutton" type="button" value="Find" - onclick="return doSearch();" - /> - </div> - <div id="searchresults"> - </div> - </div> - </div> - -<hr /> -<input type="submit" class="submitbutton" name="submit" value="Add User"/> - - </form> - - <script type="text/javascript"> - document.getElementById("form_title").focus(); - </script> - - <script type="text/javascript"> - /* - * This section restores the contents of the add and remove lists - * dynamically if we have to refresh the page - */ - if ($('form_dn_to_info_json').value != "") { - dn_to_info_hash = new Hash($('form_dn_to_info_json').value.evalJSON()); - } - </script> - - <?python - dnadds = value.get('dnadd', []) - if not(isinstance(dnadds,list) or isinstance(dnadds,tuple)): - dnadds = [dnadds] - ?> - - <script py:for="dnadd in dnadds"> - <?python - dnadd_esc = ipahelper.javascript_string_escape(dnadd) - ?> - var dn = "${dnadd_esc}"; - var info = dn_to_info_hash[dn]; - var newdiv = addmember(dn, info); - if (newdiv != null) { - newdiv.style.display = 'block'; - } - </script> - -</div> diff --git a/ipa-server/ipa-gui/ipagui/templates/userselectsearch.kid b/ipa-server/ipa-gui/ipagui/templates/userselectsearch.kid deleted file mode 100644 index b8a60ed5..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/userselectsearch.kid +++ /dev/null @@ -1,53 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<div xmlns:py="http://purl.org/kid/ns#"> - -<?python -from ipagui.helpers import ipahelper -?> - <div py:if='(users != None) and (len(users) > 0)'> - <div id="search-results-count"> - ${len(users)} results returned: - <span py:if="counter < 0"> - (truncated) - </span> - </div> - - <div py:for="user in users"> - <?python - user_name = "%s %s" % (user.getValue('givenName', ''), - user.getValue('sn', '')) - user_descr = "(%s)" % user.uid - - user_dn_esc = ipahelper.javascript_string_escape(user.dn) - user_name_esc = ipahelper.javascript_string_escape(user_name) - user_descr_esc = ipahelper.javascript_string_escape(user_descr) - which_select_esc = ipahelper.javascript_string_escape(which_select) - ?> - - ${user_name} ${user_descr} - <a href="" - onclick="doSelect('${which_select_esc}', '${user_dn_esc}', '${user_name_esc}'); - return false;" - >select</a> - </div> - </div> - <div py:if='(users != None) and (len(users) == 0)'> - No results found for "${criteria}" - </div> -</div> diff --git a/ipa-server/ipa-gui/ipagui/templates/usershow.kid b/ipa-server/ipa-gui/ipagui/templates/usershow.kid deleted file mode 100644 index 0c2582b2..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/usershow.kid +++ /dev/null @@ -1,399 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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="'userlayout.kid'"> -<head> - <meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> - <title>View User</title> -</head> -<body> -<?python -edit_url = tg.url('/user/edit', uid=user.get('uid')) -?> - <h1 class="user">View User</h1> - - <input py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups or tg.identity.display_name == user.get('uid')" - class="submitbutton" type="button" - onclick="document.location.href='${edit_url}'" - value="Edit User" /> - -<?python -from ipagui.helpers import userhelper -pw_expires_days = userhelper.password_expires_in(user.get("krbPasswordExpiration")) -pw_expires_soon = userhelper.password_expires_soon(pw_expires_days) -pw_is_expired = userhelper.password_is_expired(pw_expires_days) -if pw_expires_days != 1: - days_suffix = "s" -else: - days_suffix = "" -?> - - <div id="alertbox" py:if='pw_expires_soon' class="warning_message"> - ${user.get("uid")}'s password will expire in ${pw_expires_days} day${days_suffix} - </div> - <div id="alertbox" py:if='pw_is_expired' class="warning_message"> - ${user.get("uid")}'s password has expired - </div> - - <h2 class="formsection">Identity Details</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" py:content="fields.title.label" />: - </th> - <td>${user.get("title")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.givenname.label" />: - </th> - <td>${user.get("givenname")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.sn.label" />: - </th> - <td>${user.get("sn")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.cn.label" />: - </th> - <td> - <table cellpadding="2" cellspacing="0" border="0"> - <tbody> - <?python - index = 0 - values = user.get("cn") - if isinstance(values, str): - values = [values] - ?> - <tr py:for="index in range(len(values))"> - <td>${values[index]}</td> - </tr> - </tbody> - </table> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.displayname.label" />: - </th> - <td>${user.get("displayname")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.initials.label" />: - </th> - <td>${user.get("initials")}</td> - </tr> - </table> - - <h2 class="formsection">Account Details</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" py:content="fields.nsAccountLock.label" />: - </th> - <td>${userhelper.account_status_display(user.get("nsAccountLock"))}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.uid.label" />: - </th> - <td>${user.get("uid")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.uidnumber.label" />: - </th> - <td>${user.get("uidnumber")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.gidnumber.label" />: - </th> - <td>${user.get("gidnumber")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.homedirectory.label" />: - </th> - <td>${user.get("homedirectory")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.loginshell.label" />: - </th> - <td>${user.get("loginshell")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.gecos.label" />: - </th> - <td>${user.get("gecos")}</td> - </tr> - </table> - - <h2 class="formsection">Contact Details</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" py:content="fields.mail.label" />: - </th> - <td><a py:if="user.get('mail')" - href="mailto:${user.get('mail')}">${user.get("mail")}</a></td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.telephonenumber.label" />: - </th> - <td> - <table cellpadding="2" cellspacing="0" border="0"> - <tbody> - <?python - index = 0 - values = user.get("telephonenumber", '') - if isinstance(values, str): - values = [values] - ?> - <tr py:for="index in range(len(values))"> - <td>${values[index]}</td> - </tr> - </tbody> - </table> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.facsimiletelephonenumber.label" />: - </th> - <td> - <table cellpadding="2" cellspacing="0" border="0"> - <tbody> - <?python - index = 0 - values = user.get("facsimiletelephonenumber", '') - if isinstance(values, str): - values = [values] - ?> - <tr py:for="index in range(len(values))"> - <td>${values[index]}</td> - </tr> - </tbody> - </table> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.mobile.label" />: - </th> - <td> - <table cellpadding="2" cellspacing="0" border="0"> - <tbody> - <?python - index = 0 - values = user.get("mobile", '') - if isinstance(values, str): - values = [values] - ?> - <tr py:for="index in range(len(values))"> - <td>${values[index]}</td> - </tr> - </tbody> - </table> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.pager.label" />: - </th> - <td> - <table cellpadding="2" cellspacing="0" border="0"> - <tbody> - <?python - index = 0 - values = user.get("pager", '') - if isinstance(values, str): - values = [values] - ?> - <tr py:for="index in range(len(values))"> - <td>${values[index]}</td> - </tr> - </tbody> - </table> - </td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.homephone.label" />: - </th> - <td> - <table cellpadding="2" cellspacing="0" border="0"> - <tbody> - <?python - index = 0 - values = user.get("homephone", '') - if isinstance(values, str): - values = [values] - ?> - <tr py:for="index in range(len(values))"> - <td>${values[index]}</td> - </tr> - </tbody> - </table> - </td> - </tr> - </table> - - <h2 class="formsection">Mailing Address</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" py:content="fields.street.label" />: - </th> - <td>${user.get("street")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.roomnumber.label" />: - </th> - <td>${user.get("roomnumber")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.l.label" />: - </th> - <td>${user.get("l")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.st.label" />: - </th> - <td>${user.get("st")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.postalcode.label" />: - </th> - <td>${user.get("postalcode")}</td> - </tr> - </table> - - <h2 class="formsection">Employee Information</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" py:content="fields.ou.label" />: - </th> - <td>${user.get("ou")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.businesscategory.label" />: - </th> - <td>${user.get("businesscategory")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.description.label" />: - </th> - <td>${user.get("description")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.employeetype.label" />: - </th> - <td>${user.get("employeetype")}</td> - </tr> - <tr py:if='user_manager'> - <th> - <label class="fieldlabel" py:content="fields.manager.label" />: - </th> - <td> - <a href="${tg.url('/user/show', uid=user_manager.uid)}" - >${user_manager.givenname} ${user_manager.sn}</a> - </td> - </tr> - <tr py:if='user_secretary'> - <th> - <label class="fieldlabel" py:content="fields.secretary.label" />: - </th> - <td> - <a href="${tg.url('/user/show', uid=user_secretary.uid)}" - >${user_secretary.givenname} ${user_secretary.sn}</a> - </td> - </tr> - </table> - - <h2 class="formsection">Misc Information</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr> - <th> - <label class="fieldlabel" py:content="fields.carlicense.label" />: - </th> - <td>${user.get("carlicense")}</td> - </tr> - <tr> - <th> - <label class="fieldlabel" py:content="fields.labeleduri.label" />: - </th> - <td> - <a py:if="user.get('labeleduri')" - href="${user.get('labeleduri')}">${user.get('labeleduri')}</a> - </td> - </tr> - </table> - - <div py:if='len(fields.custom_fields) > 0'> - <h2 class="formsection">Custom Fields</h2> - <table class="formtable" cellpadding="2" cellspacing="0" border="0"> - <tr py:for='custom_field in fields.custom_fields'> - <th> - <label class="fieldlabel" for="${custom_field.field_id}" - py:content="custom_field.label" />: - </th> - <td> - ${user.get(custom_field.name)} - </td> - </tr> - </table> - </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)}" - >${report.givenname} ${report.sn}</a> - </li> - </ol> - - <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/> -<hr /> - <input py:if="'editors' in tg.identity.groups or 'admins' in tg.identity.groups or tg.identity.display_name == user.get('uid')" - class="submitbutton" type="button" - onclick="document.location.href='${edit_url}'" - value="Edit User" /> -</body> -</html> diff --git a/ipa-server/ipa-gui/ipagui/templates/welcome.kid b/ipa-server/ipa-gui/ipagui/templates/welcome.kid deleted file mode 100644 index ce3b444c..00000000 --- a/ipa-server/ipa-gui/ipagui/templates/welcome.kid +++ /dev/null @@ -1,53 +0,0 @@ -<!-- - Copyright (C) 2007 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; version 2 only - - 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, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---> -<!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> -<meta content="text/html; charset=utf-8" http-equiv="Content-Type" py:replace="''"/> -<title>Welcome</title> -</head> -<body> - <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> - <span class="warning_message"> - This site makes heavy use of JavaScript.<br /> - Please enable JavaScript in your browser to make sure all pages function properly. - </span> - </noscript> - - <p> -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 - users or groups you need to work on. Search automatically looks - across multiple fields. If you want to find Joe in Finance, try typing - "joe finance" into the search box. - </p> - <p> - Alternatively, select a task from the right sidebar. - </p> - </div> - -</body> -</html> |