Move package deletion to a separate page

Package actions now have a separate box on the package details page. Make
a package deletion link in that box.

Link leads to a new page (pkgdel.php) that can be used to confirm package
deletion. A separate page with confirmation is used to avoid CSRFs.

Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Move package merging to a separate page

Package actions now have a separate box on the package details page. Add
a package merge link in that box.

Link leads to a new page (pkgmerge.php) that can be used to confirm package
merging. A separate page with confirmation is used to avoid CSRFs.

Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Deprecate actions bar when virtual URLs are used

The only buttons on the actions bar that were still used when virtual URLs
are enabled were the package deletion and package merging. These now reside
in separate pages, so remove the need for the actions bar when virtual URLs
are enabled.

Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
pkg_details.php: Utilize account details virtual URL

When virtual URLs are enabled, simpler links can be used to access
a user's account details page. Change this for both the maintainer and
submitter links.

Keeps backwards compatibility with virtual URLs being disabled.

Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
pkgfuncs.inc.php: Fix undefined variable notice

Fixes a undefined variable notice in getvotes() that popped up when a
package without any votes was requested.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Do not notify if status is unchanged in pkg_flag()

Check if a package actually changed its status before sending an email
to prevent from spamming. Addresses FS#31745.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
pkgsubmit.php: Fix PHP notice for depends processing

A foreach() is run without verifying an uploaded package has any depends.
Fix the undefined index notice for packages uploaded with no depends.
Similar to commit 857de725d1c87da005b4ab8e9a88222fd19aab4b.

Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
pkgfuncs.inc.php: Document all functions using PHPDoc format

Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
po/POTFILES: Add missing files

Add all source files in alphabetic order (`cd web; ls **/*.php`).

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Sync account editing page with archweb

Synchronize the layout of the account editing page with the profiles
page from archweb.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Sync account details page with archweb

Synchronize the layout of the account details page with the developer
profiles page from archweb.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Update message catalog

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
UPGRADING: Add missing release note

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Release 2.0.0-rc1

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
pkg_search_results.php: Word-wrap package description

Implements FS#31803.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Refactor TU voters list

* Change voters_list() to return an array of voters instead of
  generating HTML code in the library call.

* Change the template to generate HTML code for the list of voters
  instead of displaying the library's return value.

* Use HTML lists.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
tu.php: Fix page showing a user hasn't voted when they have

An ended vote details page will report a user hasn't voted even when
they have. This is a result of faulty logic that only checks if a user
has voted if the vote is still running.

Regression with commit c15441762c6f6ab4438eaf2854c0ee3146a98b30

Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Change logo link for consistency with Archweb

Fixes FS#27669

Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Remove character limit on password length

As all new passwords are hashed and therefore stored in the database
at the same length, this limitation is no longer needed.

Fixes FS#31855

Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
pkgfuncs.inc.php: Fix blacklisting functionality

An array that contains whether the package is blacklisted is
being improperly used for a comparison. Use fetchColumn() to
avoid the array completely and compare a value directly.

Regression with e171f6f34eeacf35cf7142b4788d43e7d0978546

Fixes FS#31867

Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>