- improve application and related classes

- use application/version/vendor class in scripts
- don't use a full table for queued appication but only one field in the application and version tables
- simplify the code in many places
This commit is contained in:
Jonathan Ernst
2005-02-07 23:21:33 +00:00
committed by WineHQ
parent fa98124783
commit 7b12f89abf
13 changed files with 467 additions and 796 deletions

View File

@@ -9,6 +9,14 @@ require(BASE."include/tableve.php");
require(BASE."include/application.php"); require(BASE."include/application.php");
require(BASE."include/mail.php"); require(BASE."include/mail.php");
function get_vendor_from_keywords($sKeywords)
{
$aKeywords = explode(" *** ",$keywords);
$iLastElt = (sizeOf($aKeywords)-1);
return($aKeywords[$iLastElt]);
}
//deny access if not logged in //deny access if not logged in
if(!$_SESSION['current']->hasPriv("admin")) if(!$_SESSION['current']->hasPriv("admin"))
{ {
@@ -18,67 +26,70 @@ if(!$_SESSION['current']->hasPriv("admin"))
if ($_REQUEST['sub']) if ($_REQUEST['sub'])
{ {
if(!is_numeric($_REQUEST['queueId'])) if(is_numeric($_REQUEST['appId']))
{ {
errorpage("Wrong ID"); $oApp = new Application($_REQUEST['appId']);
exit; } elseif(is_numeric($_REQUEST['versionId']))
}
if ($_REQUEST['queueId'])
{ {
//get data $oVersion = new Version($_REQUEST['versionId']);
$query = "SELECT * from appQueue where queueId = ".$_REQUEST['queueId'].";"; } else
$result = query_appdb($query);
$ob = mysql_fetch_object($result);
mysql_free_result($result);
}
else
{ {
//error no Id! //error no Id!
addmsg("Application Not Found!", "red"); addmsg("Application Not Found!", "red");
redirect(apidb_fullurl("admin/adminAppQueue.php")); redirect(apidb_fullurl("admin/adminAppQueue.php"));
exit;
} }
//process according to sub flag //process according to sub flag
if ($_REQUEST['sub'] == 'view' && $_REQUEST['queueId']) if ($_REQUEST['sub'] == 'view')
{ {
$x = new TableVE("view"); $x = new TableVE("view");
apidb_header("Admin App Queue"); apidb_header("Admin App Queue");
?>
<link rel="stylesheet" href="./application.css" type="text/css">
<!-- load HTMLArea -->
<script type="text/javascript" src="../htmlarea/htmlarea_loader.js"></script>
<?php
echo '<form name="qform" action="adminAppQueue.php" method="post" enctype="multipart/form-data">',"\n"; echo '<form name="qform" action="adminAppQueue.php" method="post" enctype="multipart/form-data">',"\n";
echo '<input type="hidden" name="sub" value="add">',"\n";
echo '<input type=hidden name="sub" value="add">',"\n"; if ($oVersion) //app version
echo '<input type=hidden name="queueId" value="'.$_REQUEST['queueId'].'">',"\n";
If ($ob->queueCatId == -1) //app version
{ {
//help //help
echo "<div align=center><table width='90%' border=0 cellpadding=3 cellspacing=0><tr><td>\n\n"; 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. \n"; echo "<p>This is the full view of the application version waiting to be approved. \n";
echo "If you approve this application,\n"; echo "If you approve this application version an email will be sent to the author of the submission.<p>\n";
echo "an email will be sent to the author of the submission.<p>\n";
echo "<b>App Version</b> This type of application will be nested under the selected application parent.\n"; echo "<b>App Version</b> This type of application will be nested under the selected application parent.\n";
echo "<p>Click delete to remove the selected item from the queue an email will automatically be sent to the\n"; echo "<p>Click delete to remove the selected item from the queue an email will automatically be sent to the\n";
echo "submitter to let him know the item was deleted.</p>\n\n"; echo "submitter to let him know the item was deleted.</p>\n\n";
echo "</td></tr></table></div>\n\n"; echo "</td></tr></table></div>\n\n";
echo '<input type=hidden name=type value="ver">',"\n"; echo html_frame_start("New Version Form",400,"",0);
echo html_frame_start("New Application Form",400,"",0);
echo "<table width='100%' border=0 cellpadding=2 cellspacing=0>\n"; echo "<table width='100%' border=0 cellpadding=2 cellspacing=0>\n";
//app parent //app parent
echo '<tr valign=top><td class=color0><b>App Parent</b></td><td>',"\n"; echo '<tr valign=top><td class=color0><b>Application</b></td><td>',"\n";
$x->make_option_list("appParent",stripslashes($ob->queueName),"appFamily","appId","appName"); $x->make_option_list("appId",$oVersion->sName,"appFamily","appId","appName");
echo '</td></tr>',"\n"; echo '</td></tr>',"\n";
//version //version
echo '<tr valign=top><td class=color0><b>App Version</b></td>',"\n"; echo '<tr valign=top><td class="color0"><b>Version name</b></td>',"\n";
echo '<td><input type=text name="queueVersion" value="'.stripslashes($ob->queueVersion).'" size=20></td></tr>',"\n"; echo '<td><input type=text name="versionName" value="'.$oVersion->sName.'" size="20"></td></tr>',"\n";
}
else echo '<tr valign=top><td class=color0><b>Description</b></td>',"\n";
echo '<td><p style="width:700px"><textarea cols="80" rows="20" id="editor" name="versionDescription">'.$oVersion->sDescription.'</textarea></p></td></tr>',"\n";
echo '<tr valign=top><td class="color0"><b>email Text</b></td>',"\n";
echo '<td><textarea name="emailtext" rows="10" cols="35"></textarea></td></tr>',"\n";
echo '<tr valign=top><td class=color3 align=center colspan=2>' ,"\n";
echo '<input type="hidden" name="versionId" value="'.$oVersion->iVersionId.'" />';
echo '<input type="submit" value=" Submit App Into Database " class=button>&nbsp',"\n";
echo '<input name="sub" type=submit value="Delete" class=button> </td></tr>',"\n";
echo '</table>',"\n";
} else // application
{ {
//help //help
@@ -103,345 +114,237 @@ if ($_REQUEST['sub'])
echo html_frame_start("New Application Form",400,"",0); echo html_frame_start("New Application Form",400,"",0);
echo "<table width='100%' border=0 cellpadding=2 cellspacing=0>\n"; 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 //category
echo '<tr valign=top><td class="color0>"<b>Category</b></td><td>',"\n";
$query = "select * from appCategory where catId = '$ob->queueCatId';"; $x->make_option_list("catId",$oApp->iCatId,"appCategory","catId","catName");
$result = query_appdb($query);
if($result)
{
$ob2 = mysql_fetch_object($result);
echo '<tr valign=top><td class=color0><b>Category</b></td><td>',"\n";
$x->make_option_list("cat",stripslashes($ob2->catId),"appCategory","catId","catName");
echo '</td></tr>',"\n";
} else
{
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"; echo '</td></tr>',"\n";
//name //name
echo '<tr valign=top><td class=color0><b>App Name</b></td>',"\n"; echo '<tr valign=top><td class="color0"><b>App Name</b></td>',"\n";
echo '<td><input type=text name="queueName" value="'.stripslashes($ob->queueName).'" size=20></td></tr>',"\n"; echo '<td><input type="text" name="appName" value="'.$oApp->sName.'" size=20></td></tr>',"\n";
//version /*
echo '<tr valign=top><td class=color0><b>App Version</b></td>',"\n"; * vendor/alt vendor fields
echo '<td><input type=text name="queueVersion" value="'.stripslashes($ob->queueVersion).'" size=20></td>',"\n"; * if user selected a predefined vendorId:
echo '</tr>',"\n"; */
$iVendorId = $oApp->iVendorId;
//vendor/alt vendor fields /*
// try for an exact match * If not, try for an exact match
// Use the first match if we found one and clear out the vendor field, * Use the first match if we found one and clear out the vendor field,
// otherwise don't pick a vendor * otherwise don't pick a vendor
$query = "select * from vendor where vendorname = '$ob->queueVendor';"; * N.B. The vendor string is the last word of the keywords field !
$result = query_appdb($query); */
$checkvendor = 0; if(!$iVendorId)
if($result)
{ {
$ob2 = mysql_fetch_object($result); $sVendor = get_vendor_from_keywords($oApp->sKeywords);
$checkvendor = $ob2->vendorId; $sQuery = "SELECT vendorId FROM vendor WHERE vendorname = '".$sVendor."';";
} $hResult = query_appdb($sQuery);
if(!$checkvendor) if($hResult)
{ {
// try for a partial match $oRow = mysql_fetch_object($hResult);
$query = "select * from vendor where vendorname like '%$ob->queueVendor%';"; $iVendorId = $oRow->vendorId;
$result = query_appdb($query);
if($result)
{
$ob2 = mysql_fetch_object($result);
$checkvendor = $ob2->vendorId;
} }
} }
if($checkvendor)
/*
* try for a partial match
*/
if(!$iVendorId)
{ {
$ob->queueVendor = ''; $sQuery = "select * from vendor where vendorname like '%$ob->queueVendor%';";
$hResult = query_appdb($sQuery);
if($hResult)
{
$oRow = mysql_fetch_object($hResult);
$iVendorId = $oRow->vendorId;
}
}
//vendor field //vendor field
echo '<tr valign=top><td class=color0><b>App Vendor</b></td>',"\n"; if($iVendorId)
echo '<td><input type=text name="queueVendor" value="'.stripslashes($ob->queueVendor).'" size=20></td>',"\n"; $sVendor = "";
echo '<tr valign=top><td class="color0"><b>App Vendor</b></td>',"\n";
echo '<td><input type=text name="sVendor" value="'.$sVendor.'" size="20"></td>',"\n";
echo '</tr>',"\n"; echo '</tr>',"\n";
echo '<tr valign=top><td class=color0>&nbsp;</td><td>',"\n"; echo '<tr valign=top><td class="color0">&nbsp;</td><td>',"\n";
$x->make_option_list("altvendor", $checkvendor ,"vendor","vendorId","vendorName"); $x->make_option_list("vendorId", $iVendorId ,"vendor","vendorId","vendorName");
echo '</td></tr>',"\n"; echo '</td></tr>',"\n";
} else
{
//vendor field
echo '<tr valign=top><td class=color0><b>App Vendor</b></td>',"\n";
echo '<td><input type=text name="queueVendor" value="'.stripslashes($ob->queueVendor).'" size=20></td>',"\n";
echo '</tr>',"\n";
echo '<tr valign=top><td class=color0>&nbsp;</td><td>',"\n";
$x->make_option_list("altvendor","","vendor","vendorId","vendorName");
echo '</td></tr>',"\n";
}
}
//url //url
// FIXME: don't display this field for appversion echo '<tr valign=top><td class="color0"><b>App URL</b></td>',"\n";
echo '<tr valign=top><td class=color0><b>App URL</b></td>',"\n"; echo '<td><input type=text name="webpage" value="'.$oApp->sWebpage.'" size="20"></td></tr>',"\n";
echo '<td><input type=text name="queueURL" value="'.stripslashes($ob->queueURL).'" size=20></td></tr>',"\n";
//desc //desc
?>
<link rel="stylesheet" href="./application.css" type="text/css">
<!-- load HTMLArea -->
<script type="text/javascript" src="../htmlarea/htmlarea_loader.js"></script>
<?php
echo '<tr valign=top><td class=color0><b>App Desc</b></td>',"\n";
echo '<td><p style="width:700px"><textarea cols="80" rows="20" id="editor" name="queueDesc">'.stripslashes($ob->queueDesc).'</textarea></p></td></tr>',"\n";
//email message text echo '<tr valign=top><td class=color0><b>Description</b></td>',"\n";
if ($ob->queueEmail) echo '<td><p style="width:700px"><textarea cols="80" rows="20" id="editor" name="description">'.$oApp->sDescription.'</textarea></p></td></tr>',"\n";
{
echo '<tr valign=top><td class=color0><b>email Text</b></td>',"\n"; echo '<tr valign=top><td class="color0"><b>email Text</b></td>',"\n";
echo '<td><textarea name="emailtext" rows=10 cols=35></textarea></td></tr>',"\n"; echo '<td><textarea name="emailtext" rows=10 cols=35></textarea></td></tr>',"\n";
}
echo '<tr valign=top><td class=color3 align=center colspan=2>' ,"\n"; echo '<tr valign=top><td class=color3 align=center colspan=2>' ,"\n";
echo '<input type="hidden" name="appId" value="'.$oApp->iAppId.'" />';
echo '<input type=submit value=" Submit App Into Database " class=button>&nbsp',"\n"; echo '<input type=submit value=" Submit App Into Database " class=button>&nbsp',"\n";
echo '<input name="sub" type=submit value="Delete" class=button> </td></tr>',"\n"; echo '<input name="sub" type="submit" value="Delete" class="button" /></td></tr>',"\n";
echo '</table>',"\n"; echo '</table>',"\n";
}
echo html_frame_end("&nbsp;"); echo html_frame_end("&nbsp;");
echo html_back_link(1,'adminAppQueue.php'); echo html_back_link(1,'adminAppQueue.php');
} }
else if ($_REQUEST['sub'] == 'add' && $_REQUEST['queueId']) else if ($_REQUEST['sub'] == 'add')
{ {
//add item to main db if (is_numeric($_REQUEST['appId'])) // application
$statusMessage = "";
$goodtogo = 0;
if ($_REQUEST['type'] == 'app')
{
//process as application family
if ($_REQUEST['altvendor'] == 0 && $_REQUEST['queueVendor'])
{ {
// add new vendor // add new vendor
$aInsert = compile_insert_string( array('vendorName' => $_REQUEST['queueVendor'], if($sVendor)
'vendorURL' => $_REQUEST['queueURL']));
query_appdb("INSERT INTO `vendor` ({$aInsert['FIELDS']}) VALUES ({$aInsert['VALUES']})");
$_REQUEST['altvendor'] = mysql_insert_id();
}
$aInsert = compile_insert_string( array('AppName' => $_REQUEST['queueName'],
'vendorId' => $_REQUEST['altvendor'],
'description' => $_REQUEST['queueDesc'],
'webPage' => $_REQUEST['queueURL'],
'keywords' => "",
'catId' => $_REQUEST['cat']));
if (query_appdb("INSERT INTO `appFamily` ({$aInsert['FIELDS']}) VALUES ({$aInsert['VALUES']})"))
{ {
//get the id of the app just added $oVendor = new Vendor();
$_REQUEST['appParent'] = mysql_insert_id(); $oVendor->create($sVendor);
//delete queue item
query_appdb("DELETE from appQueue where queueId = ".$_REQUEST['queueId'].";");
//set ver if not set
if (!$_REQUEST['queueVersion'])
$_REQUEST['queueVersion'] = '1.0';
if (!$_REQUEST['queueDesc'])
$_REQUEST['queueDesc'] = 'released version';
//Now add a version
$aInsert = compile_insert_string( array('appId' => $_REQUEST['appParent'],
'versionName' => $_REQUEST['queueVersion'],
'description' => $_REQUEST['queueDesc'],
'maintainer_rating' => "",
'maintainer_release' => ""));
if (query_appdb("INSERT INTO `appVersion` ({$aInsert['FIELDS']}) VALUES ({$aInsert['VALUES']})"))
{
//successful
$_REQUEST['appVersion'] = mysql_insert_id();
addmsg("The application ".$_REQUEST['queueName']." was successfully added into the database", "green");
$goodtogo = 1;
}
else
{
//error
$statusMessage = "<p><b>Note:</b> The application family was successfully added.</p>\n";
addmsg($statusMessage, "red");
} }
} $oApp = new Application($_REQUEST['appId']);
} $oApp->update($_REQUEST['appName'], $_REQUEST['appDescription'], $_REQUEST['keywords'], $_REQUEST['webPage'], $_REQUEST['vendorId'], $_REQUEST['catId']);
else if ($_REQUEST['type'] == 'ver') $oApp->unQueue();
} else if(is_numeric($_REQUEST['versionId'])) // version
{ {
//process as application version $oVersion = new Version($_REQUEST['versionId']);
if ($_REQUEST['appParent']) $oVersion->update($_REQUEST['versionName'], $_REQUEST['versionDescription']);
{ $oVersion->unQueue();
$aInsert = compile_insert_string( array('appId' => $_REQUEST['appParent'],
'versionName' => $_REQUEST['queueVersion'],
'description' => $_REQUEST['queueDesc'],
'maintainer_rating' => "",
'maintainer_release' => ""));
if (query_appdb("INSERT INTO `appVersion` ({$aInsert['FIELDS']}) VALUES ({$aInsert['VALUES']})"))
{
//successful
$_REQUEST['appVersion'] = mysql_insert_id();
$statusMessage = "<p>The application ".$_REQUEST['queueName']." was successfully added into the database</p>\n";
addmsg($statusMessage,"Green");
query_appdb("DELETE from appQueue where queueId = ".$_REQUEST['queueId'].";");
$goodtogo = 1;
}
}
else
{
addmsg("You did not pick an application Parent!",red);
redirect(apidb_fullurl("admin/adminAppQueue.php?cat=view&queueId=".$_REQUEST['queueId']));
exit;
} }
}
//Send Status Email
if($_REQUEST['type'] == 'ver')
{
$sFullAppName = lookup_app_name($_REQUEST['appParent'])." ".lookup_version_name($_REQUEST['appVersion']);
$sUrl = APPDB_ROOT."appview.php?versionId=".$_REQUEST['appVersion'];
} else
{
$sFullAppName = lookup_app_name($_REQUEST['appParent']);
$sUrl = APPDB_ROOT."appview.php?appId=".$_REQUEST['appParent'];
}
$sSubject = $sFullAppName." has been added into the AppDB";
$sMsg = $sUrl."\n";
if ($ob->queueEmail && $goodtogo)
{
$sMsg .= $emailtext;
mail_appdb($ob->queueEmail, $sSubject ,$sMsg);
}
if ($goodtogo)
{
$sEmail = get_notify_email_address_list($_REQUEST['appParent'], $_REQUEST['appVersion']);
if($sEmail)
{
mail_appdb($sEmail, $sSubject ,$sMsg);
}
}
//done
addmsg("<a href=".apidb_fullurl("appview.php")."?appId=".$_REQUEST['appParent'].">View App</a>", "green");
redirect(apidb_fullurl("admin/adminAppQueue.php")); redirect(apidb_fullurl("admin/adminAppQueue.php"));
exit;
} }
else if ($_REQUEST['sub'] == 'Delete' && $_REQUEST['queueId']) else if ($_REQUEST['sub'] == 'Delete')
{ {
//delete main item if (is_numeric($_REQUEST['appId'])) // application
$query = "DELETE from appQueue where queueId = ".$_REQUEST['queueId'].";";
$result = query_appdb($query, "unable to delete selected application!");
if(!$result)
{ {
redirect(apidb_fullurl("admin/adminAppQueue.php?appId=".$_REQUEST['appId']."&versionId=".$_REQUEST['versionId'])); $oApp = new Application($_REQUEST['appId']);
} $oApp->delete();
else } else if(is_numeric($_REQUEST['versionId'])) // version
{ {
//Send Status Email $oVersion = new Version($_REQUEST['versionId']);
if($_REQUEST['type'] == 'ver') $oVersion->delete();
{
$sFullAppName = lookup_app_name($_REQUEST['appParent'])." ".lookup_version_name($_REQUEST['appVersion']);
} else
{
$sFullAppName = lookup_app_name($_REQUEST['appParent']);
}
$sSubject = $sFullAppName." has not been added into the AppDB";
if ($ob->queueEmail)
{
$sMsg = $emailtext;
mail_appdb($ob->queueEmail, $sSubject ,$sMsg);
}
//success
addmsg("Application was successfully deleted from the Queue.", "green");
redirect(apidb_fullurl("admin/adminAppQueue.php?appId=".$_REQUEST['appId']."&versionId=".$_REQUEST['versionId']));
} }
redirect(apidb_fullurl("admin/adminAppQueue.php"));
} }
else else
{ {
//error no sub! //error no sub!
addmsg("Internal Routine Not Found!!", "red"); addmsg("Internal Routine Not Found!!", "red");
redirect(apidb_fullurl("admin/adminAppQueue.php")); redirect(apidb_fullurl("admin/adminAppQueue.php"));
} }
exit;
} }
else else
{ {
apidb_header("Admin App Queue"); apidb_header("Admin App Queue");
echo '<form name="qform" action="admin/adminAppQueue.php" method="post" enctype="multipart/form-data">',"\n"; // get queued apps
$sQuery = "SELECT appId FROM appFamily WHERE queued = 'true'";
$hResult = query_appdb($sQuery);
//get available apps if(!$hResult || !mysql_num_rows($hResult))
$query = "SELECT queueId, queueName, queueVendor,".
"queueVersion, queueEmail, queueCatId,".
"UNIX_TIMESTAMP(submitTime) as submitTime ".
"from appQueue;";
$result = query_appdb($query);
if(!$result || !mysql_num_rows($result))
{ {
//no apps in queue //no apps in queue
echo html_frame_start("","90%"); echo html_frame_start("Application Queue","90%");
echo '<p><b>The Application Queue is empty.</b></p>',"\n"; 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("&nbsp;"); echo html_frame_end("&nbsp;");
} }
else else
{ {
//help //help
echo "<div align=center><table width='90%' border=0 cellpadding=3 cellspacing=0><tr><td>\n\n"; 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>This is the list of applications waiting for your approval, or to be rejected.</p>\n";
echo "<p>To view a submission, click on its name. From that page you can edit, delete or approve it into \n"; echo "<p>To view a submission, click on its name. From that page you can edit, delete or approve it into \n";
echo "the AppDB .<br>\n"; echo "the AppDB .<br>\n";
echo "</td></tr></table></div>\n\n"; echo "</td></tr></table></div>\n\n";
//show applist //show applist
echo html_frame_start("","90%","",0); echo html_frame_start("","90%","",0);
echo "<table width='100%' border=0 cellpadding=3 cellspacing=0>\n\n"; echo "<table width=\"100%\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\">
<tr class=color4>
echo "<tr class=color4>\n"; <td>Submission Date</td>
echo " <td><font color=white>Submission Date</font></td>\n"; <td>Vendor</td>
echo " <td><font color=white>Application Name</font></td>\n"; <td>Application Name</td>
echo " <td><font color=white>Version</font></td>\n"; <td>Submitter</td>
echo " <td><font color=white>Vendor</font></td>\n"; </tr>";
echo " <td><font color=white>Submitter Email</font></td>\n";
echo " <td>&nbsp;</td>\n";
echo "</tr>\n\n";
$c = 1; $c = 1;
while($ob = mysql_fetch_object($result)) while($oRow = mysql_fetch_object($hResult))
{ {
$oApp = new Application($oRow->appId);
$oSubmitter = new User($oApp->iSubmitterId);
if($oApp->iVendorId)
{
$oVendor = new Vendor($oApp->iVendorId);
$sVendor = $oVendor->sName;
} else
{
$sVendor = get_vendor_from_keywords($oApp->sKeywords);
}
if ($c % 2 == 1) { $bgcolor = 'color0'; } else { $bgcolor = 'color1'; } if ($c % 2 == 1) { $bgcolor = 'color0'; } else { $bgcolor = 'color1'; }
echo "<tr class=$bgcolor>\n"; echo "<tr class=\"$bgcolor\">\n";
echo " <td>".date("Y-n-t h:i:sa", $ob->submitTime)." &nbsp;</td>\n"; echo " <td>".date("Y-n-t h:i:sa", $oApp->sSubmitTime)." &nbsp;</td>\n";
if ($ob->queueCatId == -1) echo " <td>".$sVendor." &nbsp;</td>\n";
{ echo " <td><a href=\"adminAppQueue.php?sub=view&appId=".$oApp->iAppId."\">".$oApp->sName."</a></td>\n";
$query2 = "select * from appFamily where appId = '$ob->queueName';"; echo " <td><a href=\"mailto:".$oSubmitter->sEmail."\">".$oSubmitter->sRealname."</a></td>\n";
$result2 = query_appdb($query2); echo "</tr>\n\n";
if($result2) $c++;
{
$ob2 = mysql_fetch_object($result2);
echo " <td><a href='adminAppQueue.php?sub=view&queueId=$ob->queueId'>$ob2->appName</a></td>\n";
} else
{
echo " <td><a href='adminAppQueue.php?sub=view&queueId=$ob->queueId'>App not found</a></td>\n";
} }
} else echo "</table>\n\n";
{ echo html_frame_end("&nbsp;");
echo " <td><a href='adminAppQueue.php?sub=view&queueId=$ob->queueId'>$ob->queueName</a></td>\n";
} }
echo " <td>".stripslashes($ob->queueVersion)." &nbsp;</td>\n";
echo " <td>".stripslashes($ob->queueVendor)." &nbsp;</td>\n"; // get queued versions (only versions where application are not queued already)
echo " <td>".stripslashes($ob->queueEmail)." &nbsp;</td>\n"; $sQuery = "SELECT versionId FROM appVersion, appFamily WHERE appFamily.appId = appVersion.appId and appFamily.queued = 'false' AND appVersion.queued = 'true'";
$hResult = query_appdb($sQuery);
if(!$hResult || !mysql_num_rows($hResult))
{
//no apps in queue
echo html_frame_start("Version Queue","90%");
echo '<p><b>The Version Queue is empty.</b></p>',"\n";
echo html_frame_end("&nbsp;");
}
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 versions waiting for your approval, or to be rejected.</p>\n";
echo "<p>To view a submission, click on its name. From that page you can edit, delete or approve it into \n";
echo "the AppDB .<br>\n";
echo "<p>Note that versions linked to application that have not been yet approved are not displayed in this list.</p>\n";
echo "the AppDB.<br>\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\">
<tr class=color4>
<td>Submission Date</td>
<td>Vendor</td>
<td>Application Name</td>
<td>Version Name</td>
<td>Submitter</td>
</tr>";
$c = 1;
while($oRow = mysql_fetch_object($hResult))
{
$oVersion = new Version($oRow->versionId);
$oApp = new Application($oVersion->iAppId);
$oSubmitter = new User($oVersion->iSubmitterId);
$oVendor = new Vendor($oApp->iVendorId);
$sVendor = $oVendor->sName;
if ($c % 2 == 1) { $bgcolor = 'color0'; } else { $bgcolor = 'color1'; }
echo "<tr class=\"$bgcolor\">\n";
echo " <td>".date("Y-n-t h:i:sa", $oVersion->sSubmitTime)." &nbsp;</td>\n";
echo " <td>".$sVendor." &nbsp;</td>\n";
echo " <td>".$oApp->sName." &nbsp;</td>\n";
echo " <td><a href=\"adminAppQueue.php?sub=view&versionId=".$oVersion->iVersionId."\">".$oVersion->sName."</a></td>\n";
echo " <td><a href=\"mailto:".$oSubmitter->sEmail."\">".$oSubmitter->sRealname."</a></td>\n";
echo "</tr>\n\n"; echo "</tr>\n\n";
$c++; $c++;
} }
@@ -449,9 +352,6 @@ else
echo html_frame_end("&nbsp;"); echo html_frame_end("&nbsp;");
} }
echo "</form>";
apidb_footer();
} }
apidb_footer();
?> ?>

View File

@@ -24,110 +24,14 @@ if(!($_SESSION['current']->hasPriv("admin") || $_SESSION['current']->isSuperMain
if(isset($_REQUEST['submit'])) if(isset($_REQUEST['submit']))
{ {
$statusMessage = '';
// commit changes of form to database // commit changes of form to database
if($_REQUEST['submit'] == "Update Database") if($_REQUEST['submit'] == "Update Database")
{ {
// Get the old values from the database $oApp = new Application($_REQUEST['appId']);
$sQuery = "SELECT * FROM appFamily WHERE appId = ".$_REQUEST['appId']; $oApp->update($_REQUEST['appName'], $_REQUEST['description'], $_REQUEST['keywords'], $_REQUEST['webPage'], $_REQUEST['vendorId'], $_REQUEST['catId']);
$hResult = query_appdb($sQuery);
$ob = mysql_fetch_object($hResult);
$sOld_appName = $ob->appName;
$sOld_description = $ob->description;
$iOld_vendorId = $ob->vendorId;
$iOld_catId = $ob->catId;
$sOld_keywords = $ob->keywords;
$sOld_webPage = $ob->webPage;
$sWhatChanged = "";
$bAppChanged = false;
if ($sOld_appName <> $_REQUEST['appName'])
{
$sWhatChanged .= " App name: Old Value: ".stripslashes($sOld_appName)."\n";
$sWhatChanged .= " New Value: ".stripslashes($_REQUEST['appName'])."\n";
$bAppChanged = true;
}
if ($iOld_vendorId <> $_REQUEST['vendorId'])
{
$sWhatChanged .= " Vendor: Old Value: ".lookupVendorName($iOld_vendorId)."\n";
$sWhatChanged .= " New Value: ".lookupVendorName($_REQUEST['vendorId'])."\n";
$bAppChanged = true;
}
if ($old_description <> $_REQUEST['description'])
{
$sWhatChanged .= " Description: Old Value:\n";
$sWhatChanged .= "-----------------------:\n";
$sWhatChanged .= stripslashes($sOld_description)."\n";
$sWhatChanged .= "-----------------------:\n";
$sWhatChanged .= " Description: New Value:\n";
$sWhatChanged .= "-----------------------:\n";
$sWhatChanged .= stripslashes($_REQUEST['description'])."\n";
$sWhatChanged .= "-----------------------:\n";
$bAppChanged = true;
}
if ($iOld_catId <> $_REQUEST['catId'])
{
$sWhatChanged .= " Category: Old Value: ".lookupCategoryName($iOld_catId)."\n";
$sWhatChanged .= " New Value: ".lookupCategoryName($_REQUEST['catId'])."\n";
$bAppChanged = true;
}
if ($sOld_keywords <> $_REQUEST['keywords'])
{
$sWhatChanged .= " keywords: Old Value: ".stripslashes($sOld_keywords)."\n";
$sWhatChanged .= " New Value: ".stripslashes($_REQUEST['keywords'])."\n";
$bAppChanged = true;
}
if ($sOld_webPage <> $_REQUEST['webPage'])
{
$sWhatChanged .= " Web Page: Old Value: ".stripslashes($sOld_webPage)."\n";
$sWhatChanged .= " New Value: ".stripslashes($_REQUEST['webPage'])."\n";
$bAppChanged = true;
}
//did anything change?
if ($bAppChanged)
{
$sUpdate = compile_update_string(array( 'appName' => $_REQUEST['appName'],
'description' => $_REQUEST['description'],
'webPage' => $_REQUEST['webPage'],
'vendorId' => $_REQUEST['vendorId'],
'keywords' => $_REQUEST['keywords'],
'catId' => $_REQUEST['catId'] ));
// success
if (query_appdb("UPDATE `appFamily` SET $sUpdate WHERE `appId` = {$_REQUEST['appId']}"))
{
$sEmail = get_notify_email_address_list($_REQUEST['appId']);
if($sEmail)
{
$sSubject = lookup_app_name($_REQUEST['appId'])." has been modified by ".$_SESSION['current']->sRealname;
$sMsg .= APPDB_ROOT."appview.php?appId=".$_REQUEST['appId']."\n";
$sMsg .= "\n";
$sMsg .= "The following changes have been made:";
$sMsg .= "\n";
$sMsg .= $sWhatChanged."\n";
$sMsg .= "\n";
mail_appdb($sEmail, $sSubject ,$sMsg);
}
addmsg("The application was successfully updated in the database", "green");
redirect(apidb_fullurl("appview.php?appId=".$_REQUEST['appId']));
} else
{
//error
redirect(apidb_fullurl("admin/editAppVersion.php?appId=".$_REQUEST['appId']."&versionId=".$_REQUEST['versionId']));
}
}
} }
else if($_REQUEST['submit'] == "Update URL") else if($_REQUEST['submit'] == "Update URL")
{ {
$sWhatChanged = ""; $sWhatChanged = "";
$bAppChanged = false; $bAppChanged = false;
@@ -208,10 +112,8 @@ if(isset($_REQUEST['submit']))
mail_appdb($sEmail, $sFullAppName ,$sMsg); mail_appdb($sEmail, $sFullAppName ,$sMsg);
} }
} }
redirect(apidb_fullurl("appview.php?appId={$_REQUEST['appId']}"));
exit;
} }
redirect(apidb_fullurl("appview.php?appId={$_REQUEST['appId']}"));
} }
else else
// Show the form for editing the Application Family // Show the form for editing the Application Family
@@ -228,7 +130,6 @@ else
if(!mysql_num_rows($result)) if(!mysql_num_rows($result))
{ {
errorpage('Application does not exist'); errorpage('Application does not exist');
exit;
} }
$ob = mysql_fetch_object($result); $ob = mysql_fetch_object($result);

