Module: appdb Branch: master Commit: d7fc82c72fbd3c0aae035a2e84de499b8c58cc37 URL: http://source.winehq.org/git/appdb.git/?a=commit;h=d7fc82c72fbd3c0aae035a2e8...
Author: Alexander Nicolaysen Sørnes alexander@alex.alexstyrt Date: Sun Sep 23 16:09:38 2007 +0200
objectManager: add preview support, use it for notes
---
include/note.php | 23 ++++++++++++++--------- include/objectManager.php | 45 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 58 insertions(+), 10 deletions(-)
diff --git a/include/note.php b/include/note.php index 3cf1157..7866f9e 100644 --- a/include/note.php +++ b/include/note.php @@ -136,6 +136,10 @@ class Note { return TRUE; }
+ function objectShowPreview() + { + return TRUE; + }
function SendNotificationMail($sAction="add",$sMsg=null) { @@ -183,7 +187,7 @@ class Note { /* Show note */ /* $bDisplayOnly means we should not display any editing controls, even if */ /* the user has the ability to edit this note */ - function display($bDisplayOnly = false) + function display($aVars = null) { switch($this->sTitle) { @@ -216,15 +220,12 @@ class Note { $shOutput .= $this->shDescription; $shOutput .= "</td></tr>\n";
- if(!$bDisplayOnly) + if((!$aVars || $aVars['bEditing'] != "true") && $this->canEdit()) { - if ($this->canEdit()) - { - $shOutput .= "<tr class="color1" align="center" valign="top"><td>"; - $shOutput .= "<form method="post" name="message" action="objectManager.php?sClass=note&sAction=edit&iId=".$this->iNoteId."&sReturnTo=".urlencode($oVersion->objectMakeUrl())."">"; - $shOutput .= '<input type="submit" value="Edit Note" class="button">'; - $shOutput .= '</form></td></tr>'; - } + $shOutput .= "<tr class="color1" align="center" valign="top"><td>"; + $shOutput .= "<form method="post" name="message" action="objectManager.php?sClass=note&sAction=edit&iId=".$this->iNoteId."&sReturnTo=".urlencode($oVersion->objectMakeUrl())."">"; + $shOutput .= '<input type="submit" value="Edit Note" class="button">'; + $shOutput .= '</form></td></tr>'; }
$shOutput .= "</table>\n"; @@ -237,6 +238,9 @@ class Note { { switch($sAction) { + case "preview": + return array("bEditing"); + case "add": return array("iVersionId","sNoteTitle");
@@ -261,6 +265,7 @@ class Note { echo html_frame_start("Edit Application Note {$aClean['noteId']}", "90%","",0); echo html_table_begin("width='100%' border=0 align=left cellpadding=6 cellspacing=0 class='box-body'");
+ echo '<input type="hidden" name="bEditing" value="true" />'; echo '<input type="hidden" name="iNoteId" value="'.$this->iNoteId.'" />'; echo '<input type="hidden" name="iVersionId" value="'.$this->iVersionId.'" />';
diff --git a/include/objectManager.php b/include/objectManager.php index 0cd500c..7d749ae 100644 --- a/include/objectManager.php +++ b/include/objectManager.php @@ -1,5 +1,7 @@ <?php
+define("PREVIEW_ENTRY", 2); + /* class for managing objects */ /* - handles processing of queued objects */ /* - handles the display and editing of unqueued objects */ @@ -236,6 +238,9 @@ class ObjectManager { global $aClean; $oObject->getOutputEditorValues($aClean); + + if($sErrors == PREVIEW_ENTRY) + $this->show_preview($oObject, $aClean); }
echo '<form name="sQform" action="'.$this->makeUrl("edit", $this->iId). @@ -312,6 +317,7 @@ class ObjectManager echo '<input name="sSubmit" type="submit" value="Submit" class="button">'. ' ',"\n"; echo '<input name="sSubmit" type="submit" value="Delete" class="button" />'."\n"; + $this->handle_preview_button(); echo "</td></tr>\n"; }
@@ -632,6 +638,20 @@ class ObjectManager echo "</table>\n"; }
+ function show_preview($oObject, $aClean) + { + echo html_frame_start("Preview", "75%"); + + $aVars = $this->get_custom_vars($aClean, "preview"); + + if($aVars) + $oObject->display($aVars); + else + $oObject->display(); + + echo html_frame_end(); + } + /* Display screen for submitting a new entry of given type */ function add_entry($aClean, $sErrors = "") { @@ -648,6 +668,9 @@ class ObjectManager { global $aClean; $oObject->getOutputEditorValues($aClean); + + if($sErrors == PREVIEW_ENTRY) + $this->show_preview($oObject, $aClean); }
/* Display help if it is exists */ @@ -673,13 +696,26 @@ class ObjectManager echo "<div align="center">"; echo "<input type="submit" class="button" value="Submit" ". "name="sSubmit" />\n"; + $this->handle_preview_button(); echo "</div></form>\n"; - echo html_back_link(1, $sBackLink);
echo "</div>\n"; }
+ function handle_preview_button() + { + $oObject = new $this->sClass($this->iId); + + if(!method_exists($oObject, "objectShowPreview")) + return; + + if(!$oObject->objectShowPreview()) + return; + + echo '<input type="submit" name="sSubmit" class="button" value="Preview" />'; + } + function handle_anonymous_submission() { $oObject = new $this->sClass(); @@ -822,6 +858,9 @@ class ObjectManager // have to correct switch($aClean['sSubmit']) { + case "Preview": + return PREVIEW_ENTRY; + case "Submit": // if we have errors, return them if($sErrors) @@ -1070,6 +1109,10 @@ class ObjectManager if($sErrors === TRUE) return TRUE;
+ + if($sErrors == PREVIEW_ENTRY) + return TRUE; + echo "<font color="red">\n"; echo "The following errors were found<br />\n"; echo "<ul>$sErrors</ul>\n";