- use htmlarea for editing app description and notes

- special stylesheet for application description and notes
- function to display summary of description with html stripping
This commit is contained in:
Jonathan Ernst
2005-02-02 02:38:20 +00:00
committed by WineHQ
parent 6beff0b816
commit f2258e7ee5
7 changed files with 158 additions and 63 deletions

View File

@@ -100,11 +100,28 @@ if(isset($_REQUEST['submit']))
'keywords' => $_REQUEST['keywords'], 'keywords' => $_REQUEST['keywords'],
'catId' => $_REQUEST['catId'] )); 'catId' => $_REQUEST['catId'] ));
// success
if (query_appdb("UPDATE `appFamily` SET $sUpdate WHERE `appId` = {$_REQUEST['appId']}")) if (query_appdb("UPDATE `appFamily` SET $sUpdate WHERE `appId` = {$_REQUEST['appId']}"))
{ {
$sEmail = get_notify_email_address_list($_REQUEST['appId']);
if($sEmail)
{
$sSubject = lookupAppName($_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";
addmsg("Database Updated", "green"); 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']));
} }
} }
} }
@@ -177,30 +194,33 @@ if(isset($_REQUEST['submit']))
} }
} }
} }
}
if ($bAppChanged) if ($bAppChanged)
{ {
$sEmail = get_notify_email_address_list($_REQUEST['appId']); $sEmail = get_notify_email_address_list($_REQUEST['appId']);
if($sEmail) if($sEmail)
{ {
$sFullAppName = "Application: ".lookupAppName($_REQUEST['appId']); $sFullAppName = "Links for ".lookupAppName($_REQUEST['appId'])." have been updated";
$sMsg = APPDB_ROOT."appview.php?appId=".$_REQUEST['appId']."\r\n"; $sMsg = APPDB_ROOT."appview.php?appId=".$_REQUEST['appId']."\r\n";
$sMsg .= "\r\n"; $sMsg .= "\n";
$sMsg .= $_SESSION['current']->sRealname." changed ".$sFullAppName." \r\n"; $sMsg .= $_SESSION['current']->sRealname." updated links for ".$sFullAppName." \r\n";
$sMsg .= "\r\n"; $sMsg .= "\n";
$sMsg .= $sWhatChanged."\r\n"; $sMsg .= $sWhatChanged."\n";
$sMsg .= "\r\n";
mail_appdb($sEmail, $sFullAppName ,$sMsg); mail_appdb($sEmail, $sFullAppName ,$sMsg);
} }
} }
redirect(apidb_fullurl("appview.php?appId={$_REQUEST['appId']}")); redirect(apidb_fullurl("appview.php?appId={$_REQUEST['appId']}"));
exit; exit;
}
} }
else else
// Show the form for editing the Application Family // Show the form for editing the Application Family
{ {
?>
<link rel="stylesheet" href="./application.css" type="text/css">
<!-- load HTMLArea -->
<script type="text/javascript" src="../htmlarea/htmlarea_loader.js"></script>
<?php
$family = new TableVE("edit"); $family = new TableVE("edit");
$result = query_appdb("SELECT * from appFamily WHERE appId = '{$_REQUEST['appId']}'"); $result = query_appdb("SELECT * from appFamily WHERE appId = '{$_REQUEST['appId']}'");
@@ -217,23 +237,25 @@ else
apidb_header("Edit Application Family"); apidb_header("Edit Application Family");
echo "<form method=post action='editAppFamily.php'>\n"; echo "<form method=\"post\" action=\"editAppFamily.php\">\n";
echo html_frame_start("Data for Application ID $ob->appId", "90%","",0); echo html_frame_start("Data for Application ID $ob->appId", "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='.$ob->appId.'>'; echo '<input type="hidden" name="appId" value="'.$ob->appId.'">';
echo '<tr><td class=color1>Name</td><td class=color0><input size=80% type="text" name="appName" type="text" value="'.$ob->appName.'"></td></tr>',"\n"; echo '<tr><td class=color1>Name</td><td class=color0><input size=80% type="text" name="appName" type="text" value="'.$ob->appName.'"></td></tr>',"\n";
echo '<tr><td class=color4>Vendor</td><td class=color0>'; echo '<tr><td class=color4>Vendor</td><td class=color0>';
$family->make_option_list("vendorId", $ob->vendorId, "vendor", "vendorId", "vendorName"); $family->make_option_list("vendorId", $ob->vendorId, "vendor", "vendorId", "vendorName");
echo '</td></tr>',"\n"; echo '</td></tr>',"\n";
echo '<tr><td class=color1>Keywords</td><td class=color0><input size=80% type="text" name="keywords" value="'.$ob->keywords.'"></td></tr>',"\n"; echo '<tr><td class=color1>Keywords</td><td class=color0><input size=80% type="text" name="keywords" value="'.$ob->keywords.'"></td></tr>',"\n";
echo '<tr><td class=color4>Description</td><td class=color0>', "\n"; echo '<tr><td class="color4">Description</td><td class="color0">', "\n";
echo '<textarea cols=50 rows=10 name="description">'.stripslashes($ob->description).'</textarea></td></tr>',"\n"; if(trim(strip_tags($ob->description))=="") $ob->description="<p>Enter description here</p>";
echo '<p style="width:700px">', "\n";
echo '<textarea rows="20" cols="80" id="editor" name="description">'.$ob->description.'</textarea></td></tr>',"\n";
echo '</p>';
echo '<tr><td class=color1>Web Page</td><td class=color0><input size=80% type="text" name="webPage" value="'.$ob->webPage.'"></td></tr>',"\n"; echo '<tr><td class=color1>Web Page</td><td class=color0><input size=80% type="text" name="webPage" value="'.$ob->webPage.'"></td></tr>',"\n";
echo '<tr><td class=color4>Category</td><td class=color0>'; echo '<tr><td class=color4>Category</td><td class=color0>';
$family->make_option_list("catId", $ob->catId, "appCategory", "catId", "catName"); $family->make_option_list("catId", $ob->catId, "appCategory", "catId", "catName");
echo '</td></tr>',"\n"; echo '</td></tr>',"\n";
echo '<tr><td colspan=2 align=center class=color3><input type="submit" name=submit value="Update Database"></td></tr>',"\n"; echo '<tr><td colspan=2 align=center class=color3><input type="submit" name=submit value="Update Database"></td></tr>',"\n";
echo html_table_end(); echo html_table_end();
@@ -289,5 +311,4 @@ else
} }
apidb_footer(); apidb_footer();
?> ?>

View File

@@ -89,27 +89,27 @@ if(isset($_REQUEST['submit1']))
$sEmail = get_notify_email_address_list($_REQUEST['appId'], $_REQUEST['versionId']); $sEmail = get_notify_email_address_list($_REQUEST['appId'], $_REQUEST['versionId']);
if($sEmail) if($sEmail)
{ {
$sFullAppName = "Application: ".lookupAppName($_REQUEST['appId'])." Version: ".lookupVersionName($_REQUEST['appId'], $_REQUEST['versionId']); $sSubject = lookupAppName($_REQUEST['appId'])." ".lookupVersionName($_REQUEST['versionId'])." has been modified by".$_SESSION['current']->sRealname;
$sMsg .= APPDB_ROOT."appview.php?appId=".$_REQUEST['appId']."&versionId=".$_REQUEST['versionId']."\r\n"; $sMsg .= APPDB_ROOT."appview.php?appId=".$_REQUEST['appId']."&versionId=".$_REQUEST['versionId']."\n";
$sMsg .= "\r\n"; $sMsg .= "\n";
$sMsg .= $_SESSION['current']->realname." changed ".$sFullAppName."\n"; $sMsg .= "The following changes have been made:";
$sMsg .= "\r\n"; $sMsg .= "\n";
$sMsg .= $WhatChanged."\r\n"; $sMsg .= $WhatChanged."\n";
$sMsg .= "\r\n"; $sMsg .= "\n";
mail_appdb($sEmail, $sFullAppName ,$sMsg); mail_appdb($sEmail, $sSubject ,$sMsg);
} }
addmsg("The Version was successfully updated in the database", "green"); addmsg("The version was successfully updated in the database", "green");
redirect(apidb_fullurl("appview.php?appId=".$_REQUEST['appId']."&versionId=".$_REQUEST['versionId'])); redirect(apidb_fullurl("appview.php?versionId=".$_REQUEST['versionId']));
} else } else
{ {
//error //error
redirect(apidb_fullurl("admin/editAppVersion.php?appId=".$_REQUEST['appId']."&versionId=".$_REQUEST['versionId'])); redirect(apidb_fullurl("admin/editAppVersion.php?versionId=".$_REQUEST['versionId']));
} }
} else } else
{ {
addmsg("Nothing changed", "red"); addmsg("Nothing changed", "red");
redirect(apidb_fullurl("admin/editAppVersion.php?appId=".$_REQUEST['appId']."&versionId=".$_REQUEST['versionId'])); redirect(apidb_fullurl("admin/editAppVersion.php?versionId=".$_REQUEST['versionId']));
} }
} }
else if($_REQUEST['submit1'] == "Update URL") else if($_REQUEST['submit1'] == "Update URL")
@@ -187,24 +187,28 @@ if(isset($_REQUEST['submit1']))
$sEmail = get_notify_email_address_list($_REQUEST['appId']); $sEmail = get_notify_email_address_list($_REQUEST['appId']);
if($sEmail) if($sEmail)
{ {
$sFullAppName = "Application: ".lookupAppName($_REQUEST['appId']); $sSubject = "Links for ".lookupAppName($_REQUEST['appId'])." ".lookupAppName($_REQUEST['versionId'])." have been updated by ".$_SESSION['current']->sRealname;
$sMsg = APPDB_ROOT."appview.php?appId=".$_REQUEST['appId']."\r\n"; $sMsg = APPDB_ROOT."appview.php?appId=".$_REQUEST['appId']."\n";
$sMsg .= "\r\n"; $sMsg .= "\n";
$sMsg .= $_SESSION['current']->realname." changed ".$sFullAppName." \r\n"; $sMsg .= "The following changes have been made:";
$sMsg .= "\r\n"; $sMsg .= "\n";
$sMsg .= $sWhatChanged."\r\n"; $sMsg .= $sWhatChanged."\n";
$sMsg .= "\r\n"; $sMsg .= "\n";
mail_appdb($sEmail, $sFullAppName ,$sMsg); mail_appdb($sEmail, $sSubject ,$sMsg);
} }
} }
exit; exit;
} else } else
{ {
?>
<link rel="stylesheet" href="./application.css" type="text/css">
<!-- load HTMLArea -->
<script type="text/javascript" src="../htmlarea/htmlarea_loader.js"></script>
<?php
$sQuery = "SELECT * $sQuery = "SELECT *
FROM appVersion FROM appVersion
WHERE appId = '".$_REQUEST['appId']."' WHERE versionId = '".$_REQUEST['versionId']."'";
AND versionId = '".$_REQUEST['versionId']."'";
$hResult = query_appdb($sQuery); $hResult = query_appdb($sQuery);
$oRow = mysql_fetch_object($hResult); $oRow = mysql_fetch_object($hResult);
@@ -218,7 +222,34 @@ if(isset($_REQUEST['submit1']))
echo '<tr><td class=color1>Name</td><td class=color0>'.lookupAppName($_REQUEST['appId']).'</td></tr>',"\n"; echo '<tr><td class=color1>Name</td><td class=color0>'.lookupAppName($_REQUEST['appId']).'</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="'.$oRow->versionName.'" /></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";
echo '<textarea cols="80" rows="30" name="description">'.$oRow->description.'</textarea></td></tr>',"\n"; if(trim(strip_tags($oRow->description))=="")
{
$oRow->description = "<p>This is a template; enter version-specific description here</p>";
$oRow->description .= "<p>
<span class=\"title\">Wine compatibility</span><br />
<span class=\"subtitle\">What works:</span><br />
- settings<br />
- help<br />
<br /><span class=\"subtitle\">What doesn't work:</span><br />
- erasing<br />
<br /><span class=\"subtitle\">What was not tested:</span><br />
- burning<br />
</p>";
$oRow->description .= "<p><span class=\"title\">Tested versions</span><br /><table width=\"90%\" border=\"1\">
<thead><tr>
<td>App. version</td><td>Wine version</td><td>Installs?</td><td>Runs?</td><td>Rating</td>
</tr></thead>
<tbody><tr>
<td class=\"gold\">3.23</td><td class=\"gold\">20050111</td><td class=\"gold\">yes</td><td class=\"gold\">yes</td><td class=\"gold\">Gold</td>
</tr><tr>
<td class=\"silver\">3.23</td><td class=\"silver\">20041201</td><td class=\"silver\">yes</td><td class=\"silver\">yes</td><td class=\"silver\">Silver</td>
</tr><tr>
<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>";
}
echo '<p style="width:700px">', "\n";
echo '<textarea cols="80" rows="30" id="editor" name="description">'.$oRow->description.'</textarea></td></tr>',"\n";
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", $oRow->maintainer_rating);
echo '</td></tr>',"\n"; echo '</td></tr>',"\n";
@@ -226,7 +257,7 @@ if(isset($_REQUEST['submit1']))
make_bugzilla_version_list("maintainer_release", $oRow->maintainer_release); make_bugzilla_version_list("maintainer_release", $oRow->maintainer_release);
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";
echo html_table_end(); echo html_table_end();
echo html_frame_end(); echo html_frame_end();
@@ -240,7 +271,7 @@ if(isset($_REQUEST['submit1']))
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 appId = ".$_REQUEST['appId']." AND versionId = ".$_REQUEST['versionId']." AND type = 'url'"); $result = query_appdb("SELECT * FROM appData WHERE versionId = ".$_REQUEST['versionId']." 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";
@@ -268,7 +299,6 @@ if(isset($_REQUEST['submit1']))
} }
echo "</td></tr>\n"; echo "</td></tr>\n";
echo "<input type=hidden name='rows' value='$i'>"; echo "<input type=hidden name='rows' value='$i'>";
echo '<tr><td class=color1>New</td><td class=color1><input size="45" type="text" name="url_desc"></td>',"\n"; echo '<tr><td class=color1>New</td><td class=color1><input size="45" type="text" name="url_desc"></td>',"\n";
echo '<td class=color1><input size=45% name="url" type="text"></td></tr>',"\n"; echo '<td class=color1><input size=45% name="url" type="text"></td></tr>',"\n";
@@ -277,7 +307,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?appId=$ob->appId&versionId=$ob->versionId"); echo html_back_link(1,BASE."appview.php?versionId=".$_REQUEST['versionId']);
apidb_footer(); apidb_footer();
} }
?> ?>

