This commit is contained in:
Martin Müller 2014-03-15 01:52:07 +01:00
parent e3ceabbe4c
commit 066f7950fa
11 changed files with 236 additions and 37 deletions

View File

@ -45,6 +45,7 @@
Router::connect('/application', array('controller' => 'job', 'action' => 'applicationList'));
Router::connect('/application/:id', array('controller' => 'job', 'action' => 'applicationGet'),array("id" => "[0-9]+"));
Router::connect('/application/:id/page/:page', array('controller' => 'job', 'action' => 'applicationGet'),array("id" => "[0-9]+","page" => "[0-9]+"));
Router::connect('/application/:id/curriculum:vitea', array('controller' => 'job', 'action' => 'applicationGet'), array("id" => "[0-9]+",'vitea' => '(?i:vitea)'));
Router::connect('/application/:id/mess:ages', array('controller' => 'job', 'action' => 'applicationGet'), array("id" => "[0-9]+",'ages' => '(?i:ages)'));
Router::connect('/application/:id/arc:hiv', array('controller' => 'job', 'action' => 'applicationGet'), array("id" => "[0-9]+",'hiv' => '(?i:hiv)'));
@ -53,6 +54,9 @@
Router::connect('/favorite', array('controller' => 'job', 'action' => 'favorite'));
Router::connect('/test/', array('controller' => 'user', 'action' => 'test'));
Router::parseExtensions('json');
Router::connect('/profil/save/cv', array('controller' => 'user', 'action' => 'saveCvJson'));
/**
* ...and connect the rest of 'Pages' controller's URLs.
*/

View File

