Implement a simple form to save custom markdown-enabled content in the
forge's admin area that is displayed instead of the default project list. Sanitize the URLs that we're using and make a redirect to the listProjects page when no custom forge page is enabled.
This commit is contained in:
@@ -39,6 +39,7 @@
|
||||
{include 'idf/main-menu.html'}
|
||||
<div id="header">
|
||||
<div id="main-tabs">
|
||||
<a href="{url 'IDF_Views_Admin::forge'}"{block tabforge}{/block}>{trans 'Forge'}</a>
|
||||
<a href="{url 'IDF_Views_Admin::projects'}"{block tabprojects}{/block}>{trans 'Projects'}</a>
|
||||
<a href="{url 'IDF_Views_Admin::users'}"{block tabusers}{/block}>{trans 'People'}</a>
|
||||
{if $usherConfigured}
|
||||
|
5
src/IDF/templates/idf/gadmin/forge/base.html
Normal file
5
src/IDF/templates/idf/gadmin/forge/base.html
Normal file
@@ -0,0 +1,5 @@
|
||||
{extends "idf/gadmin/base.html"}
|
||||
{block tabforge} class="active"{/block}
|
||||
{block subtabs}
|
||||
<a {if $inIndex}class="active" {/if}href="{url 'IDF_Views_Admin::forge'}">{trans 'Frontpage'}</a>
|
||||
{/block}
|
54
src/IDF/templates/idf/gadmin/forge/index.html
Normal file
54
src/IDF/templates/idf/gadmin/forge/index.html
Normal file
@@ -0,0 +1,54 @@
|
||||
{extends "idf/gadmin/forge/base.html"}
|
||||
|
||||
{block docclass}yui-t3{assign $inIndex=true}{/block}
|
||||
|
||||
{block body}
|
||||
<form method="post" action=".">
|
||||
<table class="form" summary="">
|
||||
<colgroup>
|
||||
<col width="20" />
|
||||
<col width="*" />
|
||||
</colgroup>
|
||||
<tr>
|
||||
<td>{$form.f.enabled|unsafe}</td>
|
||||
<td>
|
||||
{$form.f.enabled.labelTag}
|
||||
{if $form.f.enabled.errors}{$form.f.enabled.fieldErrors}{/if}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
{if $form.f.content.errors}{$form.f.content.fieldErrors}{/if}
|
||||
{$form.f.content|unsafe}
|
||||
</td>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<input type="submit" value="{trans 'Save Changes'}" name="submit" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
// <!-- {literal}
|
||||
$(document).ready(function() {
|
||||
var handler = function() {
|
||||
if ($(this).is(':checked')) {
|
||||
$('#id_content').removeAttr('readonly');
|
||||
} else {
|
||||
$('#id_content').attr('readonly', 'readonly');
|
||||
}
|
||||
};
|
||||
$('#id_enabled').bind('click', handler);
|
||||
handler.call($('#id_enabled'));
|
||||
});
|
||||
// {/literal} -->
|
||||
</script>
|
||||
{/block}
|
||||
|
||||
{block context}
|
||||
<div class="issue-submit-info">
|
||||
<p>{blocktrans}You can define a custom forge start page that is displayed instead of the standard project listing.{/blocktrans}</p>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
|
@@ -1,14 +1,14 @@
|
||||
{extends "idf/gadmin/base.html"}
|
||||
{extends "idf/base-simple.html"}
|
||||
{block docclass}yui-t2{/block}
|
||||
{block tabhome} class="active"{/block}
|
||||
{block subtabs}
|
||||
{trans 'Welcome'}
|
||||
<a href="{url 'IDF_Views::index'}" class="active">{trans 'Home'}</a> |
|
||||
<a href="{url 'IDF_Views::listProjects', array('all', 'name')}" class="active">{trans 'Projects'}</a>
|
||||
{/block}
|
||||
{block body}
|
||||
<p>{blocktrans}You have here access to the administration of the forge.{/blocktrans}</p>
|
||||
{markdown_forge $content}
|
||||
{/block}
|
||||
{block context}
|
||||
|
||||
{/block}
|
||||
{block context}{/block}
|
||||
|
||||
{block foot}<div id="branding">Powered by <a href="http://www.indefero.net" title="InDefero, bug tracking and more">InDefero</a>,<br />a <a href="http://www.ceondo.com">Céondo Ltd</a> initiative.</div>{/block}
|
@@ -1,7 +1,5 @@
|
||||
{extends "idf/base-simple.html"}
|
||||
{block docclass}yui-t2{/block}
|
||||
{block tabhome} class="active"{/block}
|
||||
{block subtabs}<a href="{url 'IDF_Views::index'}" class="active">{trans 'Projects'}</a>{/block}
|
||||
{block body}
|
||||
{if $projects.count() == 0}
|
||||
<p>{trans 'No projects managed with InDefero were found.'}</p>
|
||||
@@ -41,7 +39,7 @@
|
||||
{if count($tags) == 0}{trans 'n/a'}{else}
|
||||
{foreach $p.get_tags_list() as $idx => $label}
|
||||
{if $idx != 0}, {/if}
|
||||
<a class="label" href="{url 'IDF_Views::listProjects', array($label->id, $order)}">{$label}</a>
|
||||
<a class="label" href="{url 'IDF_Views::listProjectsByLabel', array($label->id, $order)}">{$label}</a>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</p>
|
||||
@@ -58,11 +56,11 @@
|
||||
<dl class="tagscloud smaller">{foreach $projectLabels as $class => $labels}
|
||||
<dt class="label">{$class}</dt>
|
||||
{foreach $labels as $idx => $label}
|
||||
<dd><a href="{url 'IDF_Views::listProjects', array($label->id, $order)}" class="label" title="{blocktrans $label.project_count}1 project{plural}{$label.project_count} projects{/blocktrans}">{$label.name}{if $idx != count($labels) - 1},{/if}</a></dd>
|
||||
<dd><a href="{url 'IDF_Views::listProjectsByLabel', array($label->id, $order)}" class="label" title="{blocktrans $label.project_count}1 project{plural}{$label.project_count} projects{/blocktrans}">{$label.name}{if $idx != count($labels) - 1},{/if}</a></dd>
|
||||
{/foreach}
|
||||
{/foreach}</dl>
|
||||
{if $tag}
|
||||
<p class="smaller"><a href="{url 'IDF_Views::listProjects', array('all', $order)}">
|
||||
<p class="smaller"><a href="{url 'IDF_Views::listProjectsByLabel', array('all', $order)}">
|
||||
{blocktrans}Remove filter for {$tag}{/blocktrans}</a></p>
|
||||
{/if}
|
||||
{/if}
|
||||
@@ -72,10 +70,10 @@
|
||||
{assign $labelPart = 'all'}
|
||||
{if $tag}{assign $labelPart = $tag->id}{/if}
|
||||
<p class="smaller">
|
||||
{if $order != 'name'}<a href="{url 'IDF_Views::listProjects', array($labelPart, 'name')}">{/if}
|
||||
{if $order != 'name'}<a href="{url 'IDF_Views::listProjectsByLabel', array($labelPart, 'name')}">{/if}
|
||||
{trans 'By name'}{if $order != 'name'}</a>{/if}
|
||||
–
|
||||
{if $order != 'activity'}<a href="{url 'IDF_Views::listProjects', array($labelPart, 'activity')}">{/if}
|
||||
{if $order != 'activity'}<a href="{url 'IDF_Views::listProjectsByLabel', array($labelPart, 'activity')}">{/if}
|
||||
{trans 'By activity'}{if $order != 'activity'}</a>{/if}
|
||||
</p>
|
||||
<br />
|
||||
|
@@ -5,12 +5,14 @@
|
||||
<li>{blocktrans}Welcome, <strong><a class="userw" href="{$url}">{$user}</a></strong>.{/blocktrans}
|
||||
<a href="{url 'IDF_Views::logout'}">{trans 'Sign Out'}</a></li>{else}<li>
|
||||
<a href="{url 'IDF_Views::login'}">{trans 'Sign in or create your account'}</a></li>
|
||||
{/if}<li id="project-list"><a href="{url 'IDF_Views::index'}">{trans 'Project List'} ▾</a>
|
||||
{/if}{if $customForgePageEnabled}
|
||||
<li><a href="{url 'IDF_Views::index'}">{trans 'Home'}</a></li>
|
||||
{/if}<li id="project-list"><a href="{url 'IDF_Views::listProjects'}">{trans 'Project List'} ▾</a>
|
||||
{if $allProjects.count() != 0}
|
||||
<ul>{foreach $allProjects as $p}
|
||||
<li><a href="{url 'IDF_Views_Project::home', array($p.shortname)}"><img class="logo" src="{url 'IDF_Views_Project::logo', array($p.shortname)}" alt="{trans 'Project logo'}" />{if $p.private}<img class="lock" src="{media '/idf/img/lock.png'}" alt="{trans 'Private project'}" />{/if}{$p}</a></li>
|
||||
{/foreach}</ul>
|
||||
{/if}</li>{if $isAdmin}<li><a href="{url 'IDF_Views_Admin::projects'}">{trans 'Forge Management'}</a></li>{/if}<li>
|
||||
{/if}</li>{if $isAdmin}<li><a href="{url 'IDF_Views_Admin::forge'}">{trans 'Forge Management'}</a></li>{/if}<li>
|
||||
<a href="{url 'IDF_Views::faq'}" title="{trans 'Help and accessibility features'}">{trans 'Help'}</a></li>
|
||||
</ul>
|
||||
|
||||
|
Reference in New Issue
Block a user