diff --git a/plugins/admin/systems/class_workstationStartup.inc b/plugins/admin/systems/class_workstationStartup.inc
index 7748e2951745af000a9e613fb89eab9bd9123c48..07a925b61fed2d0d44e97c36b1ccb5ff5f66c9ac 100644 (file)
var $FAIclass = array();
var $FAIclasses = array();
var $FAIclassInfo = array();
- var $FAIdebianMirror = array();
+ var $FAIdebianMirror = "auto";
/* attribute list for save action */
$this->FAIdebianMirrors = array();
$ldap = $this->config->get_ldap_link();
$ldap->cd($this->config->current['BASE']);
- $ldap->search("(objectClass=FAIrepository)",array("FAIdebianMirror"));
+ $ldap->search("(objectClass=FAIrepositoryServer)",array("FAIrepository"));
/* attach all attributes with "index => cn" to avoid multiple entries */
- $this->FAIdebianMirrors['auto']=_("automatic");
+ $ret = array();
while($attr = $ldap->fetch()){
- if(isset($attr['FAIdebianMirror'])){
- $this->FAIdebianMirrors[$attr['FAIdebianMirror'][0]]=$attr['FAIdebianMirror'][0];
+ if(isset($attr['FAIrepository'])){
+
+ unset($attr['FAIrepository']['count']);
+
+ foreach($attr['FAIrepository'] as $rep){
+ $tmp = split("\|",$rep);
+ $str = "";
+ if(count($tmp)==4){
+ $sections = split(",",$tmp[3]);
+ $str = $tmp[0];
+ $ret[$str]=$sections;
+ }
+ }
}
- }
-
+ }
+ ksort($ret);
+ $this->FAIdebianMirrors = $ret;
+
/* Get arrays */
foreach (array("gotoModules", "gotoAutoFs", "gotoFilesystem") as $val){
if (isset($this->attrs["$val"]["count"])){
/* Search all FAI objects */
$ldap->search("(| (objectClass=FAIpackageList)(objectClass=FAItemplate)
(objectClass=FAIvariable)(objectClass=FAIscript)(objectClass=FAIhook)(objectClass=FAIprofile)
- (objectClass=FAIpartitionTable))",array("objectClass","cn"),true);
+ (objectClass=FAIpartitionTable))",array("*"),true);
/* Sort all entries, and attach elementtype.
* To be able to show the types in the listbox.
*/
if(in_array('FAIpackageList',$attr['objectClass'])){
$tmp2[$cn]['FAIpackageList']['obj'] = 'FAIpackageList';
$tmp2[$cn]['FAIpackageList']['kzl'] = 'Pl';
+ $tmp2[$cn]['FAIpackageList']['sec'] = $attr['FAIdebianSection'];
$this->FAIclasses[$attr['cn'][0]]=$attr['cn'][0];
}
if(in_array('FAItemplate',$attr['objectClass'])){
$this->FAIclasses[$attr['cn'][0]]=$attr['cn'][0];
}
}
+ if(is_array($this->FAIclasses)){
+ natcasesort($this->FAIclasses);
+ }
$this->FAIclassInfo = $tmp2;
foreach($this->FAIclasses as $class){
$str = "";
$skip = false;
+
if(isset($this->FAIclassInfo[$class])){
foreach($this->FAIclassInfo[$class] as $objs){
$str .= $objs['kzl']." ";
$str_empty = " <img src='images/empty.png' alt=\"\" width='7'>";
$i = 1;
+
foreach($this->FAIclass as $class){
if($i==1){
$str = $str_empty.$str_down.$str_remove;
}
$smarty->assign("FAIScriptlist",$div->DrawList());
- $smarty->assign("FAIdebianMirrors",$this->FAIdebianMirrors);
+ $smarty->assign("FAIdebianMirrors",$this->getFAIdebianMirrors());
$smarty->assign("FAIclasses",$this->selectFriendlyClasses());
$smarty->assign("FAIclassesKeys",array_flip($this->selectFriendlyClasses()));
$smarty->assign("FAIclassKeys",$this->FAIclass);
}
+ function getFAIdebianMirrors()
+ {
+ $ret = array();
+ $ret['auto']=_("automatic");
+ $secs = array();
+ if(is_array($this->FAIclass)){
+ foreach($this->FAIclass as $classes){
+ if(isset($this->FAIclassInfo[ $classes]['FAIpackageList']['sec'])){
+ if(isset($this->FAIclassInfo[ $classes]['FAIpackageList']['sec']['count'])){
+ unset($this->FAIclassInfo[ $classes]['FAIpackageList']['sec']['count']);
+ }
+ if(is_array($this->FAIclassInfo[ $classes]['FAIpackageList']['sec'])){
+ foreach($this->FAIclassInfo[ $classes]['FAIpackageList']['sec'] as $sec => $value){
+ $secs[$value]= $value;
+ }
+ }
+ }
+ }
+ }
+ if(is_array($this->FAIdebianMirrors)){
+ foreach($this->FAIdebianMirrors as $mirr=>$sections){
+ $allok = true;
+ foreach($secs as $sec){
+ if(!in_array($sec,$sections)){
+ $allok = false;
+ }
+ }
+ if($allok){
+ $ret[$mirr]=$mirr;
+ }
+ }
+ }
+ return($ret);
+ }
+
/* Save data to object */
function save_object()
{