[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">&nbsp',"\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">&nbsp',"\n";
+    echo '<input type="submit" name=sub value="Update">&nbsp',"\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