View File

@@ -20,97 +20,11 @@ if(!($_SESSION['current']->hasPriv("admin") || $_SESSION['current']->isMaintaine
if(isset($_REQUEST['submit1'])) if(isset($_REQUEST['submit1']))
{ {
$oVersion = new Version($_REQUEST['versionId']);
$oApp = new Application($_REQUEST['appId']);
if($_REQUEST['submit1'] == "Update Database") if($_REQUEST['submit1'] == "Update Database")
{ {
$statusMessage = ''; $oVersion->update($_REQUEST['versionName'], $_REQUEST['description'], $_REQUEST['maintainer_release'], $_REQUEST['maintainer_rating']);
// Get the old values from the database
$query = "SELECT * FROM appVersion WHERE appId = ".$_REQUEST['appId']." and versionId = ".$_REQUEST['versionId'];
$result = query_appdb($query);
$ob = mysql_fetch_object($result);
$old_versionName = $ob->versionName;
$old_description = $ob->description;
$old_rating = $ob->maintainer_rating;
$old_release = $ob->maintainer_release;
$versionName = $_REQUEST['versionName'];
$description = $_REQUEST['description'];
$maintainer_rating = $_REQUEST['maintainer_rating'];
$maintainer_release = $_REQUEST['maintainer_release'];
$VersionChanged = false;
if ($old_versionName <> $versionName)
{
$WhatChanged .= "Version name: Old Value: ".stripslashes($old_versionName)."\n";
$WhatChanged .= " New Value: ".$versionName."\n";
$VersionChanged = true;
}
if ($old_description <> $description)
{
$WhatChanged .= " Description: Old Value:\n";
$WhatChanged .= "-----------------------:\n";
$WhatChanged .= stripslashes($old_description)."\n";
$WhatChanged .= "-----------------------:\n";
$WhatChanged .= " Description: New Value:\n";
$WhatChanged .= "-----------------------:\n";
$WhatChanged .= stripslashes($description)."\n";
$WhatChanged .= "-----------------------:\n";
$VersionChanged = true;
}
if ($old_rating <> $maintainer_rating)
{
$WhatChanged .= " Release: Old Value: ".stripslashes($old_rating)."\n";
$WhatChanged .= " New Value: ".$maintainer_rating."\n";
$VersionChanged = true;
}
if ($old_release <> $maintainer_release)
{
$WhatChanged .= " Release: Old Value: ".stripslashes($old_release)."\n";
$WhatChanged .= " New Value: ".$maintainer_release."\n";
$VersionChanged = true;
}
//did anything change?
if ($VersionChanged)
{
$sUpdate = compile_update_string( array('versionName' => $versionName,
'description' => $description,
'maintainer_rating' => $maintainer_rating,
'maintainer_release' => $maintainer_release));
$sQuery = "UPDATE appVersion
SET $sUpdate
WHERE appId = '".$_REQUEST['appId']."'
AND versionId = '".$_REQUEST['versionId']."'";
// success
if (query_appdb($sQuery))
{
$sEmail = get_notify_email_address_list($_REQUEST['appId'], $_REQUEST['versionId']);
if($sEmail)
{
$sSubject = lookup_app_name($_REQUEST['appId'])." ".lookup_version_name($_REQUEST['versionId'])." has been modified by ".$_SESSION['current']->sRealname;
$sMsg .= APPDB_ROOT."appview.php?appId=".$_REQUEST['appId']."&versionId=".$_REQUEST['versionId']."\n";
$sMsg .= "\n";
$sMsg .= "The following changes have been made:";
$sMsg .= "\n";
$sMsg .= $WhatChanged."\n";
$sMsg .= "\n";
mail_appdb($sEmail, $sSubject ,$sMsg);
}
addmsg("The version was successfully updated in the database", "green");
redirect(apidb_fullurl("appview.php?versionId=".$_REQUEST['versionId']));
} else
{
//error
redirect(apidb_fullurl("admin/editAppVersion.php?versionId=".$_REQUEST['versionId']));
}
} else
{
addmsg("Nothing changed", "red");
redirect(apidb_fullurl("admin/editAppVersion.php?versionId=".$_REQUEST['versionId']));
}
} }
else if($_REQUEST['submit1'] == "Update URL") else if($_REQUEST['submit1'] == "Update URL")
{ {
@@ -174,13 +88,12 @@ if(isset($_REQUEST['submit1']))
} }
} }
} }
}
if ($bAppChanged) if ($bAppChanged)
{ {
$sEmail = get_notify_email_address_list($_REQUEST['appId']); $sEmail = get_notify_email_address_list($_REQUEST['appId']);
if($sEmail) if($sEmail)
{ {
$sSubject = "Links for ".lookup_app_name($_REQUEST['appId'])." ".lookup_app_name($_REQUEST['versionId'])." have been updated by ".$_SESSION['current']->sRealname; $sSubject = "Links for ".$oApp->sName." ".$oVersion->sName." have been updated by ".$_SESSION['current']->sRealname;
$sMsg = APPDB_ROOT."appview.php?appId=".$_REQUEST['appId']."\n"; $sMsg = APPDB_ROOT."appview.php?appId=".$_REQUEST['appId']."\n";
$sMsg .= "\n"; $sMsg .= "\n";
$sMsg .= "The following changes have been made:"; $sMsg .= "The following changes have been made:";
@@ -191,6 +104,7 @@ if(isset($_REQUEST['submit1']))
mail_appdb($sEmail, $sSubject ,$sMsg); mail_appdb($sEmail, $sSubject ,$sMsg);
} }
} }
}
redirect(apidb_fullurl("appview.php?versionId=".$_REQUEST['versionId'])); redirect(apidb_fullurl("appview.php?versionId=".$_REQUEST['versionId']));
} else } else
{ {
@@ -199,26 +113,23 @@ if(isset($_REQUEST['submit1']))
<!-- load HTMLArea --> <!-- load HTMLArea -->
<script type="text/javascript" src="../htmlarea/htmlarea_loader.js"></script> <script type="text/javascript" src="../htmlarea/htmlarea_loader.js"></script>
<?php <?php
$sQuery = "SELECT * $oVersion = new Version($_REQUEST['versionId']);
FROM appVersion
WHERE versionId = '".$_REQUEST['versionId']."'";
$hResult = query_appdb($sQuery);
$oRow = mysql_fetch_object($hResult);
apidb_header("Edit Application Version"); apidb_header("Edit Application Version");
echo "<form method=post action='editAppVersion.php'>\n"; echo "<form method=post action='editAppVersion.php'>\n";
echo html_frame_start("Data for Application ID: ".$_REQUEST['appId']." Version ID: ".$_REQUEST['versionId'], "90%","",0); echo html_frame_start("Data for Application ID: ".$oVersion->iAppId." Version ID: ".$oVersion->iVersionId, "90%","",0);
echo html_table_begin("width='100%' border=0 align=left cellpadding=6 cellspacing=0 class='box-body'"); echo html_table_begin("width='100%' border=0 align=left cellpadding=6 cellspacing=0 class='box-body'");
echo '<input type="hidden" name="appId" value='.$_REQUEST['appId'].' />'; echo '<input type="hidden" name="appId" value='.$oVersion->iAppId.' />';
echo '<input type="hidden" name="versionId" value='.$_REQUEST['versionId'].' />'; echo '<input type="hidden" name="versionId" value='.$oVersion->iVersionId.' />';
echo '<tr><td class=color1>Name</td><td class=color0>'.lookup_app_name($_REQUEST['appId']).'</td></tr>',"\n"; echo '<tr><td class=color1>Name</td><td class=color0>'.lookup_app_name($oVersion->iAppId).'</td></tr>',"\n";
echo '<tr><td class=color4>Version</td><td class=color0><input size=80% type="text" name="versionName" type="text" value="'.$oRow->versionName.'" /></td></tr>',"\n"; echo '<tr><td class=color4>Version</td><td class=color0><input size=80% type="text" name="versionName" type="text" value="'.$oVersion->sName.'" /></td></tr>',"\n";
echo '<tr><td class="color4">Version specific description</td><td class="color0">', "\n"; echo '<tr><td class="color4">Version specific description</td><td class="color0">', "\n";
if(trim(strip_tags($oRow->description))=="") // FIXME: put templates in config file or somewhere else.
if(trim(strip_tags($oVersion->sDescription))=="")
{ {
$oRow->description = "<p>This is a template; enter version-specific description here</p>"; $oVersion->sDescription = "<p>This is a template; enter version-specific description here</p>";
$oRow->description .= "<p> $oVersion->sDescription .= "<p>
<span class=\"title\">Wine compatibility</span><br /> <span class=\"title\">Wine compatibility</span><br />
<span class=\"subtitle\">What works:</span><br /> <span class=\"subtitle\">What works:</span><br />
- settings<br /> - settings<br />
@@ -228,7 +139,7 @@ if(isset($_REQUEST['submit1']))
<br /><span class=\"subtitle\">What was not tested:</span><br /> <br /><span class=\"subtitle\">What was not tested:</span><br />
- burning<br /> - burning<br />
</p>"; </p>";
$oRow->description .= "<p><span class=\"title\">Tested versions</span><br /><table class=\"historyTable\" width=\"90%\" border=\"1\"> $oVersion->sDescription .= "<p><span class=\"title\">Tested versions</span><br /><table class=\"historyTable\" width=\"90%\" border=\"1\">
<thead class=\"historyHeader\"><tr> <thead class=\"historyHeader\"><tr>
<td>App. version</td><td>Wine version</td><td>Installs?</td><td>Runs?</td><td>Rating</td> <td>App. version</td><td>Wine version</td><td>Installs?</td><td>Runs?</td><td>Rating</td>
</tr></thead> </tr></thead>
@@ -241,13 +152,13 @@ if(isset($_REQUEST['submit1']))
</tr></tbody></table></p><p> <br /> </p>"; </tr></tbody></table></p><p> <br /> </p>";
} }
echo '<p style="width:700px">', "\n"; echo '<p style="width:700px">', "\n";
echo '<textarea cols="80" rows="30" id="editor" name="description">'.$oRow->description.'</textarea></td></tr>',"\n"; echo '<textarea cols="80" rows="30" id="editor" name="description">'.$oVersion->sDescription.'</textarea></td></tr>',"\n";
echo '</p>'; echo '</p>';
echo '<tr><td class="color4">Rating</td><td class="color0">',"\n"; echo '<tr><td class="color4">Rating</td><td class="color0">',"\n";
make_maintainer_rating_list("maintainer_rating", $oRow->maintainer_rating); make_maintainer_rating_list("maintainer_rating", $oVersion->sTestedRating);
echo '</td></tr>',"\n"; echo '</td></tr>',"\n";
echo '<tr><td class=color1>Release</td><td class=color0>',"\n"; echo '<tr><td class=color1>Release</td><td class=color0>',"\n";
make_bugzilla_version_list("maintainer_release", $oRow->maintainer_release); make_bugzilla_version_list("maintainer_release", $oVersion->sTestedRelease);
echo '</td></tr>',"\n"; echo '</td></tr>',"\n";
echo '<tr><td colspan=2 align=center class=color3><input type="submit" name="submit1" value="Update Database" /></td></tr>',"\n"; echo '<tr><td colspan=2 align=center class=color3><input type="submit" name="submit1" value="Update Database" /></td></tr>',"\n";
@@ -258,13 +169,13 @@ if(isset($_REQUEST['submit1']))
// url edit form // url edit form
echo '<form enctype="multipart/form-data" action="editAppVersion.php" method="post">',"\n"; echo '<form enctype="multipart/form-data" action="editAppVersion.php" method="post">',"\n";
echo '<input type=hidden name="appId" value='.$_REQUEST['appId'].'>'; echo '<input type=hidden name="appId" value='.$oVersion->iAppId.'>';
echo '<input type=hidden name="versionId" value='.$_REQUEST['versionId'].'>'; echo '<input type=hidden name="versionId" value='.$oVersion->iVersionId.'>';
echo html_frame_start("Edit URL","90%","",0); echo html_frame_start("Edit URL","90%","",0);
echo '<table border=0 cellpadding=6 cellspacing=0 width="100%">',"\n"; echo '<table border=0 cellpadding=6 cellspacing=0 width="100%">',"\n";
$i = 0; $i = 0;
$result = query_appdb("SELECT * FROM appData WHERE versionId = ".$_REQUEST['versionId']." AND type = 'url'"); $result = query_appdb("SELECT * FROM appData WHERE versionId = ".$oVersion->iVersionId." AND type = 'url'");
if($result && mysql_num_rows($result) > 0) if($result && mysql_num_rows($result) > 0)
{ {
echo '<tr><td class=color1><b>Delete</b></td><td class=color1>',"\n"; echo '<tr><td class=color1><b>Delete</b></td><td class=color1>',"\n";
@@ -287,7 +198,7 @@ if(isset($_REQUEST['submit1']))
} }
} else } else
{ {
echo '<tr><td class=color1></td><td class="color1"><b>Description</b></td>',"\n"; echo '<tr><td class="color1"></td><td class="color1"><b>Description</b></td>',"\n";
echo '<td class=color1><b>URL</b></td></tr>',"\n"; echo '<td class=color1><b>URL</b></td></tr>',"\n";
} }
echo "</td></tr>\n"; echo "</td></tr>\n";
@@ -300,7 +211,7 @@ if(isset($_REQUEST['submit1']))
echo '</table>',"\n"; echo '</table>',"\n";
echo html_frame_end(); echo html_frame_end();
echo "</form>"; echo "</form>";
echo html_back_link(1,BASE."appview.php?versionId=".$_REQUEST['versionId']); echo html_back_link(1,BASE."appview.php?versionId=".$oVersion->iVersionId);
apidb_footer(); apidb_footer();
} }
?> ?>

