Author: nick
Date: 2006-07-27 18:13:52 +0100 (Thu, 27 Jul 2006)
New Revision: 822
Added:
trunk/templates/admin_home.tt
Modified:
trunk/MANIFEST
trunk/lib/OpenGuides.pm
Log:
Start on the admin interface
Modified: trunk/MANIFEST
===================================================================
--- trunk/MANIFEST 2006-07-27 16:27:54 UTC (rev 821)
+++ trunk/MANIFEST 2006-07-27 17:13:52 UTC (rev 822)
@@ -27,6 +27,7 @@
newpage.cgi
preferences.cgi
search.cgi
+templates/admin_home.tt
templates/backlink_results.tt
templates/banner.tt
templates/delete_confirm.tt
Modified: trunk/lib/OpenGuides.pm
===================================================================
--- trunk/lib/OpenGuides.pm 2006-07-27 16:27:54 UTC (rev 821)
+++ trunk/lib/OpenGuides.pm 2006-07-27 17:13:52 UTC (rev 822)
@@ -1132,6 +1132,68 @@
}
}
+=item B<display_admin_interface>
+Fetch everything we need to display the admin interface, and passes it off
+ to the template
+=cut
+sub display_admin_interface {
+ my ($self, %args) = @_;
+ my $return_tt_vars = $args{return_tt_vars} || 0;
+ my $return_output = $args{return_output} || 0;
+
+ my $wiki = $self->wiki;
+ my $formatter = $self->wiki->formatter;
+ my $script_url = $self->config->script_url;
+
+ # Grab all the nodes
+ my @all_nodes = $wiki->list_all_nodes(with_details=>1);
+ @all_nodes = sort { $a->{'name'} cmp $b->{'name'} }
@all_nodes;
+
+
+ # Split into nodes, Locales and Categories
+ my @nodes;
+ my @categories;
+ my @locales;
+ for my $node (@all_nodes) {
+ # Make the URLs
+ my $node_param = uri_escape( $formatter->node_name_to_node_param(
$node->{'name'} ) );
+ $node->{'view_url'} = $script_url . "?id=" . $node_param;
+ $node->{'versions_url'} = $script_url .
"?action=list_all_versions;id=" . $node_param;
+ $node->{'moderation_url'} = $script_url .
"?action=set_moderation;id=" . $node_param;
+
+ # Filter
+ if($node->{'name'} =~ /^Category /) {
+ $node->{'page_name'} = $node->{'name'};
+ $node->{'name'} =~ s/^Category //;
+ push @categories, $node;
+ } elsif($node->{'name'} =~ /^Locale /) {
+ $node->{'page_name'} = $node->{'name'};
+ $node->{'name'} =~ s/^Locale //;
+ push @locales, $node;
+ } else {
+ push @nodes, $node;
+ }
+ }
+
+ # Render in a template
+ my %tt_vars = (
+ not_editable => 1,
+ not_deletable => 1,
+ deter_robots => 1,
+ nodes => \@nodes,
+ categories => \@categories,
+ locales => \@locales
+ );
+ return %tt_vars if $return_tt_vars;
+ my $output = $self->process_template(
+ id => "",
+ template => "admin_home.tt",
+ tt_vars => \%tt_vars,
+ );
+ return $output if $return_output;
+ print $output;
+}
+
sub process_template {
my ($self, %args) = @_;
my %output_conf = (
Added: trunk/templates/admin_home.tt
===================================================================
--- trunk/templates/admin_home.tt 2006-07-27 16:27:54 UTC (rev 821)
+++ trunk/templates/admin_home.tt 2006-07-27 17:13:52 UTC (rev 822)
@@ -0,0 +1,66 @@
+[% INCLUDE header.tt page_title = "Admin - $site_name" %]
+[% INCLUDE banner.tt %]
+<div id="content">
+[% INCLUDE navbar.tt %]
+<div id="maincontent">
+<h2>Site Administration</h2>
+<ul>
+ <li><a href="#nodes">Nodes</a></li>
+ <li><a href="#locales">Locales</a></li>
+ <li><a href="#categories">Categories</a></li>
+</ul>
+
+<a name="nodes"></a>
+<table id="nodes">
+<tr><th>Node name</th><th>Current
Version</th><th>Moderation</th><th>Actions</th></tr>
+ [% FOREACH node = nodes %]
+ <tr>
+ <td><a href="[% node.view_url %]">[% node.name
%]</a></td>
+ <td>[% node.version %]</td>
+ <td>[% node.moderate %]</td>
+ <td><a href="[% node.view_url %]">View</a> or
+ <a href="[% node.versions_url %]">View all versions</a> or
+ <a href="[% node.moderation_url %]">Set Moderation</a>
+ </td>
+ </tr>
+ [% END %]
+</table>
+
+<br /><br />
+
+<a name="locales"></a>
+<table id="locales">
+<tr><th>Locale name</th><th>Current
Version</th><th>Moderation</th><th>Actions</th></tr>
+ [% FOREACH locale = locales %]
+ <tr>
+ <td><a href="[% locale.view_url %]">[% locale.name
%]</a></td>
+ <td>[% locale.version %]</td>
+ <td>[% locale.moderate %]</td>
+ <td><a href="[% locale.view_url %]">View</a> or
+ <a href="[% locale.versions_url %]">View all versions</a> or
+ <a href="[% locale.moderation_url %]">Set Moderation</a>
+ </td>
+ </tr>
+ [% END %]
+</table>
+
+<br /><br />
+
+<a name="categories"></a>
+<table id="categories">
+<tr><th>Category name</th><th>Current
Version</th><th>Moderation</th><th>Actions</th></tr>
+ [% FOREACH cat = categories %]
+ <tr>
+ <td><a href="[% cat.view_url %]">[% cat.name
%]</a></td>
+ <td>[% cat.version %]</td>
+ <td>[% cat.moderate %]</td>
+ <td><a href="[% cat.view_url %]">View</a> or
+ <a href="[% cat.versions_url %]">View all versions</a> or
+ <a href="[% cat.moderation_url %]">Set Moderation</a>
+ </td>
+ </tr>
+ [% END %]
+</table>
+
+</div>
+[% INCLUDE footer.tt %]
Show replies by date