Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * User: granted
- * Date: 1/16/15
- * Time: 3:09 PM
- */
- namespace Planner\Resource;
- use Alert\Entity\AlertPolicy;
- use Common\Mvc\Resource;
- use Common\View\JsonResult;
- use Device\Entity\Device;
- use Krona\CommonModule\Form\Type\AbstractType;
- use Krona\CommonModule\Mvc\Param\Annotation\TypeConverter;
- use Planner\Entity\Job;
- use Planner\Util\JobType;
- use Project\Entity\Project;
- use User\Entity\User;
- use User\Service\Plan;
- use Zend\View\Model\ViewModel;
- class DeviceJobResource extends Resource
- {
- /**
- * Universal form for edit/create Device Job
- * @param Device $device
- * @param Project $project
- * @param AbstractType $jobType
- * @TypeConverter(parameter="jobType", targetClass="Planner\Entity\Job")
- * @return ViewModel
- */
- public function formAction(Device $device, Project $project, AbstractType $jobType)
- {
- $view = new ViewModel(
- [
- 'device' => $device,
- 'isPost' => $this->getRequest()->isPost(),
- 'project' => $project,
- 'filter' => $jobType,
- 'types' => JobType::getDeviceTypes(),
- ]
- );
- if ($this->getRequest()->isXmlHttpRequest()) {
- $view
- ->setTemplate('partial/device-job/form.phtml')
- ->setTerminal(true)
- ->setVariable('action', $this->url()->fromRoute('planner:job:device', [
- 'project' => $project->getId(),
- 'device' => $device->getId(),
- 'id' => $jobType->getValue('id')
- ]))
- ;
- } else {
- $view
- ->setTemplate('planner/device-job-resource/form.phtml');
- }
- return $view;
- }
- /**
- * @param Device $device
- * @param Project $project
- * @param AbstractType $jobType
- * @TypeConverter(parameter="jobType", targetClass="Planner\Entity\Job")
- * @param Plan $plan
- * @return \Zend\Http\Response|ViewModel
- */
- public function create(Device $device, Project $project, AbstractType $jobType, Plan $plan)
- {
- if ($jobType->isValid()) {
- /** @var Job $job */
- $job = $jobType->getObject();
- $job
- ->setProject($project)
- ->setExecutor($device)
- ->setCreator($this->identity())
- ;
- $this->getArilas()->commit($job);
- if ($this->getRequest()->isXmlHttpRequest()) {
- return new JsonResult();
- }
- return $this->redirect()->toRoute('project:view', ['id' => $project->getId()]);
- } else {
- return $this->formAction($device, $project, $jobType);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement