ChangeSet ID: 31197 CVSROOT: /opt/cvs-commit Module name: appdb Changes by: wineowner@winehq.org 2007/06/13 20:27:59
Modified files: . : objectManager.php include : objectManager.php
Log message: Chris Morgan cmorgan@alum.wpi.edu Add some common responses to the entry processing page, selectable via radio buttons. This should make admin responses more consistent and make it quicker and easier to process submissions.
Patch: http://cvs.winehq.org/patch.py?id=31197
Old revision New revision Changes Path 1.13 1.14 +2 -2 appdb/objectManager.php 1.27 1.28 +59 -0 appdb/include/objectManager.php
Index: appdb/objectManager.php diff -u -p appdb/objectManager.php:1.13 appdb/objectManager.php:1.14 --- appdb/objectManager.php:1.13 14 Jun 2007 1:27:59 -0000 +++ appdb/objectManager.php 14 Jun 2007 1:27:59 -0000 @@ -54,8 +54,8 @@ if($aClean['bIsRejected'] == 'true')
$oOtherObject = new $oObject->sClass($oObject->iId);
-/* Certain actions must be performed before the header is set - processForm return TRUE on success, or a user-readable list of errors +/* Certain actions must be performed before the header is set. */ +/* processForm returns TRUE on success, or a user-readable list of errors on failure */ $sErrors = $oObject->processForm($aClean);
Index: appdb/include/objectManager.php diff -u -p appdb/include/objectManager.php:1.27 appdb/include/objectManager.php:1.28 --- appdb/include/objectManager.php:1.27 14 Jun 2007 1:27:59 -0000 +++ appdb/include/objectManager.php 14 Jun 2007 1:27:59 -0000 @@ -13,6 +13,10 @@ class ObjectManager var $oMultiPage; var $oTableRow;
+ // an array of common responses used when replying to + // queued entries + var $aCommonResponses; + function ObjectManager($sClass, $sTitle = "list", $iId = false) { $this->sClass = $sClass; @@ -20,6 +24,23 @@ class ObjectManager $this->iId = $iId; $this->oMultiPage = new MultiPage(FALSE); $this->oTableRow = new TableRow(null); + + // initialize the common responses array + $this->aCommonResponses = array(); + $this->aCommonResponses[] = "Thank you for your submission."; + $this->aCommonResponses[] = "Please move crash/debug output to a bug". + " in Wine's Bugzilla at http://bugs.winehq.org and resubmit."; + $this->aCommonResponses[] = "We appreciate your submission but it". + " needs to be more detailed before it will be most useful to other users of". + " the Application Datbase.". + " Please try to improve the entry and resubmit."; + $this->aCommonResponses[] = "We appreciate your submission but it". + " requires improvement to its grammar and/or spelling". + " before it will be most useful to other users of". + " the Application Database.". + " Please try to improve the entry and resubmit."; + $this->aCommonResponses[] = "Please do not copy large amount of text from". + " the program's website"; }
/* Check whether the associated class has the given method */ @@ -194,6 +215,29 @@ class ObjectManager echo '<td><textarea name="sReplyText" style="width: 100%" cols="80" '. 'rows="10">'.$sDefaultReply.'</textarea></td></tr>',"\n";
+ + ///////////////////////////////////////////////// + // output radio buttons for some common responses + echo '<tr valign=top><td class="color0"></td><td class="color0">'. + '<b>Common replies</b><br/> Email <a href="mailto:'.APPDB_OWNER_EMAIL.'">'. + APPDB_OWNER_EMAIL.'</a> if you want to suggest a new common reply.</td></tr>',"\n"; + + // NOTE: We use the label tag so the user can click anywhere in + // the text of the radio button to select the radio button. + // Otherwise the user has to click on the very small circle portion + // of the button to select it + foreach($this->aCommonResponses as $iIndex => $sReply) + { + echo '<tr valign=top><td class="color0"></td>',"\n"; + echo '<td class="color0"><label for="'.$iIndex.'"><input'. + ' type="radio" name="sOMCommonReply" id="'.$iIndex.'" value="'.$sReply.'"/>'. + $sReply.'</label></td>',"\n"; + echo '</tr>',"\n"; + } + // end output radio buttons for common responses + ///////////////////////////////////////////////// + + /* buttons for operations we can perform on this entry */ echo '<tr valign=top><td class=color3 align=center colspan=2>' ,"\n"; echo '<input name="sSubmit" type="submit" value="Submit" class="button" '. @@ -407,6 +451,12 @@ class ObjectManager /* Process form data generated by adding or updating an entry */ function processForm($aClean) { + // FIXME: hack so if we modify $aClean in here any objects that use the global + // $aClean will see the modified value. Should be replaced when we have + // general purpose objectManager email code in place since the sReplyText value + // is the value we modify and we'll be passing that into methods in the future + global $aClean; + if(!$aClean['sSubmit']) return;
@@ -425,6 +475,15 @@ class ObjectManager $aClean['sReplyText'] = ""; }
+ // handle the common response radio button value + // if sReplyText is empty, if sOMCommonReply was set because + // the user selected a radio button then use that text instead + if(($aClean['sReplyText'] == "") && isset($aClean['sOMCommonReply'])) + { + $aClean['sReplyText'] = $aClean['sOMCommonReply']; + } + + $oObject->getOutputEditorValues($aClean);
/* Check input, if necessary */