Module: appdb Branch: master Commit: dba90a092432b392eb3c98d59481821ba40018bb URL: http://source.winehq.org/git/appdb.git/?a=commit;h=dba90a092432b392eb3c98d59...
Author: Alexander Nicolaysen Sørnes alex@thehandofagony.com Date: Thu Oct 25 11:57:18 2007 +0200
Support previewing version when submitting application
---
include/application_queue.php | 44 ++++++++++++++++++++++++++++++++++++++-- include/version.php | 17 +++++++++++---- 2 files changed, 53 insertions(+), 8 deletions(-)
diff --git a/include/application_queue.php b/include/application_queue.php index 883e126..93e1171 100644 --- a/include/application_queue.php +++ b/include/application_queue.php @@ -160,7 +160,7 @@ class application_queue return FALSE; }
- function outputEditor() + function outputEditor($aClean = array()) { /* We ask the user for the application name first so as to avoid duplicate submissons; a list of potential duplicates is displayed on the next page */ @@ -203,6 +203,23 @@ class application_queue $this->oVersionQueue->oVersion->iVersionId, $aClean);
$this->oVersionQueue->oTestDataQueue->outputEditor(); + + /* Allow the user to choose whether to preview the application view + or the version view. Application view is default */ + echo html_frame_start("Select What to Preview"); + $sPreviewVersion = $aClean['bPreviewVersion'] ? $aClean['bPreviewVersion'] : ""; + + $shPreviewApp = ''; + $shPreviewVersion = ''; + + if($sPreviewVersion == "true") + $shPreviewVersion = ' checked="checked"'; + else + $shPreviewApp = ' checked="checked"'; + + echo "<input type="radio" name="bPreviewVersion"$shPreviewApp value="false" /> Preview application<br />\n"; + echo "<input type="radio" name="bPreviewVersion"$shPreviewVersion value="true" /> Preview version\n"; + echo html_frame_end(); } }
@@ -297,13 +314,34 @@ class application_queue echo "</table>"; }
- function display() + function objectGetCustomVars($sAction) + { + switch($sAction) + { + case "preview": + return array("bPreviewVersion"); + + default: + return 0; + } + } + + function display($aClean = array()) { /* Cache the version object if it is not in the database */ if(!$this->oVersionQueue->objectGetId()) $this->oApp->aVersions = array($this->oVersionQueue->oVersion);
- $this->oApp->display(); + $sPreviewVersion = $aClean['bPreviewVersion'] ? $aClean['bPreviewVersion'] : ""; + + if($sPreviewVersion == "true") + { + $this->oVersionQueue->oVersion->oApp = $this->oApp; + $this->oVersionQueue->display(); + } else + { + $this->oApp->display(); + } }
function objectMakeUrl() diff --git a/include/version.php b/include/version.php index efa8b72..3b9bd2f 100644 --- a/include/version.php +++ b/include/version.php @@ -26,6 +26,7 @@ define("LICENSE_RETAIL", "Retail"); class version { var $iVersionId; var $iAppId; + var $oApp; /* Parento object */ var $sName; var $sDescription; var $sTestedRelease; @@ -759,6 +760,16 @@ class version { return TRUE; }
+ /* Not standard OM function yet, but will be in the future */ + public function objectGetParent() + { + /* No id so we can't query the DB, but perhaps an entry is cached? */ + if(!$this->iAppId) + return $this->oApp; + + return new application($this->iAppId); + } + public function display($aVars = array()) { /* is this user supposed to view this version? */ @@ -767,11 +778,7 @@ class version {
$iTestingId = $aVars['iTestingId'] ? $aVars['iTestingId'] : 0;
- $oApp = new Application($this->iAppId); - - // Oops! application not found or other error. do something - if(!$oApp->iAppId) - util_show_error_page_and_exit('Internal Database Access Error. No App found.'); + $oApp = $this->objectGetParent();
// show Vote Menu if($_SESSION['current']->isLoggedIn())