summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormichael pereira2011-04-07 02:20:20 +0200
committermichael pereira2011-04-07 02:20:20 +0200
commit169dd00f24dbce4c2828980a868c39115021a374 (patch)
tree97b7546dc8b61f496dd6b69aa408d907f8bf6eac
parentneues Design eingebettet, bei Role, Person &Group muss noch etwas überlegt w... (diff)
downloadpbs2-169dd00f24dbce4c2828980a868c39115021a374.tar.gz
pbs2-169dd00f24dbce4c2828980a868c39115021a374.tar.xz
pbs2-169dd00f24dbce4c2828980a868c39115021a374.zip
Bootos und Configs in Bootmenuentry categorisiert
-rw-r--r--application/modules/user/controllers/BootmenuController.php58
-rw-r--r--application/modules/user/forms/BootmenuEntries.php32
2 files changed, 70 insertions, 20 deletions
diff --git a/application/modules/user/controllers/BootmenuController.php b/application/modules/user/controllers/BootmenuController.php
index 560b9a5..77f509c 100644
--- a/application/modules/user/controllers/BootmenuController.php
+++ b/application/modules/user/controllers/BootmenuController.php
@@ -247,9 +247,31 @@ class user_BootmenuController extends Zend_Controller_Action
$bootosMapper = new Application_Model_BootOsMapper();
$configMapper = new Application_Model_ConfigMapper();
- $bootoslist = $bootosMapper->fetchAll();
- $configlist = $configMapper->fetchAll();
-
+ $groupMapper = new Application_Model_GroupMapper();
+
+ $groupID = $this->membership->getGroupID();
+ $groupgroupsMapper = new Application_Model_GroupGroupsMapper();
+
+ $parents = array();
+ $bootoslist = array();
+ $parents = $groupgroupsMapper->getParentGroups($groupID);
+
+ foreach($parents as $k => $parent){
+ foreach($parent as $p){
+ $bootos = $bootosMapper->findBy(array("groupID" => $p));
+ foreach ($bootos as $b)
+ if($b->getPublic() - $k >= 0 ){
+ $grouptitle = $groupMapper->find($p)->getTitle();
+ $bootoslist[$b->getID()] = $b;
+ $bootosanzeige[$grouptitle][$b->getID()] = $b->getTitle();
+ }
+ }
+ }
+
+ $configlist = array('Preset' => array(), 'Custom' => Array());
+ $configlist['Preset'] = $configMapper->findBy(array('groupID' => $groupID));
+ $configlist['Custom'] = $configMapper->findBy(array('membershipID' => $this->membership->getID()));
+
if($this->membership->getGroupID() != $this->bootmenuMapper->find($bootmenuID)->getGroupID())
$this->_redirect('/user/bootmenu/index/page/'.$this->page.'/modifyresult/forbidden');
@@ -257,6 +279,7 @@ class user_BootmenuController extends Zend_Controller_Action
$bootmenuentryForm = new user_Form_BootmenuEntries(array(
'bootoslist'=> $bootoslist,
+ 'bootosanzeige' => $bootosanzeige,
'maxorder'=> $maxorder,
'configlist'=> $configlist,
'page' => $this->page,
@@ -272,6 +295,7 @@ class user_BootmenuController extends Zend_Controller_Action
$bootmenuentryForm = new user_Form_BootmenuEntries(array(
'bootoslist'=>$bootoslist,
+ 'bootosanzeige' => $bootosanzeige,
'maxorder'=> $maxorder,
'configlist'=>$configlist,
'page' => $this->page,
@@ -320,8 +344,30 @@ class user_BootmenuController extends Zend_Controller_Action
$bootosMapper = new Application_Model_BootOsMapper();
$configMapper = new Application_Model_ConfigMapper();
- $bootoslist = $bootosMapper->fetchAll();
- $configlist = $configMapper->fetchAll();
+
+ $groupID = $this->membership->getGroupID();
+ $groupgroupsMapper = new Application_Model_GroupGroupsMapper();
+ $groupMapper = new Application_Model_GroupMapper();
+
+ $parents = array();
+ $bootoslist = array();
+ $parents = $groupgroupsMapper->getParentGroups($groupID);
+
+ foreach($parents as $k => $parent){
+ foreach($parent as $p){
+ $bootos = $bootosMapper->findBy(array("groupID" => $p));
+ foreach ($bootos as $b)
+ if($b->getPublic() - $k >= 0 ){
+ $grouptitle = $groupMapper->find($p)->getTitle();
+ $bootoslist[$b->getID()] = $b;
+ $bootosanzeige[$grouptitle][$b->getID()] = $b->getTitle();
+ }
+ }
+ }
+
+ $configlist = array('Preset' => array(), 'Custom' => Array());
+ $configlist['Preset'] = $configMapper->findBy(array('groupID' => $groupID));
+ $configlist['Custom'] = $configMapper->findBy(array('membershipID' => $this->membership->getID()));
$bootmenuentry = new Application_Model_BootMenuEntries();
$bootmenu = new Application_Model_BootMenu();
@@ -335,6 +381,7 @@ class user_BootmenuController extends Zend_Controller_Action
$bootmenuentryForm = new user_Form_BootmenuEntries(array(
'bootoslist'=> $bootoslist,
+ 'bootosanzeige' => $bootosanzeige,
'maxorder'=> $maxorder-1,
'configlist'=> $configlist,
'kcl' => $bootmenuentry->getKcl(),
@@ -354,6 +401,7 @@ class user_BootmenuController extends Zend_Controller_Action
}else{
$bootmenuentryForm = new user_Form_BootmenuEntries(array(
'bootoslist'=> $bootoslist,
+ 'bootosanzeige' => $bootosanzeige,
'maxorder'=> $maxorder-1,
'configlist'=> $configlist,
'kcl' => $bootmenuentry->getKcl(),
diff --git a/application/modules/user/forms/BootmenuEntries.php b/application/modules/user/forms/BootmenuEntries.php
index 413b09a..56ed5da 100644
--- a/application/modules/user/forms/BootmenuEntries.php
+++ b/application/modules/user/forms/BootmenuEntries.php
@@ -3,6 +3,7 @@
class user_Form_BootmenuEntries extends Zend_Form
{
private $bootoslist;
+ private $bootosanzeige;
private $configlist;
private $maxorder;
private $action;
@@ -21,6 +22,9 @@ class user_Form_BootmenuEntries extends Zend_Form
public function setBootoslist($bootoslist){
$this->bootoslist = $bootoslist;
}
+ public function setBootosanzeige($bootosanzeige){
+ $this->bootosanzeige = $bootosanzeige;
+ }
public function setMaxorder($maxorder){
$this->maxorder = $maxorder;
@@ -40,8 +44,9 @@ class user_Form_BootmenuEntries extends Zend_Form
{
if(!isset($_POST['bootosID'])){
- $firstbootos = array_slice($this->bootoslist,0,1);
- $_POST['bootosID'] = $firstbootos[0]->getID();
+ @list($key) = array_keys($this->bootoslist);
+ $firstbootos = $this->bootoslist[$key];
+ $_POST['bootosID'] = $firstbootos->getID();
if(isset($this->kcl))
$_POST['kclactive'] = true;
else
@@ -69,14 +74,8 @@ class user_Form_BootmenuEntries extends Zend_Form
$bootosfield ->setLabel('BootOs:');
$bootosfield->setAttrib('onChange', "document.getElementById('".$this->action."').submit();");
$bootosfield->setAttrib('readOnly', $meta);
-
- if(count($this->bootoslist)>0){
- foreach($this->bootoslist as $bootos => $b){
- $bootosfield->addMultiOption($b->getID(), $b->getTitle());
- }
- }
+ $bootosfield->addMultiOptions($this->bootosanzeige);
$bootosfield->setRegisterInArrayValidator(false);
-
$this->addElement($bootosfield);
$kclactive = $this->createElement('checkbox','kclactive');
@@ -123,16 +122,18 @@ class user_Form_BootmenuEntries extends Zend_Form
$defaultconfigid = $this->bootoslist[$_POST['bootosID']]->getConfigID();
$configfield = $this->createElement('select','configID');
$configfield->setLabel('Config:');
- $configfield->addMultiOption($defaultconfigid, 'default');
$configfield->setAttrib('readOnly', $meta);
+ $options = array('Preset' => array($defaultconfigid => 'default'), 'Custom' => array());
+
if(count($this->configlist)>0){
- foreach($this->configlist as $config => $c){
- if($c->getID() != $defaultconfigid)
- $configfield->addMultiOption($c->getID(), $c->getTitle());
- }
+ foreach($this->configlist as $k => $v){
+ foreach($v as $c)
+ if($c->getID() != $defaultconfigid)
+ $options[$k][$c->getID()] = $c->getTitle();
+ }
}
-
+ $configfield->addMultiOptions($options);
$configfield->setRegisterInArrayValidator(false);
$this->addElement($configfield);
@@ -146,6 +147,7 @@ class user_Form_BootmenuEntries extends Zend_Form
$orderfield->setRegisterInArrayValidator(false);
$this->addElement($orderfield);
+
if($this->action == "addbootmenuentry")
$label = "Add Bootmenuentry";
else