From 1f9dda0c385bafb0c1871d67fd7d6ed156e270a2 Mon Sep 17 00:00:00 2001 From: Tony Lambregts Date: Wed, 1 Dec 2004 22:33:48 +0000 Subject: [PATCH] - Let Maintainers add, edit and delete Notes. - Display out front, special class notes ( WARNING & HOWTO ) --- admin/addAppNote.php | 99 ++++++++++++++++++++------ admin/editAppNote.php | 158 ++++++++++++++++++++++++++++++++++++++---- appview.php | 82 ++++++++++++++++++++-- 3 files changed, 299 insertions(+), 40 deletions(-) diff --git a/admin/addAppNote.php b/admin/addAppNote.php index d6103a5..69d9545 100644 --- a/admin/addAppNote.php +++ b/admin/addAppNote.php @@ -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"); - -if($HTTP_POST_VARS) +//set link for version +if ($versionId != 0) { - $t->update($HTTP_POST_VARS); + $versionLink = "&versionId=$versionId"; +} + +if($sub == "Submit") +{ + + $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 = "

Note added into the database

\n"; + addmsg($statusMessage,Green); + } + else + { + //error + addmsg($query,red); + $statusMessage = "

Database Error!
".mysql_error()."

\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; } + echo "
\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'"); - //delete old NONAMES - mysql_query("DELETE FROM $table WHERE noteTitle = 'NONAME'"); + echo ''; + echo ''; + echo ''; + echo '
You can use html to make your Warning, Howto or Note look better.
'; + echo '',"\n"; - //show edit form - $query = "INSERT INTO $table VALUES(0, 'NONAME', '', $appId, $versionId)"; + echo add_br($noteDesc); - if(debugging()) { echo "

query: $query

"; } + if ($noteTitle == "HOWTO" || $noteTitle == "WARNING") + { + echo ''; + echo 'Type'.$noteTitle.'',"\n"; + } + else + { + echo 'Title',"\n"; + } + echo 'Description', "\n"; + echo '',"\n"; - $t->create($query, $table, "noteId"); + echo '',"\n"; + echo ' ',"\n"; + echo '',"\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(); - ?> diff --git a/admin/editAppNote.php b/admin/editAppNote.php index c21765f..48b509c 100644 --- a/admin/editAppNote.php +++ b/admin/editAppNote.php @@ -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"); - -if($HTTP_POST_VARS) +//set link for version +if ($versionId != 0) { - // commit changes of form to database - $t->update($HTTP_POST_VARS); + $versionLink = "&versionId=$versionId"; +} + +if($sub) +{ + $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 = "

Database Error!
".mysql_error()."

\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"; + apidb_header("Edit Application Note"); - if(debugging()) { echo "

query: $query

"; } + echo "\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 ''; + echo '
You can use html to make your Warning, Howto or Note look better.
'; + echo '',"\n"; - $t->edit($query); + echo add_br($noteDesc); + echo ''; + echo ''; + echo ''; + if ($noteTitle == "HOWTO" || $noteTitle == "WARNING") + { + echo 'Title (Do not change)'; + echo '',"\n"; + } + else + { + echo 'Title',"\n"; + } + echo 'Description', "\n"; + echo '',"\n"; + echo '',"\n"; + echo ' ',"\n"; + echo ' ',"\n"; + echo '',"\n"; - echo html_back_link(1,$apidb_root."noteview.php?noteId=$noteId"); + echo html_table_end(); + echo html_frame_end(); + + echo html_back_link(1,$apidb_root."appview.php?appId=$appId".$versionLink); } diff --git a/appview.php b/appview.php index 51f186a..bbc0171 100644 --- a/appview.php +++ b/appview.php @@ -163,7 +163,7 @@ function display_notes($appId, $versionId = 0) 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 @@ function display_notes($appId, $versionId = 0) } //display row - echo " $c. ".substr(stripslashes($ob->noteTitle),0,30)."
\n"; + if (havepriv("admin") || isMaintainer($appId,$versionId) ) + echo " $c. ".substr(stripslashes($ob->noteTitle),0,30)."
\n"; + else + echo " $c. ".substr(stripslashes($ob->noteTitle),0,30)."
\n"; $c++; } @@ -443,18 +446,36 @@ else if($appId && $versionId) echo "
"; } else { + echo '
'; echo ''; + echo '
'; } echo ""; + if (loggedin() && (havepriv("admin") || isMaintainer($appId, $versionId))) { echo "
"; - echo "Edit version"; + echo '
'; + echo ''; + echo '
'; + echo '
'; + echo ''; + echo '
'; + echo ''; + echo '
'; + echo ''; + echo ''; + echo '
'; + echo ''; + echo '
'; + echo ''; + echo ''; + echo '
'; echo "
"; } - echo "\n"; + echo "\n"; //Desc Image echo "
Description
\n"; @@ -463,9 +484,60 @@ else if($appId && $versionId) /* close the table */ echo "
\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 "","\n"; + echo "\n"; + echo "\n"; + + if (loggedin() && (havepriv("admin") || isMaintainer($appId, $versionId))) + { + echo "'; + } + echo "
Warning
\n"; + echo add_br(stripslashes($ob->noteDesc)); + echo "
"; + echo '
noteId.'&appId='.$appId.'&versionId='.$versionId.'>'; + echo ''; + echo '
\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 "","\n"; + echo "\n"; + echo "\n"; + + if (loggedin() && (havepriv("admin") || isMaintainer($appId, $versionId))) + { + echo "'; + } + echo "
How To
\n"; + echo add_br(stripslashes($ob->noteDesc)); + echo "
"; + echo '
noteId.'&appId='.$appId.'&versionId='.$versionId.'>'; + echo ''; + echo '
\n"; + echo html_frame_end(); + } + } //TODO: code to view/add user experience record // if(!$versionId) // {