Ejemplo n.º 1
0
 /**
  * Show remove package.
  */
 public function showRemove()
 {
     $packageName = $_GET['name'];
     // Check dependencies on installed packages
     $depend = array();
     $installedPackages = PackageQuery::create()->filterByName($packageName, Criteria::NOT_EQUAL)->find();
     foreach ($installedPackages as $installedPackage) {
         $dependencies = Curry_PackageManager::getPackageDependencies($installedPackage->getName(), $installedPackage->getVersion());
         foreach ($dependencies as $depName => $depVersion) {
             if ($depName == $packageName) {
                 $depend[] = $installedPackage->getName();
             }
         }
     }
     $form = new Curry_Form(array('action' => url('', $_GET), 'method' => 'post', 'elements' => array('simulate' => array('checkbox', array('label' => 'Simulate', 'description' => 'Run simulation, will not make any modifications to the system.')), 'submit' => array('submit', array('label' => 'Continue')))));
     if (isPost() && $form->isValid($_POST)) {
         $simulate = $form->simulate->isChecked();
         $status = Curry_PackageManager::removePackage($packageName, $simulate);
         if ($status) {
             $this->addMessage($packageName . ' successfully removed!', self::MSG_SUCCESS);
         } else {
             $this->addMessage('There was an error when uninstalling ' . $packageName, self::MSG_ERROR);
         }
     } else {
         $this->addMessage('The following package will be removed: ' . $packageName, self::MSG_WARNING);
         if (count($depend)) {
             $this->addMessage('The following packages depend on ' . $packageName . ': ' . join(', ', $depend), self::MSG_ERROR);
         }
         $this->addMainContent($form);
     }
 }