From 892349536cf2ae342e87db4116eb76cc94402521 Mon Sep 17 00:00:00 2001 From: Jonathan Ernst Date: Wed, 2 Feb 2005 02:43:08 +0000 Subject: [PATCH] - new note class - improved performances (much less duplicated mysql queries) - less code and better error handling - fix various bugs --- admin/addAppNote.php | 78 +++++++++++++---------------------- admin/editAppNote.php | 90 ++++++++++------------------------------- tables/appdb_tables.sql | 1 - 3 files changed, 49 insertions(+), 120 deletions(-) diff --git a/admin/addAppNote.php b/admin/addAppNote.php index 28051a3..2d3dbf0 100644 --- a/admin/addAppNote.php +++ b/admin/addAppNote.php @@ -7,9 +7,16 @@ include("path.php"); require(BASE."include/incl.php"); require(BASE."include/application.php"); require(BASE."include/mail.php"); +require(BASE."include/note.php"); + +//FIXME: get rid of appId references everywhere, as version is enough. +$sQuery = "SELECT appId FROM appVersion WHERE versionId = '".$_REQUEST['versionId']."'"; +$hResult = query_appdb($sQuery); +$oRow = mysql_fetch_object($hResult); +$appId = $oRow->appId; //check for admin privs -if(!$_SESSION['current']->isLoggedIn() || (!$_SESSION['current']->hasPriv("admin") && !$_SESSION['current']->isMaintainer($_REQUEST['appId'],$_REQUEST['versionId'])) ) +if(!$_SESSION['current']->isLoggedIn() || (!$_SESSION['current']->hasPriv("admin") && !$_SESSION['current']->isMaintainer($appId,$_REQUEST['versionId'])) ) { errorpage("Insufficient Privileges!"); exit; @@ -18,63 +25,33 @@ if(!$_SESSION['current']->isLoggedIn() || (!$_SESSION['current']->hasPriv("admin //set link for version if(is_numeric($_REQUEST['versionId']) and !empty($_REQUEST['versionId'])) { - $versionLink = "&versionId={$_REQUEST['versionId']}"; + $versionLink = "versionId={$_REQUEST['versionId']}"; } else exit; -if(!is_numeric($_REQUEST['appId'])) -{ - errorpage('Wrong ID'); - exit; -} if($_REQUEST['sub'] == "Submit") { - - $aInsert = compile_insert_string(array( 'noteTitle' =>$_REQUEST['noteTitle'], - 'NoteDesc' => $_REQUEST['noteDesc'], - 'appId' => $_REQUEST['appId'], - 'versionId' => $_REQUEST['versionId'] )); - - if (query_appdb("INSERT INTO `appNotes` ({$aInsert['FIELDS']}) VALUES ({$aInsert['VALUES']})")) - { - // successful - $sEmail = get_notify_email_address_list($_REQUEST['appId'], $_REQUEST['versionId']); - if($sEmail) - { - $sFullAppName = "Application: ".lookupAppName($_REQUEST['appId']); - $sFullAppName .= " Version: ".lookupVersionName($_REQUEST['appId'], $_REQUEST['versionId']); - $sMsg = APPDB_ROOT."appview.php?appId=".$_REQUEST['appId']."&versionId=".$_REQUEST['versionId']."\r\n"; - $sMsg .= "\r\n"; - $sMsg .= $_SESSION['current']->sRealname." added note to ".$sFullAppName."\r\n"; - $sMsg .= "\r\n"; - $sMsg .= "title: ".$_REQUEST['noteTitle']."\r\n"; - $sMsg .= "\r\n"; - $sMsg .= $_REQUEST['noteDesc']."\r\n"; - - mail_appdb($sEmail, $sFullAppName ,$sMsg); - } - $statusMessage = "

Note added into the database

