summaryrefslogtreecommitdiffstats
path: root/application/modules/dev/controllers
diff options
context:
space:
mode:
authormichael pereira2011-03-21 10:49:32 +0100
committermichael pereira2011-03-21 10:49:32 +0100
commit19d1af16ad8a2fdaa5aa608693b81fa9502e162d (patch)
treeb5b00a6fb91fffad157b85bbf209ac7675a86801 /application/modules/dev/controllers
parentFilter funktioniert nun, FBGui IndexController angepasst (diff)
downloadpbs2-19d1af16ad8a2fdaa5aa608693b81fa9502e162d.tar.gz
pbs2-19d1af16ad8a2fdaa5aa608693b81fa9502e162d.tar.xz
pbs2-19d1af16ad8a2fdaa5aa608693b81fa9502e162d.zip
Preboot Controller eingerichtet
Diffstat (limited to 'application/modules/dev/controllers')
-rw-r--r--application/modules/dev/controllers/BootisoController.php57
-rw-r--r--application/modules/dev/controllers/PrebootController.php170
2 files changed, 209 insertions, 18 deletions
diff --git a/application/modules/dev/controllers/BootisoController.php b/application/modules/dev/controllers/BootisoController.php
index 86454cd..7390c95 100644
--- a/application/modules/dev/controllers/BootisoController.php
+++ b/application/modules/dev/controllers/BootisoController.php
@@ -14,25 +14,57 @@ class dev_BootisoController extends Zend_Controller_Action
$groupmapper = new Application_Model_GroupMapper();
$membershipmapper = new Application_Model_MembershipMapper();
$personmapper = new Application_Model_PersonMapper();
+ $prebootmapper = new Application_Model_PreBootMapper();
$this->view->bootisolist = $bootisomapper->fetchAll();
+ $this->view->prebootlist = array();
+
foreach ($this->view->bootisolist as $bootiso){
+ $this->view->prebootlist[$bootiso->getID()] = $prebootmapper->find($bootiso->getPrebootID())->getTitle();
$bootiso->setGroupID("[".$bootiso->getGroupID()."] ".$groupmapper->find($bootiso->getGroupID())->getTitle());
$bootiso->setMembershipID("[".$bootiso->getMembershipID()."] ".$personmapper->find($membershipmapper->find($bootiso->getMembershipID())->getPersonID())->getFirstname());
}
}
+
+ public function downloadbootisoAction()
+ {
+ $this->_helper->layout->disableLayout();
+ $this->_helper->viewRenderer->setNoRender();
+
+ $prebootID = $this->_request->getParams('prebootID');
+
+ // if(is_dir("../resources/bootmedium/$prebootID/") && is_numeric($prebootID)){
+
+ header('Content-Type: application/x-gzip');
+ $content_disp = ( ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT']) == 'IE') ? 'inline' : 'attachment';
+ header('Content-Disposition: ' . $content_disp . '; filename="preboot.tar.gz"');
+ header('Pragma: no-cache');
+ header('Expires: 0');
+
+ // create the gzipped tarfile.
+ chdir(APPLICATION_PATH . "/resources/bootmedium/$prebootID/");
+ passthru( "tar cz ./");
+
+ $this->_redirect('/dev/bootiso');
+ //}
+
+
+
+
+ }
public function createbootisoAction()
{
$groupmapper = new Application_Model_GroupMapper();
+ $prebootmapper = new Application_Model_PreBootMapper();
if (!isset($_POST["createbootiso"])){
- $createbootisoForm = new dev_Form_BootisoCreate(array('grouplist' => $groupmapper->fetchAll()));
+ $createbootisoForm = new dev_Form_BootisoCreate(array('grouplist' => $groupmapper->fetchAll(),'prebootlist' => $prebootmapper->fetchAll()));
} else {
- $createbootisoForm = new dev_Form_BootisoCreate(array('grouplist' => $groupmapper->fetchAll()),$_POST);
+ $createbootisoForm = new dev_Form_BootisoCreate(array('grouplist' => $groupmapper->fetchAll(),'prebootlist' => $prebootmapper->fetchAll()),$_POST);
if ($createbootisoForm->isValid($_POST)) {
@@ -43,21 +75,8 @@ class dev_BootisoController extends Zend_Controller_Action
try {
- exec("wget --spider ".$bootiso->getPath_fbgui()." 2>&1 | grep 'Remote file exists.'", $exists_fbgui);
-
- if(!array_pop($exists_fbgui)){
- $this->view->createbootisoForm = $createbootisoForm;
- return;
- }
-
$bootisomapper->save($bootiso);
-
- $path_fbgui = "../resources/bootmedium/fbgui/";
-
- exec("wget -P ".$path_fbgui." -N ".$bootiso->getPath_fbgui());
-
-
-
+
}catch(Zend_Exception $e)
{
echo "Caught exception: " . get_class($e) . "<br/>";
@@ -75,6 +94,8 @@ class dev_BootisoController extends Zend_Controller_Action
{
$bootisoID = $this->_request->getParam('bootisoID');
$groupmapper = new Application_Model_GroupMapper();
+ $prebootmapper = new Application_Model_PreBootMapper();
+
if (!isset($_POST["editbootiso"])){
$bootisoID = $this->_request->getParam('bootisoID');
@@ -85,11 +106,11 @@ class dev_BootisoController extends Zend_Controller_Action
$bootisomapper = new Application_Model_BootIsoMapper();
$bootisomapper->find($bootisoID, $bootiso);
- $editbootisoForm = new dev_Form_BootisoEdit(array('grouplist' => $groupmapper->fetchAll()));
+ $editbootisoForm = new dev_Form_BootisoEdit(array('grouplist' => $groupmapper->fetchAll(),'prebootlist' => $prebootmapper->fetchAll()));
$editbootisoForm->populate($bootiso->toArray());
}
}else{
- $editbootisoForm = new dev_Form_BootisoEdit(array('grouplist' => $groupmapper->fetchAll()),$_POST);
+ $editbootisoForm = new dev_Form_BootisoEdit(array('grouplist' => $groupmapper->fetchAll(),'prebootlist' => $prebootmapper->fetchAll()),$_POST);
if ($editbootisoForm->isValid($_POST)) {
diff --git a/application/modules/dev/controllers/PrebootController.php b/application/modules/dev/controllers/PrebootController.php
new file mode 100644
index 0000000..e319058
--- /dev/null
+++ b/application/modules/dev/controllers/PrebootController.php
@@ -0,0 +1,170 @@
+<?php
+
+class dev_PrebootController extends Zend_Controller_Action
+{
+
+ public function init()
+ {
+ $db = Zend_Db_Table::getDefaultAdapter();
+ }
+
+ public function indexAction()
+ {
+ $prebootmapper = new Application_Model_PreBootMapper();
+ $groupmapper = new Application_Model_GroupMapper();
+ $membershipmapper = new Application_Model_MembershipMapper();
+ $personmapper = new Application_Model_PersonMapper();
+
+ $this->view->prebootlist = $prebootmapper->fetchAll();
+ $this->view->update = array();
+
+ foreach ($this->view->prebootlist as $preboot){
+ $this->view->update[$preboot->getID()] = $this->checkupdateAction($preboot);
+ $preboot->setGroupID("[".$preboot->getGroupID()."] ".$groupmapper->find($preboot->getGroupID())->getTitle());
+ $preboot->setMembershipID("[".$preboot->getMembershipID()."] ".$personmapper->find($membershipmapper->find($preboot->getMembershipID())->getPersonID())->getFirstname());
+ }
+ }
+
+ public function createprebootAction()
+ {
+ $groupmapper = new Application_Model_GroupMapper();
+
+ if (!isset($_POST["createpreboot"])){
+ $createprebootForm = new dev_Form_PrebootCreate(array('grouplist' => $groupmapper->fetchAll()));
+ } else {
+
+ $createprebootForm = new dev_Form_PrebootCreate(array('grouplist' => $groupmapper->fetchAll()),$_POST);
+
+ if ($createprebootForm->isValid($_POST)) {
+
+ $preboot = new Application_Model_PreBoot($_POST);
+ $preboot->setMembershipID('1');
+ $prebootmapper = new Application_Model_PreBootMapper();
+
+ try {
+
+ exec("wget --spider ".$preboot->getPath_preboot()." 2>&1 | grep 'Remote file exists.'", $exists_preboot);
+
+ if(!array_pop($exists_preboot)){
+ $this->view->createprebootForm = $createprebootForm;
+ return;
+ }
+
+ $prebootID = $prebootmapper->save($preboot);
+
+ $path_preboot = "../resources/bootmedium/$prebootID/";
+
+ exec("wget -P ".$path_preboot." -r -nH --cut-dirs=1 -np -R '*.html*' -N ".$preboot->getPath_preboot());
+
+
+ }catch(Zend_Exception $e)
+ {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+
+ }
+ $this->_redirect('/dev/preboot');
+ }
+ }
+
+ $this->view->createprebootForm = $createprebootForm;
+ }
+
+ public function checkupdateAction($preboot)
+ {
+ exec("wget --server-response --spider ".escapeshellcmd($preboot->getPath_preboot())."changed 2>&1 | grep 'Last-Modified:'", $prebootdate);
+
+ //print_a($prebootdate);
+
+ $prebootdate = strtotime(trim(str_replace('Last-Modified:', '', array_pop($prebootdate))));
+ $prebootname = array_pop(scandir("../resources/bootmedium/".$preboot->getID()."/"));
+
+ if($prebootname != "." && $prebootname != "..")
+ $prebootolddate = filemtime("../resources/bootmedium/".$preboot->getID()."/".$prebootname);
+ else
+ $prebootolddate = false;
+
+ //print_a($prebootname,$prebootdate,$prebootolddate);
+
+
+ if($prebootdate > $prebootolddate)
+ return true;
+ else
+ return false;
+
+ }
+
+ public function updateprebootAction()
+ {
+ $prebootID = $this->_request->getParam('prebootID');
+ $prebootmapper = new Application_Model_PreBootMapper();
+ $preboot = new Application_Model_PreBoot();
+ $prebootmapper->find($prebootID,$preboot);
+
+ $path_preboot = "../resources/bootmedium/$prebootID/";
+
+ exec("wget -P ".$path_preboot." -r -nH --cut-dirs=1 -np -R '*.html*' -N ".$preboot->getPath_preboot());
+
+ $this->_redirect('/dev/preboot');
+ }
+
+ public function editprebootAction()
+ {
+ $prebootID = $this->_request->getParam('prebootID');
+ $groupmapper = new Application_Model_GroupMapper();
+
+ if (!isset($_POST["editpreboot"])){
+ $prebootID = $this->_request->getParam('prebootID');
+ if (!isset($prebootID) || !is_numeric($prebootID)){
+ $this->_redirect('/dev/preboot');
+ } else {
+ $preboot = new Application_Model_PreBoot();
+ $prebootmapper = new Application_Model_PreBootMapper();
+ $prebootmapper->find($prebootID, $preboot);
+
+ $editprebootForm = new dev_Form_PrebootEdit(array('grouplist' => $groupmapper->fetchAll()));
+ $editprebootForm->populate($preboot->toArray());
+ }
+ }else{
+ $editprebootForm = new dev_Form_PrebootEdit(array('grouplist' => $groupmapper->fetchAll()),$_POST);
+
+ if ($editprebootForm->isValid($_POST)) {
+
+ $preboot = new Application_Model_PreBoot($_POST);
+ $preboot->setMembershipID('1');
+ $prebootmapper = new Application_Model_PreBootMapper();
+ $preboot->setID($prebootID);
+
+ try {
+ $prebootmapper->save($preboot);
+ }catch(Zend_Exception $e)
+ {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ }
+
+ $this->_redirect('/dev/preboot');
+ }
+
+ }
+
+ $this->view->editprebootForm = $editprebootForm;
+ }
+
+ public function deleteprebootAction()
+ {
+ $prebootID = $this->_request->getParam('prebootID');
+ if (!isset($prebootID)){
+ $this->_redirect('/dev/preboot');
+ } else {
+ $preboot = new Application_Model_PreBoot();
+ $preboot->setID($prebootID);
+ $prebootmapper = new Application_Model_PreBootMapper();
+ $prebootmapper->delete($preboot);
+ }
+ $this->_redirect('/dev/preboot');
+ }
+
+
+}
+