[zi-cvs] packages/com.zzoss.portlet.package.lib Package.php,1.2,1.3

[email protected] Fri, 05 Mar 2004 06:25:27 -0800
Newsgroups gmane.comp.php.zzoss.installer.cvs
Message-ID <[email protected]>
Update of /cvsroot/zzossinstaller/packages/com.zzoss.portlet.package.lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8129/com.zzoss.portlet.package.lib

Modified Files:
	Package.php 
Log Message:
new plugin architecture in installer

Index: Package.php
===================================================================
RCS file: /cvsroot/zzossinstaller/packages/com.zzoss.portlet.package.lib/Package.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Package.php	12 Feb 2004 10:36:40 -0000	1.2
--- Package.php	5 Mar 2004 14:25:24 -0000	1.3
***************
*** 40,45 ****
      }
      
! 	function showActions()
      {
          $packages_display =  $this->registry->getPackagesActions();
  		$packages_resolve = $this->registry->getPackagesResolve();
--- 40,49 ----
      }
      
! 	function showActions($type = 'package')
      {
+         $this->registry->setPackageType($type);
+         $packages_specified = $this->registry->getApplicationPackages();
+         $this->registry->setPackagesSpecified($packages_specified);
+         $this->registry->registerPackages('downloads');
          $packages_display =  $this->registry->getPackagesActions();
  		$packages_resolve = $this->registry->getPackagesResolve();
***************
*** 67,71 ****
                      <tr>
                          <td>
!                         <a title="<?php echo $package_name_full; ?>" href="info.php?mode=<?php echo $_REQUEST['mode']; ?>&type=package&id=<?php echo $pkg_id; ?>&application=<?php echo $_REQUEST['application']; ?>&distribution=<?php echo $_REQUEST['distribution']; ?>" onclick="javascript:window.open('info.php?mode=<?php echo $_REQUEST['mode']; ?>&type=package&id=<?php echo $pkg_id; ?>&application=<?php echo $_REQUEST['application']; ?>&distribution=<?php echo $_REQUEST['distribution']; ?>', 'PackageInformation', 'width=500,height=500,resizable=1,status=0,scrollbars=1,toolbar=0,location=0,directories=0,menubar=0,dependent=0');void(0);javascript:return(false);" target="_blank"><?php
                              echo $package_name_short;
                              ?></a><br/><?php echo $package['summary']; ?>
--- 71,75 ----
                      <tr>
                          <td>
!                         <a title="<?php echo $package_name_full; ?>" href="info.php?mode=<?php echo $_REQUEST['mode']; ?>&type=<?php echo $type; ?>&id=<?php echo $pkg_id; ?>&application=<?php echo $_REQUEST['application']; ?>&distribution=<?php echo $_REQUEST['distribution']; ?>" onclick="javascript:window.open('info.php?mode=<?php echo $_REQUEST['mode']; ?>&type=<?php echo $type; ?>&id=<?php echo $pkg_id; ?>&application=<?php echo $_REQUEST['application']; ?>&distribution=<?php echo $_REQUEST['distribution']; ?>', 'PackageInformation', 'width=500,height=500,resizable=1,status=0,scrollbars=1,toolbar=0,location=0,directories=0,menubar=0,dependent=0');void(0);javascript:return(false);" target="_blank"><?php
                              echo $package_name_short;
                              ?></a><br/><?php echo $package['summary']; ?>
***************
*** 100,104 ****
              <table class="list">
              <tr>
!                 <th align="left">Package</th>
                  <th align="center">Version</th>
                  <th align="center">Action(s)</th>
--- 104,108 ----
              <table class="list">
              <tr>
!                 <th align="left"><?php echo ucfirst($type); ?></th>
                  <th align="center">Version</th>
                  <th align="center">Action(s)</th>
***************
*** 109,113 ****
          } else {
              ?>
!             <div class="warning">No package action selected.</div>
              <?php
          }
