summaryrefslogtreecommitdiff
path: root/groups.php
blob: 349cc0bd84113af4e41d2119d34e359bdb098abb (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php

require_once "init.php";

require_once BASE . "/lib/style.php";
require_once BASE . "/lib/mysql.php";

$uri_parts = explode('/', $_SERVER['REQUEST_URI']);

if ($uri_parts[0] != '' || $uri_parts[1] != 'groups')
  throw_http_error(422, 'Unprocessable Entity');

$options = '';

$last = array_pop($uri_parts);
if (substr($last, 0, 1) == '?') {
  $options = $last;
  $last = array_pop($uri_parts);
}
if ($last != '')
  array_push($uri_parts, $last);

array_splice(
  $uri_parts,
  0, 2
);

$arch_filter = '1';
if (count($uri_parts) != 0) {
  $repo_arch = $uri_parts[0];
  $arch_filter = '`r_a`.`name`=from_base64("' . base64_encode($repo_arch) . '")';
  array_splice(
    $uri_parts,
    0, 1
  );
}

if (count($uri_parts) == 0) {
  // TODO: display overwiev
  print 'Good so far, but the rest is yet to be implemented.';

  die();
  print_header('Package Groups');
}

if (count($uri_parts) != 1)
  throw_http_error(422, 'Unprocessable Entity');

$group = $uri_parts[0];
$group_filter = '`install_targets`.`name`=from_base64("' . base64_encode($group) . '")';

$packages = query_package_listing(
  mysql_join_binary_packages_install_target_providers() .
  mysql_join_install_target_providers_install_targets() .
  ' WHERE ' . $arch_filter .
  ' AND ' . $group_filter,
  '',
  array(),
  false,
  true
);

if (count($packages) == 0)
  throw_http_error(404, 'Not Found');

print_header('Group Details');

print "      <div class=\"box\">\n";
print "        <h2>\n";
print "          Group Details - " . $group . " (" . $repo_arch . ")\n";
print "        </h2>\n";
print "        <p>" . count($packages) . " packages found.</p>\n";
print "        <table class=\"results\">\n";
print "          <thead>\n";
print "            <tr>\n";
foreach ($sorts as $sort) {
  print "              <th>\n";
  print "                " . $sort['label'] . "\n";
  print "              </th>\n";
}
print "            </tr>\n";
print "          </thead>\n";
print "          <tbody>\n";

print_listing($packages, true, 'package');

print_footer();