<!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://genshi.edgewall.org/"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="master.html" />
<xi:include href="${app.templates}/lib.html" />
<?python from pyforge.lib.security import has_artifact_access ?>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type" py:replace="''"/>
<title>Admin for $c.project.name $app.config.options.mount_point</title>
</head>
<body>
<div id="app_admin_tabs">
<ul>
<li><a href="#app-config" py:if="len(app.config_options) > 1">$app.config.plugin_name Options</a></li>
<li><a href="#app-acl"
py:if="app.permissions and allow_config">Permissions</a></li>
<li><a href="#app-forums">Forums</a></li>
</ul>
<div id="app-config" py:if="len(app.config_options) > 1" style="overflow: auto">
<h3>$app.config.plugin_name Options</h3>
<form method="post" action="configure">
<py:for each="o in app.config_options" py:if="o.name != 'mount_point'">
<div class="span-3"><label for="$o.name" class="span-3">$o.name</label></div>
<div class="span-15 last" py:if="not allow_config">
${app.config.options.get(o.name, o.default)}
</div>
<div class="editable viewing span-15 last" style="min-height:1em;"
py:if="allow_config">
<div class="viewer">${app.config.options.get(o.name, o.default)}</div>
<div class="editor"><input name="$o.name" value="${app.config.options.get(o.name, o.default)}"/></div>
</div>
</py:for>
<div class="span-15 push-3 last">
<input type="submit" value="Update config" py:if="allow_config"
class="ui-state-default ui-button ui-button-text"/>
<input py:if="app.installable and allow_config" type="submit" name="delete" value="Delete Plugin"
class="ui-state-default ui-button ui-button-text"/>
</div>
</form>
</div>
<div id="app-acl" py:if="app.permissions and allow_config">
<h3>Permissions</h3>
<div id="acl-admin">
<py:for each="p in app.permissions" >
<h3><a href="#">$p</a></h3>
<div>
<table>
<thead>
<tr>
<th>Role</th>
<th/>
</tr>
</thead>
<tbody>
<tr py:for="role in h.make_roles(app.config.acl[p])">
<td>${role.display()}</td>
<td>
<form method="POST" action="del_perm" style="display:inline">
<input type="hidden" name="permission" value="$p"/>
<input type="hidden" name="role" value="${role._id}"/>
<input type="submit" value="Remove" py:if="role.display() != '*user-'+c.user.username"
class="ui-state-default ui-button ui-button-text"/>
</form>
</td>
</tr>
<tr>
<form method="POST" action="add_perm">
<td>
<select name="role">
<option py:for="role in c.project.roles"
value="$role._id"
>${role.display()}</option>
</select>
</td>
<td>
<input type="hidden" name="permission" value="$p"/>
<input type="submit" value="Add Permission" class="ui-state-default ui-button ui-button-text"/>
</td>
</form>
</tr>
</tbody>
</table>
</div>
</py:for>
</div>
</div>
<div id="app-forums">
<h3>Forums</h3>
<form method="POST" action="update_forums">
<table id="forums">
<thead>
<tr>
<th/>
<th>Forum</th><th>Topics</th><th>Posts</th><th>Last Post</th>
<th/>
</tr>
</thead>
<tbody>
<tr py:for="i, forum in enumerate(app.forums)" class="${i%2 and 'even' or ''}">
<td>[icon]</td>
<td>
<div class="editable viewing">
<span class="viewer"><a href="${forum.url()}">$forum.name</a>($forum.shortname)</span>
<span class="editor">
${text_field('forum-%s.name' % i, 'Forum Name', forum.name)}
</span>
</div>
<div class="editable viewing">
<span class="viewer">${Markup(g.markdown.convert(forum.description))}</span>
<span class="editor">
${text_area('forum-%s.description' % i, 'Description', forum.description)}
</span>
</div>
<py:if test="forum.subforums">
<b>Subforums:</b>
<span py:for="j, sf in enumerate(forum.subforums)">
<py:if test="j != 0">, </py:if>
<a href="${sf.url()}">$sf.name</a>
</span>
</py:if>
</td>
<td>${forum.num_topics}</td>
<td>${forum.num_posts}</td>
<td>${post_summary(forum.last_post)}</td>
<td>
<input name="forum-${i}.id" type="hidden" value="$forum._id"/>
${submit_button('Delete', 'forum-%s.delete' % i)}
</td>
</tr>
</tbody>
</table>
<input type="button" id="add_forum" value="Add another forum"
class="ui-state-default ui-button ui-button-text"/>
<div id="add_forum_form" style="display:none">
<div class="span-3 clear"><label>Name:</label></div>
<div class="span-13 last"><input type="text" name="new_forum.name" class="title wide"/></div>
<div class="span-3 clear"><label>Short Name:</label></div>
<div class="span-13 last"><input type="text" name="new_forum.shortname" class="title wide"/></div>
<div class="span-3 clear"><label>Parent Forum:</label></div>
<div class="span-13 last">
<select name="new_forum.parent" class="title">
<option value="">None</option>
<option py:for="f in app.forums" value="$f._id">$f.name</option>
</select>
</div>
<div class="span-3 clear"><label>Description:</label></div>
<div class="span-13 last"><textarea name="new_forum.description" class="title" style="height:50px; width:100%"/></div>
<div class="push-3 clear span-13 last">
<input type="submit" id="new_forum.create" name="new_forum.create" value="Create Forum"
class="ui-state-default ui-button ui-button-text"/>
<input type="button" id="add_forum_cancel" value="Cancel"
class="ui-state-default ui-button ui-button-text"/>
</div>
</div>
<div class="clear"/>
</form>
</div>
</div>
<script type="text/javascript">
$(function() {
$("#app_admin_tabs").tabs({cookie:{expires:30}});
$("#acl-admin").accordion({
autoHeight: false,
navigation: true
});
$("#add_forum").click(function(){
$("#add_forum_form").show();
$(this).hide();
return false;
});
$("#add_forum_cancel").click(function(){
$("#add_forum_form").hide();
$("#add_forum").show();
return false;
});
});
</script>
</body>
</html>