index 36ce7933c3388032249e7be4653f552b9ffae456..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);
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){
}
}
}
-
+
+ /* 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 ");
$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());