View File

@@ -133,7 +133,7 @@ p.indent { padding-left: 1em; padding-right: 1em;}
.committed { font-style: italic; color: gray; } .committed { font-style: italic; color: gray; }
/* App Support status */ /* App Support status */
.gold { background-color: #8B7E66; } .gold { background-color: #fff600; }
.silver { background-color: silver; } .silver { background-color: silver; }
@@ -224,3 +224,6 @@ TD.stub { color: #0000B1; font-style: italic; text-align: center }
/* Banner div */ /* Banner div */
#banner { border: 1px solid black; } #banner { border: 1px solid black; }
/* Editor textarea */
#editor { height: 25em; width:700px; }

29
application.css Normal file
View File

@@ -0,0 +1,29 @@
/***********************************************************************/
/* The following styles are used for application description and notes */
/***********************************************************************/
BODY {
background-color: #FFFFFF;
color: #000000;
font-family: "bitstream vera sans", "verdana", "arial", "helvetica", sans-serif;
margin: 0px 10px 0px 0px;
font-size: 12px;
}
thead { font-weight: bold }
.title { font-weight: bold; }
.subtitle { text-decoration: underline; font-style: italic; }
.code { font-family: fixed; font-size: 12px; }
table { border: 1px;
font-family: "bitstream vera sans", "verdana", "arial", "helvetica", sans-serif;
font-size: 12px; }
td.gold { background-color: #fff600; }
td.silver { background-color: silver; }
td.bronze { background-color: #fcba0a; }
td.garbage { background-color: #5c4f2a; }

View File

@@ -116,4 +116,20 @@ function lookupAppName($appId)
return $ob->appName; return $ob->appName;
} }
/**
* Remove html formatting from description and extract the first part of the description only.
* This is to be used for search results, application summary tables, etc.
*/
function trim_description($sDescription)
{
// 1) let's take the first line of the description:
$aDesc = explode("\n",trim($sDescription),2);
// 2) maybe it's an html description and lines are separated with <br> or </p><p>
$aDesc = explode("<br>",$aDesc[0],2);
$aDesc = explode("<br />",$aDesc[0],2);
$aDesc = explode("</p><p>",$aDesc[0],2);
$aDesc = explode("</p><p /><p>",$aDesc[0],2);
return trim(strip_tags($aDesc[0]));
}
?> ?>

View File

@@ -114,11 +114,10 @@ while($oRow = mysql_fetch_object($hResult))
$oApp = new Application($oRow->appId); $oApp = new Application($oRow->appId);
// image // image
$img = get_screenshot_img($oRow->appId); $img = get_screenshot_img($oRow->appId);
$aDesc = explode("\n",$oApp->data->description,2);
echo ' echo '
<tr class="white"> <tr class="white">
<td><a href="appview.php?appId='.$oRow->appId.'">'.$oApp->data->appName.'</a></td> <td><a href="appview.php?appId='.$oRow->appId.'">'.$oApp->data->appName.'</a></td>
<td>'.$aDesc[0].'</td> <td>'.trim_description($oApp->data->description).'</td>
<td>'.$img.'</td> <td>'.$img.'</td>
</tr>'; </tr>';
} }

View File

@@ -52,13 +52,10 @@ else
$query = query_appdb("SELECT count(*) as versions FROM appVersion WHERE appId = $ob->appId AND versionName != 'NONAME'"); $query = query_appdb("SELECT count(*) as versions FROM appVersion WHERE appId = $ob->appId AND versionName != 'NONAME'");
$y = mysql_fetch_object($query); $y = mysql_fetch_object($query);
//format desc
$desc = substr(stripslashes($ob->description),0,75);
//display row //display row
echo "<tr class=$bgcolor>\n"; echo "<tr class=$bgcolor>\n";
echo " <td>".html_ahref($ob->appName,"appview.php?appId=$ob->appId")."</td>\n"; echo " <td>".html_ahref($ob->appName,"appview.php?appId=$ob->appId")."</td>\n";
echo " <td>$desc &nbsp;</td>\n"; echo " <td>".trim_description($ob->description)."</td>\n";
echo " <td>$y->versions &nbsp;</td>\n"; echo " <td>$y->versions &nbsp;</td>\n";
echo "</tr>\n\n"; echo "</tr>\n\n";