\n"; - addmsg($statusMessage,Green); - } - redirect(apidb_fullurl("appview.php?appId=".$_REQUEST['appId'].$versionLink)); + $oNote = new Note(); + $oNote->create($_REQUEST['noteTitle'], $_REQUEST['noteDesc'], $_REQUEST['versionId']); + redirect(apidb_fullurl("appview.php?".$versionLink)); exit; } else if($_REQUEST['sub'] == 'Preview' OR empty($_REQUEST['submit'])) { +?> + + + +\n"; - echo html_frame_start("Add Application Note {$_REQUEST['appId']}", "90%","",0); + echo html_frame_start("Add Application Note", "90%","",0); echo html_table_begin("width='100%' border=0 align=left cellpadding=6 cellspacing=0 class='box-body'"); - echo ""; - echo ""; - echo ''; - echo '
You can use html to make your Warning, Howto or Note look better.
'; - echo '',"\n"; - + echo ""; echo add_br($_REQUEST['noteDesc']); if ($_REQUEST['noteTitle'] == "HOWTO" || $_REQUEST['noteTitle'] == "WARNING") @@ -86,17 +63,18 @@ else if($_REQUEST['sub'] == 'Preview' OR empty($_REQUEST['submit'])) { echo "Title\n"; } - echo 'Description', "\n"; - echo '',"\n"; - - echo '',"\n"; - echo ' ',"\n"; - echo '',"\n"; + echo 'Description', "\n"; + if(trim(strip_tags($_REQUEST['noteDesc']))=="") $_REQUEST['noteDesc']="

Enter note here

"; + echo '

', "\n"; + echo '',"\n"; + echo '

