X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-plugins%2Fgoto%2Fadmin%2Fsystems%2Fgoto%2Fclass_workstationStartup.inc;h=f902a92e0608c4a8a6f759164175b8cf81f13f1b;hb=84795129287efd59af4a0f0e4817d0e6655de076;hp=ae047a7e9b609968c22ce4d680606c5634669105;hpb=7440541a7c338da14ed07b1c657bcaf38268dad3;p=gosa.git diff --git a/gosa-plugins/goto/admin/systems/goto/class_workstationStartup.inc b/gosa-plugins/goto/admin/systems/goto/class_workstationStartup.inc index ae047a7e9..f902a92e0 100644 --- a/gosa-plugins/goto/admin/systems/goto/class_workstationStartup.inc +++ b/gosa-plugins/goto/admin/systems/goto/class_workstationStartup.inc @@ -128,7 +128,7 @@ class workstartup extends plugin */ $this->FAIclass =array(); if(isset($this->attrs['FAIclass'][0])){ - $tmp = split(" ",$this->attrs['FAIclass'][0]); + $tmp = explode(" ",$this->attrs['FAIclass'][0]); $tmp2 =array(); foreach($tmp as $class){ @@ -160,7 +160,7 @@ class workstartup extends plugin unset($this->attrs['gotoShare']['count']); foreach($this->attrs['gotoShare'] as $share){ $tmp = $tmp2 = array(); - $tmp = split("\|",$share); + $tmp = explode("|",$share); $tmp2['server'] =$tmp[0]; $tmp2['name'] =$tmp[1]; $tmp2['mountPoint'] =$tmp[2]; @@ -211,8 +211,8 @@ class workstartup extends plugin break; case 'FAIclass': - $str = split(":",$attrs[$name][0]); - $this->InheritedFAIclass = split("\ ",trim($str[0])); + $str = explode(":",$attrs[$name][0]); + $this->InheritedFAIclass = explode(" ",trim($str[0])); $this->InheritedFAIrelease = trim($str[1]); break; @@ -251,6 +251,16 @@ class workstartup extends plugin $this->update_fai_cache(); } } + + + // Prepare lists + $this->ldapList = new sortableListing(array(),array(), TRUE); + $this->ldapList->setDeleteable(true); + $this->ldapList->setEditable(false); + $this->ldapList->setWidth("100%"); + $this->ldapList->setHeight("100px"); + $this->ldapList->setHeader(array(_("LDAP server"))); + $this->ldapList->setDefaultSortColumn(0); } @@ -281,8 +291,7 @@ class workstartup extends plugin /* Do we represent a valid terminal? */ if (!$this->is_account && $this->parent === NULL){ - $display= "\"\" ". - msgPool::noValidExtension(_("workstation")).""; + $display= image("images/small-error.png")."".msgPool::noValidExtension(_("workstation")).""; return ($display); } @@ -342,7 +351,7 @@ class workstartup extends plugin } if(($sort_type)&&(!$sort)){ - $value = base64_decode(preg_replace("/_.*$/i","",preg_replace("/".$sort_type."/i","",$name))); + $value = postDecode(preg_replace("/_.*$/i","",preg_replace("/".$sort_type."/i","",$name))); $sort = true; $last = -1; @@ -389,7 +398,7 @@ class workstartup extends plugin } if(preg_match("/fai_remove/i",$name)){ - $value = base64_decode(preg_replace("/_.*$/i","",preg_replace("/fai_remove_/i","",$name))); + $value = postDecode(preg_replace("/fai_remove_/i","",$name)); unset($this->FAIclass[$value]); } } @@ -454,10 +463,7 @@ class workstartup extends plugin $smarty->assign("gotoShareKeys",array_flip($this->printOutAssignedShares())); $smarty->assign("gotoBootKernels",$this->gotoBootKernels); - /* Create divSelectBox for ldap server selection - */ - $SelectBoxLdapServer = new divSelectBox("LdapServer"); - $SelectBoxLdapServer->SetHeight(130); + $this->ldapList->setAcl($this->getacl('gotoLdapServer')); /* Add new ldap server to the list */ if($this->acl_is_writeable("gotoLdapServer") && @@ -473,65 +479,38 @@ class workstartup extends plugin } /* Move ldap servers up and down */ - if(!$this->gotoLdap_inherit && $this->acl_is_writeable("gotoLdapServer")){ - foreach($_POST as $name => $value){ - if(preg_match("/sort_ldap_up_/",$name)){ - $id = preg_replace("/^sort_ldap_up_([0-9]*)_(x|y)$/","\\1",$name); - $from = $id; - $to = $id -1; - $tmp = $this->array_switch_item($this->gotoLdapServers,$from,$to); - if($tmp){ - $this->gotoLdapServers = $tmp; - } - break; - } - if(preg_match("/sort_ldap_down_/",$name)){ - $id = preg_replace("/^sort_ldap_down_([0-9]*)_(x|y)$/","\\1",$name); - $from = $id; - $to = $id +1; - $tmp = $this->array_switch_item($this->gotoLdapServers,$from,$to); - if($tmp){ - $this->gotoLdapServers = $tmp; - } - break; - } - if(preg_match("/gotoLdapRemove_/",$name)){ - $id = preg_replace("/^gotoLdapRemove_([0-9]*)_(x|y)$/","\\1",$name); - $value = $this->gotoLdapServers[$id]; - $this->gotoLdapServers = array_remove_entries(array($value),$this->gotoLdapServers); - break; - } - } + $this->ldapList->save_object(); + $action = $this->ldapList->getAction(); + if($action['action'] == 'reorder'){ + $this->gotoLdapServers = array_values($this->ldapList->getMaintainedData()); + } + if($action['action'] == 'delete'){ + $id = $this->ldapList->getKey($action['targets'][0]); + $value = $this->gotoLdapServers[$id]; + $this->gotoLdapServers = array_remove_entries(array($value),$this->gotoLdapServers); } - - /* Add Entries */ - if($this->acl_is_readable("gotoLdapServer")){ - foreach($this->gotoLdapServers as $key => $server){ + /* Add Entries */ + $data = $lData = array(); + foreach($this->gotoLdapServers as $key => $server){ + $data[$key]=$server; /* Announce missing entries */ if(!in_array($server,$this->gotoLdapServerList)){ - $server = $server." (missing)"; + $server = $server." (missing)"; } /* Convert old style entry */ if (!preg_match('%:ldaps?://%', $server)){ - $server= "ldap://".preg_replace('/^([^:]+):/', '\1/', $server); - - /* Beautify new style entries */ - } else { - $server= preg_replace("/^[^:]+:/", "", $server); - } - - $SelectBoxLdapServer->AddEntry( - array(array("string" => $server), - array("string" => - " ". - " ". - "", - "attach" => "style='text-align:right;width:40px;border-right:0px;'"))); - } - } + $server= "ldap://".preg_replace('/^([^:]+):/', '\1/', $server); + } else { + $server= preg_replace("/^[^:]+:/", "", $server); + $lData[$key] = array('data'=>array($server)); + } + } + $this->ldapList->setListData($data,$lData); + $this->ldapList->update(); + $smarty->assign("usePrototype", "true"); if($this->gotoLdap_inherit){ $smarty->assign("gotoLdapServerACL_inherit", preg_replace("/w/","",$this->getacl("gotoLdapServer")));; @@ -555,7 +534,7 @@ class workstartup extends plugin $list[$key] = $entry; } } - $smarty->assign("gotoLdapServers", $SelectBoxLdapServer->DrawList()); + $smarty->assign("gotoLdapServers", $this->ldapList->render()); $smarty->assign("gotoLdapServerList", $list); $smarty->assign("gotoLdap_inherit", $this->gotoLdap_inherit); $smarty->assign("JS", session::get('js')); @@ -577,7 +556,7 @@ class workstartup extends plugin $smarty->assign("si_active",$this->si_active); $div = new divSelectBox("WSFAIscriptClasses"); - $div -> SetHeight("110"); + $div -> SetHeight("100"); if(!$this->si_fai_action_failed && $this->si_active && $this->fai_activated){ @@ -598,11 +577,11 @@ class workstartup extends plugin $smarty->assign("gotoBootKernels",$this->cache['KERNELS'][$release]); $smarty->assign("InheritedFAIrelease",$this->InheritedFAIrelease); - $str_empty = "  \"\""; + $str_empty = image('images/empty.png'); if($this->acl_is_writeable("FAIclass")){ - $str_up = "  "; - $str_down = "  "; - $str_remove = "  "; + $str_up = image('images/lists/sort-up.png','sort_up_%s'); + $str_down = image('images/lists/sort-down.png','sort_down_%s'); + $str_remove = image('images/lists/trash.png','fai_remove_%s'); }else{ $str_up=$str_down=$str_remove=$str_empty; } @@ -664,7 +643,7 @@ class workstartup extends plugin $desc =""; foreach($this->cache['CLASSES'][$this->FAIrelease][$class] as $types ){ if(isset($types['Abbr'])){ - $desc.= " "; + $desc.= image($objects[$types['Abbr']]['IMG']); if($types['Type'] == "FAIprofile"){ break; } @@ -678,7 +657,7 @@ class workstartup extends plugin $div->AddEntry(array( array("string"=>$class.$marker), array("string"=>$desc), - array("string"=>preg_replace("/\%s/",base64_encode($class),$str),"attach"=>"style='width:50px;border-right:none;'") + array("string"=>preg_replace("/\%s/",postEncode($class),$str),"attach"=>"style='width:60px;border-right:none;'") )); } }// END FAI output generation @@ -777,7 +756,7 @@ class workstartup extends plugin $ldap= $this->config->get_ldap_link(); /* Strip relevant part from dn, keep trailing ',' */ - $tmp= preg_replace("/^cn=[^,]+,".get_ou('terminalRDN')."/i", "", $this->dn); + $tmp= preg_replace("/^cn=[^,]+,".preg_quote(get_ou('terminalRDN'), '/')."/i", "", $this->dn); $tmp= preg_replace("/".$this->config->current['BASE']."$/i", "", $tmp); /* Walk from top to base and try to load default values for @@ -876,7 +855,7 @@ class workstartup extends plugin /* prepare share settings */ $tmp = array(); foreach($this->gotoShares as $name => $settings){ - $tmp2= split("\|",$name); + $tmp2= explode("|",$name); $name = $tmp2[0]; $tmp[] = $settings['server']."|".$name."|".$settings['mountPoint']; } @@ -987,7 +966,8 @@ class workstartup extends plugin plugin::PrepareForCopyPaste($source); $source_o = new workstartup ($this->config, $source['dn']); foreach(array("FAIclass","gotoModules", "gotoAutoFs", "gotoFilesystem", - "gotoKernelParameters","gotoShares") as $attr){ + "gotoKernelParameters","gotoShares","gotoLdapServers","gotoLdapServerList", + "gotoLdap_inherit") as $attr){ $this->$attr = $source_o->$attr; } } @@ -1027,6 +1007,7 @@ class workstartup extends plugin "plProvidedAcls"=> array( "gotoLdapServer" => _("Ldap server"), "gotoBootKernel" => _("Boot kernel"), + "bootmode" => _("Boot mode"), "gotoKernelParameters" => _("Kernel parameter"), "gotoModules" => _("Kernel modules"), @@ -1138,19 +1119,19 @@ class workstartup extends plugin */ $lines= $this->GetHookElements(); foreach ($lines as $hline){ - $entries= split(";", $hline); + $entries= explode(";", $hline); $server = $entries['0']; $url = $entries['1']; if (!empty($url)){ /* Split releases */ if (isset($entries[2])){ - $releases= split(",", $entries[2]); + $releases= explode(",", $entries[2]); foreach ($releases as $release_data){ $release_c = preg_replace('/:.*$/', '', $release_data); - $sections_c = split(':', preg_replace('/^[^:]+:([^|]+)|.*$/', '\1', $release_data)); - $classes_c = split('\|', preg_replace('/^[^|]+\|(.*)$/', '\1', $release_data)); + $sections_c = explode(':', preg_replace('/^[^:]+:([^|]+)|.*$/', '\1', $release_data)); + $classes_c = explode('|', preg_replace('/^[^|]+\|(.*)$/', '\1', $release_data)); if($release_c == $release){ $this->cache['SERVERS'][$url][$release_c]=$release_c; @@ -1310,7 +1291,7 @@ class workstartup extends plugin }elseif(empty($res2)){ msg_dialog::display(_("Configuration error"), _("'repositoryBranchHook' returned no result!"), ERROR_DIALOG); }else{ - $tmp = split("\n",$res); + $tmp = preg_split("/\n/",$res); foreach($tmp as $line){ if(empty($line)) continue; $ret[]= $line; @@ -1326,8 +1307,8 @@ class workstartup extends plugin */ function dn_to_release_name($dn) { - $relevant = preg_replace("/,".preg_quote(get_ou("faiBaseRDN"), '/').".*$/","",$dn); - $parts = array_reverse(split("\,",$relevant)); + $relevant = preg_replace("/,".preg_quote(get_ou("faiBaseRDN"), '/').".*$/i","",$dn); + $parts = array_reverse(explode(",",$relevant)); $str =""; foreach($parts as $part){ $str .= preg_replace("/^ou=/","",$part)."/";