Changeset 364 for trunk


Ignore:
Timestamp:
05/27/10 12:52:32 (11 years ago)
Author:
sander
Message:

Allow requests to be uploaded without jobs

Location:
trunk/server/www/app
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/server/www/app/controllers/requests_controller.php

    r332 r364  
    212212                        } 
    213213 
    214                         // Check that the user marked any applications 
    215                         if (!isset($this->data['Request']['App']) || !is_array($this->data['Request']['App']) || sizeof($this->data['Request']['App']) == 0) { 
    216                                 $this->Session->setFlash(__('You did not mark any applications.', true)); 
    217                                 $this->redirect(array('action'=>'add')); 
    218                         } 
    219  
    220214                        // Set some extra data 
    221215                        $this->data['Request']['user_id']    = (string) $this->AuthCert->user('id'); 
     
    248242 
    249243                        // Add the jobs to the request 
    250                         $jobs = array(); 
    251                         $format_id = $this->data['Request']['format_id']; 
    252                         foreach ($this->data['Request']['App'] as $app) { 
    253                                 list($platform_id, $doctype_code, $application_id, $version) = explode('_', $app); 
    254                                 $jobs[] = compact('platform_id', 'application_id', 'version', 'format_id'); 
    255                         } 
    256  
    257244                        $this->Request->read(); 
    258                         if ($this->Request->addJobs($jobs) == 0) { 
    259                                 $this->Request->delete(); 
    260                                 $this->Session->setFlash(__('None of the jobs could be created. The request has been cancelled.', true)); 
    261                                 $this->redirect(array('action'=>'add')); 
     245                        if (isset($this->data['Request']['App'])) { 
     246                                $jobs = array(); 
     247                                $format_id = $this->data['Request']['format_id']; 
     248                                foreach ($this->data['Request']['App'] as $app) { 
     249                                        list($platform_id, $doctype_code, $application_id, $version) = explode('_', $app); 
     250                                        $jobs[] = compact('platform_id', 'application_id', 'version', 'format_id'); 
     251                                } 
     252 
     253                                $this->Request->addJobs($jobs); 
    262254                        } 
    263255 
  • trunk/server/www/app/models/request.php

    r339 r364  
    7070                $this->Preprocessor->callback('scan'); 
    7171                $this->Preprocessor->callback('validateFile'); 
    72                 $this->Preprocessor->callback('saveField', 'state', self::STATE_QUEUED); 
     72                $this->Preprocessor->callback('queue'); 
    7373                $this->Preprocessor->errback('preprocessorError'); 
    7474        } 
     
    361361 
    362362                        // Save the Markdown version to file 
    363                         $path = FILES . $this->field('root') . DS . 'description.txt'; 
     363                        if ($this->id) { 
     364                                $path = FILES . $this->field('root') . DS . 'description.txt'; 
     365                        } else { 
     366                                $path = FILES . $this->data['Request']['root'] . DS . 'description.txt'; 
     367                        } 
     368 
    364369                        file_put_contents($path, $this->data['Request']['description']); 
    365370                } 
     
    497502        } 
    498503 
     504        public function queue() 
     505        { 
     506                if ($this->field('job_count') == 0) { 
     507                        $this->saveField('state', self::STATE_FINISHED); 
     508                } else { 
     509                        $this->saveField('state', self::STATE_QUEUED); 
     510                } 
     511        } 
     512 
    499513        public function preprocessorError() 
    500514        { 
Note: See TracChangeset for help on using the changeset viewer.