summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 07cf715)
raw | patch | inline | side by side (parent: 07cf715)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Wed, 6 Jan 2010 15:09:45 +0000 (15:09 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Wed, 6 Jan 2010 15:09:45 +0000 (15:09 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@15090 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-plugins/fai/admin/fai/class_faiManagement.inc | patch | blob | history |
diff --git a/gosa-plugins/fai/admin/fai/class_faiManagement.inc b/gosa-plugins/fai/admin/fai/class_faiManagement.inc
index 7c7f93e68f61006cdd9ae896a78ab8b0e5e73878..e70b5ba9ca9c5e899426ed4ba0a4c53397bb7dc9 100644 (file)
get_ou('faiScriptRDN'),
get_ou('faiVariableRDN'),
get_ou('faiHookRDN'),
- get_ou('faiProfileRDN'),get_ou('faiTemplateRDN'));
-
-# // Build filter
-# if (session::global_is_set(get_class($this)."_filter")){
-# $filter= session::global_get(get_class($this)."_filter");
-# } else {
- $filter = new filter(get_template_path("fai-filter.xml", true));
- $filter->setObjectStorage($this->storagePoints);
-# }
- $this->setFilter($filter);
-
- // Build headpage
- $headpage = new listing(get_template_path("fai-list.xml", true));
- $headpage->setFilter($filter);
- $headpage->setBase($this->fai_release);
- $headpage->registerElementFilter("filterProperties", "faiManagement::filterProperties");
-
- // Add copy&paste and snapshot handler.
- if ($this->config->boolValueIsTrue("main", "copyPaste")){
- $this->cpHandler = new CopyPasteHandler($this->config);
- }
- if($this->config->get_cfg_value("enableSnapshots") == "true"){
- $this->snapHandler = new SnapshotHandler($this->config);
- }
-
- $this->registerAction("remove_multiple","removeEntryRequested");
-
- $this->registerAction("new_profile","newEntry");
- $this->registerAction("new_template","newEntry");
- $this->registerAction("new_script","newEntry");
- $this->registerAction("new_hook","newEntry");
- $this->registerAction("new_variable","newEntry");
- $this->registerAction("new_package","newEntry");
- $this->registerAction("new_partition","newEntry");
+ get_ou('faiProfileRDN'),
+ get_ou('faiTemplateRDN'));
+
+ // Build filter
+ if (session::global_is_set(get_class($this)."_filter")){
+ $filter= session::global_get(get_class($this)."_filter");
+ } else {
+ $filter = new filter(get_template_path("fai-filter.xml", true));
+ $filter->setObjectStorage($this->storagePoints);
+ }
+ $this->setFilter($filter);
- $this->registerAction("newClassNameSelected","newClassNameSelected");
+ // Build headpage
+ $headpage = new listing(get_template_path("fai-list.xml", true));
+ $headpage->setFilter($filter);
+ $headpage->setBase($this->fai_release);
+ $headpage->registerElementFilter("filterProperties", "faiManagement::filterProperties");
- $this->registerAction("saveOpsiProperties","saveOpsiProperties");
+ // Add copy&paste and snapshot handler.
+ if ($this->config->boolValueIsTrue("main", "copyPaste")){
+ $this->cpHandler = new CopyPasteHandler($this->config);
+ }
- $this->registerAction("editByGroup","editByGroup");
- $this->registerAction("createBranch","createBranch");
- $this->registerAction("createFreeze","createFreeze");
- $this->registerAction("removeBranch","removeBranch");
- $this->registerAction("removeBranchConfirmed","removeBranchConfirmed");
- $this->registerAction("saveBranch","saveBranch");
- $this->registerAction("PerformBranch","PerformBranch");
- parent::__construct($config, $ui, "roles", $headpage);
+ $this->registerAction("remove_multiple","removeEntryRequested");
+ $this->registerAction("new_profile","newEntry");
+ $this->registerAction("new_template","newEntry");
+ $this->registerAction("new_script","newEntry");
+ $this->registerAction("new_hook","newEntry");
+ $this->registerAction("new_variable","newEntry");
+ $this->registerAction("new_package","newEntry");
+ $this->registerAction("new_partition","newEntry");
+ $this->registerAction("newClassNameSelected","newClassNameSelected");
+ $this->registerAction("saveOpsiProperties","saveOpsiProperties");
+ $this->registerAction("editByGroup","editByGroup");
+ $this->registerAction("createBranch","createBranch");
+ $this->registerAction("createFreeze","createFreeze");
+ $this->registerAction("removeBranch","removeBranch");
+ $this->registerAction("removeBranchConfirmed","removeBranchConfirmed");
+ $this->registerAction("saveBranch","saveBranch");
+ $this->registerAction("PerformBranch","PerformBranch");
+
+ parent::__construct($config, $ui, "roles", $headpage);
}
- function copyPasteHandler($action="",$target=array(),$all=array(),
- $altTabClass ="", $altTabType = "", $altAclCategory="",$altAclPlugin="")
+ /*! \brief Act on copy & paste actions here.
+ */
+ function copyPasteHandler($action="",$target=array(),$all=array(),$altTabClass ="",$altTabType="",$altAclCategory="",$altAclPlugin="")
{
-
// Collect real dns, the listed objects are grouped by their cn
$headpage = $this->getHeadpage();
if($action == "copy"){
foreach($target as $t){
$entry = $headpage->getEntry($t);
-
+
// Check for valid FAI objects
if(in_array('FAKE_OC_FAI', $entry['objectClass'])){
foreach($entry['GROUPS'] as $g){
}
+ /*! \brief A new FAI object was requested, let the user specify a name theis object now.
+ */
function newEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
{
- /****************
- Create a new object
- ****************/
-
$types = array(
"new_partition" => "FAIpartitionTable",
"new_script" => "FAIscript",
$this->dialogObject = new askClassName($this->config,$this->dn,$this->ui,$types[$action]);
$this->dialogObject->parent = &$this;
}else{
- msg_dialog::display(_("Permission error"), sprintf(_("You have no permission to create a new %s!"), $types_i18n[$action]), ERROR_DIALOG);
+ msg_dialog::display(_("Permission error"),
+ sprintf(_("You have no permission to create a new %s!"), $types_i18n[$action]), ERROR_DIALOG);
}
}
if($action == "new_profile"){
}
+ /*! \brief A new FAI class was requested and the user had a specify a name for it.
+ * Here we check if this name is useable and then open the edit dialogs.
+ */
function newClassNameSelected()
{
$this->dialogObject->save_object();
}
-
+ /*! \brief Edit the selected entry.
+ * If there was a FAI group clicked, display a dialog with all members of the group.
+ */
function editEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
{
$headpage = $this->getHeadpage();
$entry = $headpage->getEntry($target[0]);
if($entry){
+ // Edit Opsi objects here
if(in_array("opsi_local", $entry['TYPES']) || in_array("opsi_netboot", $entry['TYPES'])){
$name = $entry['cn'];
$cfg = $this->opsi->get_product_properties($name);
}
}else{
+
+ // Edit FAI objects here
if(count($entry['GROUPS']) == 1){
$data = array_pop($entry['GROUPS']);
$type = $this->get_type($data);
}
+ /*! \brief Save changes made in opsi dialogs.
+ */
function saveOpsiProperties()
{
if($this->tabObject instanceof tabs_opsiProdConfig && isset($_POST['save_properties'])){
}
+ /*! \brief Someone wants to remove some object(s)
+ * ask for a confirmation now.
+ */
+ function removeEntryRequested($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
+ {
+ $this->closeDialogs();
+ if($action == "remove_multiple"){
+
+ // Collect objects to delete
+ $headpage = $this->getHeadpage();
+ $to_delete = array();
+ foreach($target as $id){
+ $object = $headpage->getEntry($id);
+ if(in_array("FAKE_OC_FAI", $object['objectClass'])){
+ foreach($object['GROUPS'] as $entry){
+ array_push($to_delete, $entry);
+ }
+ }
+ }
+ return($this->removeFAIObjects($to_delete));
+ }else{
+
+ // Try to remove a single object, only FAI objects can be removed!
+ $headpage = $this->getHeadpage();
+ if(count($target) == 1){
+ $entry = $headpage->getEntry($target[0]);
+ if($entry && in_array("FAKE_OC_FAI",$entry['objectClass'])){
+ $this->dialogObject = new faiGroupHandle($entry['GROUPS'],"remove");
+ }
+ }
+ }
+ }
+
+
+ /*! \brief Someone wants to remove some object(s)
+ * ask for a confirmation now.
+ */
function removeFAIObjects($to_delete)
{
// Do not allow to remove objects with state freeezed
return($smarty->fetch(get_template_path('remove.tpl', TRUE)));
}
}
-
}
- function removeEntryRequested($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
- {
- $this->closeDialogs();
- if($action == "remove_multiple"){
-
- /* Collect objects to delete and check if objects are freezed
- */
- $headpage = $this->getHeadpage();
- $to_delete = array();
- foreach($target as $id){
- $object = $headpage->getEntry($id);
- if(in_array("FAKE_OC_FAI", $object['objectClass'])){
- foreach($object['GROUPS'] as $entry){
- array_push($to_delete, $entry);
- }
- }
- }
- return($this->removeFAIObjects($to_delete));
-
- }else{
-
- // Try to remove a single object, only FAI objects can be removed!
- $headpage = $this->getHeadpage();
- if(count($target) == 1){
- $entry = $headpage->getEntry($target[0]);
- if($entry && !in_array("FAKE_OC_OPSI",$entry['objectClass'])){
- $this->dialogObject = new faiGroupHandle($entry['GROUPS'],"remove");
- }
- }
- }
- }
-
- /*! \brief Object removal was confirmed, now remove the requested entries.
- *
- * @param String 'action' The name of the action which was the used as trigger.
- * @param Array 'target' A list of object dns, which should be affected by this method.
- * @param Array 'all' A combination of both 'action' and 'target'.
+ /*! \brief Entry removal is confirmed, now remove objects
*/
function removeEntryConfirmed($action="",$target=array(),$all=array(),
$altTabClass="",$altTabType="",$altAclCategory="")
}
+ /*! \brief Someone clicked on edit/remove for a grouped FAI object.
+ * We are now going to display a dialog to let the user select the entry
+ * he wants to perform the action on.
+ */
function editByGroup()
{
if($this->dialogObject instanceOf faiGroupHandle && $this->dialogObject->get_mode() == "edit"){
}
}
-
+
+ /*! \brief Save dialog/object modifications
+ */
protected function saveChanges()
{
$str = management::saveChanges();
}
}
+
+ /*! \brief Save dialog/object modifications but keep the dialogs opened
+ */
protected function applyChanges()
{
$str = management::applyChanges();
}
}
- function detectPostActions()
- {
- $action = management::detectPostActions();
- if(isset($_POST['remove_multiple'])) $action['action'] = "remove";
- if(isset($_POST['new_profile'])) $action['action'] = "new_profile";
- if(isset($_POST['new_template'])) $action['action'] = "new_template";
- if(isset($_POST['new_script'])) $action['action'] = "new_script";
- if(isset($_POST['new_hook'])) $action['action'] = "new_hook";
- if(isset($_POST['new_variable'])) $action['action'] = "new_variable";
- if(isset($_POST['new_package'])) $action['action'] = "new_package";
- if(isset($_POST['new_partition'])) $action['action'] = "new_partition";
-
-
- if(isset($_POST['save_properties'])) $action['action'] = "saveOpsiProperties";
- if(isset($_POST['cancel_properties'])) $action['action'] = "cancel";
-
- if(isset($_POST['edit_continue'])) $action['action'] = "newClassNameSelected";
- if(isset($_POST['edit_cancel'])) $action['action'] = "cancel";
-
- if(isset($_POST['faiGroupHandle_cancel'])) $action['action'] = "cancel";
- if(isset($_POST['CancelBranchName'])) $action['action'] = "cancel";
- if(isset($_POST['delete_branch_confirm'])) $action['action'] = "removeBranchConfirmed";
- if(isset($_GET['PerformBranch'])) $action['action'] = "PerformBranch";
- if(isset($_POST['UseBranchName'])) $action['action'] = "saveBranch";
- if(isset($_POST['faiGroupHandle_apply'])) $action['action'] = "editByGroup";
- if(isset($_GET['act']) && $_GET['act'] == "branch_branch") $action['action'] = "createBranch";
- if(isset($_GET['act']) && $_GET['act'] == "freeze_branch") $action['action'] = "createFreeze";
- if(isset($_GET['act']) && $_GET['act'] == "remove_branch") $action['action'] = "removeBranch";
-
- foreach($_POST as $name => $value){
- if(preg_match("/^edit_([0-9]*)_([a-z_]*)_(x|y)/i", $name)){
- $id = preg_replace("/^edit_([0-9]*)_([a-z_]*)_(x|y)/i","\\1", $name);
- $tab = preg_replace("/^edit_([0-9]*)_([a-z_]*)_(x|y)/i","\\2", $name);
-
- $headpage = $this->getHeadpage();
- $entry = $headpage->entries[$id];
-
- if(in_array('FAKE_OC_FAI', $entry['objectClass'])){
- if(isset($headpage->entries[$id]['GROUPS'][$tab])){
- $data =$headpage->entries[$id]['GROUPS'][$tab];
- $type = $this->get_type($data);
- $str = management::editEntry('editEntry',array($data['dn']),array(),$type[0],$type[2],$type[1]);
- if($str) return($str);
- }
- }else{
- $str = $this->editEntry('editEntry',array($entry['dn']));
- if($str) return($str);
- }
- break;
- }
- }
- return($action);
- }
-
-
- function renderList()
- {
- $filter = $this->getFilter();
- $headpage = $this->getHeadpage();
- $filter->setComboBoxOptions("RELEASE",$this->getReleaseList());
-
- if(isset($_POST['RELEASE'])){
- $this->fai_release = get_post('RELEASE');
- }
- $headpage->setBase($this->fai_release);
- $headpage->update();
- $smarty = get_smarty();
- $smarty->assign("fai_release", $this->fai_release);
- $smarty->assign("opsi_available", is_object($this->opsi));
- $smarty->assign("fai_base", $this->fai_base);
- $r = $this->config->search("faiManagement", "POSTREMOVE",array('menu','tabs'));
- $c = $this->config->search("faiManagement", "POSTCREATE",array('menu','tabs'));
- $smarty->assign("allow_create", $c);
- $smarty->assign("allow_remove", $r);
- $display = $headpage->render();
- return($this->getHeader().$display);
- }
-
- function getReleaseList($base = "", $prefix ="")
- {
- $list = array();
- if(empty($base)){
- $base = $this->fai_base;
- $list[$base] = "/";
- }
-
- $ldap = $this->config->get_ldap_link();
- $ldap->ls("(objectClass=FAIbranch)",$base,array("ou","FAIstate"));
- $cfg_rel = $this->config->search("faiManagement","DEFAULTFAIRELEASE",array("menu"));
-
- while($release = $ldap->fetch()){
- $list[$release['dn']] = $prefix.$release['ou'][0];
-
- // Preset to prefered releaes if necessary
- if(empty($this->fai_release) && $cfg_rel == $release['dn']){
- $this->fai_release = $release['dn'];
- }
-
- $list = array_merge($list,$this->getReleaseList($release['dn'],$prefix." "));
- }
- return($list);
- }
-
-
- static function filterProperties($row, $classes)
- {
- $objects = array(
- "FAIpartitionTable" => array("IMG"=> "plugins/fai/images/fai_partitionTable.png",
- "NAME"=>_("Partition table"),"KZL"=> "PT", "VAR"=>"ShowPartitions"),
- "FAIpackageList" => array("IMG"=> "plugins/fai/images/fai_packages.png",
- "NAME"=>_("Package list") , "KZL"=> "PL", "VAR"=>"ShowPackages"),
- "FAIscript" => array("IMG"=> "plugins/fai/images/fai_script.png",
- "NAME"=>_("Scripts") , "KZL"=> "S", "VAR"=>"ShowScripts"),
- "FAIvariable" => array("IMG"=> "plugins/fai/images/fai_variable.png",
- "NAME"=>_("Variables") , "KZL"=> "V", "VAR"=>"ShowVariables"),
- "FAIhook" => array("IMG"=> "plugins/fai/images/fai_hook.png",
- "NAME"=>_("Hooks"), "KZL"=> "H", "VAR"=>"ShowHooks"),
- "FAIprofile" => array("IMG"=> "plugins/fai/images/fai_profile.png",
- "NAME"=>_("Profile") , "KZL"=> "P", "VAR"=>"ShowProfiles"),
- "FAItemplate" => array("IMG"=> "plugins/fai/images/fai_template.png",
- "NAME"=>_("Templates") , "KZL"=> "T", "VAR"=>"ShowTemplates"),
- "opsi_netboot" => array("IMG"=> "plugins/opsi/images/netboot_package.png",
- "NAME"=>_("OPSI netboot product") , "KZL"=> "ON", "VAR"=>"ShowOpsiNetboot"),
- "opsi_local" => array("IMG"=> "plugins/opsi/images/local_package.png",
- "NAME"=>_("OPSI localboot product") , "KZL"=> "OL", "VAR"=>"ShowOpsiLocal"));
-
- $icon_list = "";
- foreach($objects as $type => $type_data){
- if(in_array($type, $classes)){
- $icon_list .= "<input type='image' src='".$type_data['IMG']."' title='".$type_data['NAME']."'
- alt='".$type_data['KZL']."' class='center' name='edit_".$row."_".$type."'>\n";
- }else{
- $icon_list .= "<img src='images/empty.png' alt=' ' class='center'>\n";
- }
- }
-
- return $icon_list;
- }
-
-
-
+ /*! \brief Initiates release removal
+ */
function removeBranch()
{
/* Check if we have a post remove method configured
}
+ /*! \brief Remove a release after removal was confirmed
+ */
function removeBranchConfirmed()
{
/* Check if we have a post remove method configured
}
+ /*! \brief Initiates release creation
+ */
function createBranch()
{
$smarty = get_smarty();
return($smarty->fetch(get_template_path('faiNewBranch.tpl', TRUE, dirname(__FILE__))));
}
+
+ /*! \brief Initiates release creation
+ */
function createFreeze()
{
$smarty = get_smarty();
}
-
+ /*! \brief Creates a new branch
+ */
function PerformBranch()
{
if(!preg_match("/c/",$this->ui->get_permissions($this->acl_base,"fai/faiManagement"))){
}
-
-
+ /*! \brief Creates a new branch, after a useable name was specified.
+ */
function saveBranch()
{
if($this->dispNewBranch){
$smarty->assign("plugID", $_GET['plug']);
$display = $smarty->fetch(get_template_path('faiNewBranch.tpl', TRUE, dirname(__FILE__)));
return($display);
-
+
}
- function CheckNewBranchName($name,$base)
+
+ /*! \brief Returns a list of all releases for useable for drop down boxes.
+ * ou=fai... /
+ * ou=siga,ou=fai... siga
+ * ou=1,ou=siga,ou=fai... 1
+ */
+ function getReleaseList($base = "", $prefix ="")
{
- $f = $this->fai_release;
- if($name == ""){
- return(false);
- }elseif(in_array($name,$this->getBranches($f))) {
- return(false);
- }elseif(tests::is_department_name_reserved($name,$base)){
- return(false);
+ $list = array();
+ if(empty($base)){
+ $base = $this->fai_base;
+ $list[$base] = "/";
}
- return(true);
+
+ $ldap = $this->config->get_ldap_link();
+ $ldap->ls("(objectClass=FAIbranch)",$base,array("ou","FAIstate"));
+ $cfg_rel = $this->config->search("faiManagement","DEFAULTFAIRELEASE",array("menu"));
+
+ while($release = $ldap->fetch()){
+ $list[$release['dn']] = $prefix.$release['ou'][0];
+
+ // Preset to prefered releaes if necessary
+ if(empty($this->fai_release) && $cfg_rel == $release['dn']){
+ $this->fai_release = $release['dn'];
+ }
+
+ $list = array_merge($list,$this->getReleaseList($release['dn'],$prefix." "));
+ }
+ return($list);
}
- /* Get available branches for current base */
+ /*! \brief Returns a list of all releases with full release names
+ * ou=fai... /
+ * ou=siga,ou=fai... siga
+ * ou=1,ou=siga,ou=fai... siga/1
+ */
function getBranches($base = false,$prefix = "")
{
$ret = array("/"=>$this->fai_base);
}
+ /*! \brief Detects object info like corresponding tab,class,acl
+ * e.g. [0] = tabsPartition
+ * [1] = faiPartitionTable
+ * [2] = FAIPARTITIONTABS
+ */
function get_type($array)
{
if(!isset($array['objectClass'])) return(array());
}
- /* Check if the given FAI class is used in this release
+ /*! \brief Checks if the given string can be used as class name
*/
static function check_class_name($oc,$name,$dn)
{
}
+ /*! \brief Checks if the given string can be used for a new release
+ */
+ function CheckNewBranchName($name,$base)
+ {
+ $f = $this->fai_release;
+ if($name == ""){
+ return(false);
+ }elseif(in_array($name,$this->getBranches($f))) {
+ return(false);
+ }elseif(tests::is_department_name_reserved($name,$base)){
+ return(false);
+ }
+ return(true);
+ }
+
+
+ /*! \brief This filter is used to display small icons for each listed object
+ * instead of their typ names
+ */
+ static function filterProperties($row, $classes)
+ {
+ $objects = array(
+ "FAIpartitionTable" => array("IMG"=> "plugins/fai/images/fai_partitionTable.png",
+ "NAME"=>_("Partition table"),"KZL"=> "PT", "VAR"=>"ShowPartitions"),
+ "FAIpackageList" => array("IMG"=> "plugins/fai/images/fai_packages.png",
+ "NAME"=>_("Package list") , "KZL"=> "PL", "VAR"=>"ShowPackages"),
+ "FAIscript" => array("IMG"=> "plugins/fai/images/fai_script.png",
+ "NAME"=>_("Scripts") , "KZL"=> "S", "VAR"=>"ShowScripts"),
+ "FAIvariable" => array("IMG"=> "plugins/fai/images/fai_variable.png",
+ "NAME"=>_("Variables") , "KZL"=> "V", "VAR"=>"ShowVariables"),
+ "FAIhook" => array("IMG"=> "plugins/fai/images/fai_hook.png",
+ "NAME"=>_("Hooks"), "KZL"=> "H", "VAR"=>"ShowHooks"),
+ "FAIprofile" => array("IMG"=> "plugins/fai/images/fai_profile.png",
+ "NAME"=>_("Profile") , "KZL"=> "P", "VAR"=>"ShowProfiles"),
+ "FAItemplate" => array("IMG"=> "plugins/fai/images/fai_template.png",
+ "NAME"=>_("Templates") , "KZL"=> "T", "VAR"=>"ShowTemplates"),
+ "opsi_netboot" => array("IMG"=> "plugins/opsi/images/netboot_package.png",
+ "NAME"=>_("OPSI netboot product") , "KZL"=> "ON", "VAR"=>"ShowOpsiNetboot"),
+ "opsi_local" => array("IMG"=> "plugins/opsi/images/local_package.png",
+ "NAME"=>_("OPSI localboot product") , "KZL"=> "OL", "VAR"=>"ShowOpsiLocal"));
+
+ $icon_list = "";
+ foreach($objects as $type => $type_data){
+ if(in_array($type, $classes)){
+ $icon_list .= "<input type='image' src='".$type_data['IMG']."' title='".$type_data['NAME']."'
+ alt='".$type_data['KZL']."' class='center' name='edit_".$row."_".$type."'>\n";
+ }else{
+ $icon_list .= "<img src='images/empty.png' alt=' ' class='center'>\n";
+ }
+ }
+
+ return $icon_list;
+ }
+
+
+ /*! \brief Overridden render method of class mangement.
+ * this allows us to add a release selection box.
+ */
+ function renderList()
+ {
+ $filter = $this->getFilter();
+ $headpage = $this->getHeadpage();
+ $filter->setComboBoxOptions("RELEASE",$this->getReleaseList());
+
+ if(isset($_POST['RELEASE'])){
+ $this->fai_release = get_post('RELEASE');
+ }
+ $headpage->setBase($this->fai_release);
+ $headpage->update();
+ $smarty = get_smarty();
+ $smarty->assign("fai_release", $this->fai_release);
+ $smarty->assign("opsi_available", is_object($this->opsi));
+ $smarty->assign("fai_base", $this->fai_base);
+ $r = $this->config->search("faiManagement", "POSTREMOVE",array('menu','tabs'));
+ $c = $this->config->search("faiManagement", "POSTCREATE",array('menu','tabs'));
+ $smarty->assign("allow_create", $c);
+ $smarty->assign("allow_remove", $r);
+ $display = $headpage->render();
+ return($this->getHeader().$display);
+ }
+
+
+ /*! \brief Convert POST and GET variables into actions.
+ */
+ function detectPostActions()
+ {
+ $action = management::detectPostActions();
+ if(isset($_POST['remove_multiple'])) $action['action'] = "remove";
+ if(isset($_POST['new_profile'])) $action['action'] = "new_profile";
+ if(isset($_POST['new_template'])) $action['action'] = "new_template";
+ if(isset($_POST['new_script'])) $action['action'] = "new_script";
+ if(isset($_POST['new_hook'])) $action['action'] = "new_hook";
+ if(isset($_POST['new_variable'])) $action['action'] = "new_variable";
+ if(isset($_POST['new_package'])) $action['action'] = "new_package";
+ if(isset($_POST['new_partition'])) $action['action'] = "new_partition";
+
+ if(isset($_POST['save_properties'])) $action['action'] = "saveOpsiProperties";
+ if(isset($_POST['cancel_properties'])) $action['action'] = "cancel";
+
+ if(isset($_POST['edit_continue'])) $action['action'] = "newClassNameSelected";
+ if(isset($_POST['edit_cancel'])) $action['action'] = "cancel";
+
+ if(isset($_POST['faiGroupHandle_cancel'])) $action['action'] = "cancel";
+ if(isset($_POST['CancelBranchName'])) $action['action'] = "cancel";
+ if(isset($_POST['delete_branch_confirm'])) $action['action'] = "removeBranchConfirmed";
+ if(isset($_GET['PerformBranch'])) $action['action'] = "PerformBranch";
+ if(isset($_POST['UseBranchName'])) $action['action'] = "saveBranch";
+ if(isset($_POST['faiGroupHandle_apply'])) $action['action'] = "editByGroup";
+ if(isset($_GET['act']) && $_GET['act'] == "branch_branch") $action['action'] = "createBranch";
+ if(isset($_GET['act']) && $_GET['act'] == "freeze_branch") $action['action'] = "createFreeze";
+ if(isset($_GET['act']) && $_GET['act'] == "remove_branch") $action['action'] = "removeBranch";
+
+ foreach($_POST as $name => $value){
+ if(preg_match("/^edit_([0-9]*)_([a-z_]*)_(x|y)/i", $name)){
+ $id = preg_replace("/^edit_([0-9]*)_([a-z_]*)_(x|y)/i","\\1", $name);
+ $tab = preg_replace("/^edit_([0-9]*)_([a-z_]*)_(x|y)/i","\\2", $name);
+
+ $headpage = $this->getHeadpage();
+ $entry = $headpage->entries[$id];
+
+ if(in_array('FAKE_OC_FAI', $entry['objectClass'])){
+ if(isset($headpage->entries[$id]['GROUPS'][$tab])){
+ $data =$headpage->entries[$id]['GROUPS'][$tab];
+ $type = $this->get_type($data);
+ $str = management::editEntry('editEntry',array($data['dn']),array(),$type[0],$type[2],$type[1]);
+ if($str) return($str);
+ }
+ }else{
+ $str = $this->editEntry('editEntry',array($entry['dn']));
+ if($str) return($str);
+ }
+ break;
+ }
+ }
+ return($action);
+ }
+
+
+ static function plInfo()
+ {
+ return (array(
+ "plShortName" => _("FAI releases"),
+ "plDescription" => _("FAI release management"),
+ "plSelfModify" => FALSE,
+ "plDepends" => array(),
+ "plPriority" => 0,
+ "plSection" => array("administration"),
+ "plCategory" => array("fai"=> array("description" => _("FAI"),
+ "objectClass" => "FAIclass")),
+ "plProvidedAcls"=> array()));
+ }
}
// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
?>