index 918dab1d892bb07e7dd88ef41fd5cd2ae4684f81..f58acfd12264cbfdf21dfea1378b8087e8f09aee 100644 (file)
var $FAIdebianRelease = ""; // The selected release
var $FAIdebianSection = ""; // selected section
var $FAIdebianMirror = ""; // selected mirror
+ var $mirror = ""; // selected mirror
var $servers = array(); // All available servers
var $releases = array(); // All possible releases
foreach($this->attrs['FAIpackage'] as $pkg){
$this->usedPackages[$pkg] = $pkg;
}
+ ksort($this->usedPackages);
}else{
$this->usedPackages = array();
}
}
$this->confDir = CONFIG_DIR."/fai/";
$this->FAIpackage = array();
+
+ /* Extract mirror location */
+ $this->mirror= preg_replace("!^[^/]+//([^/]+).*$!", '$1', $this->FAIdebianMirror);
}
function execute()
$smarty= get_smarty();
$display= "";
+ $this->genMirror();
+
+ /* Check if we exist already - no need to ask for revisions, etc. then */
+ if ($this->dn != "new"){
+ $this->newDialogShown= true;
+ }
+
if((!$this->is_account)&&(!$this->newDialogShown)){
if($this->dialog==NULL){
- $this->genMirror();
$this->dialog = new faiPackageNew($this->config, $this->dn,$this->mirrors,$this->servers,$this->sections,$this->releases);
$this->is_dialog =true;
}
-
+
+ /* alert possible missconfigurations */
+ if((count($this->releases)==0)||(count($this->servers)==0)||(count($this->sections)==0)){
+ print_red(_("There is no useable package list defined."));
+ }
+
+ /* Assign posible changes, for mirror combinations */
+ $this->dialog->save_object();
+ $this->dialog->releases = $this->releases;
+ $this->dialog->servers = $this->servers;
+ $this->dialog->sections = $this->sections;
+ $this->dialog->mirrors = $this->mirrors;
+
+ /* Assign Repository settings*/
if(isset($_POST['SaveObjectNew'])){
$this->FAIdebianRelease = $this->dialog->FAIdebianRelease;
$this->FAIdebianSection = $this->dialog->FAIdebianSection;
$this->newDialogShown = true;
}
+ /* Draw dialog */
if($this->dialog){
$display=$this->dialog->execute();
return($display);
}
}
- $disableRelease = false;
- $disableMirror = false;
- $disableOptions = false;
- $disableSection = false;
/* Assign variables */
foreach($this->attributes as $attrs){
$smarty->assign($attrs,$this->$attrs);
}
-
- $this->genMirror();
-
+
+ /* Set mirror if changed */
+ if((isset($_POST['FAIdebianMirrorS']))&&(!empty($_POST['FAIdebianMirrorS']))){
+ $this->FAIdebianMirror = $_POST['FAIdebianMirrorS'];
+ }
+
/* check servers matching release and section settings */
$availableServer = array();
foreach($this->mirrors as $mir){
}
}
}
- if($this->list==NULL){
- $this->list=$this->genPkgs();
- }
+
+ /* Generate package list */
+ $this->list=$this->genPkgs();
+ /* + was pressed to open the package dialog */
if(isset($_POST['Addpkg'])){
$this->dialog = new faiPackageEntry($this->config, $this->dn,$this->list,$this->usedPackages);
$this->is_dialog =true;
}
-
+
+ /* Delte selected package */
if(isset($_POST['Delpkg'])){
unset($this->usedPackages[$_POST['usedPackages']]);
}
-
+
+ /* Abort package selection dialog */
if(isset($_POST['CancelSubObject'])){
$this->dialog = false;
$this->is_dialog=false;
}
+ /* attach new packages */
if(isset($_POST['SaveSubObject'])) {
$this->dialog->save_object();
if(count($this->dialog->check())){
$this->usedPackages = $use;
$this->dialog = false;
$this->is_dialog=false;
+ ksort($this->usedPackages);
}
}
+ /* Configuration dialog open*/
if(isset($_POST['Conpkg'])){
$this->dialog = new faiPackageConfiguration($this->config, $this->dn,"none");
$this->is_dialog =true;
}
+ /* Save Configuration */
if(isset($_POST['SaveObjectConfig'])){
$this->dialog = false;
$this->is_dialog=false;
}
-
+
+ /* cancel configuration */
if(isset($_POST['CancelObjectConfig'])){
$this->dialog = false;
$this->is_dialog=false;
}
-
+
+ /* Display dialog */
if($this->is_dialog){
return $this->dialog->execute();
}
+ /* Assign section to smarty */
$strsec = "";
foreach($this->FAIdebianSection as $sec){
$strsec .= $sec." ";
}
+ $smarty->assign("OptionsACL","");
+ if(empty($this->FAIdebianMirror)){
+ $smarty->assign("OptionsACL"," disabled ");
+ }
+
$smarty->assign("mirrors" ,$availableServer);
$smarty->assign("mirror" ,$this->FAIdebianMirror);
$smarty->assign("releases",$this->releases);
$this->buffer=array();
$a_ret = array();
foreach($this->FAIdebianSection as $sec){
- $strID= "/etc/gosa/fai/".$this->FAIdebianMirror."/".$this->FAIdebianRelease."/".$sec;
+ $strID= "/etc/gosa/fai/".preg_replace("#^[^/]+//([^/]+).*$#","\\1",$this->FAIdebianMirror)."/".$this->FAIdebianRelease."/".$sec;
if(!is_file($strID)){
- print_red(sprintf(_("Package file don't exists '%s'."),$strID));
+ print_red(sprintf(_("Package file '%s' does not exist."),$strID));
+ $this->FAIdebianMirror="";
+ unset($this->buffer);
return(array());
}
$fp = fopen($strID,"r");
ksort($a_ret);
return($a_ret);
}else{
- return $this->buffer[$strID];
+ return $this->buffer;
}
}