admin web: enhance badge admin page

- add delete button
- show # of badges assigned
- don't use separate head/tail function are admin pages
- add badge assign task for new projects
- turn on db_dump, update_uotd, update_forum_activities,
  update_profile_pages, notify for new projects
This commit is contained in:
David Anderson 2013-12-23 21:02:55 -08:00
parent 2d0a6cc10f
commit 92fec3e4ae
7 changed files with 60 additions and 43 deletions

View File

@ -542,6 +542,10 @@ class BoincBadge {
$db = BoincDb::get();
return $db->lookup('badge', 'BoincBadge', $clause);
}
function delete() {
$db = BoincDb::get();
return $db->delete($this, 'badge');
}
}
class BoincBadgeUser {
@ -567,6 +571,10 @@ class BoincBadgeUser {
$db = BoincDb::get();
$db->delete_aux('badge_user', $clause);
}
static function count($clause) {
$db = BoincDb::get();
return $db->count('badge_user', $clause);
}
}
class BoincBadgeTeam {
@ -592,6 +600,10 @@ class BoincBadgeTeam {
$db = BoincDb::get();
$db->delete_aux('badge_team', $clause);
}
static function count($clause) {
$db = BoincDb::get();
return $db->count('badge_team', $clause);
}
}

View File

@ -28,38 +28,11 @@ define("TABLE", "<table cellpadding=\"8\" border=\"1\" width=\"100%\">");
define("TABLE2", "<table width=\"580\">");
function admin_page_head($title) {
$stylesheet = URL_BASE.STYLESHEET;
echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">";
echo "<html><head><title>$title</title>
<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\" />
<link rel=stylesheet type=\"text/css\" href=\"".URL_BASE."main.css\" media=\"all\" />
";
if (defined('ADMIN_STYLESHEET')) {
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"".URL_BASE.ADMIN_STYLESHEET."\" media=\"all\" />";
}
echo "
</head>
<body bgcolor=\"#ffffff\">
<h2>".PROJECT.": $title</h2>
";
return page_head($title);
}
function admin_page_tail() {
echo "<br><hr noshade size=1><center>
<a href=\"index.php\"> Back to Main admin page </a> |
";
$user = get_logged_in_user_ops();
if ($user) {
echo "logged in as $user->name. <a href=logout.php>Log out</a>";
} else {
echo "<a href=login_form.php>Log in</a>";
}
echo "
</center>
</body></html>
";
echo "</body></html>\n";
}
// TODO: get rid of all the following

View File

