From 562b2db0782321e1726fc5541f5c3d68df074916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20M=C3=BCller?= Date: Wed, 19 Feb 2014 00:03:29 +0100 Subject: [PATCH] favoriten --- app/Controller/JobController.php | 98 +++++++++++++++++++++++++++++++ app/Model/DreamjobJobFavority.php | 50 ++++++++++++++++ app/View/Job/favorite.ctp | 15 +++++ app/View/Job/opening.ctp | 60 +++++++++++++++++++ app/View/Job/opening_list.ctp | 21 +++++++ update.sql | 38 ++++++++++++ 6 files changed, 282 insertions(+) create mode 100644 app/Controller/JobController.php create mode 100644 app/Model/DreamjobJobFavority.php create mode 100644 app/View/Job/favorite.ctp create mode 100644 app/View/Job/opening.ctp create mode 100644 app/View/Job/opening_list.ctp create mode 100644 update.sql diff --git a/app/Controller/JobController.php b/app/Controller/JobController.php new file mode 100644 index 0000000..8f0e0f3 --- /dev/null +++ b/app/Controller/JobController.php @@ -0,0 +1,98 @@ +MiconwareSession->init($this); + + $this->MiconwareSession->initWeb($this); + $self = $this->MiconwareSession->getCompany(); + if(!is_array($self) and count($self) <= 0){ + $this->set('error', 'dreamjob.error.noPermision'); + $this->render('/Home/error'); + }else{ + $openings = $this->DreamjobJobOpening->find('all',array('conditions' => array('DreamjobJobOpening.company_id' => $self['AppUser']['id']))); + $this->set('openings',$openings); + $this->render('/Job/opening_list'); + } + } + public function openingAdd() { + } + + public function openingGet() { + $this->MiconwareSession->init($this); + + $opening = false; + + + if(!empty($this->request->params['id'])){ + if(!empty($this->request->params['favorite']) and count($this->request->params['favorite'])>0){ + $WORKER = $this->MiconwareSession->getWorker(); + $fav=false; + foreach($WORKER['Favority'] as $val){ + if($val['id'] == $this->request->params['id']) + $fav=true; + } + $data = array('DreamjobJobFavority' => array('opening_id' => $this->request->params['id'], 'worker_id' => $WORKER['AppUser']['id'])); + $data2 = array('DreamjobJobFavority.opening_id' => $this->request->params['id'], 'DreamjobJobFavority.worker_id' => $WORKER['AppUser']['id']); + if($fav){ + $this->MiconwareSession->setFlash('dreamjob.opening.fav.delete','flash',array('alert'=>'success')); + $this->DreamjobJobFavority->deleteAll($data2,false); + }else{ + $this->DreamjobJobFavority->create(); + $this->DreamjobJobFavority->save($data); + $this->MiconwareSession->setFlash('dreamjob.opening.fav.add','flash',array('alert'=>'success')); + } + } + $opening = $this->DreamjobJobOpening->find('first',array('conditions' => array('DreamjobJobOpening.id' => $this->request->params['id']))); + } + + + $this->MiconwareSession->refreshCache(); + $this->MiconwareSession->initWeb($this); + + if(!is_array($opening) and count($opening) <= 0 ){ + $this->set('error', 'dreamjob.error.opening.notFound'); + $this->render('/Home/error'); + }else{ + $this->set('opening',$opening); + $this->render('/Job/opening'); + } + } + + public function favorite() { + $this->MiconwareSession->init($this); + + $this->MiconwareSession->initWeb($this); + $self = $this->MiconwareSession->getWorker(); + if(!is_array($self) and count($self) <= 0){ + $this->set('error', 'dreamjob.error.noPermision'); + $this->render('/Home/error'); + }else{ + $fav_id = array(); + foreach($self['Favority'] as $fav) + $fav_id[]=$fav['id']; + $openings = $this->DreamjobJobOpening->find('all',array('conditions' => array('DreamjobJobOpening.id' =>$fav_id))); + $this->set('openings',$openings); + $this->render('/Job/favorite'); + } + } +} +?> diff --git a/app/Model/DreamjobJobFavority.php b/app/Model/DreamjobJobFavority.php new file mode 100644 index 0000000..f7c40c6 --- /dev/null +++ b/app/Model/DreamjobJobFavority.php @@ -0,0 +1,50 @@ + array( + 'numeric' => array( + 'rule' => array('numeric'), + //'message' => 'Your custom message here', + //'allowEmpty' => false, + //'required' => false, + //'last' => false, // Stop validation after this rule + //'on' => 'create', // Limit validation to 'create' or 'update' operations + ), + ), + 'opening_id' => array( + 'numeric' => array( + 'rule' => array('numeric'), + //'message' => 'Your custom message here', + //'allowEmpty' => false, + //'required' => false, + //'last' => false, // Stop validation after this rule + //'on' => 'create', // Limit validation to 'create' or 'update' operations + ), + ), + ); + + + public $belongsTo = array( + 'DreamjobWorker' => array( + 'className' => 'DreamjobWorker', + 'foreignKey' => 'worker_id' + ), + 'DreamjobJobOpening' => array( + 'className' => 'DreamjobJobOpening', + 'foreignKey' => 'opening_id' + ) + ); +} + diff --git a/app/View/Job/favorite.ctp b/app/View/Job/favorite.ctp new file mode 100644 index 0000000..4c9479b --- /dev/null +++ b/app/View/Job/favorite.ctp @@ -0,0 +1,15 @@ + +
+

+
+ element('job_opening_item',array('opening' => $opening)); + } + ?> +
+
diff --git a/app/View/Job/opening.ctp b/app/View/Job/opening.ctp new file mode 100644 index 0000000..6f4474b --- /dev/null +++ b/app/View/Job/opening.ctp @@ -0,0 +1,60 @@ + +
+ Html->link(__('dreamjob.company.to'),array('controller'=>'user','action'=>'profil','id'=>$opening['AppUser']['id']));?> + 0){ + ?> + + Html->link(__('dreamjob.my.application'),array('controller'=>'job','action'=>'openingGet','id'=>$opening['DreamjobJobOpening']['id'],'favorite'=>'favorite')); + else{ + //TODO isFavority + $link='dreamjob.favority.adding'; + if($fav) + $link='dreamjob.favority.removeing'; + echo $this->Html->link(__($link),array('controller'=>'job','action'=>'openingGet','id'=>$opening['DreamjobJobOpening']['id'],'favorite'=>'favorite')); + } + ?> + + +
+
+
+

+

+
+

+

+ :
+ :
+ :
+ strtotime($opening['DreamjobJobOpening']['enddate'])){ ?> class="opening_outdate">: Time->format('d.m.Y', $opening['DreamjobJobOpening']['enddate']);?> +

+
+

+

+ :
+ :
+ : +

+

+ :
+
+ +

+
+
+ +
+
diff --git a/app/View/Job/opening_list.ctp b/app/View/Job/opening_list.ctp new file mode 100644 index 0000000..290c0ff --- /dev/null +++ b/app/View/Job/opening_list.ctp @@ -0,0 +1,21 @@ + +
+

+
+   + + Html->link(__('dreamjob.opening.add'),array('controller'=>'job','action'=>'openingAdd'));?> + +
+
+ element('job_opening_item',array('opening' => $opening)); + } + ?> +
+
diff --git a/update.sql b/update.sql new file mode 100644 index 0000000..776d920 --- /dev/null +++ b/update.sql @@ -0,0 +1,38 @@ +-- +-- Datenbank: `muellersql3` +-- + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `mic_dj_job_opening_worker` +-- + + +CREATE TABLE IF NOT EXISTS `mic_dj_job_opening_worker` ( + `opening_id` int(11) NOT NULL, + `worker_id` int(11) NOT NULL, + UNIQUE KEY `opening_id` (`opening_id`,`worker_id`), + KEY `mic_dj_job_opening_worker_favOpening` (`opening_id`), + KEY `mic_dj_job_opening_worker_favWorker` (`worker_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + +-- +-- Tabellenstruktur für Tabelle `mic_dj_account_cmpy` ändern +-- ProCompanyAccount +-- + +ALTER TABLE `mic_dj_account_cmpy` ADD `pro_user` INT NOT NULL ; + + +-- +-- Constraints der exportierten Tabellen +-- + +-- +-- Constraints der Tabelle `mic_dj_job_opening_worker` +-- +ALTER TABLE `mic_dj_job_opening_worker` + ADD CONSTRAINT `mic_dj_job_opening_worker_favOpening` FOREIGN KEY (`opening_id`) REFERENCES `mic_dj_jobs_opening` (`id`), + ADD CONSTRAINT `mic_dj_job_opening_worker_favWorker` FOREIGN KEY (`worker_id`) REFERENCES `mic_dj_account_wrk` (`djaccount_ptr_id`);