array( "title" => "architecture", "label" => "Arch", "mysql" => "`architectures`.`name`" ), "repo" => array( "title" => "repository", "label" => "Repo", "mysql" => "CONCAT(`r_a`.`name`,\"/\",`repositories`.`name`)" ), "pkgname" => array( "title" => "package name", "label" => "Name", "mysql" => "`binary_packages`.`pkgname`" ), "pkgver" => array( "title" => "package version", "label" => "Version", "mysql" => mysql_query_package_version("binary_packages") ), "bugs" => array( "title" => "bug status", "label" => "Bugs", "mysql" => "NOT `binary_packages`.`has_issues`" ), "build_date" => array( "title" => "build date", "label" => "Build Date", "mysql" => "IFNULL(`build_assignments`.`return_date`,\"00-00-0000 00:00:00\")" ), "move_date" => array( "title" => "last update", "label" => "Last Updated", "mysql" => "IFNULL(`binary_packages_in_repositories`.`last_moved`,\"00-00-0000 00:00:00\")" ), "del" => array( "title" => "to be deleted", "label" => "Delete", "mysql" => "`binary_packages_in_repositories`.`is_to_be_deleted`" ) ); function package_listing_query_order_by() { global $pkglist_sorts; if (!array_key_exists('sort', $_GET)) return; $criterium = $_GET['sort']; if ( array_key_exists($criterium, $pkglist_sorts) && array_key_exists('mysql', $pkglist_sorts[$criterium]) ) return $pkglist_sorts[$criterium]['mysql'] . ','; if (substr($criterium, 0, 1) != '-') return; $criterium = substr($criterium, 1); if ( array_key_exists($criterium, $pkglist_sorts) && array_key_exists('mysql', $pkglist_sorts[$criterium]) ) return $pkglist_sorts[$criterium]['mysql'] . ' DESC,'; return; } function query_package_listing($filter_and_order, $float_columns, $count_only) { if ($count_only) $columns = "COUNT(DISTINCT `binary_packages`.`id`)"; else $columns = "DISTINCT " . "`binary_packages`.`pkgname`," . "`package_sources`.`pkgbase`," . "CONCAT(`r_a`.`name`,\"/\",`repositories`.`name`) AS `repo`," . "`architectures`.`name` AS `arch`," . mysql_query_package_version("binary_packages") . " AS `version`," . "IF(`binary_packages`.`has_issues`,1,0) AS `has_issues`," . "`build_assignments`.`return_date` AS `build_date`," . "`binary_packages_in_repositories`.`last_moved` AS `move_date`," . "IF(`binary_packages_in_repositories`.`is_to_be_deleted`,1,0) AS `is_to_be_deleted`"; $result = mysql_run_query( "SELECT " . $columns . " FROM `binary_packages`" . mysql_join_binary_packages_architectures() . mysql_join_binary_packages_binary_packages_in_repositories() . mysql_join_binary_packages_in_repositories_repositories() . " AND `repositories`.`is_on_master_mirror`" . mysql_join_repositories_architectures("","r_a") . mysql_join_binary_packages_build_assignments() . mysql_join_build_assignments_package_sources() . $filter_and_order ); if ($count_only) return implode($result -> fetch_assoc()); else { $return = array(); while ($row = $result -> fetch_assoc()) { foreach ($float_columns as $float_column) $row[$float_column] = floatval($row[$float_column]); $return[] = $row; } return $return; } } function print_package_listing($list, $print_order_links) { global $pkglist_sorts; print " \n"; print " \n"; print " \n"; foreach ($pkglist_sorts as $get => $sort) { print " \n"; } print " \n"; print " \n"; print " \n"; $oddity = "odd"; foreach ($list as $row) { print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; if ($oddity == "odd" ) $oddity = "even"; else $oddity = "odd"; } print " \n"; print "
\n"; if ($print_order_links) { print " " . $sort["label"] . "\n"; } else print " " . $sort["label"] . "\n"; print "
\n"; print " " . $row["arch"] . "\n"; print " \n"; print " " . $row["repo"] . "\n"; print " \n"; print " " . $row["pkgname"] . "\n"; print " \n"; print " " . $row["version"] . "\n"; print " \n"; print " "; if ($row["has_issues"]) print "has open bug reports"; else print " "; print "\n"; print " \n"; print " "; if (isset($row["build_date"])) print $row["build_date"]; else print " "; print "\n"; print " \n"; print " "; if (isset($row["move_date"])) print $row["move_date"]; else print " "; print "\n"; print " \n"; print " "; if ($row["is_to_be_deleted"]) print "to be deleted"; else print " "; print "\n"; print "
\n"; }