source: trunk/preferences.cgi @ 594

Last change on this file since 594 was 587, checked in by kake, 17 years ago

Encapsulate config data in OpenGuides::Config.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 3.2 KB
Line 
1#!/usr/local/bin/perl
2
3use warnings;
4use strict;
5
6use CGI;
7use OpenGuides::Config;
8use OpenGuides::CGI;
9use OpenGuides::Utils;
10use OpenGuides::Template;
11
12my $config = OpenGuides::Config->new( file => "wiki.conf" );
13my $wiki = OpenGuides::Utils->make_wiki_object( config => $config );
14my $cgi = CGI->new();
15my $action = $cgi->param('action') || '';
16
17if ( $action eq "set_preferences" ) {
18    set_preferences();
19} else {
20    show_form();
21}
22
23exit 0;
24
25sub set_preferences {
26    my $username     = $cgi->param("username")                   || "";
27    my $gc_link      = $cgi->param("include_geocache_link")      || 0;
28    my $pre_above    = $cgi->param("preview_above_edit_box")     || 0;
29    my $latlong_trad = $cgi->param("latlong_traditional")        || 0;
30    my $omit_hlplnks = $cgi->param("omit_help_links")            || 0;
31    my $rc_minor_eds = $cgi->param("show_minor_edits_in_rc")     || 0;
32    my $edit_type    = $cgi->param("default_edit_type")          || "normal";
33    my $expires      = $cgi->param("cookie_expires")             || "month";
34    my $track_rc     = $cgi->param("track_recent_changes_views") || 0;
35    my $prefs_cookie = OpenGuides::CGI->make_prefs_cookie(
36        config => $config,
37        username => $username,
38        include_geocache_link  => $gc_link,
39        preview_above_edit_box => $pre_above,
40        latlong_traditional    => $latlong_trad,
41        omit_help_links        => $omit_hlplnks,
42        show_minor_edits_in_rc => $rc_minor_eds,
43        default_edit_type      => $edit_type,
44        cookie_expires         => $expires,
45        track_recent_changes_views => $track_rc,
46    );
47    my @cookies = ( $prefs_cookie );
48    # If they've asked not to have their recent changes visits tracked,
49    # clear any existing recentchanges cookie.
50    if ( ! $track_rc ) {
51        my $rc_cookie = OpenGuides::CGI->make_recent_changes_cookie(
52            config       => $config,
53            clear_cookie => 1,
54        );
55        push @cookies, $rc_cookie;
56    }
57    print OpenGuides::Template->output(
58        wiki     => $wiki,
59        config   => $config,
60        template => "preferences.tt",
61        cookies  => \@cookies,
62        vars     => {
63                      not_editable               => 1,
64                      username                   => $username,
65                      include_geocache_link      => $gc_link,
66                      preview_above_edit_box     => $pre_above,
67                      latlong_traditional        => $latlong_trad,
68                      omit_help_links            => $omit_hlplnks,
69                      show_minor_edits_in_rc     => $rc_minor_eds,
70                      default_edit_type          => $edit_type,
71                      cookie_expires             => $expires,
72                      track_recent_changes_views => $track_rc,
73                    }
74    );
75}
76
77sub show_form {
78    # Get defaults for form fields from cookies.
79    my %prefs = OpenGuides::CGI->get_prefs_from_cookie( config => $config );
80
81    print OpenGuides::Template->output(
82        wiki     => $wiki,
83        config   => $config,
84        template => "preferences.tt",
85        vars     => { %prefs,
86                      not_editable => 1,
87                      show_form    => 1
88                    }
89    );
90}
Note: See TracBrowser for help on using the repository browser.