summaryrefslogtreecommitdiff
path: root/httemplate/misc/xmlhttp-template_image.cgi
blob: a8c50edf08ec83e624f3c3ffc20f3c8384419a56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<%doc>
Returns JSON encoded array of objects with details about FS::template_image
objects.  Attributes in each returned object are imgnum, name, and src.

Accepts the following options:

imgnum - only return object for this imgnum

no_src - do not include the src field

</%doc>
<% encode_json(\@result) %>\
<%init>
use FS::template_image;

my $curuser = $FS::CurrentUser::CurrentUser;

die "access denied"
  unless $curuser->access_right([ 'View templates', 'View global templates',
                                  'Edit templates', 'Edit global templates', ]);

my %arg = $cgi->param('arg');

my $search = {
  'table' => 'template_image',
  'hashref' => {},
};

my $imgnum = $arg{'imgnum'} || '';
die "Bad imgnum" unless $imgnum =~ /^\d*$/;
$search->{'hashref'}->{'imgnum'} = $imgnum if $imgnum;

$search->{'select'} = 'imgnum, name' if $arg{'no_src'};

$search->{'extra_sql'} = ($imgnum ? ' AND ' : ' WHERE ')
                       . $curuser->agentnums_sql(
                           'null_right' => ['View global templates','Edit global templates']
                         );

my @images = qsearch($search); #needs agent virtualization

my @result = map { +{
  'imgnum' => $_->imgnum,
  'name'   => $_->name,
  'src'    => $arg{'no_src'} ? '' : $_->src,
} } @images;

</%init>