@ -28,6 +28,17 @@ class MiconwareSessionComponent extends Component {
'after' => '</div>',
'class' => ''))
);
$controller->set('default_hForm',array(
'inputDefaults' => array(
'div' => array('class' => 'form-group'),
'label' => array('class' => 'col-lg-3 control-label'),
'between' => '<div class="col-lg-9">',
'after' => '</div>',
'error' => array('attribute'=>array('wrap'=>'span','class'=>'help-block')),
'class' => 'form-control '),
'class'=>'hide-form hide-input'
)
);
$controller->set('default_Form',array(
'inputDefaults' => array(
'div' => array('class' => 'form-group'),

View File

@ -10,7 +10,7 @@ class JobController extends AppController {
* @var array
*/
public $uses = array('DreamjobJobOpening','DreamjobJobFavority','DreamjobJobApplication','DreamjobPageText','DreamjobPageImage','DreamjobJobMsg');
public $uses = array('DreamjobJobOpening','DreamjobJobFavority','DreamjobJobApplication','DreamjobPageText','DreamjobPageImage','DreamjobJobMsg','DreamjobCvCategory');
/**
* Displays a view
@ -226,7 +226,6 @@ class JobController extends AppController {
$this->MiconwareSession->setFlash('dreamjob.application.msg.error','flash',array('alert'=>'danger'));
}
}
//TODO Mark as read
if(is_array($WORKER) and count($WORKER) > 0)
$this->DreamjobJobMsg->updateAll(array("saw"=>true),array("DreamjobJobMsg.fromcompany"=>true,"DreamjobJobMsg.application_id"=>$this->request->params['id']));
if(is_array($COMPANY) and count($COMPANY) > 0)
@ -234,10 +233,15 @@ class JobController extends AppController {
}else{
$this->set('msg',false);
// CV
if(!empty($this->request->params['vitea'])){
$cv = $this->DreamjobCvCategory->find('all',array('conditions' => array('worker_id'=> $application['DreamjobJobApplication']['worker_id'])));
$this->set("cv",$cv);
}else{
if(!empty($this->request->params['page'])){
$this->set('pageInh',$this->DreamjobJobApplication->Page->find('first',
/*$this->set('pageInh',$this->DreamjobJobApplication->Page->find('first',
array('conditions' => array("Page.id" => $this->request->params['page']))
));
));*/
$page = $this->DreamjobJobApplication->PageText->find('first',
array('conditions' => array("PageText.page_ptr_id" => $this->request->params['page']))
);
@ -248,6 +252,7 @@ class JobController extends AppController {
$this->set('page',$page);
}
}
}
$this->set('application',$application);
$this->render('/Job/application');
}

View File

@ -11,6 +11,7 @@ class UserController extends AppController {
*/
public $uses = array('DreamjobListGraducation','DreamjobWorker','DreamjobCompany','DreamjobPageText','DreamjobPageImage','DreamjobJobOpening','DreamjobCvCategory');
public $components = array('MiconwareSession','RequestHandler');
/**
* Displays a view
@ -24,8 +25,9 @@ class UserController extends AppController {
$this->MiconwareSession->init($this);
$this->MiconwareSession->initWeb($this);
$this->autoRender = true;
$this->layout = 'default';
$this->RequestHandler->setContent('html', 'application/html' );
//self check
$self_company = false;
@ -38,6 +40,9 @@ class UserController extends AppController {
//get Profil
$hard_error = false;
if(!$this->MiconwareSession->isLoggedin())
$hard_error = true;
$company = false;
$page = null;
$profil = null;
@ -67,6 +72,8 @@ class UserController extends AppController {
}else{
if(isset($profil['DreamjobWorker'])){
$cv = $this->DreamjobCvCategory->find('all',array('conditions' => array('worker_id'=> $profil['AppUser']['id'])));
if(!$self_company and $profil['AppUser']['id']==$self['AppUser']['id'])
$this->request->data = $cv;
$this->set("cv",$cv);
}
}
@ -98,6 +105,26 @@ class UserController extends AppController {
}else
$this->render('/User/worker');
}
public function saveCvJson(){
$this->MiconwareSession->init($this);
$this->MiconwareSession->initWeb($this);
$this->RequestHandler->setContent('json', 'application/json' );
$this->set("cv",null);
$this->set('error', null);
$self = $this->MiconwareSession->getWorker();
if(!empty($self) and count($self)> 0){
$cv = $this->DreamjobCvCategory->find('all',array('conditions' => array('worker_id'=> $self['AppUser']['id'])));
$this->request->data = $cv;
$this->set("cv",$cv);
$this->set('error', false);
}else{
$this->set('error', true);
}
$this->set('_serialize', array('cv','error'));
}
public function test() {
$this->MiconwareSession->init($this);

View File

@ -29,12 +29,23 @@ class DreamjobCvCategory extends AppModel {
*/
public $displayField = 'id';
public $order = 'DreamjobCvCategory.id';
/**
* Validation rules
*
* @var array
*/
public $validate = array(
'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
),
),
'worker_id' => array(
'numeric' => array(
'rule' => array('numeric'),

View File

@ -31,7 +31,7 @@ if($isLoggedin){
<li<?php if(isset($MENU_SETTINGS)){?> class="active"<?php } ?>><a href=""><img src="<c:url value="${STATIC_URL}img/bar-settings.png"/>"/></a></li>
</ul>
<?php
}elseif($MENU_START){
}elseif(!empty($MENU_START)){
?>
<style type="text/css">
<!--

View File

@ -0,0 +1,81 @@
<?php
/*
*
*/
$default_hForm['url']=array('controller'=>'user','action'=>'saveCvJson');
echo $this->Form->create('DreamjobCvCategory',$default_hForm);
?>
<h3><?=__("dreamjob.cv");?><span class="label label-default edit"><span class="glyphicon glyphicon-edit"></span><?=__('dreamjob.edit');?></span><span class="label label-default save"><span class="glyphicon glyphicon-floppy-disk"></span><?=__('dreamjob.save');?></span></h3>
<?php
echo $this->Form->text('test',array('class'=>'form-control'));
foreach($cv as $cvc){
?>
<h4><?=$cvc['DreamjobListCvCategory']['name'];?></h4>
<table class="cv">
<?php
foreach($cvc['DreamjobCvEntry'] as $cve){
?>
<tr>
<?php
if($cvc['DreamjobListCvCategory']['startdate'] and $cvc['DreamjobListCvCategory']['enddate'] and $cvc['DreamjobListCvCategory']['place']){
?>
<td><?=$cve['startdate'];?> - <?=$cve['enddate'];?></td>
<td><?=$cve['title'];?><br/><span><?=$cve['place'];?></span></td>
<?php
}else if($cvc['DreamjobListCvCategory']['place']){
if($cvc['DreamjobListCvCategory']['startdate']){
?>
<td><?=$cve['startdate'];?></td>
<?php
}else if($cvc['DreamjobListCvCategory']['enddate']){
?>
<td><?=$cve['enddate'];?></td>
<?php
}else{
?>
<td><?=$cve['title'];?></td>
<td><?=$cve['place'];?></td>
<?php
}
?>
<?php
if($cvc['DreamjobListCvCategory']['startdate'] or $cvc['DreamjobListCvCategory']['enddate']){
?>
<td><?=$cve['title'];?><br/><span><?=$cve['place'];?></span></td>
<?php
}
}else{
if($cvc['DreamjobListCvCategory']['startdate'] and $cvc['DreamjobListCvCategory']['enddate']){
?>
<td><?=$cve['startdate'];?> - <?=$cve['enddate'];?></td>
<?php
}else if($cvc['DreamjobListCvCategory']['startdate']){
?>
<td><?=$cve['startdate'];?></td>
<?php
}else if($cvc['DreamjobListCvCategory']['enddate']){
?>
<td><?=$cve['enddate'];?></td>
<?php
}else{
?>
ERROR
<?php
}
?>
<td><?=$cve['title'];?></td>
<?php
}
?>
</tr>
<?php
}
?>
</table>
<?php
}
echo $this->Form->end();
?>

View File

@ -60,9 +60,12 @@
<div class="box">
<div class="tabs-below">
<ul class="nav nav-tabs pull-right">
<li<?php if (empty($page)){?> class="active"<?php } ?>>
<li<?php if (empty($page) and empty($cv)){?> class="active"<?php } ?>>
<?=$this->Html->link(__("dreamjob.application"),array('controller'=>'job','action'=>'applicationGet','id'=> $application['DreamjobJobApplication']['id'] ),array('rel'=>"tab")); ?>
</li>
<li<?php if (!empty($cv)){?> class="active"<?php } ?>>
<?=$this->Html->link(__('dreamjob.cv'),array('controller'=>'job','action'=>'applicationGet','id'=>$application['DreamjobJobApplication']['id'],'vitea'=>'vitea')); ?>
</li>
<?php foreach($application['Page'] as $pag){ ?>
<li<?php if(isset($page['DreamjobPageInh']['id'])) if ($page['DreamjobPageInh']['id'] == $pag['id']){?> class="active"<?php } ?>>
<?=$this->Html->link($pag['title'],array('controller'=>'job','action'=>'applicationGet','id'=> $application['DreamjobJobApplication']['id'],'page'=> $pag['id'] ),array('rel'=>"tab")); ?>
@ -94,6 +97,12 @@
</div>
<?php }
}elseif(!empty($cv)){ ?>
<?php
echo $this->element('user_worker_cv');
?>
</div>
<?php
}elseif($page!=null){ ?>
<?php
if(isset($page['PageText']))

View File

@ -37,16 +37,15 @@ if(( !empty($COMPANY) and is_array($COMPANY) and count($COMPANY) > 0 and ($COMPA
</ul>
</div>
<?php
if(!empty($edit)){
?>
Bearbeiten.
<?php
}
if(!empty($page)){
echo $this->element('user_page');
}else{
if(!empty($WORKER) and is_array($WORKER) and count($WORKER) > 0 and $WORKER['AppUser']['id']== $profil['AppUser']['id'] and $edit){
echo $this->element('user_worker_cv_edit');
}else{
echo $this->element('user_worker_cv');
}
}
?>
<!-- /tab -->
</div>

View File

@ -384,6 +384,18 @@ body.loading #container{
}
.cv td{
width:50%;
padding-bottom:15px;
}
.cv td span{
font-style:italic;
font-size:12px;
}
.hide-input input.form-control{
background-color:rgba(255,255,255,0);
border-color:rgba(255,255,255,0);
color:black;
box-shadow:none;
}
.infofield{

View File

@ -21,17 +21,57 @@
});
});
$(where+" form").submit(function(e){
$(where+" form:not(.hide-form)").submit(function(e){
e.stopPropagation();
//e.preventDefault();
if(!$(this).hasClass("hide-form")){
if($(this).attr("back"))
back=window.location.href;
else
back=null;
load($(this).attr("action"),{data:$(this).serialize(), type:$(this).attr("method"),back:back},($(this).attr('rel')=="tab"));
return false;
}
});
$(where+" form label.has-error").parent(".form-group").addClass("has-error")
$(where+" form.hide-form").each(function(evt){
that = this;
$('span.edit.label',this).click(function(evt){
$(that).removeClass('hide-input');
$(this).addClass('hide');
$('span.save.label',that).removeClass('hide');
$('input',that).removeAttr('disabled');
});
function handleSend(evt){
that2=this;
$.getJSON($(that).attr("action"),$(that).serialize(),function(evt){
if(!evt.error){
$(that).addClass('hide-input');
$('input',that).attr('disabled','disabled');
$('span.save.label',that).addClass('hide');
$('span.edit.label',that).removeClass('hide');
}else{
//TODO Handle error
console.log("TODO Handle Error");
}
});
}
$('span.save.label',this).addClass('hide');
$('input',this).attr('disabled','disabled');
$('span.save.label',this).click(handleSend);
$(that).submit(function(evt){
evt.stopPropagation();
handleSend(evt);
return false;
});
});
//$(where+" form label.has-error").parent(".form-group").addClass("has-error")
}
function load(pageurl,conf,tab){
data = {};