View File

@@ -5,13 +5,16 @@
include("path.php"); include("path.php");
require(BASE."include/incl.php"); require(BASE."include/incl.php");
require(BASE."include/tableve.php"); require(BASE."include/tableve.php");
require(BASE."include/mail.php");
require(BASE."include/application.php");
// Send user to the correct branch of code even if they try to bypass
// the first page (appsubmit.php without parameters)
if(!$_SESSION['current']->isLoggedIn()) if(!$_SESSION['current']->isLoggedIn())
{ {
unset($_REQUEST['queueName']); // you must be logged in to submit app
unset($_REQUEST['apptype']); apidb_header("Please login");
echo "To submit an application to the database you must be logged in. Please <a href=\"account.php?cmd=login\">login now</a> or create a <a href=\"account.php?cmd=new\">new account</a>.","\n";
exit;
} }
// Check the input of a submitted form. And output with a list // Check the input of a submitted form. And output with a list
@@ -20,40 +23,32 @@ function checkInput($fields)
{ {
$errors = ""; $errors = "";
if (strlen($fields['queueName']) > 200 ) if (strlen($fields['appName']) > 200 )
$errors .= "<li>Your application name is too long.</li>\n"; $errors .= "<li>Your application name is too long.</li>\n";
if (empty( $fields['queueName'])) if (empty($fields['appName']) && !$fields['appId'])
$errors .= "<li>Please enter an application name.</li>\n"; $errors .= "<li>Please enter an application name.</li>\n";
if (empty( $fields['queueVersion'])) if (empty($fields['versionName']))
$errors .= "<li>Please enter an application version.</li>\n"; $errors .= "<li>Please enter an application version.</li>\n";
// No vendor entered, and nothing in the list is selected // No vendor entered, and nothing in the list is selected
if (empty( $fields['queueVendor']) and $fields['altvendor'] == '0') if (empty($fields['vendorName']) && !$fields['vendorId'])
$errors .= "<li>Please enter a vendor.</li>\n"; $errors .= "<li>Please enter a vendor.</li>\n";
if (empty( $fields['queueDesc'])) if (empty($fields['appDescription']))
$errors .= "<li>Please enter a description of your application.</li>\n"; $errors .= "<li>Please enter a description of your application.</li>\n";
// Not empty and an invalid e-mail address
if (!empty( $fields['queueEmail'])
AND !preg_match('/^[A-Za-z0-9\._-]+[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+)+[A-Za-z]$/',
$fields['queueEmail']))
{
$errors .= "<li>Please enter a valid e-mail address.</li>\n";
}
if (empty($errors)) if (empty($errors))
return ""; return "";
else else
return $errors; return $errors;
} }
################################# /*
# USER SUBMITTED APP OR VERSION # * User submitted an application
################################# */
if (isset($_REQUEST['queueName'])) if (isset($_REQUEST['appName']))
{ {
// Check input and exit if we found errors // Check input and exit if we found errors
$errors = checkInput($_REQUEST); $errors = checkInput($_REQUEST);
@@ -64,43 +59,34 @@ if (isset($_REQUEST['queueName']))
exit; exit;
} }
/* if the user picked the vendor we need to retrieve the vendor name */ if($vendorName) $_REQUEST['vendorId']="";
/* and store it into the $queueVendor */ $oApplication = new Application();
if(isset($_REQUEST['altvendor'])) $oApplication->create($_REQUEST['appName'], $_REQUEST['appDescription'], $_REQUEST['keywords']." *** ".$_REQUEST['vendorName'], $_REQUEST['webpage'],$_REQUEST['vendorId'], $_REQUEST['catId']);
{ $oVersion = new Version();
/* retrieve the actual name here */ $oVersion->create($_REQUEST['versionName'], $_REQUEST['versionDescription'], null, null, $oApplication->iAppId);
$sQuery = "select * from vendor where vendorId = ".$_REQUEST['altvendor'].";";
$result = query_appdb($sQuery);
if($result && mysql_num_rows($result) > 0 )
{
$ob = mysql_fetch_object($result);
$_REQUEST['queueVendor'] = $ob->vendorName;
}
}
$aFields = compile_insert_string(
array( 'queueName' => $_REQUEST['queueName'],
'queueVersion' => $_REQUEST['queueVersion'],
'queueVendor' => $_REQUEST['queueVendor'],
'queueDesc' => $_REQUEST['queueDesc'],
'queueEmail' => $_REQUEST['queueEmail'],
'queueURL' => $_REQUEST['queueURL'],
'queueCatId' => $_REQUEST['queueCatId']));
$sQuery = "INSERT INTO appQueue ({$aFields['FIELDS']},`submitTime`) VALUES ({$aFields['VALUES']}, NOW())";
if(query_appdb($sQuery))
{
addmsg("Your application has been submitted for review. You should hear back soon".
" about the status of your submission.",'green');
}
redirect(apidb_fullurl("index.php")); redirect(apidb_fullurl("index.php"));
} }
/*
* User submitted a version
*/
elseif (isset($_REQUEST['versionName']) && is_numeric($_REQUEST['appId']))
{
// Check input and exit if we found errors
$errors = checkInput($_REQUEST);
if(!empty($errors))
{
errorpage("We found the following errors:","<ul>$errors</ul><br />Please go back and correct them.");
echo html_back_link(1);
exit;
}
####################################### $oVersion = new Version();
# USER WANTS TO SUBMIT APP OR VERSION # $oVersion->create($_REQUEST['versionName'], $_REQUEST['versionDescription'], null, null, $_REQUEST['appId']);
####################################### redirect(apidb_fullurl("index.php"));
}
/*
* User wants to submit an application or version
*/
elseif (isset($_REQUEST['apptype'])) elseif (isset($_REQUEST['apptype']))
{ {
//FIXME: use absolute path in htmlarea_loader.js to avoid code duplication here //FIXME: use absolute path in htmlarea_loader.js to avoid code duplication here
@@ -125,6 +111,14 @@ function initDocument() {
editor.config.pageStyle = "@import url(./application.css);"; editor.config.pageStyle = "@import url(./application.css);";
editor.registerPlugin(DynamicCSS); editor.registerPlugin(DynamicCSS);
editor.generate(); editor.generate();
<?php
if($_REQUEST['apptype'] == 1) // we have two editors, one for application and one for version.
{?>
var editor2 = new HTMLArea("editor2",config);
editor2.config.pageStyle = "@import url(./application.css);";
editor2.generate();
<?php
}?>
} }
onload = function() { onload = function() {
@@ -135,87 +129,14 @@ onload = function() {
</script> </script>
<script type="text/javascript" src="./htmlarea/htmlarea.js"></script> <script type="text/javascript" src="./htmlarea/htmlarea.js"></script>
<?php <?php
// set email field if logged in
if ($_SESSION['current']->isLoggedIn())
$email = $_SESSION['current']->sEmail;
// header /*
apidb_header("Submit Application"); * Templates
* FIXME: put templates in config file or somewhere else.
// show add to queue form */
echo '<form name="newApp" action="appsubmit.php" method="post" enctype="multipart/form-data">',"\n"; $sAppDescription = "<p>Enter description here</p>";
echo "<p>This page is for submitting new applications to be added to this\n"; $sVersionDescription = "<p>This is a template; enter version-specific description here</p>
echo "database. The application will be reviewed by the AppDB Administrator\n"; <p>
echo "and you will be notified via email if this application will be added to\n";
echo "the database.</p>\n";
echo "<p>Please don't forget to mention which Wine version you used, how well it worked\n";
echo "and if any workaround were needed. Having app descriptions just sponsoring the app\n";
echo "(Yes, some vendor want to use the appdb for this) or saying \"I haven't tried this app with Wine\" ";
echo "won't help Wine development or Wine users.</p>\n";
echo "<p>After your application has been added you'll be able to submit screenshots for it.</p>";
# NEW APPLICATION
if ($_REQUEST['apptype'] == 1)
{
echo html_frame_start("New Application Form",400,"",0);
echo "<table width='100%' border=0 cellpadding=2 cellspacing=0>\n";
echo '<tr valign=top><td class=color0><b>App Name</b></td>',"\n";
echo '<td><input type=text name="queueName" value="" size=20></td></tr>',"\n";
echo '<tr valign=top><td class=color0><b>App Version</b></td>',"\n";
echo '<td><input type=text name="queueVersion" value="" size=20></td></tr>',"\n";
// app Category
$w = new TableVE("view");
echo '<tr valign=top><td class=color0><b>Category</b></td><td>',"\n";
$w->make_option_list("queueCatId","","appCategory","catId","catName");
echo '</td></tr>',"\n";
echo '<tr valign=top><td class=color0><b>App Vendor</b></td>',"\n";
echo '<td><input type=text name="queueVendor" value="" size=20></td></tr>',"\n";
// alt vendor
$x = new TableVE("view");
echo '<tr valign=top><td class=color0>&nbsp;</td><td>',"\n";
$x->make_option_list("altvendor","","vendor","vendorId","vendorName");
echo '</td></tr>',"\n";
echo '<tr valign=top><td class=color0><b>App URL</b></td>',"\n";
echo '<td><input type=text name="queueURL" value="" size=20></td></tr>',"\n";
$sDescription = "<p>Enter description here</p>";
echo '<tr valign=top><td class=color0><b>Description</b></td>',"\n";
echo '<td><p style="width:700px"><textarea cols="80" rows="20" id="editor" name="queueDesc">'.$sDescription.'</textarea></p></td></tr>',"\n";
echo '<tr valign=top><td class=color0><b>Email</b></td>',"\n";
echo '<td><input type=text name="queueEmail" value="'.$email.'" size=20></td></tr>',"\n";
echo '<tr valign=top><td class=color3 align=center colspan=2>',"\n";
echo '<input type=submit value=" Submit New Application " class=button> </td></tr>',"\n";
echo '</table>',"\n";
echo html_frame_end();
echo "</form>";
}
# NEW VERSION
else
{
echo html_frame_start("New Version Form",400,"",0);
echo "<table width='100%' border=0 cellpadding=2 cellspacing=0>\n";
// app parent
$x = new TableVE("view");
echo '<tr valign=top><td class=color0><b>App Parent</b></td><td>',"\n";
$x->make_option_list("queueName",$_REQUEST['appId'],"appFamily","appId","appName");
echo '</td></tr>',"\n";
echo '<tr valign=top><td class=color0><b>App Version</b></td>',"\n";
echo '<td><input type=text name="queueVersion" size=20></td></tr>',"\n";
$sDescription = "<p>This is a template; enter version-specific description here</p>";
$sDescription .= "<p>
<span class=\"title\">Wine compatibility</span><br /> <span class=\"title\">Wine compatibility</span><br />
<span class=\"subtitle\">What works:</span><br /> <span class=\"subtitle\">What works:</span><br />
- settings<br /> - settings<br />
@@ -224,8 +145,8 @@ onload = function() {
- erasing<br /> - erasing<br />
<br /><span class=\"subtitle\">What was not tested:</span><br /> <br /><span class=\"subtitle\">What was not tested:</span><br />
- burning<br /> - burning<br />
</p>"; </p>
$oRow->description .= "<p><span class=\"title\">Tested versions</span><br /><table class=\"historyTable\" width=\"90%\" border=\"1\"> <p><span class=\"title\">Tested versions</span><br /><table class=\"historyTable\" width=\"90%\" border=\"1\">
<thead class=\"historyHeader\"><tr> <thead class=\"historyHeader\"><tr>
<td>App. version</td><td>Wine version</td><td>Installs?</td><td>Runs?</td><td>Rating</td> <td>App. version</td><td>Wine version</td><td>Installs?</td><td>Runs?</td><td>Rating</td>
</tr></thead> </tr></thead>
@@ -237,17 +158,89 @@ onload = function() {
<td class=\"bronze\">3.21</td><td class=\"bronze\">20040615</td><td class=\"bronze\">yes</td><td class=\"bronze\">yes</td><td class=\"bronze\">Bronze</td> <td class=\"bronze\">3.21</td><td class=\"bronze\">20040615</td><td class=\"bronze\">yes</td><td class=\"bronze\">yes</td><td class=\"bronze\">Bronze</td>
</tr></tbody></table></p><p> <br /> </p>"; </tr></tbody></table></p><p> <br /> </p>";
echo '<tr valign=top><td class=color0><b>App Desc</b></td>',"\n"; // header
echo '<td><p style="width:700px"><textarea cols="80" rows="20" id="editor" name="queueDesc">'.$sDescription.'</textarea></p></td></tr>',"\n"; apidb_header("Submit Application");
echo '<tr valign=top><td class=color0><b>Email</b></td>',"\n"; // show add to queue form
echo '<td><input type=text name="queueEmail" value="'.$email.'" size=20></td></tr>',"\n"; echo '<form name="newApp" action="appsubmit.php" method="post">'."\n";
echo "<p>This page is for submitting new applications to be added to this\n";
echo "database. The application will be reviewed by the AppDB Administrator\n";
echo "and you will be notified via email if this application will be added to\n";
echo "the database.</p>\n";
echo "<p>Please don't forget to mention which Wine version you used, how well it worked\n";
echo "and if any workaround were needed. Having app descriptions just sponsoring the app\n";
echo "(Yes, some vendor want to use the appdb for this) or saying \"I haven't tried this app with Wine\" ";
echo "won't help Wine development or Wine users.</p>\n";
echo "<p>After your application has been added you'll be able to submit screenshots for it.</p>";
// new application and version
if ($_REQUEST['apptype'] == 1)
{
echo html_frame_start("New Application Form",400,"",0);
echo "<table width='100%' border=0 cellpadding=2 cellspacing=0>\n";
echo '<tr valign=top><td class="color0"><b>Application name</b></td>',"\n";
echo '<td><input type=text name="appName" value="" size="20"></td></tr>',"\n";
echo '<tr valign=top><td class="color0"><b>Version name</b></td>',"\n";
echo '<td><input type=text name="versionName" value="" size="20"></td></tr>',"\n";
// app Category
$w = new TableVE("view");
echo '<tr valign=top><td class="color0"><b>Category</b></td><td>',"\n";
$w->make_option_list("catId","","appCategory","catId","catName");
echo '</td></tr>',"\n";
echo '<tr valign=top><td class="color0"><b>Vendor</b></td>',"\n";
echo '<td><input type=text name="vendorName" value="" size="20"></td></tr>',"\n";
// alt vendor
$x = new TableVE("view");
echo '<tr valign=top><td class="color0">&nbsp;</td><td>',"\n";
$x->make_option_list("vendorId","","vendor","vendorId","vendorName");
echo '</td></tr>',"\n";
echo '<tr valign=top><td class="color0"><b>URL</b></td>',"\n";
echo '<td><input type=text name="webpage" value="" size=20></td></tr>',"\n";
echo '<tr valign=top><td class="color0"><b>Keywords</b></td>',"\n";
echo '<td><input size="80%" type="text" name="keywords"></td></tr>',"\n";
echo '<tr valign=top><td class="color0"><b>Application Description</b></td>',"\n";
echo '<td><p style="width:700px"><textarea cols="80" rows="20" id="editor" name="appDescription">'.$sAppDescription.'</textarea></p></td></tr>',"\n";
echo '<tr valign=top><td class="color0"><b>Version Description</b></td>',"\n";
echo '<td><p style="width:700px"><textarea cols="80" rows="20" id="editor2" name="versionDescription">'.$sVersionDescription.'</textarea></p></td></tr>',"\n";
echo '<input type=hidden name="queueVendor" value="">',"\n";
echo '<input type=hidden name="queueCatId" value=-1>',"\n";
echo '<tr valign=top><td class=color3 align=center colspan=2>',"\n"; echo '<tr valign=top><td class=color3 align=center colspan=2>',"\n";
echo '<input type=submit value=" Submit New Version" class=button> </td></tr>',"\n"; echo '<input type=submit value="Submit New Application" class="button"> </td></tr>',"\n";
echo '</table>',"\n";
echo html_frame_end();
echo "</form>";
}
// new version
else
{
echo html_frame_start("New Version Form",400,"",0);
echo "<table width='100%' border=0 cellpadding=2 cellspacing=0>\n";
// app parent
$x = new TableVE("view");
echo '<tr valign=top><td class=color0><b>Application</b></td><td>',"\n";
$x->make_option_list("appId",$_REQUEST['appId'],"appFamily","appId","appName");
echo '</td></tr>',"\n";
echo '<tr valign=top><td class="color0"><b>Version name</b></td>',"\n";
echo '<td><input type=text name="versionName" size="20"></td></tr>',"\n";
echo '<tr valign=top><td class=color0><b>Version description</b></td>',"\n";
echo '<td><p style="width:700px"><textarea cols="80" rows="20" id="editor" name="versionDescription">'.$sVersionDescription.'</textarea></p></td></tr>',"\n";
echo '<tr valign=top><td class="color3" align="center" colspan="2">',"\n";
echo '<input type=submit value="Submit New Version" class="button"> </td></tr>',"\n";
echo '</table>',"\n"; echo '</table>',"\n";
@@ -256,31 +249,5 @@ onload = function() {
echo "</form>"; echo "</form>";
} }
} }
##########################
# HOME PAGE OF APPSUBMIT #
##########################
else
{
if(!$_SESSION['current']->isLoggedIn())
{
// you must be logged in to submit app
apidb_header("Please login");
echo "To submit an application to the database you must be logged in. Please <a href=\"account.php?cmd=login\">login now</a> or create a <a href=\"account.php?cmd=new\">new account</a>.","\n";
}
else
{
// choose type of app
apidb_header("Choose Application Type");
echo "Please search through the database first. If you cannot find your application in the database select ","\n";
echo "<b>New Application</b>.","\n";
echo "If you have found your application but have not found your version then choose <b>New Version</b>.","\n";
echo "<table width='100%' border=0 cellpadding=2 cellspacing=0>\n";
echo "<tr valign=top><td class=color0 align=center><a href='appsubmit.php?apptype=1'>New Application</a></td>","\n";
echo "<td class=color0 align=center><a href='appsubmit.php?apptype=2'>New Version</a></td></tr>","\n";
echo '</table>',"\n";
}
}
apidb_footer(); apidb_footer();
?> ?>

View File

@@ -33,9 +33,11 @@ function display_catpath($catId, $appId, $versionId = '')
/** /**
* display the SUB apps that belong to this app * display the SUB apps that belong to this app
* FIXME:
*/ */
function display_bundle($appId) function display_bundle($appId)
{ {
$oApp = new Application($appId);
$result = query_appdb("SELECT appFamily.appId, appName, description FROM appBundle, appFamily ". $result = query_appdb("SELECT appFamily.appId, appName, description FROM appBundle, appFamily ".
"WHERE bundleId = $appId AND appBundle.appId = appFamily.appId"); "WHERE bundleId = $appId AND appBundle.appId = appFamily.appId");
if(!$result || mysql_num_rows($result) == 0) if(!$result || mysql_num_rows($result) == 0)
@@ -56,12 +58,10 @@ function display_bundle($appId)
//set row color //set row color
$bgcolor = ($c % 2 == 0) ? "color0" : "color1"; $bgcolor = ($c % 2 == 0) ? "color0" : "color1";
//format desc
$aDesc = explode("\n",$oApp->data->description,2);
//display row //display row
echo "<tr class=$bgcolor>\n"; echo "<tr class=$bgcolor>\n";
echo " <td><a href='appview.php?appId=$ob->appId'>".stripslashes($ob->appName)."</a></td>\n"; echo " <td><a href='appview.php?appId=$ob->appId'>".stripslashes($ob->appName)."</a></td>\n";
echo " <td>".$aDesc[0]."</td>\n"; echo " <td>".trim_description($oApp->sDescription)."</td>\n";
echo "</tr>\n\n"; echo "</tr>\n\n";
$c++; $c++;
@@ -194,7 +194,7 @@ if($_REQUEST['appId'])
display_catpath($oApp->iCatId, $oApp->iAppId); display_catpath($oApp->iCatId, $oApp->iAppId);
// set Vendor // set Vendor
$vendor = $oApp->iVendorId; $oVendor = new Vendor($oApp->iVendorId);
// set URL // set URL
$appLinkURL = ($oApp->sWebpage) ? "<a href=\"$data->webPage\">".substr(stripslashes($oApp->sWebpage),0,30)."</a>": "&nbsp;"; $appLinkURL = ($oApp->sWebpage) ? "<a href=\"$data->webPage\">".substr(stripslashes($oApp->sWebpage),0,30)."</a>": "&nbsp;";
@@ -209,7 +209,7 @@ if($_REQUEST['appId'])
echo ' <table width="250" border=0 cellpadding=3 cellspacing=1">',"\n"; echo ' <table width="250" border=0 cellpadding=3 cellspacing=1">',"\n";
echo " <tr class=color0 valign=top><td width=\"100\"><b>Name</b></td><td width='100%'> ".$oApp->sName." </td>\n"; echo " <tr class=color0 valign=top><td width=\"100\"><b>Name</b></td><td width='100%'> ".$oApp->sName." </td>\n";
echo " <tr class=\"color1\"><td><b>Vendor</b></td><td> ". echo " <tr class=\"color1\"><td><b>Vendor</b></td><td> ".
" <a href='vendorview.php?vendorId=$vendor->vendorId'> ".stripslashes($vendor->vendorName)." </a> &nbsp;\n"; " <a href='vendorview.php?vendorId=$oVendor->iVendorId'> ".$oVendor->sName." </a> &nbsp;\n";
echo " <tr class=\"color0\"><td><b>BUGS</b></td><td> ". echo " <tr class=\"color0\"><td><b>BUGS</b></td><td> ".
" <a href=\"bugs.php?appId=".$oApp->iAppId."\">Check for bugs in bugzilla </a> &nbsp;\n"; " <a href=\"bugs.php?appId=".$oApp->iAppId."\">Check for bugs in bugzilla </a> &nbsp;\n";
echo " </td></tr>\n"; echo " </td></tr>\n";

View File

@@ -61,10 +61,6 @@ function hasDataAssociated($iUserId)
$hResult = query_appdb($sQuery); $hResult = query_appdb($sQuery);
if(mysql_num_rows($hResult)) return true; if(mysql_num_rows($hResult)) return true;
$sQuery = "SELECT * FROM appDataQueue WHERE userId = $iUserId";
$hResult = query_appdb($sQuery);
if(mysql_num_rows($hResult)) return true;
$sQuery = "SELECT * FROM appMaintainerQueue WHERE userId = $iUserId"; $sQuery = "SELECT * FROM appMaintainerQueue WHERE userId = $iUserId";
$hResult = query_appdb($sQuery); $hResult = query_appdb($sQuery);
if(mysql_num_rows($hResult)) return true; if(mysql_num_rows($hResult)) return true;

View File

@@ -3,8 +3,8 @@
/* this class represents an application incl. all versions */ /* this class represents an application incl. all versions */
/***********************************************************/ /***********************************************************/
require(BASE."include/version.php"); require_once(BASE."include/version.php");
require(BASE."include/vendor.php"); require_once(BASE."include/vendor.php");
/** /**
* Application class for handling applications. * Application class for handling applications.
@@ -19,6 +19,7 @@ class Application {
var $sDescription; var $sDescription;
var $sWebpage; var $sWebpage;
var $bQueued; var $bQueued;
var $sSubmitTime;
var $iSubmitterId; var $iSubmitterId;
var $aVersionsIds; // an array that contains the versionId of every version linked to this app. var $aVersionsIds; // an array that contains the versionId of every version linked to this app.
@@ -47,6 +48,7 @@ class Application {
$this->iVendorId = $oRow->vendorId; $this->iVendorId = $oRow->vendorId;
$this->iCatId = $oRow->catId; $this->iCatId = $oRow->catId;
$this->iSubmitterId = $oRow->submitterId; $this->iSubmitterId = $oRow->submitterId;
$this->sSubmitTime = $oRow->submitTime;
$this->sDate = $oRow->submitTime; $this->sDate = $oRow->submitTime;
$this->sName = $oRow->appName; $this->sName = $oRow->appName;
$this->sKeywords = $oRow->keywords; $this->sKeywords = $oRow->keywords;
@@ -104,6 +106,7 @@ class Application {
'webPage' => $sWebpage, 'webPage' => $sWebpage,
'vendorId' => $iVendorId, 'vendorId' => $iVendorId,
'catId' => $iCatId, 'catId' => $iCatId,
'submitterId'=> $_REQUEST['current']->iUserId,
'queued' => $this->bQueued )); 'queued' => $this->bQueued ));
$sFields = "({$aInsert['FIELDS']})"; $sFields = "({$aInsert['FIELDS']})";
$sValues = "({$aInsert['VALUES']})"; $sValues = "({$aInsert['VALUES']})";
@@ -123,34 +126,36 @@ class Application {
/** /**
* Update application. * Update application.
* FIXME: Informs interested people about the modification. * FIXME: Informs interested people about the modification.
* FIXME: tell what changed in the email.
* FIXME: get rid of addslashes and use compile_update_string
* Returns true on success and false on failure. * Returns true on success and false on failure.
*/ */
function update($sName=null, $sDescription=null, $sKeywords=null, $sWebpage=null, $iVendorId=null, $iCatId=null) function update($sName=null, $sDescription=null, $sKeywords=null, $sWebpage=null, $iVendorId=null, $iCatId=null)
{ {
if ($sName) if ($sName)
{ {
if (!query_appdb("UPDATE appFamily SET appName = '".$sName."' WHERE appId = ".$this->iAppId)) if (!query_appdb("UPDATE appFamily SET appName = '".addslashes($sName)."' WHERE appId = ".$this->iAppId))
return false; return false;
$this->sName = $sName; $this->sName = $sName;
} }
if ($sDescription) if ($sDescription)
{ {
if (!query_appdb("UPDATE appFamily SET description = '".$sDescription."' WHERE appId = ".$this->iAppId)) if (!query_appdb("UPDATE appFamily SET description = '".addslashes($sDescription)."' WHERE appId = ".$this->iAppId))
return false; return false;
$this->sDescription = $sDescription; $this->sDescription = $sDescription;
} }
if ($sKeywords) if ($sKeywords)
{ {
if (!query_appdb("UPDATE appFamily SET keywords = '".$sKeywords."' WHERE appId = ".$this->iAppId)) if (!query_appdb("UPDATE appFamily SET keywords = '".addslashes($sKeywords)."' WHERE appId = ".$this->iAppId))
return false; return false;
$this->sKeywords = $sKeywords; $this->sKeywords = $sKeywords;
} }
if ($sWebpage) if ($sWebpage)
{ {
if (!query_appdb("UPDATE appFamily SET webPage = '".$sWebpage."' WHERE appId = ".$this->iAppId)) if (!query_appdb("UPDATE appFamily SET webPage = '".addslashes($sWebpage)."' WHERE appId = ".$this->iAppId))
return false; return false;
$this->sWebpage = $sWebpage; $this->sWebpage = $sWebpage;
} }
@@ -161,6 +166,13 @@ class Application {
return false; return false;
$this->iVendorId = $iVendorId; $this->iVendorId = $iVendorId;
} }
if ($iCatId)
{
if (!query_appdb("UPDATE appFamily SET catId = '".$iCatId."' WHERE appId = ".$this->iAppId))
return false;
$this->iCatId = $iCatId;
}
return true; return true;
} }
@@ -196,8 +208,9 @@ class Application {
if(!$this->bQueued) if(!$this->bQueued)
return false; return false;
$sUpdate = compile_insert_string(array('queued' => "false")); $sUpdate = compile_update_string(array('queued' => "false",
if(query_appdb("UPDATE appFamily ".$sUpdate)) 'keywords'=> str_replace(" *** ","",$this->sKeywords) ));
if(query_appdb("UPDATE appFamily SET ".$sUpdate." WHERE appId = ".$this->iAppId))
{ {
// we send an e-mail to intersted people // we send an e-mail to intersted people
$this->mailSubmitter(); $this->mailSubmitter();
@@ -258,8 +271,7 @@ class Application {
$sSubject = "Application ".$this->sName." deleted by ".$_SESSION['current']->sRealname; $sSubject = "Application ".$this->sName." deleted by ".$_SESSION['current']->sRealname;
addmsg("Application deleted.", "green"); addmsg("Application deleted.", "green");
} }
$sEmail = get_notify_email_address_list($this->iAppId);
$sEmail = get_notify_email_address_list(null, $this->iVersionId);
if($sEmail) if($sEmail)
mail_appdb($sEmail, $sSubject ,$sMsg); mail_appdb($sEmail, $sSubject ,$sMsg);
} }

View File

@@ -203,14 +203,16 @@ function make_cat_path($path, $appId = '', $versionId = '')
if(!empty($appId)) if(!empty($appId))
{ {
$oApp = new Application($appId);
if(!empty($versionId)) if(!empty($versionId))
{ {
$str .= " &gt; ".html_ahref(lookup_app_name($appId),"appview.php?appId=$appId"); $oVersion = new Version($versionId);
$str .= " &gt; ".lookup_version_name($versionId); $str .= " &gt; ".html_ahref($oApp->sName,"appview.php?appId=$appId");
$str .= " &gt; ".$oVersion->sName;
} }
else else
{ {
$str .= " &gt; ".lookup_app_name($appId); $str .= " &gt; ".$oApp->sName;
} }
} }

View File

@@ -13,7 +13,7 @@ function global_sidebar_menu() {
$g->add("AppDB Home", BASE); $g->add("AppDB Home", BASE);
$g->add("Browse Apps", BASE."appbrowse.php"); $g->add("Browse Apps", BASE."appbrowse.php");
$g->add("Top 25", BASE."votestats.php"); $g->add("Top 25", BASE."votestats.php");
$g->add("Submit App", BASE."appsubmit.php"); $g->add("Submit App", BASE."appsubmit.php?apptype=1");
$g->add("Documentation", BASE."help/"); $g->add("Documentation", BASE."help/");
$g->add("Help & Support", BASE."support.php"); $g->add("Help & Support", BASE."support.php");
$g->add("Appdb Stats", BASE."appdbStats.php"); $g->add("Appdb Stats", BASE."appdbStats.php");

View File

@@ -128,25 +128,25 @@ function make_maintainer_rating_list($varname, $cvalue)
echo "</select>\n"; echo "</select>\n";
} }
/* get the number of applications in the appQueue table */ /* get the number of queued applications */
function getQueuedAppCount() function getQueuedAppCount()
{ {
$qstring = "SELECT count(*) as queued_apps FROM appQueue"; $qstring = "SELECT count(*) as queued_apps FROM appFamily WHERE queued='true'";
$result = query_appdb($qstring); $result = query_appdb($qstring);
$ob = mysql_fetch_object($result); $ob = mysql_fetch_object($result);
return $ob->queued_apps; return $ob->queued_apps;
} }
/* get the number of applications in the appQueue table */ /* get the number of queued appdata */
function getQueuedAppDataCount() function getQueuedAppDataCount()
{ {
$qstring = "SELECT count(*) as queued_appdata FROM appDataQueue"; $qstring = "SELECT count(*) as queued_appdata FROM appData WHERE queued='true'";
$result = query_appdb($qstring); $result = query_appdb($qstring);
$ob = mysql_fetch_object($result); $ob = mysql_fetch_object($result);
return $ob->queued_appdata; return $ob->queued_appdata;
} }
/* get the number of applications in the appQueue table */ /* get the number of queued maintainers */
function getQueuedMaintainerCount() function getQueuedMaintainerCount()
{ {
$qstring = "SELECT count(*) as queued_maintainers FROM appMaintainerQueue"; $qstring = "SELECT count(*) as queued_maintainers FROM appMaintainerQueue";

View File

@@ -13,7 +13,9 @@ class Version {
var $sDescription; var $sDescription;
var $sTestedRelease; var $sTestedRelease;
var $sTestedRating; var $sTestedRating;
var $sSubmitTime;
var $iSubmitterId; var $iSubmitterId;
var $sDate;
var $aNotesIds; // an array that contains the noteId of every note linked to this version var $aNotesIds; // an array that contains the noteId of every note linked to this version
var $aScreenshotsIds; // an array that contains the screenshotId of every screenshot linked to this version var $aScreenshotsIds; // an array that contains the screenshotId of every screenshot linked to this version
var $aUrlsIds; // an array that contains the screenshotId of every url linked to this version var $aUrlsIds; // an array that contains the screenshotId of every url linked to this version
@@ -42,6 +44,7 @@ class Version {
$this->iVendorId = $oRow->vendorId; $this->iVendorId = $oRow->vendorId;
$this->iCatId = $oRow->catId; $this->iCatId = $oRow->catId;
$this->iSubmitterId = $oRow->submitterId; $this->iSubmitterId = $oRow->submitterId;
$this->sSubmitTime = $oRow->submitTime;
$this->sDate = $oRow->submitTime; $this->sDate = $oRow->submitTime;
$this->sName = $oRow->versionName; $this->sName = $oRow->versionName;
$this->sKeywords = $oRow->keywords; $this->sKeywords = $oRow->keywords;
@@ -206,8 +209,8 @@ class Version {
if(!$this->bQueued) if(!$this->bQueued)
return false; return false;
$sUpdate = compile_insert_string(array('queued' => "false")); $sUpdate = compile_update_string(array('queued' => "false"));
if(query_appdb("UPDATE appVersion ".$sUpdate)) if(query_appdb("UPDATE appVersion SET ".$sUpdate." WHERE versionId = ".$this->iVersionId))
{ {
// we send an e-mail to intersted people // we send an e-mail to intersted people
$this->mailSubmitter(); $this->mailSubmitter();

View File

@@ -41,9 +41,12 @@ if($_REQUEST['cmd'])
*/ */
$hResult = get_screenshots($_REQUEST['appId'], $_REQUEST['versionId']); $hResult = get_screenshots($_REQUEST['appId'], $_REQUEST['versionId']);
apidb_header("Screenshots"); apidb_header("Screenshots");
$oApp = new Application($_REQUEST['appId']);
$oVersion = new Version($_REQUEST['versionId']);
if($hResult && mysql_num_rows($hResult)) if($hResult && mysql_num_rows($hResult))
{ {
echo html_frame_start("Screenshot Gallery for ".lookup_app_name($_REQUEST['appId'])." ".lookup_version_name($_REQUEST['versionId']),500); echo html_frame_start("Screenshot Gallery for ".$oApp->sName." ".$oVersion->sName,500);
// display thumbnails // display thumbnails
$c = 1; $c = 1;

View File

@@ -11,8 +11,6 @@ drop table if exists appHitStats;
drop table if exists catHitStats; drop table if exists catHitStats;
drop table if exists appComments; drop table if exists appComments;
drop table if exists appData; drop table if exists appData;
drop table if exists appDataQueue;
drop table if exists appQueue;
drop table if exists appBundle; drop table if exists appBundle;
drop table if exists appVotes; drop table if exists appVotes;
drop table if exists appNotes; drop table if exists appNotes;
@@ -41,6 +39,9 @@ create table appFamily (
description text, description text,
webPage varchar(100), webPage varchar(100),
catId int, catId int,
submitTime timestamp(14) NOT NULL,
submitterId int(11) NOT NULL default '0',
queued enum('true','false') NOT NULL default 'false',
key(appId) key(appId)
); );
@@ -55,22 +56,12 @@ create table appVersion (
description text, description text,
maintainer_rating text, maintainer_rating text,
maintainer_release text, maintainer_release text,
submitTime timestamp(14) NOT NULL,
submitterId int(11) NOT NULL default '0',
queued enum('true','false') NOT NULL default 'false',
key(versionId) key(versionId)
); );
create table appQueue (
queueId int not null auto_increment,
queueName varchar(100) not null,
queueVersion varchar(100) not null,
queueVendor varchar(100) not null,
queueDesc text,
queueEmail varchar(100),
queueURL varchar(100),
queueImage varchar(100) not null,
submitTime timestamp,
queueCatId int,
key(queueId)
);
create table userExperience ( create table userExperience (
uExpId int not null auto_increment, uExpId int not null auto_increment,
@@ -158,27 +149,12 @@ create table appData (
versionId int default 0, versionId int default 0,
type enum('image', 'url', 'bug'), type enum('image', 'url', 'bug'),
description text, description text,
url varchar(255), url varchar(255) default NULL,
key(id), submitTime timestamp(14) NOT NULL,
index(appId), submitterId int(11) NOT NULL default '0',
index(versionId) queued enum('true','false') NOT NULL default 'false',
); KEY id (id),
KEY versionId (versionId)
/*
* links to screenshots and other stuff waiting to be accepted
*/
create table appDataQueue (
queueId int not null auto_increment,
versionId int default 0,
type enum('image', 'url'),
description text,
url varchar(255),
userId int not null,
submitTime timestamp,
key(queueid),
index(appId),
index(versionId)
); );