'; + echo '',"\n"; + echo ' ',"\n"; + echo '',"\n"; echo html_table_end(); echo html_frame_end(); - echo html_back_link(1,BASE."appview.php?appId={$_REQUEST['appId']}$versionLink"); + echo html_back_link(1,BASE."appview.php?".$versionLink); apidb_footer(); } - ?> diff --git a/admin/editAppNote.php b/admin/editAppNote.php index 4fb85b7..5c8a33c 100644 --- a/admin/editAppNote.php +++ b/admin/editAppNote.php @@ -7,6 +7,7 @@ include("path.php"); require(BASE."include/incl.php"); require(BASE."include/application.php"); require(BASE."include/mail.php"); +require(BASE."include/note.php"); if(!is_numeric($_REQUEST['noteId'])) { @@ -15,12 +16,10 @@ if(!is_numeric($_REQUEST['noteId'])) } /* Get note data */ -$sQuery = "SELECT * from appNotes where noteId = {$_REQUEST['noteId']}"; -$hResult = query_appdb($sQuery); -$ob = mysql_fetch_object($hResult); +$oNote = new Note($_REQUEST['noteId']); /* Check for privs */ -if(!$_SESSION['current']->isLoggedIn() || (!$_SESSION['current']->hasPriv("admin") && !$_SESSION['current']->isMaintainer($ob->appId,$ob->versionId)) ) +if(!$_SESSION['current']->isLoggedIn() || (!$_SESSION['current']->hasPriv("admin") && !$_SESSION['current']->isMaintainer($oNote->iAppId,$oNote->iVersionId)) ) { errorpage("Insufficient Privileges!"); exit; @@ -28,86 +27,39 @@ if(!$_SESSION['current']->isLoggedIn() || (!$_SESSION['current']->hasPriv("admin if(isset($_REQUEST['sub'])) { - $sOldNoteTitle = $ob->noteTitle; - $sOldNoteDesc = $ob->noteDesc; - - $sFullAppName = "Application: ".lookupAppName($ob->appId)." Version: ".lookupVersionName($ob->appId, $ob->versionId); - - /* Start of e-mail */ - $sMsg = APPDB_ROOT."appview.php?appId={$ob->appId}&versionId={$ob->versionId}\r\n"; - $sMsg .= "\r\n"; - - $sEmail = get_notify_email_address_list($ob->appId, $ob->versionId); - if ($_REQUEST['sub'] == 'Delete') { - // delete Note - query_appdb("DELETE from `appNotes` where noteId = {$_REQUEST['noteId']}"); - - if($sEmail) - { - $sMsg .= $_SESSION['current']->sRealname." deleted note from ".$sFullAppName."\r\n"; - $sMsg .= "\r\n"; - $sMsg .= "title: ".$sOldNoteTitle."\r\n"; - $sMsg .= "\r\n"; - $sMsg .= $sOldNoteDesc."\r\n"; - $sMsg .= "\r\n"; - - mail_appdb($sEmail, $sFullAppName ,$sMsg); - } - // success - addmsg("Note Deleted.", "green"); + $oNote->delete(); } else if ($_REQUEST['sub'] == 'Update') { - $sUpdate = compile_update_string(array( 'noteTitle' => $_REQUEST['noteTitle'], - 'noteDesc' => $_REQUEST['noteDesc'])); - - query_appdb("UPDATE appNotes SET $sUpdate WHERE noteId = {$_REQUEST['noteId']}"); - - if($sEmail) - { - $sMsg .= $_SESSION['current']->sRealname." changed note for ".$sFullAppName."\r\n"; - $sMsg .= "From --------------------------\r\n"; - $sMsg .= "title: ".$sOldNoteTitle."\r\n"; - $sMsg .= "\r\n"; - $sMsg .= $sOldNoteDesc."\r\n"; - $sMsg .= "To --------------------------\r\n"; - $sMsg .= "title: ".$_REQUEST['noteTitle']."\r\n"; - $sMsg .= "\r\n"; - $sMsg .= $_REQUEST['noteDesc']."\r\n"; - $sMsg .= "\r\n"; - - mail_appdb($sEmail, $sFullAppName ,$sMsg); - - } - addmsg("Note Updated", "green"); + $oNote->update($_REQUEST['noteTitle'],$_REQUEST['noteDesc']); } - - redirect(apidb_fullurl("appview.php?appId={$ob->appId}&versionId={$ob->versionId}")); + redirect(apidb_fullurl("appview.php?versionId={$oNote->iVersionId}")); } else { if (!isset($_REQUEST['preview'])) { - $_REQUEST['noteTitle'] = $ob->noteTitle; - $_REQUEST['noteDesc'] = $ob->noteDesc; - $_REQUEST['appId'] = $ob->appId; - $_REQUEST['versionId'] = $ob->versionId; + $_REQUEST['noteTitle'] = $oNote->sTitle; + $_REQUEST['noteDesc'] = $oNote->sDescription; + $_REQUEST['appId'] = $oNote->iAppId; + $_REQUEST['versionId'] = $oNote->iVersionId; } +?> + + + +\n"; echo html_frame_start("Edit Application Note {$_REQUEST['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"; - echo add_br($_REQUEST['noteDesc']); - echo ''; + echo ''; if ($_REQUEST['noteTitle'] == "HOWTO" || $_REQUEST['noteTitle'] == "WARNING") { @@ -119,8 +71,10 @@ else echo 'Title',"\n"; } echo 'Description', "\n"; - echo '',"\n"; - echo '',"\n"; + echo '

', "\n"; + echo '',"\n"; + echo '

'; + echo '',"\n"; echo ' ',"\n"; echo ' ',"\n"; echo '',"\n"; @@ -128,10 +82,8 @@ else echo html_table_end(); echo html_frame_end(); - echo html_back_link(); - + echo html_back_link(1,BASE."appview.php?versionId=".$oNote->iVersionId); } apidb_footer(); - ?> diff --git a/tables/appdb_tables.sql b/tables/appdb_tables.sql index 843ee8b..c894e3f 100644 --- a/tables/appdb_tables.sql +++ b/tables/appdb_tables.sql @@ -208,7 +208,6 @@ create table appNotes ( noteId int not null auto_increment, noteTitle varchar(255), noteDesc text, - appId int not null, versionId int not null, key(noteId) );