[AppDb] Let maintainers add and edit Notes.
Tony Lambregts
tony_lambregts at telusplanet.net
Tue Nov 23 00:14:20 CST 2004
Change Log: - Let Maintainers add, edit and delete Notes.
- Display out front, special class notes ( WARNING & HOWTO )
Files Changed: appview.php admin/addAppNote.php admin/editAppNote.php
-------------- next part --------------
Index: appview.php
===================================================================
RCS file: /home/wine/appdb/appview.php,v
retrieving revision 1.8
diff -u -r1.8 appview.php
--- appview.php 17 Nov 2004 23:02:07 -0000 1.8
+++ appview.php 23 Nov 2004 07:06:44 -0000
@@ -163,7 +163,7 @@
while($ob = mysql_fetch_object($result))
{
//skip if NONAME
- if ($ob->noteTitle == "NONAME") { continue; }
+ if ($ob->noteTitle == "NONAME" || $ob->noteTitle == "WARNING" || $ob->noteTitle == "HOWTO") { continue; }
//set link for version
if ($versionId != 0)
@@ -172,7 +172,10 @@
}
//display row
- echo " <a href='noteview.php?noteId=".$ob->noteId."&appId=$appId".$versionLink."'> $c. ".substr(stripslashes($ob->noteTitle),0,30)."</a><br>\n";
+ if (havepriv("admin") || isMaintainer($appId,$versionId) )
+ echo " <a href='admin/editAppNote.php?noteId=".$ob->noteId."&appId=$appId".$versionLink."'> $c. ".substr(stripslashes($ob->noteTitle),0,30)."</a><br>\n";
+ else
+ echo " <a href='noteview.php?noteId=".$ob->noteId."&appId=$appId".$versionLink."'> $c. ".substr(stripslashes($ob->noteTitle),0,30)."</a><br>\n";
$c++;
}
@@ -445,18 +448,36 @@
echo "</form>";
} else
{
+ echo '<form method=post name=message action="account.php?cmd=login">';
echo '<input type=submit value="Log in to become an app maintainer" class=button>';
+ echo '</form>';
}
echo "</center></td></tr>";
+
if (loggedin() && (havepriv("admin") || isMaintainer($appId, $versionId)))
{
echo "<tr><td colspan = 2><center>";
- echo "<a href=admin/editAppVersion.php?appId=".$appId."&versionId=".$versionId.">Edit version</a>";
+ echo '<form method=post name=message action=admin/editAppVersion.php?appId='.$appId.'&versionId='.$versionId.'>';
+ echo '<input type=submit value="Edit Version Info" class=button>';
+ echo '</form>';
+ echo '<form method=post name=message action=admin/addAppNote.php?appId='.$appId.'&versionId='.$versionId.'>';
+ echo '<input type=submit value="Add Note" class=button>';
+ echo '</form>';
+ echo '</form>';
+ echo '<form method=post name=message action=admin/addAppNote.php?appId='.$appId.'&versionId='.$versionId.'>';
+ echo '<input type=hidden name="noteTitle" value="HOWTO">';
+ echo '<input type=submit value="Add How To" class=button>';
+ echo '</form>';
+ echo '</form>';
+ echo '<form method=post name=message action=admin/addAppNote.php?appId='.$appId.'&versionId='.$versionId.'>';
+ echo '<input type=hidden name="noteTitle" value="WARNING">';
+ echo '<input type=submit value="Add Warning" class=button>';
+ echo '</form>';
echo "</center></td></tr>";
}
- echo "</table><td class=color2 valign=top width='100%'>\n";
+ echo "</table><td class=color2 valign=top width='100%'>\n";
//Desc Image
echo "<table width='100%' border=0><tr><td width='100%' valign=top> <b>Description</b><br>\n";
@@ -465,9 +486,60 @@
/* close the table */
echo "</table>\n";
-
+
echo html_frame_end();
+ //Show Warnings
+ $result = mysql_query("SELECT * FROM appNotes WHERE appId = $appId and versionId = $versionId and noteTitle = 'WARNING'");
+ if($result && mysql_num_rows($result))
+ {
+ while($ob = mysql_fetch_object($result))
+ {
+ echo html_frame_start("","98%",'',0);
+
+ echo "<table width='100%' border=0 cellspacing=0>","\n";
+ echo "<tr width='100%' bgcolor=red align=center valign=top><td><b>Warning</b><br></td></tr>\n";
+ echo "<tr><td>\n";
+ echo add_br(stripslashes($ob->noteDesc));
+ echo "</td></tr>\n";
+
+ if (loggedin() && (havepriv("admin") || isMaintainer($appId, $versionId)))
+ {
+ echo "<tr width='100%' class=color1 align=center valign=top><td>";
+ echo '<form method=post name=message action=admin/editAppNote.php?noteId='.$ob->noteId.'&appId='.$appId.'&versionId='.$versionId.'>';
+ echo '<input type=submit value="Edit Warning Info" class=button>';
+ echo '</form></td></tr>';
+ }
+ echo "</table>\n";
+ echo html_frame_end();
+ }
+ }
+
+ //Show How tos
+ $result = mysql_query("SELECT * FROM appNotes WHERE appId = $appId and versionId = $versionId and noteTitle = 'HOWTO'");
+ if($result && mysql_num_rows($result))
+ {
+ while($ob = mysql_fetch_object($result))
+ {
+ echo html_frame_start("","98%",'',0);
+
+ echo "<table width='100%' border=0 cellspacing=0>","\n";
+ echo "<tr width='100%' bgcolor=green align=center valign=top><td><b>How To</b><br></td></tr>\n";
+ echo "<tr><td>\n";
+ echo add_br(stripslashes($ob->noteDesc));
+ echo "</td></tr>\n";
+
+ if (loggedin() && (havepriv("admin") || isMaintainer($appId, $versionId)))
+ {
+ echo "<tr width='100%' class=color1 align=center valign=top><td>";
+ echo '<form method=post name=message action=admin/editAppNote.php?noteId='.$ob->noteId.'&appId='.$appId.'&versionId='.$versionId.'>';
+ echo '<input type=submit value="Edit How to Info" class=button>';
+ echo '</form></td></tr>';
+ }
+ echo "</table>\n";
+ echo html_frame_end();
+ }
+ }
//TODO: code to view/add user experience record
// if(!$versionId)
// {
Index: admin/addAppNote.php
===================================================================
RCS file: /home/wine/appdb/admin/addAppNote.php,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 addAppNote.php
--- admin/addAppNote.php 15 Mar 2004 16:22:01 -0000 1.1.1.1
+++ admin/addAppNote.php 23 Nov 2004 07:06:44 -0000
@@ -7,45 +7,104 @@
include("path.php");
include(BASE."include/"."incl.php");
-include(BASE."include/"."tableve.php");
-include(BASE."include/"."qclass.php");
+require(BASE."include/"."application.php");
global $apidb_root;
//check for admin privs
-if(!loggedin() || (!havepriv("admin") && !$current->ownsApp($appId)) )
+if(!loggedin() || (!havepriv("admin") && !isMaintainer($appId,$versionId)) )
{
errorpage("Insufficient Privileges!");
exit;
}
-apidb_header("Add Application Note");
-
-$t = new TableVE("create");
+//set link for version
+if ($versionId != 0)
+{
+ $versionLink = "&versionId=$versionId";
+}
-if($HTTP_POST_VARS)
+if($sub == "Submit")
{
- $t->update($HTTP_POST_VARS);
+
+ $query = "INSERT into appNotes VALUES (null, '".
+ addslashes($noteTitle)."', '".
+ addslashes($noteDesc)."', ".
+ "$appId , $versionId);";
+ if (mysql_query($query))
+ {
+ //successful
+ $email = getNotifyEmailAddressList($appId, $versionId);
+ if($email)
+ {
+ $fullAppName = "Application: ".lookupAppName($appId)." Version: ".lookupVersionName($appId, $versionId);
+ $ms = APPDB_ROOT."appview.php?appId=$appId&versionId=$versionId"."\n";
+ $ms .= "\n";
+ $ms .= ($current->username ? $current->username : "Anonymous")." added note to ".$fullAppName."\n";
+ $ms .= "\n";
+ $ms .= "title: ".$noteTitle."\n";
+ $ms .= "\n";
+ $ms .= $noteDesc."\n";
+ $ms .= "\n";
+ $ms .= STANDARD_NOTIFY_FOOTER;
+
+ mail(stripslashes($email), "[AppDB] ".$fullAppName ,$ms);
+
+ } else
+ {
+ $email = "no one";
+ }
+ addmsg("mesage sent to: ".$email, green);
+
+ $statusMessage = "<p>Note added into the database</p>\n";
+ addmsg($statusMessage,Green);
+ }
+ else
+ {
+ //error
+ addmsg($query,red);
+ $statusMessage = "<p><b>Database Error!<br>".mysql_error()."</b></p>\n";
+ addmsg($statusMessage,red);
+ }
+ redirect(apidb_fullurl("appview.php?appId=".$appId.$versionLink));
+ exit;
}
else
{
- $table = "appNotes";
+ apidb_header("Add Application Note");
- if (!$versionId) { $versionId = 0; }
-
- //delete old NONAMES
- mysql_query("DELETE FROM $table WHERE noteTitle = 'NONAME'");
-
- //show edit form
- $query = "INSERT INTO $table VALUES(0, 'NONAME', '', $appId, $versionId)";
-
- if(debugging()) { echo "<p align=center><b>query:</b> $query </p>"; }
-
- $t->create($query, $table, "noteId");
+ echo "<form method=post action='addAppNote.php'>\n";
+ echo html_frame_start("Add Application Note $appId", "90%","",0);
+ echo html_table_begin("width='100%' border=0 align=left cellpadding=6 cellspacing=0 class='box-body'");
+
+ echo '<input type=hidden name="appId" value='.$appId.'>';
+ echo '<input type=hidden name="versionId" value='.$versionId.'>';
+ echo '<tr><td colspan=2 class=color4>';
+ echo '<center><b>You can use html to make your Warning, Howto or Note look better.</b></center>';
+ echo '</td></tr>',"\n";
+
+ echo add_br($noteDesc);
+
+ if ($noteTitle == "HOWTO" || $noteTitle == "WARNING")
+ {
+ echo '<input type=hidden name="noteTitle" value='.$noteTitle.'>';
+ echo '<tr><td class=color1>Type</td><td class=color0>'.$noteTitle.'</td></tr>',"\n";
+ }
+ else
+ {
+ echo '<tr><td class=color1>Title</td><td class=color0><input size=80% type="text" name="noteTitle" type="text" value="'.$noteTitle.'"></td></tr>',"\n";
+ }
+ echo '<tr><td class=color4>Description</td><td class=color0>', "\n";
+ echo '<textarea cols=$50 rows=10 name="noteDesc">'.stripslashes($noteDesc).'</textarea></td></tr>',"\n";
+
+ echo '<tr><td colspan=2 align=center class=color3>',"\n";
+ echo '<input type="submit" name=preview value="Preview"> ',"\n";
+ echo '<input type="submit" name=sub value="Submit"></td></tr>',"\n";
+ echo html_table_end();
+ echo html_frame_end();
- echo html_back_link(1,$apidb_root."appview.php?appId=$appId&versionId=$versionId");
+ echo html_back_link(1,$apidb_root."appview.php?appId=$appId".$versionLink);
+ apidb_footer();
}
-
-apidb_footer();
?>
Index: admin/editAppNote.php
===================================================================
RCS file: /home/wine/appdb/admin/editAppNote.php,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 editAppNote.php
--- admin/editAppNote.php 15 Mar 2004 16:22:01 -0000 1.1.1.1
+++ admin/editAppNote.php 23 Nov 2004 07:06:44 -0000
@@ -6,38 +6,166 @@
include("path.php");
include(BASE."include/"."incl.php");
-include(BASE."include/"."tableve.php");
-include(BASE."include/"."qclass.php");
+require(BASE."include/"."application.php");
global $apidb_root;
+
//check for admin privs
-if(!loggedin() || (!havepriv("admin") && !$current->ownsApp($appId)) )
+if(!loggedin() || (!havepriv("admin") && !isMaintainer($appId,$versionId)) )
{
errorpage("Insufficient Privileges!");
exit;
}
-apidb_header("Edit Application Note");
-
-$t = new TableVE("edit");
+//set link for version
+if ($versionId != 0)
+{
+ $versionLink = "&versionId=$versionId";
+}
-if($HTTP_POST_VARS)
+if($sub)
{
- // commit changes of form to database
- $t->update($HTTP_POST_VARS);
+ $query = "SELECT * from appNotes where noteId = $noteId;";
+ $result = mysql_query($query);
+ if(!$result)
+ {
+ $ob = mysql_fetch_object($result);
+
+ $oldNoteTitle = $ob->noteTitle;
+ $oldNoteDesc = $ob->noteDesc;
+ }
+ if ($sub == 'Delete')
+ {
+ //delete Note
+ $query = "DELETE from appNotes where noteId = $noteId;";
+ $result = mysql_query($query);
+ if(!$result)
+ {
+ //error
+ addmsg("Internal Error: unable to delete selected note!", "red");
+ }
+ else
+ {
+ $email = getNotifyEmailAddressList($appId, $versionId);
+ if($email)
+ {
+ $fullAppName = "Application: ".lookupAppName($appId)." Version: ".lookupVersionName($appId, $versionId);
+ $ms = APPDB_ROOT."appview.php?appId=$appId&versionId=$versionId"."\n";
+ $ms .= "\n";
+ $ms .= ($current->username ? $current->username : "Anonymous")." deleted note from ".$fullAppName."\n";
+ $ms .= "\n";
+ $ms .= "title: ".$oldNoteTitle."\n";
+ $ms .= "\n";
+ $ms .= $oldNoteDesc."\n";
+ $ms .= "\n";
+ $ms .= STANDARD_NOTIFY_FOOTER;
+
+ mail(stripslashes($email), "[AppDB] ".$fullAppName ,$ms);
+
+ } else
+ {
+ $email = "no one";
+ }
+ addmsg("mesage sent to: ".$email, green);
+ //success
+ addmsg("Note Deleted.", "green");
+ }
+ }
+ if ($sub == 'Update')
+ {
+ //Update Note
+ $NewNoteTitle = addslashes($noteTitle);
+ $NewNoteDesc = addslashes($noteDesc);
+ if (!mysql_query("UPDATE appNotes SET noteTitle = '".$NewNoteTitle."', ".
+ "noteDesc = '".$NewNoteDesc."'".
+ " WHERE noteId = $noteId"))
+ {
+ $statusMessage = "<p><b>Database Error!<br>".mysql_error()."</b></p>\n";
+ addmsg($statusMessage, "red");
+ }
+ else
+ {
+ $email = getNotifyEmailAddressList($appId, $versionId);
+ if($email)
+ {
+ $fullAppName = "Application: ".lookupAppName($appId)." Version: ".lookupVersionName($appId, $versionId);
+ $ms = APPDB_ROOT."appview.php?appId=$appId&versionId=$versionId"."\n";
+ $ms .= "\n";
+ $ms .= ($current->username ? $current->username : "Anonymous")." changed note for ".$fullAppName."\n";
+ $ms .= "\n";
+ $ms .= "From --------------------------\n";
+ $ms .= "title: ".$oldNoteTitle."\n";
+ $ms .= "\n";
+ $ms .= $oldNoteDesc."\n";
+ $ms .= "To --------------------------\n";
+ $ms .= "title: ".$noteTitle."\n";
+ $ms .= "\n";
+ $ms .= $noteDesc."\n";
+ $ms .= "\n";
+ $ms .= STANDARD_NOTIFY_FOOTER;
+
+ mail(stripslashes($email), "[AppDB] ".$fullAppName ,$ms);
+
+ } else
+ {
+ $email = "no one";
+ }
+ addmsg("mesage sent to: ".$email, green);
+
+ addmsg("Note Updated", "green");
+ }
+ }
+ redirect(apidb_fullurl("appview.php?appId=".$appId.$versionLink));
+
}
else
{
+ if (!$preview)
+ {
+ $table = "appNotes";
+ $query = "SELECT * FROM $table WHERE noteId = $noteId";
+ $result = mysql_query($query);
+ $ob = mysql_fetch_object($result);
+ $noteTitle = $ob->noteTitle;
+ $noteDesc = $ob->noteDesc;
+ $appId = $ob->appId;
+ $versionId = $ob->versionId;
+ }
// show form
- $table = "appNotes";
- $query = "SELECT * FROM $table WHERE noteId = $noteId";
-
- if(debugging()) { echo "<p align=center><b>query:</b> $query </p>"; }
-
- $t->edit($query);
+ apidb_header("Edit Application Note");
- echo html_back_link(1,$apidb_root."noteview.php?noteId=$noteId");
+ echo "<form method=post action='editAppNote.php'>\n";
+ echo html_frame_start("Edit Application Note $ob->noteId", "90%","",0);
+ echo html_table_begin("width='100%' border=0 align=left cellpadding=6 cellspacing=0 class='box-body'");
+ echo '<tr><td colspan=2 class=color4>';
+ echo '<center><b>You can use html to make your Warning, Howto or Note look better.</b></center>';
+ echo '</td></tr>',"\n";
+
+ echo add_br($noteDesc);
+ echo '<input type=hidden name="noteId" value='.$noteId.'>';
+ echo '<input type=hidden name="appId" value='.$appId.'>';
+ echo '<input type=hidden name="versionId" value='.$versionId.'>';
+ if ($noteTitle == "HOWTO" || $noteTitle == "WARNING")
+ {
+ echo '<tr><td class=color1>Title (Do not change)</td>';
+ echo '<td class=color0><input size=80% type="text" name="noteTitle" type="text" value="'.$noteTitle.'"></td></tr>',"\n";
+ }
+ else
+ {
+ echo '<tr><td class=color1>Title</td><td class=color0><input size=80% type="text" name="noteTitle" type="text" value="'.$noteTitle.'"></td></tr>',"\n";
+ }
+ echo '<tr><td class=color4>Description</td><td class=color0>', "\n";
+ echo '<textarea cols=$50 rows=10 name="noteDesc">'.stripslashes($noteDesc).'</textarea></td></tr>',"\n";
+ echo '<tr><td colspan=2 align=center class=color3>',"\n";
+ echo '<input type="submit" name=preview value="Preview"> ',"\n";
+ echo '<input type="submit" name=sub value="Update"> ',"\n";
+ echo '<input type="submit" name=sub value="Delete"></td></tr>',"\n";
+
+ echo html_table_end();
+ echo html_frame_end();
+
+ echo html_back_link(1,$apidb_root."appview.php?appId=$appId".$versionLink);
}
More information about the wine-patches
mailing list