Alexander Nicolaysen Sørnes : note: Allow moving from version to app

Alexander Nicolaysen Sørnes asornes at winehq.org
Tue Jul 28 22:54:03 CDT 2009


Module: appdb
Branch: master
Commit: b4bae2f9fe749ee8288307ec0876d7e33048681d
URL:    http://source.winehq.org/git/appdb.git/?a=commit;h=b4bae2f9fe749ee8288307ec0876d7e33048681d

Author: Alexander Nicolaysen Sørnes <alexander at linux-xqqm.(none)>
Date:   Wed Jul 29 03:10:00 2009 +0200

note: Allow moving from version to app

---

 include/note.php |   79 +++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 60 insertions(+), 19 deletions(-)

diff --git a/include/note.php b/include/note.php
index bde0e77..fec4edf 100644
--- a/include/note.php
+++ b/include/note.php
@@ -115,14 +115,30 @@ class Note {
             $sWhatChanged .= "Description was changed from\n ".$oNote->shDescription."\n to \n".$this->shDescription.".\n\n";
         }
 
-        if ($this->iVersionId && $this->iVersionId!=$oNote->iVersionId)
+        if (($this->iVersionId || $this->iAppId) && $this->iVersionId!=$oNote->iVersionId)
         {
             if (!query_parameters("UPDATE appNotes SET versionId = '?' WHERE noteId = '?'",
                                   $this->iVersionId, $this->iNoteId))
                 return false;
+
             $sVersionBefore = Version::lookup_name($oNote->iVersionId);
-            $sVersionAfter = Version::lookup_name($this->iVersionId);
-            $sWhatChanged .= "Version was changed from ".$sVersionBefore." to ".$sVersionAfter.".\n\n";
+
+            if(!$this->iAppId)
+            {
+                $sVersionAfter = Version::lookup_name($this->iVersionId);
+                $sWhatChanged .= "Version was changed from ".$sVersionBefore." to ".$sVersionAfter.".\n\n";
+            } else
+            {
+                $oApp = new application($this->iAppId);
+                $sNewApp = $oApp->sName;
+                $sWhatChanged .= "Moved from version $shVersionBefore to application $sNewApp"; 
+            }
+        }
+        if (($this->iAppId || $this->iVersionId) && $this->iAppId!=$oNote->iAppId)
+        {
+            if(!query_parameters("UPDATE appNotes SET appId = '?' WHERE noteId = '?'",
+                                  $this->iAppId, $this->iNoteId))
+                return false;
         }
         if($sWhatChanged)
             $this->SendNotificationMail("edit",$sWhatChanged);       
@@ -310,23 +326,31 @@ class Note {
         }
     }
 
+    public static function isRealVersionId($iVersionId)
+    {
+        return $iVersionId > 0;
+    }
+
     function outputEditor($aValues = null)
     {
-        if($aValues)
-        {
-            if(!$this->iVersionId)
-                $this->iVersionId = $aValues['iVersionId'];
+        if(!$this->iVersionId)
+            $this->iVersionId = getInput('iVersionId', $aValues);
 
-            if(!$this->iAppId)
-                $this->iAppId = getInput('iAppId', $aValues);
+        if(!$this->iAppId)
+            $this->iAppId = getInput('iAppId', $aValues);
 
-            if($this->iAppId && !$this->iVersionId)
-                $this->iVersionId = APPNOTE_SHOW_FOR_ALL;
+        if($this->iAppId && !$this->iVersionId)
+            $this->iVersionId = APPNOTE_SHOW_FOR_ALL;
 
-            if(!$this->sTitle)
-                $this->sTitle = $aValues['sNoteTitle'];
+        if(!$this->iAppId)
+        {
+            $oVersion = new version($this->iVersionId);
+            $this->iAppId = $oVersion->iAppId;
         }
 
+        if(!$this->sTitle)
+            $this->sTitle = getInput('sNoteTitle', $aValues);
+
         HtmlAreaLoaderScript(array("editor"));
 
         echo html_frame_start("Edit Application Note {$aClean['noteId']}", "90%","",0);
@@ -334,8 +358,7 @@ class Note {
 
         echo '<input type="hidden" name="bEditing" value="true">';
         echo '<input type="hidden" name="iNoteId" value="'.$this->iNoteId.'">';
-        if(!$this->iAppId)
-            echo '<input type="hidden" name="iVersionId" value="'.$this->iVersionId.'">';
+
         echo '<input type="hidden" name="iAppId" value="'.$this->iAppId.'">';
 
         echo '<tr><td class=color1>Title</td>'."\n";
@@ -345,14 +368,28 @@ class Note {
         echo '<textarea cols="80" rows="20" id="editor" name="shNoteDesc">'.$this->shDescription.'</textarea>',"\n";
         echo '</p>';
         echo '</td></tr>'."\n";
-        if($this->iAppId)
+
+        if($this->iAppId);
+            $oApp = new application($this->iAppId);
+        if($this->iAppId || $oApp->canEdit())
         {
-            $aIds = array(APPNOTE_SHOW_FOR_ALL, APPNOTE_SHOW_FOR_VERSIONS, APPNOTE_SHOW_FOR_APP);
-            $aOptions = array('Show on both application and version pages', 'Show on version pages only', 'Show on application page only');
+            $aIds = array();
+            $aOptions = array();
+            if($this->isRealVersionId($this->iVersionId))
+            {
+                $aIds[] = $this->iVersionId;
+                $aOptions[] = 'Show for this version only';
+            }
+            $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 '</td></tr>';
+        } else if(!$this->iAppId)
+        {
+            echo '<input type="hidden" name="iVersionId" value="'.$this->iVersionId.'">';
         }
+
         echo '<tr><td colspan="2" align="center" class="color3">',"\n";
 
         echo html_table_end();
@@ -364,7 +401,11 @@ class Note {
     function GetOutputEditorValues($aValues)
     {
         $this->iVersionId = getInput('iVersionId', $aValues);
-        $this->iAppId = getInput('iAppId', $aValues);
+
+        if(!$this->isRealVersionId($this->iVersionId))
+            $this->iAppId = getInput('iAppId', $aValues);
+        else
+            $this->iAppId = 0;
         $this->sTitle = $aValues['sNoteTitle'];
         $this->shDescription = $aValues['shNoteDesc'];
     }




More information about the wine-cvs mailing list