X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-plugins%2Ffai%2Fadmin%2Ffai%2Fclass_faiPackage.inc;h=d32f26a64d41e27de24dc2c150bd47363a5deaee;hb=ac00a6eccb7dd4f40043288482e701a3f17fcc6e;hp=bbfa30c33429b47b331af09abd09e5e89f3e132e;hpb=fd16381bbcb916810fe1c4899ff0fdd52f5e8dd3;p=gosa.git diff --git a/gosa-plugins/fai/admin/fai/class_faiPackage.inc b/gosa-plugins/fai/admin/fai/class_faiPackage.inc index bbfa30c33..d32f26a64 100644 --- a/gosa-plugins/fai/admin/fai/class_faiPackage.inc +++ b/gosa-plugins/fai/admin/fai/class_faiPackage.inc @@ -47,6 +47,8 @@ class faiPackage extends plugin var $base; var $FAIpackage ; + var $packageSelect ; + var $FAIinstallMethods = array( "install", "ninstall", "remove", "dselect-upgrade", "taskinst", "taskrm", "hold", "clean", "aptitude", "aptitude-r", @@ -271,12 +273,46 @@ class faiPackage extends plugin } } - /* + was pressed to open the package dialog */ - if(isset($_POST['Addpkg']) && - $this->acl_is_writeable("FAIpackage") && - !preg_match("/freeze/",$this->FAIstate)){ - $this->dialog = new faiPackageEntry($this->config, $this->FAIdebianRelease,$this->usedPackages); - $this->is_dialog =true; + // Open the packageSelect dialog to allow adding packages out of a list. + if(isset($_POST['Addpkg']) && $this->acl_is_writeable("FAIpackage") && !preg_match("/freeze/",$this->FAIstate)){ + $this->packageSelect = new packageSelect($this->config, get_userinfo()); + session::set('packageSelect_Release',$this->FAIdebianRelease); + $this->dialog =true; + } + + // Close packageSelect dialog. + if(isset($_POST['packageSelect_cancel'])){ + $this->packageSelect = FALSE; + $this->dialog =FALSE; + } + + // Close packageSelect dialog and add the selected packages. + if(isset($_POST['packageSelect_save']) && $this->packageSelect instanceOf packageSelect){ + if(!preg_match("/freeze/i", $this->FAIstate)){ + $use = $this->packageSelect->save(); + + foreach($use as $pkg){ + $item = array(); + for($i =0; $i < $pkg['count']; $i++){ + $item[$pkg[$i]] = $pkg[$pkg[$i]][0]; + } + $this->usedPackages[$item['PACKAGE']] = $item['PACKAGE']; + } + + ksort($this->usedPackages); + + /* Generate package list */ + $this->list= $this->genPkgs(TRUE); + } + $this->packageSelect = FALSE; + $this->dialog =FALSE; + } + + // Display package add dialog + if($this->packageSelect instanceOf packageSelect){ + + session::set('filterBlacklist', array('PACKAGE' => $this->usedPackages)); + return $this->packageSelect->execute(); } @@ -339,30 +375,6 @@ class faiPackage extends plugin $this->is_dialog=false; } - /* attach new packages */ - if(isset($_POST['SaveSubObject'])) { - if(!preg_match("/freeze/i", $this->FAIstate)){ - $this->dialog->save_object(); - if(count($this->dialog->check())){ - foreach($this->dialog->check() as $msgs){ - msg_dialog::display(_("Error"), $msgs, ERROR_DIALOG); - } - }else{ - $use = $this->dialog->save(); - $this->usedPackages = $use; - $this->dialog = false; - $this->is_dialog=false; - ksort($this->usedPackages); - - /* Generate package list */ - $this->list= $this->genPkgs(TRUE); - } - }else{ - $this->dialog = false; - $this->is_dialog=false; - } - } - /* Save Configuration */ if(isset($_POST['SaveObjectConfig'])){ if(!preg_match("/^freeze/", $this->FAIstate)){