summaryrefslogtreecommitdiff
path: root/httemplate/config
diff options
context:
space:
mode:
authorivan <ivan>2009-02-09 14:05:31 +0000
committerivan <ivan>2009-02-09 14:05:31 +0000
commita4b8ce8cd1d309de00c64f38049a8dda38798046 (patch)
tree8c36c37a563900083468912ebeb373da39c59cca /httemplate/config
parent9925a640ebd475bf260b4d9e065b3f01e929e20a (diff)
rest of per-agent config for company_name, company_address, logo, etc.. RT#3989
Diffstat (limited to 'httemplate/config')
-rw-r--r--httemplate/config/config-image.cgi19
-rw-r--r--httemplate/config/config-process.cgi4
-rw-r--r--httemplate/config/config-view.cgi73
-rw-r--r--httemplate/config/config.cgi16
4 files changed, 77 insertions, 35 deletions
diff --git a/httemplate/config/config-image.cgi b/httemplate/config/config-image.cgi
new file mode 100644
index 0000000..892f7c6
--- /dev/null
+++ b/httemplate/config/config-image.cgi
@@ -0,0 +1,19 @@
+<% $conf->config_binary($name, $agentnum) %>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+my $conf = new FS::Conf;
+
+http_header( 'Content-Type' => 'image/png' ); #just png for now
+
+$cgi->param('key') =~ /^([-\w.]+)$/ or die "illegal config option";
+my $name = $1;
+
+my $agentnum = '';
+if ( $cgi->param('agentnum') =~ /^(\d+)$/ ) {
+ $agentnum = $1;
+}
+
+</%init>
diff --git a/httemplate/config/config-process.cgi b/httemplate/config/config-process.cgi
index e220fd8..84bfdef 100644
--- a/httemplate/config/config-process.cgi
+++ b/httemplate/config/config-process.cgi
@@ -25,7 +25,7 @@ foreach my $type ( ref($i->type) ? @{$i->type} : $i->type ) {
} else {
$conf->delete($i->key, $agentnum);
}
- } elsif ( $type eq 'binary' ) {
+ } elsif ( $type eq 'binary' || $type eq 'image' ) {
if ( defined($cgi->param($i->key.$n)) && $cgi->param($i->key.$n) ) {
my $fh = $cgi->upload($i->key.$n);
if (defined($fh)) {
@@ -94,7 +94,7 @@ $conf->delete($_, $agentnum) foreach @delete;
<% $conf->config($i->key, $agentnum) |js_string %> + ': ' +
<% &{ $i->option_sub }( $conf->config($i->key, $agentnum) ) |js_string %>;
% } else {
- alert('unknown type <% $type %>');
+ //alert('unknown type <% $type %>');
window.top.location.reload();
% }
diff --git a/httemplate/config/config-view.cgi b/httemplate/config/config-view.cgi
index b7e6f67..0f5fd62 100644
--- a/httemplate/config/config-view.cgi
+++ b/httemplate/config/config-view.cgi
@@ -1,10 +1,4 @@
-<% include("/elements/header.html",
- $title,
- menubar(
- 'View all agents' => $p.'browse/agent.cgi',
- )
- )
-%>
+<% include("/elements/header.html", $title, menubar(@menubar)) %>
Click on a configuration value to change it.
<BR><BR>
@@ -15,25 +9,20 @@ Click on a configuration value to change it.
<FONT SIZE="+1" COLOR="#ff0000">CONFIGURATION NOT STORED IN DATABASE -- USING COMPATIBILITY MODE</FONT><BR><BR>
%}
-% foreach my $section ( qw(required billing username password UI session
-% shell BIND
-% ),
-% '', 'deprecated') {
-
- <A NAME="<% $section || 'unclassified' %>"></A>
- <FONT SIZE="-2">
-% foreach my $nav_section ( qw(required billing username password UI session
-% shell BIND
-% ),
-% '', 'deprecated') {
-% if ( $section eq $nav_section ) {
+% foreach my $section (@sections) {
- [<A NAME="not<% $nav_section || 'unclassified' %>" style="background-color: #cccccc"><% ucfirst($nav_section || 'unclassified') %></A>]
-% } else {
+ <A NAME="<% $section || 'unclassified' %>"></A>
+ <FONT SIZE="-2">
- [<A HREF="#<% $nav_section || 'unclassified' %>"><% ucfirst($nav_section || 'unclassified') %></A>]
-% }
-% }
+% foreach my $nav_section (@sections) {
+%
+% if ( $section eq $nav_section ) {
+ [<A NAME="not<% $nav_section || 'unclassified' %>" style="background-color: #cccccc"><% ucfirst($nav_section || 'unclassified') %></A>]
+% } else {
+ [<A HREF="#<% $nav_section || 'unclassified' %>"><% ucfirst($nav_section || 'unclassified') %></A>]
+% }
+%
+% }
</FONT><BR>
<TABLE BGCOLOR="#cccccc" BORDER=1 CELLSPACING=0 CELLPADDING=0 BORDERCOLOR="#999999">
@@ -42,7 +31,7 @@ Click on a configuration value to change it.
<% ucfirst($section || 'unclassified') %> configuration options
</th>
</tr>
-% foreach my $i (grep $_->section eq $section, @config_items) {
+% foreach my $i (@{ $section_items{$section} }) {
% my @types = ref($i->type) ? @{$i->type} : ($i->type);
% my( $width, $height ) = ( 522, 336 );
% if ( grep $_ eq 'textarea', @types ) {
@@ -76,9 +65,22 @@ Click on a configuration value to change it.
<tr>
<td><font color="#ff0000">no type</font></td>
</tr>
+
+% } elsif ( $type eq 'image' ) {
+
+ <tr>
+
+ <% $conf->exists($i->key, $agentnum)
+ ? '<img src="config-image.cgi?key='. $i->key.
+ ';agentnum='. $agentnum. '">'
+ : 'empty'
+ %>
+ </tr>
+
% } elsif ( $type eq 'binary' ) {
<tr>
+
<% $conf->exists($i->key, $agentnum)
? qq!<a href="config-download.cgi?key=!. $i->key. ';agentnum='. $agentnum. qq!">download</a>!
: 'empty'
@@ -143,16 +145,15 @@ die "access denied"
unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
my $agentnum = '';
+my $title;
+my @menubar = ();
if ($cgi->param('agentnum') =~ /^(\d+)$/) {
$agentnum = $1;
-}
-
-my $title;
-if ($agentnum) {
my $agent = qsearchs('agent', { 'agentnum' => $agentnum } );
die "Agent $agentnum not found!" unless $agent;
- $title = "Configuration for ". $agent->agent;
+ push @menubar, 'View all agents' => $p.'browse/agent.cgi';
+ $title = 'Agent Configuration for '. $agent->agent;
} else {
$title = 'Global Configuration';
}
@@ -162,5 +163,15 @@ my $conf = new FS::Conf;
my @config_items = grep { $agentnum ? $_->per_agent : 1 }
grep { $_->key != ~/^invoice_(html|latex|template)/ }
$conf->config_items;
-
+
+my @sections = qw(required billing username password UI session shell BIND );
+push @sections, '', 'deprecated';
+
+my %section_items = ();
+foreach my $section (@sections) {
+ $section_items{$section} = [ grep $_->section eq $section, @config_items ];
+}
+
+@sections = grep scalar( @{ $section_items{$_} } ), @sections;
+
</%init>
diff --git a/httemplate/config/config.cgi b/httemplate/config/config.cgi
index 4bcd8e4..f390c64 100644
--- a/httemplate/config/config.cgi
+++ b/httemplate/config/config.cgi
@@ -44,13 +44,25 @@ Setting <b><% $key %></b>
<font color="#ff0000">no type</font>
+% } elsif ( $type eq 'image' ) {
+
+ <% $conf->exists($key, $agentnum)
+ ? 'Current image<br>'.
+ '<img src="config-image.cgi?key='. $key.
+ ';agentnum='. $agentnum. '"><br>'
+ : ''
+ %>
+
+ <BR>
+ New image filename <input type="file" name="<% "$key$n" %>">
+
% } elsif ( $type eq 'binary' ) {
Filename <input type="file" name="<% "$key$n" %>">
% } elsif ( $type eq 'textarea' ) {
- <textarea name="<% "$key$n" %>" rows=12 cols=78 wrap="off"><% join("\n", $conf->config($key, $agentnum)) %></textarea>
+ <textarea name="<% "$key$n" %>" rows=12 cols=78 wrap="off"><% join("\n", $conf->config($key, $agentnum)) |h %></textarea>
% } elsif ( $type eq 'checkbox' ) {
@@ -259,7 +271,7 @@ Setting <b><% $key %></b>
% } else {
- <font color="#ff0000">unknown type $type</font>
+ <font color="#ff0000">unknown type <% $type %></font>
% }
% $n++;