Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2015
531
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.80 KB | None | 0 0
  1. <?php
  2. /**
  3.  * User: granted
  4.  * Date: 1/16/15
  5.  * Time: 3:09 PM
  6.  */
  7.  
  8. namespace Planner\Resource;
  9.  
  10. use Alert\Entity\AlertPolicy;
  11. use Common\Mvc\Resource;
  12. use Common\View\JsonResult;
  13. use Device\Entity\Device;
  14. use Krona\CommonModule\Form\Type\AbstractType;
  15. use Krona\CommonModule\Mvc\Param\Annotation\TypeConverter;
  16. use Planner\Entity\Job;
  17. use Planner\Util\JobType;
  18. use Project\Entity\Project;
  19. use User\Entity\User;
  20. use User\Service\Plan;
  21. use Zend\View\Model\ViewModel;
  22.  
  23. class DeviceJobResource extends Resource
  24. {
  25.     /**
  26.      * Universal form for edit/create Device Job
  27.      * @param Device       $device
  28.      * @param Project      $project
  29.      * @param AbstractType $jobType
  30.      * @TypeConverter(parameter="jobType", targetClass="Planner\Entity\Job")
  31.      * @return ViewModel
  32.      */
  33.     public function formAction(Device $device, Project $project, AbstractType $jobType)
  34.     {
  35.         $view =  new ViewModel(
  36.             [
  37.                 'device' => $device,
  38.                 'isPost' => $this->getRequest()->isPost(),
  39.                 'project' => $project,
  40.                 'filter' => $jobType,
  41.                 'types' => JobType::getDeviceTypes(),
  42.             ]
  43.         );
  44.         if ($this->getRequest()->isXmlHttpRequest()) {
  45.             $view
  46.                 ->setTemplate('partial/device-job/form.phtml')
  47.                 ->setTerminal(true)
  48.                 ->setVariable('action', $this->url()->fromRoute('planner:job:device', [
  49.                     'project' => $project->getId(),
  50.                     'device' => $device->getId(),
  51.                     'id' => $jobType->getValue('id')
  52.                 ]))
  53.             ;
  54.         } else {
  55.             $view
  56.                 ->setTemplate('planner/device-job-resource/form.phtml');
  57.         }
  58.  
  59.         return $view;
  60.     }
  61.  
  62.     /**
  63.      * @param Device       $device
  64.      * @param Project      $project
  65.      * @param AbstractType $jobType
  66.      * @TypeConverter(parameter="jobType", targetClass="Planner\Entity\Job")
  67.      * @param Plan         $plan
  68.      * @return \Zend\Http\Response|ViewModel
  69.      */
  70.     public function create(Device $device, Project $project, AbstractType $jobType, Plan $plan)
  71.     {
  72.         if ($jobType->isValid()) {
  73.             /** @var Job $job */
  74.             $job = $jobType->getObject();
  75.             $job
  76.                 ->setProject($project)
  77.                 ->setExecutor($device)
  78.                 ->setCreator($this->identity())
  79.             ;
  80.  
  81.             $this->getArilas()->commit($job);
  82.  
  83.             if ($this->getRequest()->isXmlHttpRequest()) {
  84.                 return new JsonResult();
  85.             }
  86.             return $this->redirect()->toRoute('project:view', ['id' => $project->getId()]);
  87.         } else {
  88.             return $this->formAction($device, $project, $jobType);
  89.         }
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement