diff --git a/trunk/gosa-plugins/fai/admin/fai/class_faiProfile.inc b/trunk/gosa-plugins/fai/admin/fai/class_faiProfile.inc
index d92e5178ba23248087e8cdf2bfaed76fe5638642..e146a9121644060ea1327408aa72eb8d7ab4d366 100644 (file)
{
/* Load Attributes */
plugin::plugin ($config, $dn);
- $ldap=$this->config->get_ldap_link();
-
+
$this->ui = get_userinfo();
/* Parse ldap attribute to get all assigned classes */
$tmp2 = array();
foreach($tmp as $class){
if(!empty($class)){
- $tmp2[trim($class)] = trim($class);
+ $class = trim($class);
+ $tmp2[] = $class;
}
}
/* Sort assigned classes */
if(is_array($tmp2)){
foreach($tmp2 as $class){
- $this->FAIclasses[$class]=$class;
+ $this->FAIclasses[]=$class;
}
}
+
+ if($dn != "new"){
+ $this->dn =$dn;
+ }
+ $this->old_cn = $this->cn;
+ }
+
+ function get_all_fai_classes()
+ {
+ if (count($this->FAIAllclasses)) {
+ return;
+ }
+
+ $ldap=$this->config->get_ldap_link();
+
$categories = array("FAIscript","FAItemplate","FAIhook","FAIvariable","FAIpartitionTable","FAIpackageList");
/* Build filter */
$filter.= "(objectClass=$cat)";
}
- /* Get ldap connection */
- $base = session::get('CurrentMainBase');
- $ldap->cd($base);
$sort = array();
-
/* search all FAI classes */
- $ldap->search("(|$filter)",array("*"));
- while($attrs = $ldap->fetch()){
-
+ $res = FAI::get_all_objects_for_given_base($this->parent->parent->fai_release, "(|$filter)", true);
+ foreach($res as $attrs){
/* Sort by categorie */
foreach($categories as $cat){
if(in_array($cat,$attrs['objectClass'])){
/* Assign sorted classes */
$this->FAIAllclasses = array();
$this->FAIAllclasses = $tmp;
-
- if($dn != "new"){
- $this->dn =$dn;
- }
- $this->old_cn = $this->cn;
}
-
- /* Combine new array, used for up down buttons */
- function combineArrays($ar0,$ar1,$ar2)
- {
- $ret = array();
- if(is_array($ar0))
- foreach($ar0 as $ar => $a){
- $ret[$ar]=$a;
- }
- if(is_array($ar1))
- foreach($ar1 as $ar => $a){
- $ret[$ar]=$a;
- }
- if(is_array($ar2))
- foreach($ar2 as $ar => $a){
- $ret[$ar]=$a;
- }
- return($ret);
- }
-
-
function acl_base_for_current_object($dn)
{
if($dn == "new" || $dn == ""){
function getpos($atr,$attrs)
{
$i = 0;
- foreach($attrs as $attr => $name) {
- $i++;
- if($attr == $atr){
+ foreach($attrs as $value) {
+ if($atr == $value) {
return($i);
}
+ $i++;
}
- return(-1);
}
/* Transports the given Arraykey one position up*/
function ArrayUp($atr,$attrs)
{
- $ret = $attrs;
- $pos = $this->getpos($atr,$attrs) ;
- $cn = count($attrs);
- if(!(($pos == -1)||($pos == 1))){
- $before = array_slice($attrs,0,($pos-2));
- $mitte = array_reverse(array_slice($attrs,($pos-2),2));
- $unten = array_slice($attrs,$pos);
- $ret = array();
- $ret = $this->combineArrays($before,$mitte,$unten);
+ $index = $this->getpos($atr,$attrs);
+ $res = $attrs;
+
+ /* Don't do anything if there is just one element */
+ if (count($attrs) == 1) {
+ return($res);
}
- return($ret);
+
+ for($i=0;$i<count($attrs);$i++) {
+ if ($i==$index) {
+ $left_index = $index - 1;
+ $res[$left_index] = $attrs[$index];
+ $res[$index] = $attrs[$left_index];
+ }
+ }
+
+ return($res);
}
/* Transports the given Arraykey one position down*/
function ArrayDown($atr,$attrs)
{
- $ret = $attrs;
- $pos = $this->getpos($atr,$attrs) ;
- $cn = count($attrs);
- if(!(($pos == -1)||($pos == $cn))){
- $before = array_slice($attrs,0,($pos-1));
- $mitte = array_reverse(array_slice($attrs,($pos-1),2));
- $unten = array_slice($attrs,($pos+1));
- $ret = array();
- $ret = $this->combineArrays($before,$mitte,$unten);
+ $index = $this->getpos($atr,$attrs);
+ $res = $attrs;
+
+ /* Don't do anything if there is just one element */
+ if (count($attrs) == 1) {
+ return($res);
}
- return($ret);
+
+ for($i=0;$i<count($attrs);$i++) {
+ if ($i==$index) {
+ $left_index = ($index+1);
+ $res[$left_index] = $attrs[$index];
+ $res[$index] = $attrs[$left_index];
+ }
+ }
+
+ return($res);
}
/* class one position up */
}
if($s_action == "delete" && $this->acl_is_writeable("FAIclass")){
- unset($this->FAIclasses[$s_entry]);
+ $newfaiclasses = array();
+ foreach($this->FAIclasses as $key => $name) {
+ if ($name != $s_entry) {
+ array_push($newfaiclasses, $name);
+ }
+ }
+ $this->FAIclasses = $newfaiclasses;
}
if($s_action == "add" && $this->acl_is_writeable("FAIclass")){
}else{
$ret = $this->dialog->save();
foreach($ret as $class){
- $this->FAIclasses[$class] =$class;
+ $this->FAIclasses[] =$class;
}
$this->is_dialog=false;
unset($this->dialog);
$actions = "<input type='image' src='images/lists/trash.png' title='"._("Remove class from profile")."' name='DEL_%KEY%'>";
/* Up down buttons */
- $linkupdown = " <input type='image' name='sortup_%s' alt='up' title='"._("Up")."' src='images/lists/sort-up.png' align='top' >";
- $linkupdown.= "<input type='image' name='sortdown_%s' alt='down' title='"._("Down")."' src='images/lists/sort-down.png' >";
-
+ $linkup = " <input type='image' name='sortup_%s' alt='up' title='"._("Up")."' src='images/lists/sort-up.png' align='top' >";
+ $linkdown = " <input type='image' name='sortdown_%s' alt='down' title='"._("Down")."' src='images/lists/sort-down.png' >";
/* Append fai classes to divlist */
if($this->acl_is_readable("FAIclass")){
+ $i = 1;
+ $count = count($this->FAIclasses);
+
+ $linkupdown = '';
foreach($this->FAIclasses as $usedClass){
+ if($i==1) {
+ if ($count > 1) {
+ $linkupdown = " " . $linkdown;
+ }
+ } elseif ($i<$count) {
+ $linkupdown = $linkup . $linkdown;
+ }
+ else {
+ $linkupdown = $linkup;
+ }
+
$str = " ";
$act = "";
+ $this->get_all_fai_classes();
+
if(isset($this->FAIAllclasses[$usedClass])){
foreach($this->FAIAllclasses[$usedClass] as $class => $obj){
$str.= $objTypes[$class];
$field3 = array("string"=>" ", "attach"=>"style='border-right:none;'");
}
$divlist->AddEntry(array($field1,$field2,$field3));
+ $i++;
}
}
$tmp2 = array();
foreach($tmp as $class){
if(!empty($class)){
- $tmp2[trim($class)] = trim($class);
+ $class = trim($class);
+ $tmp2[] = $class;
}
}
/* Sort assigned classes */
if(is_array($tmp2)){
foreach($tmp2 as $class){
- $this->FAIclasses[$class]=$class;
+ $this->FAIclasses[]=$class;
}
}
}