summaryrefslogtreecommitdiffstats
path: root/web/html/packages.php
blob: 7d5b207528deaec496e19e0b099b05f6daf161a3 (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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<?php

set_include_path(get_include_path() . PATH_SEPARATOR . '../lib');

include_once("aur.inc.php");      # access AUR common functions
set_lang();                       # this sets up the visitor's language
include_once('pkgfuncs.inc.php'); # package specific functions
check_sid();                      # see if they're still logged in

# Retrieve package ID and name, unless initialized by the routing framework
if (!isset($pkgid) || !isset($pkgname)) {
	if (isset($_GET['ID'])) {
		$pkgid = intval($_GET['ID']);
	} else if (isset($_GET['N'])) {
		$pkgid = pkg_from_name($_GET['N']);
	} else {
		unset($pkgid);
	}
}

$details = array();
if (isset($pkgid)) {
	$details = pkg_get_details($pkgid);
	if (isset($details['Name'])) {
		$pkgname = $details['Name'];
	} else {
		$pkgname = null;
	}
} else {
	unset($pkgname);
}

if (isset($pkgid) && ($pkgid == 0 || $pkgid == NULL || $pkgname == NULL)) {
	header("HTTP/1.0 404 Not Found");
	include "./404.php";
	return;
}

# Set the title to the current query or package name
if (isset($pkgname)) {
	$title = $pkgname;
} else if (!empty($_GET['K'])) {
	$title = __("Search Criteria") . ": " . $_GET['K'];
} else {
	$title = __("Packages");
}

html_header($title, $details);
?>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
function collapseDependsList(list) {
	list = $(list);
	// Hide everything past a given limit. Don't do anything if we don't have
	// enough items, or the link already exists.
	var limit = 20,
		linkid = list.attr('id') + 'link',
		items = list.find('li').slice(limit);
	if (items.length <= 1 || $('#' + linkid).length > 0) {
		return;
	}
	items.hide();
	list.after('<p><a id="' + linkid + '" href="#">Show More…</a></p>');

	// add link and wire it up to show the hidden items
	$('#' + linkid).click(function(event) {
		event.preventDefault();
		list.find('li').show();
		// remove the full <p/> node from the DOM
		$(this).parent().remove();
	});
}

function collapseComment(div) {
	var linkid = div.attr('id') + 'link',
		inner = div.find('div'),
		height = inner.height(),
		maxheight = 200;

	if (height <= maxheight)
		return;

	inner.css({ 'overflow': 'hidden', 'height': maxheight + 'px' });
	inner.addClass('collapsed');
	inner.after('<p><a id="' + linkid + '" href="#">Show More…</a></p>');

	$('#' + linkid).click(function(event) {
		var inner = $(this).parent().parent().find('div');
		var newheight;

		if (inner.hasClass('collapsed')) {
			inner.css({ 'height': 'auto' });
			newheight = inner.height();
			inner.css({ 'height': maxheight });
			$(this).text('Collapse');
		} else {
			newheight = maxheight;
			$(this).text('Show More…');
		}

		inner.animate({ 'height': newheight });
		inner.toggleClass('collapsed');
		event.preventDefault();
	});
}

$(document).ready(function() {
	collapseDependsList("#pkgdepslist");
	collapseDependsList("#pkgreqslist");
	collapseDependsList("#pkgsrcslist");
	$(".article-content").each(function() {
		collapseComment($(this));
	});
});
</script>

<?php
include('pkg_search_form.php');

if (isset($pkgid)) {
	if ($pkgid) {
		if (isset($_COOKIE["AURSID"])) {
			pkg_display_details($pkgid, $details, $_COOKIE["AURSID"]);
		}
		else {
			pkg_display_details($pkgid, $details, null);
		}
	} else {
		print __("Error trying to retrieve package details.")."<br />\n";
	}
} else {
	if (!isset($_GET['K']) && !isset($_GET['SB'])) {
		$_GET['SB'] = 'p';
		$_GET['SO'] = 'd';
	}
	echo '<div id="pkglist-results" class="box">';
	if (isset($_COOKIE["AURSID"])) {
		pkg_search_page($_GET, true, $_COOKIE["AURSID"]);
	} else {
		pkg_search_page($_GET, true);
	}
	echo '</div>';
}

html_footer(AURWEB_VERSION);