summaryrefslogtreecommitdiffstats
path: root/sidebar.cgi
diff options
context:
space:
mode:
authorjake%acutex.net <>2001-12-13 07:41:04 +0100
committerjake%acutex.net <>2001-12-13 07:41:04 +0100
commite9f04a30422f4da41d15e22337b6e6477b2fb590 (patch)
treeb6b25129f616f2032330c74f0ddd5d59b13fffdf /sidebar.cgi
parent0450229e1c961f1ab07134702bea163f43a2e65b (diff)
downloadbugzilla-e9f04a30422f4da41d15e22337b6e6477b2fb590.tar.gz
bugzilla-e9f04a30422f4da41d15e22337b6e6477b2fb590.tar.xz
Bug 37339 and Bug 80183 - Adding a sidebar.cgi and index.cgi. The sidebar.cgi can currently be used in Mozilla/Netscape 6 and uses XUL that was originally written by Scott Collins <scc@mozilla.org>. The index.cgi displays both the proper header and footer in the appropriate places. It also changes the links accoding to if you are logged in or not.
r= ddk, kiko
Diffstat (limited to 'sidebar.cgi')
-rwxr-xr-xsidebar.cgi116
1 files changed, 116 insertions, 0 deletions
diff --git a/sidebar.cgi b/sidebar.cgi
new file mode 100755
index 000000000..587b0c534
--- /dev/null
+++ b/sidebar.cgi
@@ -0,0 +1,116 @@
+#!/usr/bonsaitools/bin/perl -wT
+# -*- Mode: perl; indent-tabs-mode: nil -*-
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+#
+# The Original Code is the Bugzilla Bug Tracking System.
+#
+# Contributor(s): Jacob Steenhagen <jake@acutex.net>
+
+use strict;
+use diagnostics;
+
+use lib ".";
+require "CGI.pl";
+
+# Shut up "Used Only Once" errors
+use vars qw { $anyvotesallowed };
+
+ConnectToDatabase();
+
+# Use the template toolkit (http://www.template-toolkit.org/) to generate
+# the user interface (HTML pages and mail messages) using templates in the
+# "template/" subdirectory.
+use Template;
+
+# Create the global template object that processes templates and specify
+# configuration parameters that apply to all templates processed in this script.
+my $template = Template->new(
+ {
+ # Colon-separated list of directories containing templates.
+ INCLUDE_PATH => "template/custom:template/default",
+ # Allow templates to be specified with relative paths.
+ RELATIVE => 1,
+ POST_CHOMP =>1,
+ # Functions for processing text within templates
+ FILTERS =>
+ {
+ url => \&url_quote,
+ },
+ }
+);
+
+# Define the global variables and functions that will be passed to the UI
+# template. Individual functions add their own values to this hash before
+# sending them to the templates they process.
+my $vars =
+ {
+ # Function for retrieving global parameters.
+ 'Param' => \&Param ,
+
+ # Function that tells us if the logged in user is in a specific group.
+ 'UserInGroup' => \&UserInGroup ,
+ };
+
+
+# Needed for $::anyvotesallowed
+GetVersionTable();
+
+# Check to see if the user has logged in yet.
+quietly_check_login();
+
+###############################################################################
+# Main Body Execution
+###############################################################################
+
+$vars->{'username'} = $::COOKIE{'Bugzilla_login'} || '';
+$vars->{'anyvotesallowed'} = $::anyvotesallowed;
+
+if (defined $::COOKIE{'Bugzilla_login'}) {
+ SendSQL("SELECT mybugslink, userid, blessgroupset FROM profiles " .
+ "WHERE login_name = " . SqlQuote($::COOKIE{'Bugzilla_login'}));
+ my ($mybugslink, $userid, $blessgroupset) = (FetchSQLData());
+ $vars->{'userid'} = $userid;
+ $vars->{'blessgroupset'} = $blessgroupset;
+ if ($mybugslink) {
+ my $mybugstemplate = Param("mybugstemplate");
+ my %substs = ( 'userid' => url_quote($::COOKIE{'Bugzilla_login'}) );
+ $vars->{'mybugsurl'} = PerformSubsts($mybugstemplate, \%substs);
+ }
+ SendSQL("SELECT name FROM namedqueries WHERE userid = $userid AND linkinfooter");
+ while (MoreSQLData()) {
+ my ($name) = FetchSQLData();
+ push(@{$vars->{'namedqueries'}}, $name);
+ }
+}
+
+# This sidebar is currently for use with Mozilla based web browsers.
+# Internet Explorer 6 is supposed to have a similar feature, but it
+# most likely won't support XUL ;) When that does come out, this
+# can be expanded to output normal HTML for IE. Until then, I like
+# the way Scott's sidebar looks so I'm using that as the base for
+# this file.
+# http://bugzilla.mozilla.org/show_bug.cgi?id=37339
+
+my $useragent = $ENV{HTTP_USER_AGENT};
+if ($useragent =~ m:Mozilla/([1-9][0-9]*):i && $1 >= 5 && $useragent !~ m/compatible/i) {
+ print "Content-type: application/vnd.mozilla.xul+xml\n\n";
+ # Generate and return the XUL from the appropriate template.
+ $template->process("sidebar/xul.tmpl", $vars)
+ || DisplayError("Template process failed: " . $template->error())
+ && exit;
+} else {
+ DisplayError("sidebar.cgi currently only supports Mozilla based web browsers");
+ exit;
+}
+
+
+