Alexander Nicolaysen Sørnes : Support previewing version when submitting application
Chris Morgan
cmorgan at winehq.org
Thu Oct 25 18:10:45 CDT 2007
Module: appdb
Branch: master
Commit: dba90a092432b392eb3c98d59481821ba40018bb
URL: http://source.winehq.org/git/appdb.git/?a=commit;h=dba90a092432b392eb3c98d59481821ba40018bb
Author: Alexander Nicolaysen Sørnes <alex at 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())
More information about the wine-cvs
mailing list