From 19d1af16ad8a2fdaa5aa608693b81fa9502e162d Mon Sep 17 00:00:00 2001
From: michael pereira
Date: Mon, 21 Mar 2011 10:49:32 +0100
Subject: Preboot Controller eingerichtet
---
.../modules/dev/controllers/BootisoController.php | 57 ++++---
.../modules/dev/controllers/PrebootController.php | 170 +++++++++++++++++++++
application/modules/dev/forms/BootisoCreate.php | 35 +++--
application/modules/dev/forms/BootisoEdit.php | 33 ++--
application/modules/dev/forms/PrebootCreate.php | 62 ++++++++
application/modules/dev/forms/PrebootEdit.php | 59 +++++++
application/modules/dev/layouts/dev.phtml | 4 +-
.../modules/dev/views/scripts/bootiso/index.phtml | 21 ++-
.../modules/dev/views/scripts/bootos/index.phtml | 2 +-
.../dev/views/scripts/preboot/createpreboot.phtml | 4 +
.../dev/views/scripts/preboot/editpreboot.phtml | 4 +
.../modules/dev/views/scripts/preboot/index.phtml | 57 +++++++
12 files changed, 458 insertions(+), 50 deletions(-)
create mode 100644 application/modules/dev/controllers/PrebootController.php
create mode 100644 application/modules/dev/forms/PrebootCreate.php
create mode 100644 application/modules/dev/forms/PrebootEdit.php
create mode 100644 application/modules/dev/views/scripts/preboot/createpreboot.phtml
create mode 100644 application/modules/dev/views/scripts/preboot/editpreboot.phtml
create mode 100644 application/modules/dev/views/scripts/preboot/index.phtml
(limited to 'application/modules/dev')
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) . "
";
@@ -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 @@
+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) . "
";
+ echo "Message: " . $e->getMessage() . "
";
+
+ }
+ $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) . "
";
+ echo "Message: " . $e->getMessage() . "
";
+ }
+
+ $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');
+ }
+
+
+}
+
diff --git a/application/modules/dev/forms/BootisoCreate.php b/application/modules/dev/forms/BootisoCreate.php
index 2ecc2d2..097d781 100644
--- a/application/modules/dev/forms/BootisoCreate.php
+++ b/application/modules/dev/forms/BootisoCreate.php
@@ -4,11 +4,17 @@ class dev_Form_BootisoCreate extends Zend_Form
{
private $grouplist;
+ private $prebootlist;
public function setGrouplist($grouplist){
$this->grouplist = $grouplist;
}
+ public function setPrebootlist($prebootlist){
+ $this->prebootlist = $prebootlist;
+
+ }
+
public function init()
{
@@ -35,15 +41,20 @@ class dev_Form_BootisoCreate extends Zend_Form
$groupfield->setRegisterInArrayValidator(false);
$this->addElement($groupfield);
- $this->addElement('text', 'path_fbgui', array(
- 'filters' => array('StringTrim'),
- 'validators' => array(
- array('StringLength', false, array(0, 50)),
- ),
- 'required' => true,
- 'size' => 50,
- 'label' => 'Path to FbGui:',
- ));
+ $prebootfield = $this->createElement('select','prebootID');
+ $prebootfield ->setLabel('Preboot:');
+
+ if(count($this->prebootlist)>0){
+ foreach($this->prebootlist as $preboot => $p){
+ $prebootfield->addMultiOption($p->getID(), $p->getTitle());
+ }
+ }
+ $prebootfield->setRegisterInArrayValidator(false);
+ $this->addElement($prebootfield);
+
+ $serial = time();
+ for($i=2; $i<14; $i+=3)
+ $serial = substr($serial,0,$i) .'-'. substr($serial,$i,strlen($serial));
$this->addElement('text', 'serialnumber', array(
'filters' => array('StringTrim'),
@@ -53,7 +64,11 @@ class dev_Form_BootisoCreate extends Zend_Form
'required' => true,
'size' => 50,
'label' => 'Serialnumber:',
+ 'value' => $serial
));
+
+
+
$date = new DateTime();
$date->add(new DateInterval('P1Y'));
@@ -84,7 +99,7 @@ class dev_Form_BootisoCreate extends Zend_Form
));
$this->addElement('button', 'Cancel', array(
- 'onclick' => 'self.location="/bootiso"'
+ 'onclick' => 'self.location="/dev/bootiso"'
));
}
diff --git a/application/modules/dev/forms/BootisoEdit.php b/application/modules/dev/forms/BootisoEdit.php
index b1e2fd2..f6a4c48 100644
--- a/application/modules/dev/forms/BootisoEdit.php
+++ b/application/modules/dev/forms/BootisoEdit.php
@@ -3,16 +3,23 @@
class dev_Form_BootisoEdit extends Zend_Form
{
+
private $grouplist;
+ private $prebootlist;
public function setGrouplist($grouplist){
$this->grouplist = $grouplist;
}
+ public function setPrebootlist($prebootlist){
+ $this->prebootlist = $prebootlist;
+
+ }
+
public function init()
{
- $this->setName("BootIsoEdit");
+ $this->setName("BootIsoCreate");
$this->setMethod('post');
$this->addElement('text', 'title', array(
@@ -32,19 +39,19 @@ class dev_Form_BootisoEdit extends Zend_Form
$groupfield->addMultiOption($g->getID(), $g->getTitle());
}
}
-
$groupfield->setRegisterInArrayValidator(false);
$this->addElement($groupfield);
- $this->addElement('text', 'path', array(
- 'filters' => array('StringTrim'),
- 'validators' => array(
- array('StringLength', false, array(0, 50)),
- ),
- 'required' => true,
- 'size' => 50,
- 'label' => 'Path:',
- ));
+ $prebootfield = $this->createElement('select','prebootID');
+ $prebootfield ->setLabel('Preboot:');
+
+ if(count($this->prebootlist)>0){
+ foreach($this->prebootlist as $preboot => $p){
+ $prebootfield->addMultiOption($p->getID(), $p->getTitle());
+ }
+ }
+ $prebootfield->setRegisterInArrayValidator(false);
+ $this->addElement($prebootfield);
$this->addElement('text', 'serialnumber', array(
'filters' => array('StringTrim'),
@@ -75,8 +82,10 @@ class dev_Form_BootisoEdit extends Zend_Form
),
'required' => true,
'label' => 'Public-Level:',
+ 'value' => '0'
));
+
$this->addElement('submit', 'editbootiso', array(
'required' => false,
'ignore' => true,
@@ -84,7 +93,7 @@ class dev_Form_BootisoEdit extends Zend_Form
));
$this->addElement('button', 'Cancel', array(
- 'onclick' => 'self.location="/bootiso"'
+ 'onclick' => 'self.location="/dev/bootiso"'
));
}
diff --git a/application/modules/dev/forms/PrebootCreate.php b/application/modules/dev/forms/PrebootCreate.php
new file mode 100644
index 0000000..6d803f2
--- /dev/null
+++ b/application/modules/dev/forms/PrebootCreate.php
@@ -0,0 +1,62 @@
+grouplist = $grouplist;
+
+ }
+
+ public function init()
+ {
+ $this->setName("PreBootCreate");
+ $this->setMethod('post');
+
+ $this->addElement('text', 'title', array(
+ 'filters' => array('StringTrim'),
+ 'validators' => array(
+ array('StringLength', false, array(0, 50)),
+ ),
+ 'required' => true,
+ 'label' => 'Title:',
+ ));
+
+ $groupfield = $this->createElement('select','groupID');
+ $groupfield ->setLabel('Group:');
+
+ if(count($this->grouplist)>0){
+ foreach($this->grouplist as $group => $g){
+ $groupfield->addMultiOption($g->getID(), $g->getTitle());
+ }
+ }
+ $groupfield->setRegisterInArrayValidator(false);
+ $this->addElement($groupfield);
+
+ $this->addElement('text', 'path_preboot', array(
+ 'filters' => array('StringTrim'),
+ 'validators' => array(
+ array('StringLength', false, array(0, 240)),
+ ),
+ 'required' => true,
+ 'size' => 50,
+ 'label' => 'Path to Preboot:',
+ ));
+
+ $this->addElement('submit', 'createpreboot', array(
+ 'required' => false,
+ 'ignore' => true,
+ 'label' => 'Create Preboot',
+ ));
+
+ $this->addElement('button', 'Cancel', array(
+ 'onclick' => 'self.location="/dev/preboot"'
+ ));
+
+ }
+
+
+}
+
diff --git a/application/modules/dev/forms/PrebootEdit.php b/application/modules/dev/forms/PrebootEdit.php
new file mode 100644
index 0000000..6a66458
--- /dev/null
+++ b/application/modules/dev/forms/PrebootEdit.php
@@ -0,0 +1,59 @@
+grouplist = $grouplist;
+
+ }
+
+ public function init()
+ {
+ $this->setName("PreBootEdit");
+ $this->setMethod('post');
+
+ $this->addElement('text', 'title', array(
+ 'filters' => array('StringTrim'),
+ 'validators' => array(
+ array('StringLength', false, array(0, 50)),
+ ),
+ 'required' => true,
+ 'label' => 'Title:',
+ ));
+
+ $groupfield = $this->createElement('select','groupID');
+ $groupfield ->setLabel('Group:');
+
+ if(count($this->grouplist)>0){
+ foreach($this->grouplist as $group => $g){
+ $groupfield->addMultiOption($g->getID(), $g->getTitle());
+ }
+ }
+ $groupfield->setRegisterInArrayValidator(false);
+ $this->addElement($groupfield);
+
+ $this->addElement('text', 'path_preboot', array(
+ 'filters' => array('StringTrim'),
+ 'validators' => array(
+ array('StringLength', false, array(0, 240)),
+ ),
+ 'required' => true,
+ 'size' => 50,
+ 'label' => 'Path to Preboot:',
+ ));
+
+ $this->addElement('submit', 'editpreboot', array(
+ 'required' => false,
+ 'ignore' => true,
+ 'label' => 'Edit Preboot',
+ ));
+
+ $this->addElement('button', 'Cancel', array(
+ 'onclick' => 'self.location="/dev/preboot"'
+ ));
+
+ }
+}
+
diff --git a/application/modules/dev/layouts/dev.phtml b/application/modules/dev/layouts/dev.phtml
index b911944..a1a2897 100644
--- a/application/modules/dev/layouts/dev.phtml
+++ b/application/modules/dev/layouts/dev.phtml
@@ -22,7 +22,7 @@ echo $this->headScript()."\n";
diff --git a/application/modules/dev/views/scripts/bootiso/index.phtml b/application/modules/dev/views/scripts/bootiso/index.phtml
index 453f316..cb06be6 100644
--- a/application/modules/dev/views/scripts/bootiso/index.phtml
+++ b/application/modules/dev/views/scripts/bootiso/index.phtml
@@ -1,4 +1,4 @@
-
BootISO
+
BootMedien
formButton('createbootiso', 'Create BootISO', array(
'onclick' => 'self.location="/dev/bootiso/createbootiso"',
'class' => 'addbutton'))?>
@@ -8,26 +8,35 @@
Title |
GroupID |
MembershipID |
-
FbGui Path |
+
PrebootID |
Serialnumber |
Created |
Expires |
Public |
-
Actions |
+
Actions |
bootisolist)==0)
- echo " There are no BootISO's entries for the Bootmenuto display." ?>
+ echo " There are no BootISO's entries to display." ?>
bootisolist as $bootiso): ?>
| escape($bootiso->getID()); ?> |
escape($bootiso->getTitle()); ?> |
escape($bootiso->getGroupID()); ?> |
escape($bootiso->getMembershipID()); ?> |
- escape($bootiso->getPath_fbgui()); ?> |
+ escape($bootiso->getPrebootID()) . "] " . $this->prebootlist[$bootiso->getID()]; ?> |
escape($bootiso->getSerialnumber()); ?> |
escape(date('Y-m-d H:i:s', $bootiso->getCreated())); ?> |
escape($bootiso->getExpires()); ?> |
escape($bootiso->getPublic()); ?> |
+  |
url(
array(
'module' => 'dev',
diff --git a/application/modules/dev/views/scripts/preboot/createpreboot.phtml b/application/modules/dev/views/scripts/preboot/createpreboot.phtml
new file mode 100644
index 0000000..19d1595
--- /dev/null
+++ b/application/modules/dev/views/scripts/preboot/createpreboot.phtml
@@ -0,0 +1,4 @@
+createprebootForm->setAction($this->url());
+echo $this->createprebootForm;
+?>
diff --git a/application/modules/dev/views/scripts/preboot/editpreboot.phtml b/application/modules/dev/views/scripts/preboot/editpreboot.phtml
new file mode 100644
index 0000000..a8f9c42
--- /dev/null
+++ b/application/modules/dev/views/scripts/preboot/editpreboot.phtml
@@ -0,0 +1,4 @@
+editprebootForm->setAction($this->url());
+echo $this->editprebootForm;
+?>
diff --git a/application/modules/dev/views/scripts/preboot/index.phtml b/application/modules/dev/views/scripts/preboot/index.phtml
new file mode 100644
index 0000000..eec8f1b
--- /dev/null
+++ b/application/modules/dev/views/scripts/preboot/index.phtml
@@ -0,0 +1,57 @@
+Preboot
+formButton('createpreboot', 'Create PreBoot', array(
+ 'onclick' => 'self.location="/dev/preboot/createpreboot"',
+ 'class' => 'addbutton'))?>
+
+
+
+ | ID |
+ Title |
+ GroupID |
+ MembershipID |
+ Preboot Path |
+ Actions |
+
+ prebootlist)==0)
+ echo " There are no Preboot entries to display." ?>
+ prebootlist as $preboot): ?>
+ |
+ | escape($preboot->getID()); ?> |
+ escape($preboot->getTitle()); ?> |
+ escape($preboot->getGroupID()); ?> |
+ escape($preboot->getMembershipID()); ?> |
+ escape($preboot->getPath_preboot()); ?> |
+ update[$preboot->getID()]==true): ?>
+  |
+
+  |
+
+  |
+  |
+
+
+
\ No newline at end of file
--
cgit v1.2.3-55-g7522