@ -25,21 +25,27 @@ function show_form() {
table_header(
"ID",
"name",
"type<br>0=user<br>1=team",
"type<br><span class=note>0=user<br>1=team</span>",
"title",
"description",
"image URL",
"level",
"tags",
"SQL rule"
"SQL rule",
"", ""
);
$badges = BoincBadge::enum("");
$i = 0;
foreach ($badges as $badge) {
echo "<tr valign=top><form action=badge_admin.php method=POST>";
echo "<input type=hidden name=id value=$badge->id>";
echo "<tr class=row$i valign=top><form action=badge_admin.php method=POST>";
$i = 1-$i;
echo "<td>$badge->id</td>\n";
echo "<td><input name=\"name\" value=\"$badge->name\"></td>\n";
echo "<input type=hidden name=id value=$badge->id>";
$nu = BoincBadgeUser::count("badge_id=$badge->id");
$nt = BoincBadgeTeam::count("badge_id=$badge->id");
$x = "<br><span class=note>Assigned to $nu users<br>Assigned to $nt teams</span>";
echo "<td><input name=\"name\" value=\"$badge->name\">$x</td>\n";
echo "<td><input name=\"type\" size=4 value=\"$badge->type\"></td>\n";
echo "<td><input name=\"title\" value=\"$badge->title\"></td>\n";
echo "<td><input name=\"description\" value=\"$badge->description\"></td>\n";
@ -52,6 +58,7 @@ function show_form() {
echo "<td><input name=\"tags\" value=\"$badge->tags\"></td>\n";
echo "<td><input name=\"sql_rule\" value=\"$badge->sql_rule\"></td>\n";
echo "<td><input type=submit name=\"update\" value=Update>\n";
echo "<td><input type=submit name=\"delete\" value=Delete>\n";
echo "</form></tr>\n";
}
@ -65,7 +72,7 @@ function show_form() {
echo "<td><input name=\"level\"></td>\n";
echo "<td><input name=\"tags\"></td>\n";
echo "<td><input name=\"sql_rule\"></td>\n";
echo "<td><input type=submit name=\"add_badge\" value=\"Create badge\"></td>\n";
echo "<td colspan=2><input type=submit name=\"add_badge\" value=\"Create badge\"></td>\n";
echo "</form></tr>\n";
end_table();
@ -107,11 +114,23 @@ function update_badge() {
}
}
function delete_badge() {
$id = post_int("id");
$badge = BoincBadge::lookup_id($id);
if (!$badge) {
admin_error_page("no such badge");
}
BoincBadgeUser::delete("badge_id=$id");
BoincBadgeTeam::delete("badge_id=$id");
$badge->delete();
}
if (post_str('add_badge', true)) {
add_badge();
} else if (post_str('update', true)) {
update_badge();
} else if (post_str('delete', true)) {
delete_badge();
}
admin_page_head("Manage badges");
show_form();

View File

@ -5,7 +5,9 @@ require_once("../inc/util_ops.inc");
$user = get_logged_in_user_ops();
if ($user) {
clear_cookie('auth', true);
header("Location: index.php");
admin_page_head("Logged out");
echo "You are now logged out";
admin_page_tail();
} else {
admin_error_page("not logged in");

View File

@ -63,6 +63,7 @@ function show_form() {
$avs = BoincAppVersion::enum(
"true order by appid, platformid, plan_class, version_num"
);
$i = 0;
foreach ($avs as $av) {
// grey out deprecated versions
//
@ -72,7 +73,8 @@ function show_form() {
$f2="</font>";
}
echo "<tr><form action=manage_app_versions.php method=POST>\n";
echo "<tr class=row$i><form action=manage_app_versions.php method=POST>\n";
$i = 1-$i;
echo "<input type=hidden name=id value=$av->id>";
echo " <TD>$f1 $av->id $f2</TD>\n";

View File

@ -86,7 +86,8 @@ function show_form() {
"homogeneous app version?<br><a href=http://boinc.berkeley.edu/trac/wiki/HomogeneousAppVersion><span class=note>details</span></a>",
"deprecated?",
"Non-CPU-intensive?",
"Beta?"
"Beta?",
""
);
$total_weight = BoincApp::sum("weight");
@ -96,6 +97,7 @@ function show_form() {
}
$apps = BoincApp::enum("");
$i = 0;
foreach ($apps as $app) {
// grey-out deprecated versions
$f1=$f2='';
@ -103,7 +105,8 @@ function show_form() {
$f1 = "<font color='GREY'>";
$f2 = "</font>";
}
echo "<tr><form action=manage_apps.php method=POST>";
echo "<tr class=row$i><form action=manage_apps.php method=POST>";
$i = 1-$i;
echo "<input type=hidden name=id value=$app->id>";
echo " <TD align='center'>$f1 $app->id $f2</TD>\n";

View File

@ -242,19 +242,19 @@ t = project.config.tasks.make_node_and_append("task")
t.period = '24 hours'
t.output = 'db_dump.out'
t.cmd = 'db_dump -d 2 --dump_spec ../db_dump_spec.xml'
t.disabled = 1
t.disabled = 0
t = project.config.tasks.make_node_and_append("task")
t.period = '1 days'
t.output = 'update_uotd.out'
t.cmd = 'run_in_ops ./update_uotd.php'
t.disabled = 1
t.disabled = 0
t = project.config.tasks.make_node_and_append("task")
t.period = '1 hour'
t.output = 'update_forum_activities.out'
t.cmd = 'run_in_ops ./update_forum_activities.php'
t.disabled = 1
t.disabled = 0
t = project.config.tasks.make_node_and_append("task")
t.period = '1 days'
@ -266,7 +266,7 @@ t = project.config.tasks.make_node_and_append("task")
t.period = '24 hours'
t.output = 'update_profile_pages.out'
t.cmd = 'run_in_ops ./update_profile_pages.php'
t.disabled = 1
t.disabled = 0
t = project.config.tasks.make_node_and_append("task")
t.period = '24 hours'
@ -278,7 +278,13 @@ t = project.config.tasks.make_node_and_append("task")
t.period = '24 hours'
t.output = 'notify.out'
t.cmd = 'run_in_ops ./notify.php'
t.disabled = 1
t.disabled = 0
t = project.config.tasks.make_node_and_append("task")
t.period = '24 hours'
t.output = 'badge_assign.out'
t.cmd = 'run_in_ops ./badge_assign.php'
t.disabled = 0
project.config.write()