--- 113,117 ----
          } else {
              ?>
!             <div class="warning">No <?php echo $type; ?> action selected.</div>
              <?php
          }
***************
*** 124,127 ****
--- 128,291 ----
          return $this->has_downloads;
      }
+     
+     function showList($type = 'package')
+     {           
+         $packages_specified = array();
+         $application_data = $this->registry->getApplication();
+         
+         if(isset($application_data["release"][$type.'s'][$type])){
+             $application_data = $application_data["release"][$type.'s'][$type];
+             if(is_array($application_data) && count($application_data)) {
+                 foreach($application_data as $key => $val) {
+                     $packages_specified[$val["@"]["name"].'-'.$val["@"]["version"]] = $val;
+                 }
+             }
+         }
+         $this->registry->setPackageType($type);
+         $this->registry->setPackagesSpecified($packages_specified);
+         $this->registry->registerPackages('downloads');
+         $packages = $this->registry->getPackages();
+         $a = $this->registry->getPackagesActions();
+ 
+         // loop packages array displaying each package
+         if(is_array($packages) && count($packages)) {
+         ?>
+         <table class="list">
+             <tr>
+                 <th align="center"><img src="themes/share/icons/org.kde.icons.crystalsvg/16x16/run.png" border="0" alt="Install" title="Install"></th>
+                 <th align="center"><img src="themes/share/icons/org.kde.icons.crystalsvg/16x16/rebuild.png" border="0" alt="Update" title="Update"></th>
+                 <th align="center"><img src="themes/share/icons/org.kde.icons.crystalsvg/16x16/trashcan_empty.png" border="0" alt="Remove" title="Remove"></th>
+                 <th align="center">&nbsp;</th>
+                 <th align="left"><?php echo ucfirst($type); ?></th>
+                 <!-- <th align="center">Distribution</th> -->
+                 <th align="left">Available</th>
+                 <th align="left">Installed</th>
+             </tr>
+         <?php
+             foreach($packages as $package) {
+                 $options = array();
+         
+                 $options["install"] = '';
+                 $options["update"] = '';
+                 $options["options"] = '';
+                 $options["remove"] = '';
+                 $options["install_prefix"] = '';
+                 $options["update_prefix"] = '';
+                 $options["options_prefix"] = '';
+                 $options["remove_prefix"] = '';
+                 $options["blank_prefix"] = '';
+                 $options["blank"] = '';
+         
+                 if(is_array($a) && count($a))  {
+                     if(!isset($a[$package["id"]]) || $a[$package["id"]] == 'N'){
+                         $options["blank"] = ' checked ';
+                     } else {
+                         switch($a[$package["id"]]) {
+                             case 'R':
+                                 $options["remove"] = ' checked ';
+                                 break;
+                             case 'U':
+                                 $options["update"] = ' checked ';
+                                 break;
+                             case 'I':
+                                 $options["install"] = ' checked ';
+                                 break;
+                         }
+                     }
+                 }
+                 
+                 if(!isset($package["installed"]) || !strlen($package["installed"])) {
+                     $package["installed"] = '-';
+                     $options["update"] = ' disabled';
+                     $options["update_prefix"] = '_disabled';
+                     if(!isset($package["_specified"]) || $package["_specified"]) {
+                         $options["remove"] = ' disabled';
+                         $options["remove_prefix"] = '_disabled';
+                     }
+                     if($package["install"]["required"] == true) {
+                         $options["install"] = ' checked';
+                         $options["blank"] = ' disabled';
+                         $options["blank_prefix"] = '_disabled';
+                     } elseif(!isset($_REQUEST["loadSelection"])) {
+                         $options["blank"] = ' checked ';
+                     }
+                     $modified = true;
+                 } else {
+                     if($package["installed"] == $package["release"]["version"]) {
+                         $modified = false;
+                         /*
+                         $options["update"] = ' disabled';
+                         $options["update_prefix"] = '_disabled';*/
+                         $options["install"] = ' disabled';
+                         $options["install_prefix"] = '_disabled';
+                         if(!isset($_REQUEST["loadSelection"])) {
+                             $options["blank"] = ' checked ';
+                         }
+                         if($package["install"]["required"] == true) {
+                             $options["remove"] = ' disabled';
+                             $options["remove_prefix"] = '_disabled';
+                         }
+                     } else {
+                         $modified = true;
+                         $options["install"] = ' disabled';
+                         $options["install_prefix"] = '_disabled';
+                         if(!isset($_REQUEST["loadSelection"])) {
+                             $options["update"] = ' checked ';
+                         }
+                     }
+                 }
+         
+                 if($modified){
+                     $bgcolor = ' class="highlight"';
+                 } else {
+                     $bgcolor = '';
+                 }
+         
+                 echo '<tr>';
+                     echo '<td align="center" valign="middle"'.$bgcolor.'><input type="radio" name="a'.$options["install_prefix"].'['.$package["id"].']"'.$options["install"].' value="I" title="Install"></td>';
+                     echo '<td align="center" valign="middle"'.$bgcolor.'><input type="radio" name="a'.$options["update_prefix"].'['.$package["id"].']"'.$options["update"].' value="U" title="Update"></td>';
+                     echo '<td align="center" valign="middle"'.$bgcolor.'><input type="radio" name="a'.$options["remove_prefix"].'['.$package["id"].']"'.$options["remove"].' value="R" title="Remove"></td>';
+                     echo '<td align="center" valign="middle"'.$bgcolor.'><input type="radio" name="a'.$options["blank_prefix"].'['.$package["id"].']" '.$options["blank"].' value="N" title="Status Quo"></td>';
+                     ?>
+                     <td<?php echo $bgcolor; ?>>
+                         <?php
+                         
+                         $package_name_full = $package["name"];
+                         if(strlen($package_name_full) > 32){
+                             $package_name_short = substr($package_name_full, 0, 29).'...';
+                         } else {
+                             $package_name_short = $package_name_full;
+                         }
+                         
+                         ?>
+                         <a title="<?php echo $package_name_full.'-'.$package['release']['version']; ?>" href="info.php?mode=<?php echo $_REQUEST['mode']; ?>&type=<?php echo $type; ?>&id=<?php echo $package["id"]; ?>&application=<?php echo $_REQUEST['application']; ?>&distribution=<?php echo $_REQUEST['distribution']; ?>" onclick="javascript:window.open('info.php?mode=<?php echo $_REQUEST['mode']; ?>&type=<?php echo $type; ?>&id=<?php echo $package["id"]; ?>&application=<?php echo $_REQUEST['application']; ?>&distribution=<?php echo $_REQUEST['distribution']; ?>', 'PackageInformation', 'width=500,height=500,resizable=1,status=0,scrollbars=1,toolbar=0,location=0,directories=0,menubar=0,dependent=0');void(0);javascript:return(false);" target="_blank"><?php
+                         echo $package_name_short;
+                         ?></a><br/><?php
+                         echo $package['summary'];
+                         
+                         if($GLOBALS['ZI']['mode'] == 'dev' && isset($package['_specified']) && !$package['_specified']){
+                             ?><div class="warning-inline">Not specified by application</div><?php
+                         }
+                         ?>
+                     </td>
+                     <?php
+                         echo '<td'.$bgcolor.'>'.$package["release"]["version"];
+                         ?>
+                         <?php
+                         if($package["installed"] == '-' && $package["install"]["type"] == 'remote') {
+                             echo '<img src="themes/share/icons/org.kde.icons.crystalsvg/16x16/network.png" align="absmiddle" border="0" alt="Download" title="Download">';
+                         }
+                         echo '</td>';
+                         
+                         echo '<td'.$bgcolor.'>'.$package["installed"].'</td>';
+                 
+                 echo '</tr>';
+             }
+             ?>
+             </table><?php
+         } else {
+             echo '<div class="warning">No '.$type.'s available.</div>';
+         }
+     }
  }
  ?>
\ No newline at end of file



-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click