309 lines
10 KiB
PHP
309 lines
10 KiB
PHP
|
|
<?
|
||
|
|
|
||
|
|
/* code to View and approve new Apps */
|
||
|
|
/* last modified 06-07-01 by Jeremy Newman */
|
||
|
|
|
||
|
|
include("path.php");
|
||
|
|
require(BASE."include/"."incl.php");
|
||
|
|
require(BASE."include/"."tableve.php");
|
||
|
|
|
||
|
|
//deny access if not logged in
|
||
|
|
if(!loggedin())
|
||
|
|
{
|
||
|
|
errorpage("You need to be logged in to use this page.");
|
||
|
|
exit;
|
||
|
|
}
|
||
|
|
else if (!havepriv("admin"))
|
||
|
|
{
|
||
|
|
errorpage("You must be an administrator to use this page.");
|
||
|
|
exit;
|
||
|
|
}
|
||
|
|
|
||
|
|
apidb_header("Admin App Queue");
|
||
|
|
echo '<form name="qform" action="adminAppQueue.php" method="post" enctype="multipart/form-data">',"\n";
|
||
|
|
|
||
|
|
if ($sub)
|
||
|
|
{
|
||
|
|
if ($queueId)
|
||
|
|
{
|
||
|
|
//get data
|
||
|
|
$query = "SELECT * from appQueue where queueId = $queueId;";
|
||
|
|
$result = mysql_query($query);
|
||
|
|
$ob = mysql_fetch_object($result);
|
||
|
|
mysql_free_result($result);
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
//error no Id!
|
||
|
|
echo html_frame_start("Error","300");
|
||
|
|
echo '<p><b>Application Not Found!</b></p>',"\n";
|
||
|
|
echo html_frame_end(" ");
|
||
|
|
}
|
||
|
|
|
||
|
|
//process according to sub flag
|
||
|
|
if ($sub == 'view' && $queueId)
|
||
|
|
{
|
||
|
|
$x = new TableVE("view");
|
||
|
|
|
||
|
|
//help
|
||
|
|
echo "<div align=center><table width='90%' border=0 cellpadding=3 cellspacing=0><tr><td>\n\n";
|
||
|
|
echo "<p>This is the full view of the application waiting to be approved. You need to pick a category before submitting \n";
|
||
|
|
echo "it into the database. If you approve this application, an email will be sent to the author of the submission.<p>\n";
|
||
|
|
echo "<p>There are two kinds of applications in this database:</p>\n";
|
||
|
|
echo "<ol>\n";
|
||
|
|
echo " <li><b>App Family</b> This is a parent group application, that will have multiple versions under it.<br>\n";
|
||
|
|
echo " To add this submission as a Family, choose 'Application' from the type drop down. Then set the category.\n";
|
||
|
|
echo " The version and app parent fields will be ignored in this type.<br>\n";
|
||
|
|
echo " If the vendor does not exist, leave the vendor drop down unset, and the field will be used.</li><p>\n";
|
||
|
|
echo " <li><b>App Version</b> This type of application will be nested under the selected application parent. The category,\n";
|
||
|
|
echo " name, and vendor fields will be ignored.</li>\n";
|
||
|
|
echo "</td></tr></table></div>\n\n";
|
||
|
|
|
||
|
|
//view application details
|
||
|
|
echo html_frame_start("New Application Form",400,"",0);
|
||
|
|
echo "<table width='100%' border=0 cellpadding=2 cellspacing=0>\n";
|
||
|
|
|
||
|
|
//type
|
||
|
|
echo '<tr valign=top><td class=color0><b>Type</b></td><td>',"\n";
|
||
|
|
echo '<select name=type><option value=app>Application</option><option value=ver>Version</option></select>',"\n";
|
||
|
|
echo '</td></tr>',"\n";
|
||
|
|
|
||
|
|
//category
|
||
|
|
echo '<tr valign=top><td class=color0><b>Category</b></td><td>',"\n";
|
||
|
|
$x->make_option_list("cat","","appCategory","catId","catName");
|
||
|
|
echo '</td></tr>',"\n";
|
||
|
|
|
||
|
|
//app parent
|
||
|
|
echo '<tr valign=top><td class=color0><b>App Parent</b></td><td>',"\n";
|
||
|
|
$x->make_option_list("appParent","","appFamily","appId","appName");
|
||
|
|
echo '</td></tr>',"\n";
|
||
|
|
|
||
|
|
//name
|
||
|
|
echo '<tr valign=top><td class=color0><b>App Name</b></td><td><input type=text name="queueName" value="'.stripslashes($ob->queueName).'" size=20></td></tr>',"\n";
|
||
|
|
|
||
|
|
//version
|
||
|
|
echo '<tr valign=top><td class=color0><b>App Version</b></td><td><input type=text name="queueVersion" value="'.stripslashes($ob->queueVersion).'" size=20></td></tr>',"\n";
|
||
|
|
|
||
|
|
//vendor
|
||
|
|
echo '<tr valign=top><td class=color0><b>App Vendor</b></td><td><input type=text name="queueVendor" value="'.stripslashes($ob->queueVendor).'" size=20></td></tr>',"\n";
|
||
|
|
|
||
|
|
//alt vendor
|
||
|
|
echo '<tr valign=top><td class=color0> </td><td>',"\n";
|
||
|
|
$x->make_option_list("altvendor","","vendor","vendorId","vendorName");
|
||
|
|
echo '</td></tr>',"\n";
|
||
|
|
|
||
|
|
//url
|
||
|
|
echo '<tr valign=top><td class=color0><b>App URL</b></td><td><input type=text name="queueURL" value="'.stripslashes($ob->queueURL).'" size=20></td></tr>',"\n";
|
||
|
|
|
||
|
|
//desc
|
||
|
|
echo '<tr valign=top><td class=color0><b>App Desc</b></td><td><textarea name="queueDesc" rows=10 cols=35>'.stripslashes($ob->queueDesc).'</textarea></td></tr>',"\n";
|
||
|
|
|
||
|
|
//echo '<tr valign=top><td bgcolor=class=color0><b>Email</b></td><td><input type=text name="queueEmail" value="'.$ob->queueEmail.'" size=20></td></tr>',"\n";
|
||
|
|
//echo '<tr valign=top><td bgcolor=class=color0><b>Image</b></td><td><input type=file name="queueImage" value="'.$ob->.'" size=15></td></tr>',"\n";
|
||
|
|
|
||
|
|
echo '<tr valign=top><td class=color3 align=center colspan=2> <input type=submit value=" Submit App Into Database " class=button> </td></tr>',"\n";
|
||
|
|
echo '</table>',"\n";
|
||
|
|
echo '<input type=hidden name="sub" value="add">',"\n";
|
||
|
|
echo '<input type=hidden name="queueId" value="'.$queueId.'">',"\n";
|
||
|
|
|
||
|
|
echo html_frame_end(" ");
|
||
|
|
echo html_back_link(1,'adminAppQueue.php');
|
||
|
|
}
|
||
|
|
else if ($sub == 'add' && $queueId)
|
||
|
|
{
|
||
|
|
//add item to main db
|
||
|
|
$statusMessage = "";
|
||
|
|
$goodtogo = 0;
|
||
|
|
if ($type == 'app')
|
||
|
|
{
|
||
|
|
//process as application family
|
||
|
|
if ($altvendor == 0 && $queueVendor)
|
||
|
|
{
|
||
|
|
//add new vendor
|
||
|
|
mysql_query("INSERT into vendor VALUES (null, '".addslashes($queueVendor)."', '');");
|
||
|
|
$altvendor = mysql_insert_id();
|
||
|
|
}
|
||
|
|
|
||
|
|
$query = "INSERT into appFamily VALUES (null, '".
|
||
|
|
addslashes($queueName)."', $altvendor, '', '".
|
||
|
|
addslashes($queueDesc)."', '".
|
||
|
|
addslashes($queueURL)."', $cat);";
|
||
|
|
|
||
|
|
if (mysql_query($query))
|
||
|
|
{
|
||
|
|
//get the id of the app just added
|
||
|
|
$appParent = mysql_insert_id();
|
||
|
|
|
||
|
|
//delete queue item
|
||
|
|
mysql_query("DELETE from appQueue where queueId = $queueId;");
|
||
|
|
|
||
|
|
//set ver if not set
|
||
|
|
if (!$queueVersion)
|
||
|
|
$queueVersion = '1.0';
|
||
|
|
if (!$queueDesc)
|
||
|
|
$queueDesc = 'released version';
|
||
|
|
|
||
|
|
$verQuery = "INSERT into appVersion VALUES (null, $appParent, '".
|
||
|
|
addslashes($queueVersion)."', '', '".
|
||
|
|
addslashes($queueDesc)."', '".
|
||
|
|
addslashes($queueURL)."', 0.0, 0.0);";
|
||
|
|
|
||
|
|
//Now add a version
|
||
|
|
if (mysql_query($verQuery))
|
||
|
|
{
|
||
|
|
//successful
|
||
|
|
$statusMessage = "<p>The application $queueName was successfully added into the database</p>\n";
|
||
|
|
$goodtogo = 1;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
//error
|
||
|
|
$statusMessage = "<p><b>Database Error!<br>".mysql_error()."</b></p>\n";
|
||
|
|
$statusMessage .= "<p><b>Note:</b> The application family was successfully added.</p>\n";
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
//error
|
||
|
|
$statusMessage = "<p><b>Database Error!<br>".mysql_error()."</b></p>\n";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else if ($type == 'ver')
|
||
|
|
{
|
||
|
|
//process as application version
|
||
|
|
if ($appParent)
|
||
|
|
{
|
||
|
|
$query = "INSERT into appVersion VALUES (null, $appParent, '".
|
||
|
|
addslashes($queueVersion)."', '', '".
|
||
|
|
addslashes($queueDesc)."', '".
|
||
|
|
addslashes($queueURL)."', 0.0, 0.0);";
|
||
|
|
|
||
|
|
if (mysql_query($query))
|
||
|
|
{
|
||
|
|
//successful
|
||
|
|
$statusMessage = "<p>The application $queueName was successfully added into the database</p>\n";
|
||
|
|
mysql_query("DELETE from appQueue where queueId = $queueId;");
|
||
|
|
$goodtogo = 1;
|
||
|
|
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
//error
|
||
|
|
$statusMessage = "<p><b>Database Error!<br>".mysql_error()."</b></p>\n";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
$statusMessage = "<p><b>Error<br>You did not pick an application Parent!</b></p>\n";
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
//Send Status Email
|
||
|
|
if ($ob->queueEmail && $goodtogo)
|
||
|
|
{
|
||
|
|
$ms = "Application Database Status Report\n";
|
||
|
|
$ms .= "----------------------------------\n\n";
|
||
|
|
$ms .= "Your application ".stripslashes($ob->queueName)." has been entered ";
|
||
|
|
$ms .= "into the application database.\n\n";
|
||
|
|
$ms .= "Thanks!\n";
|
||
|
|
|
||
|
|
mail(stripslashes($ob->queueEmail),'[AppDB] Status Report',$ms);
|
||
|
|
}
|
||
|
|
|
||
|
|
//done
|
||
|
|
echo html_frame_start("Submit Application","300");
|
||
|
|
echo "<p><b>$statusMessage</b></p>\n";
|
||
|
|
echo html_frame_end(" ");
|
||
|
|
echo html_back_link(1,'adminAppQueue.php');
|
||
|
|
}
|
||
|
|
else if ($sub == 'delete' && $queueId)
|
||
|
|
{
|
||
|
|
//delete main item
|
||
|
|
$query = "DELETE from appQueue where queueId = $queueId;";
|
||
|
|
$result = mysql_query($query);
|
||
|
|
echo html_frame_start("Delete Application: $ob->queueName",400,"",0);
|
||
|
|
if(!$result)
|
||
|
|
{
|
||
|
|
//error
|
||
|
|
echo "<p>Internal Error: unable to delete selected application!</p>\n";
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
//success
|
||
|
|
echo "<p>Application was successfully deleted from the Queue.</p>\n";
|
||
|
|
}
|
||
|
|
echo html_frame_end(" ");
|
||
|
|
echo html_back_link(1,'adminAppQueue.php');
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
//error no sub!
|
||
|
|
echo html_frame_start("Error","300");
|
||
|
|
echo '<p><b>Internal Routine Not Found!</b></p>',"\n";
|
||
|
|
echo html_frame_end(" ");
|
||
|
|
echo html_back_link(1,'adminAppQueue.php');
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
//get available apps
|
||
|
|
$query = "SELECT * from appQueue;";
|
||
|
|
$result = mysql_query($query);
|
||
|
|
|
||
|
|
if(!$result || !mysql_num_rows($result))
|
||
|
|
{
|
||
|
|
//no apps in queue
|
||
|
|
echo html_frame_start("","90%");
|
||
|
|
echo '<p><b>The Application Queue is empty.</b></p>',"\n";
|
||
|
|
echo '<p>There is nothing for you to do. Check back later.</p>',"\n";
|
||
|
|
echo html_frame_end(" ");
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
//help
|
||
|
|
echo "<div align=center><table width='90%' border=0 cellpadding=3 cellspacing=0><tr><td>\n\n";
|
||
|
|
echo "<p>This is the list of applications waiting for your approval, or to be annihilated from existence.</p>\n";
|
||
|
|
echo "<p>To view a submission, click on its name. From that page you can edit, and approve it into the AppDB.<br>\n";
|
||
|
|
echo "Click the delete link to remove the selected item from the queue. An email will automatically be sent to the\n";
|
||
|
|
echo "submitter to let them know the item was deleted.</p>\n";
|
||
|
|
echo "</td></tr></table></div>\n\n";
|
||
|
|
|
||
|
|
//show applist
|
||
|
|
echo html_frame_start("","90%","",0);
|
||
|
|
echo "<table width='100%' border=0 cellpadding=3 cellspacing=0>\n\n";
|
||
|
|
|
||
|
|
echo "<tr class=color4>\n";
|
||
|
|
echo " <td><font color=white>Application Name</font></td>\n";
|
||
|
|
echo " <td><font color=white>Version</font></td>\n";
|
||
|
|
echo " <td><font color=white>Vendor</font></td>\n";
|
||
|
|
echo " <td><font color=white>Submitter Email</font></td>\n";
|
||
|
|
echo " <td> </td>\n";
|
||
|
|
echo "</tr>\n\n";
|
||
|
|
|
||
|
|
$c = 1;
|
||
|
|
while($ob = mysql_fetch_object($result))
|
||
|
|
{
|
||
|
|
if ($c % 2 == 1) { $bgcolor = 'color0'; } else { $bgcolor = 'color1'; }
|
||
|
|
echo "<tr class=$bgcolor>\n";
|
||
|
|
echo " <td><a href='adminAppQueue.php?sub=view&queueId=$ob->queueId'>$ob->queueName</a></td>\n";
|
||
|
|
echo " <td>".stripslashes($ob->queueVersion)." </td>\n";
|
||
|
|
echo " <td>".stripslashes($ob->queueVendor)." </td>\n";
|
||
|
|
echo " <td>".stripslashes($ob->queueEmail)." </td>\n";
|
||
|
|
echo " <td>[<a href='adminAppQueue.php?sub=delete&queueId=$ob->queueId'>delete</a>]</td>\n";
|
||
|
|
echo "</tr>\n\n";
|
||
|
|
$c++;
|
||
|
|
}
|
||
|
|
echo "</table>\n\n";
|
||
|
|
echo html_frame_end(" ");
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
echo "</form>";
|
||
|
|
apidb_footer();
|
||
|
|
|
||
|
|
|
||
|
|
?>
|