コード例 #1
0
ファイル: view.php プロジェクト: shakyapranin/IMS
if (Yii::app()->user->getFlash('taskSaved')) {
    ?>
                                <h4 class='alert alert-success centered hide-on-click'>
                                        <?php 
    echo Yii::t("UserAdminModule.admin", "Saved");
    ?>
                                </h4>
                        <?php 
}
?>

                        <?php 
$taskForm = $this->beginWidget('CActiveForm');
?>
                        
                                <?php 
echo $taskForm->checkBoxList($model, 'taskIds', CHtml::listData(UserTask::model()->findAll("code != 'freeAccess'"), 'code', 'name'), array('template' => "<label class='checkbox'>{input} {label}</label>", 'separator' => ''));
?>
                        
                                <br>
                                <?php 
echo CHtml::htmlButton('<i class="icon-ok icon-white"></i> ' . Yii::t("UserAdminModule.admin", "Save"), array('class' => 'btn btn-info', 'type' => 'submit'));
?>
                        
                        <?php 
$this->endWidget();
?>
                </td>
        </tr>
</table>
コード例 #2
0
 public function actionAjaxGetStatus()
 {
     $task_idstr = Yii::app()->request->getParam('tasks');
     $user_id = MenuLoader::getUserId();
     $ids = explode(',', $task_idstr);
     foreach ($ids as $k => &$v) {
         $v = '"' . trim($v) . '"';
     }
     $idstr = implode(',', $ids);
     $my_tasks = array();
     $tasks_proccess = array();
     if ($idstr) {
         //Yii::log('task ids:'.$idstr, 'info');
         $criteria = new CDbCriteria();
         $criteria->condition = 'task_id IN (' . $idstr . ') AND user_id=:user_id';
         $criteria->params = array(':user_id' => $user_id);
         $my_tasks = UserTask::model()->findAll($criteria);
         $base_url = TSInterface::get('G3');
         foreach ($my_tasks as &$task) {
             //Yii::log('task id:'.$task->id.'  status:'.$task->status, 'info');
             if ($task->status != 0 && $task->status != 1) {
                 continue;
             }
             $tasks_proccess[$task->id] = array('total' => 0, 'failed' => 0, 'running' => 0, 'finished' => 0);
             $url = $base_url . '?taskId=' . $task->task_id;
             $content = NetHelper::curl_file_get_contents($url);
             Yii::log('TASK_' . $task->task_id . ' URL:' . $url . ' return:' . $content, 'info');
             $data = json_decode($content, true);
             if ($data && $data['success']) {
                 $all_status = 'finished';
                 if (empty($data['data'])) {
                     $all_status = 'running';
                 }
                 foreach ($data['data'] as $item) {
                     $tasks_proccess[$task->id]['total']++;
                     if ($item['status'] == 'failed') {
                         $all_status = 'failed';
                         $tasks_proccess[$task->id]['failed']++;
                         break;
                     }
                     if ($item['status'] == 'running') {
                         $all_status = 'running';
                         $tasks_proccess[$task->id]['running']++;
                         break;
                     }
                     if ($item['status'] == 'finished') {
                         $tasks_proccess[$task->id]['finished']++;
                         //break;
                     }
                 }
                 if ($all_status == 'running') {
                     $task->status = 1;
                 }
                 if ($all_status == 'failed') {
                     $task->status = -1;
                 }
                 if ($all_status == 'finished') {
                     $task->status = 2;
                 }
                 $task->save();
                 $updateArr = array('status' => $task->status);
                 if ($task->status == 2 || $task->status == -1) {
                     $updateArr['task_result'] = $content;
                     $updateArr['finish_time'] = time();
                 }
                 Yii::log('UPDATE TASK_' . $task->id . ' update_info:' . json_encode($updateArr), 'info');
                 Task::model()->updateAll($updateArr, 'task_id=:task_id', array(':task_id' => $task->task_id));
             }
         }
     }
     $retArr = array();
     foreach ($my_tasks as $item) {
         //Yii::log('export task id:'.$item->id.'  status:'.$item->status, 'info');
         $retArr[$item->id] = $item->status;
     }
     echo json_encode($retArr);
 }