Alexander Nicolaysen Sørnes : note: Allow moving from app to version, fix some mail texts
Alexander Nicolaysen Sørnes
asornes at winehq.org
Thu Jul 30 07:47:08 CDT 2009
Module: appdb
Branch: master
Commit: 6f1de3983796ec23dcc29e79b77aab26c2bdc5b3
URL: http://source.winehq.org/git/appdb.git/?a=commit;h=6f1de3983796ec23dcc29e79b77aab26c2bdc5b3
Author: Alexander Nicolaysen Sørnes <alexander at linux-xqqm.(none)>
Date: Thu Jul 30 00:51:52 2009 +0200
note: Allow moving from app to version, fix some mail texts
---
include/note.php | 68 +++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 57 insertions(+), 11 deletions(-)
diff --git a/include/note.php b/include/note.php
index 3be1b94..57f92a4 100644
--- a/include/note.php
+++ b/include/note.php
@@ -10,6 +10,7 @@ require_once(BASE."include/version.php");
define('APPNOTE_SHOW_FOR_ALL', -1);
define('APPNOTE_SHOW_FOR_VERSIONS', -2);
define('APPNOTE_SHOW_FOR_APP', -3);
+define('DISPLAYMODE_COUNT', 3);
/**
* Note class for handling notes
@@ -121,17 +122,28 @@ class Note {
$this->iVersionId, $this->iNoteId))
return false;
- if(!$this->iAppId)
+ if(!$this->iAppId && !$oNote->iAppId) // Changed version only
{
$sVersionBefore = Version::lookup_name($oNote->iVersionId);
$sVersionAfter = Version::lookup_name($this->iVersionId);
$sWhatChanged .= "Version was changed from ".$sVersionBefore." to ".$sVersionAfter.".\n\n";
- } else
+ } else if(!$this->iAppId) // Moved from app to version
+ {
+ $sVersionAfter = Version::fullName($this->iVersionId);
+ $oApp = new application($oNote->iAppId);
+ $sOldApp = $oApp->sName;
+ $sWhatChanged .= "Moved from application $sOldApp to version $sVersionAfter.\n\n";
+ } else if($oNote->hasRealVersionId()) // Moved from version to app
{
$oApp = new application($this->iAppId);
$sNewApp = $oApp->sName;
$sVersionBefore = version::fullName($oNote->iVersionId);
$sWhatChanged .= "Moved from version $sVersionBefore to application $sNewApp.\n\n";
+ } else // Change display mode for app note
+ {
+ $sOldMode = $oNote->getDisplayModeName();
+ $sNewMode = $this->getDisplayModeName();
+ $sWhatChanged .= "Display mode was changed from '$sOldMode' to '$sNewMode'.\n\n";
}
}
if (($this->iAppId || $this->iVersionId) && $this->iAppId!=$oNote->iAppId)
@@ -336,6 +348,34 @@ class Note {
return note::isRealVersionId($this->iVersionId);
}
+ public static function getDisplayModeIds()
+ {
+ return array(APPNOTE_SHOW_FOR_ALL, APPNOTE_SHOW_FOR_VERSIONS, APPNOTE_SHOW_FOR_APP);
+ }
+
+ public static function getDisplayModeNames()
+ {
+ return array('Show on both application and version pages', 'Show on all version pages only', 'Show on application page only');
+ }
+
+ public function getDisplayModeName($iModeId = null)
+ {
+ if(!$iModeId)
+ $iModeId = $this->iVersionId;
+
+ $aNames = note::getDisplayModeNames();
+ $iIndex = 0;
+
+ foreach(note::getDisplayModeIds() as $iId)
+ {
+ if($iId == $iModeId)
+ return $aNames[$iIndex];
+ $iIndex++;
+ }
+
+ return '';
+ }
+
function outputEditor($aValues = null)
{
if($aValues)
@@ -377,21 +417,27 @@ class Note {
echo '</p>';
echo '</td></tr>'."\n";
- if($this->iAppId);
- $oApp = new application($this->iAppId);
if($this->iAppId || $oApp->canEdit())
{
+ $oApp = new application($this->iAppId);
+ $aIds = $this->getDisplayModeIds();
+ $aOptions = $this->getDisplayModeNames();
+
+ echo '<tr><td class="color1">Display mode</td>'."\n";
+ echo '<td class="color0">'.html_radiobuttons($aIds, $aOptions, 'iVersionId', $this->iVersionId);
+
+ /* Allow the note to be moved to a single version */
$aIds = array();
$aOptions = array();
- if($this->isRealVersionId($this->iVersionId))
+ echo 'Show on one of the following version pages only:<br />';
+ foreach($oApp->getVersions(true) as $oAppVersion) // Only accepted versions
{
- $aIds[] = $this->iVersionId;
- $aOptions[] = 'Show for this version only';
+
+ $aIds[] = $oAppVersion->objectGetId();
+ $aOptions[] = $oAppVersion->objectMakeLink();
}
- $aIds = array_merge($aIds, array(APPNOTE_SHOW_FOR_ALL, APPNOTE_SHOW_FOR_VERSIONS, APPNOTE_SHOW_FOR_APP));
- $aOptions = array_merge($aOptions, array('Show on both application and version pages', 'Show on all version pages only', 'Show on application page only'));;
- echo '<tr><td class="color1">Display mode</td>'."\n";
- echo '<td class="color0">'.html_radiobuttons($aIds, $aOptions, 'iVersionId', $this->iVersionId);
+ echo html_radiobuttons($aIds, $aOptions, 'iVersionId', $this->iVersionId);
+
echo '</td></tr>';
} else if(!$this->iAppId)
{
More information about the wine-cvs
mailing list