コード例 #1
0
ファイル: event.select.class.php プロジェクト: kelubo/OpenQRM
 function select()
 {
     $h = array();
     $h['event_id']['title'] = $this->lang['table_id'];
     $h['event_id']['hidden'] = true;
     $h['event_id']['sortable'] = false;
     $h['event_priority']['title'] = $this->lang['table_state'];
     $h['event_time']['title'] = $this->lang['table_date'];
     $h['event_source']['title'] = $this->lang['table_source'];
     $h['event_description']['title'] = $this->lang['table_description'];
     $h['event_description']['sortable'] = false;
     $event = new event();
     $b = array();
     $table = $this->response->html->tablebuilder('events', $this->response->get_array($this->actions_name, 'select'));
     $table->offset = 0;
     $table->limit = 100;
     $table->sort = 'event_time';
     $table->order = 'DESC';
     switch ($this->response->html->request()->get('event_filter')) {
         case '':
         case 'all':
             $table->max = $event->get_count();
             break;
         case 'active':
             $table->max = $event->get_count('active');
             break;
         case 'error':
             $table->max = $event->get_count('error');
             break;
         case 'acknowledge':
             $table->max = $event->get_count('acknowledge');
             break;
         case 'warning':
             $table->max = $event->get_count('warning');
             break;
     }
     $table->init();
     switch ($this->response->html->request()->get('event_filter')) {
         case '':
         case 'all':
             $events = $event->display_overview($table->offset, $table->limit, $table->sort, $table->order);
             break;
         case 'active':
             $events = $event->display_overview($table->offset, $table->limit, $table->sort, $table->order, 'active');
             break;
         case 'error':
             $events = $event->display_overview($table->offset, $table->limit, $table->sort, $table->order, 'error');
             break;
         case 'acknowledge':
             $events = $event->display_overview($table->offset, $table->limit, $table->sort, $table->order, 'acknowledge');
             break;
         case 'warning':
             $events = $event->display_overview($table->offset, $table->limit, $table->sort, $table->order, 'warning');
             break;
     }
     $RootDir = $_SERVER["DOCUMENT_ROOT"] . '/openqrm/base/';
     $i = 0;
     foreach ($events as $key => $value) {
         $icon = "transition.png";
         switch ($value['event_priority']) {
             case 0:
                 $icon = '<span class="pill off">off</span>';
                 break;
             case 1:
             case 2:
             case 3:
                 $icon = '<span class="pill red">error</span>';
                 break;
                 // error event
             // error event
             case 4:
             case 5:
             case 6:
             case 7:
             case 8:
                 $icon = '<span class="pill green">notice</span>';
                 break;
                 // undefined event
             // undefined event
             case 9:
                 $icon = '<span class="pill yellow">running</span>';
                 break;
                 // active event
             // active event
             case 10:
                 $icon = '<span class="pill green">ok</span>';
                 break;
                 // notice event
         }
         if ($value['event_status'] === '1') {
             $icon = '<span class="pill green">ack</span>';
             // acknowledged event
         }
         $description = '';
         if (strstr($value['event_description'], "ERROR running token")) {
             $error_token = str_replace("ERROR running token ", "", $value['event_description']);
             $cmd_file = $this->rootdir . "/server/event/errors/" . $error_token . ".cmd";
             $error_file = $this->rootdir . "/server/event/errors/" . $error_token . ".out";
             // get command and error strings
             if ($this->file->exists($cmd_file) && $this->file->exists($error_file)) {
                 $oq_cmd = $this->file->get_contents($cmd_file);
                 $oq_cmd = str_replace('"', '', $oq_cmd);
                 $oq_cmd_error = $this->file->get_contents($error_file);
                 $oq_cmd_error = str_replace('"', '', $oq_cmd_error);
                 // set the event to error in any way
                 $event_fields = array();
                 $event_fields["event_priority"] = 1;
                 $event->update($value['event_id'], $event_fields);
                 $event->get_instance_by_id($value['event_id']);
                 $icon = '<span class="pill red">error</span>';
                 // set the description
                 $description = "<a href=\"/openqrm/base/server/event/errors/" . $error_token . ".out\" title=\"" . $oq_cmd_error . "\" target=\"_BLANK\">Error</a> running openQRM <a href=\"/openqrm/base/server/event/errors/" . $error_token . ".cmd\" title=\"" . $oq_cmd . "\"target=\"_BLANK\">command</a>";
                 $a = $this->response->html->a();
                 $a->title = $this->lang['action_rerun'];
                 $a->label = $this->lang['action_rerun'];
                 $a->handler = 'onclick="wait();"';
                 $a->css = 'start pull-right';
                 $a->href = $this->response->get_url($this->actions_name, 'rerun') . '&token=' . $error_token . '&event_id=' . $event->id;
                 $rerun = $a->get_string();
                 $description .= $rerun;
             } else {
                 // we are currently re-running the token, do not show the links
                 $description = "Error running openQRM command<br><strong>Currently re-running token {$error_token}</strong>";
             }
         } else {
             $description = $value['event_description'];
         }
         $b[$i]['event_id'] = $value['event_id'];
         $b[$i]['event_priority'] = $icon;
         $b[$i]['event_time'] = date('Y/m/d H:i:s', $value['event_time']);
         $b[$i]['event_source'] = $value['event_source'];
         $b[$i]['event_description'] = $description;
         $i++;
     }
     $filter = array();
     $filter[] = array('', 'all');
     $filter[] = array($this->lang['filter_active'], 'active');
     $filter[] = array($this->lang['filter_warning'], 'warning');
     $filter[] = array($this->lang['filter_error'], 'error');
     $filter[] = array($this->lang['filter_acknowledge'], 'acknowledge');
     asort($filter);
     $select = $this->response->html->select();
     $select->add($filter, array(1, 0));
     $select->name = 'event_filter';
     $select->handler = 'onchange="wait();this.form.submit();return false;"';
     $select->selected = array($this->response->html->request()->get('event_filter'));
     $box = $this->response->html->box();
     $box->add($select);
     $box->id = 'events_filter';
     $box->css = 'htmlobject_box';
     $box->label = $this->lang['lang_filter'];
     $table->add_headrow($box->get_string());
     $table->id = 'Tabelle';
     $table->css = 'htmlobject_table';
     $table->border = 1;
     $table->cellspacing = 0;
     $table->form_action = $this->response->html->thisfile;
     $table->cellpadding = 3;
     $table->autosort = false;
     $table->sort_link = false;
     $table->head = $h;
     $table->body = $b;
     $table->actions_name = $this->actions_name;
     $table->actions = array(array('remove' => $this->lang['action_remove']), array('acknowledge' => $this->lang['action_acknowledge']));
     $table->identifier = 'event_id';
     $table->identifier_name = $this->identifier_name;
     $table->limit_select = array(array("value" => 100, "text" => 100), array("value" => 200, "text" => 200), array("value" => 400, "text" => 400), array("value" => 500, "text" => 500));
     return $table;
 }
コード例 #2
0
ファイル: dc-overview.php プロジェクト: kelubo/OpenQRM
            $table->sort = '';
            $table->head = $arHead;
            $table->body = $arBody;
            $table->max = $max_show_cr;
            // set template
            $e = new Template_PHPLIB();
            $e->debug = false;
            $e->setFile('tplfile', $RootDir . '/server/aa_server/tpl/cloud-summary.tpl.php');
            $e->setVar(array('cr_all' => $cr_all, 'cr_active' => $cr_active, 'cloud_users' => $cloud_users, 'cloud_errors' => $cloud_errors, 'cloud_table' => $table->get_string(), 'max_show_cr' => $max_show_cr));
            $disp = $e->parse('out', 'tplfile');
            echo $disp;
            exit(0);
            break;
        case 'get_eventlist':
            $event = new event();
            $event_list = $event->display_overview(0, 10, 'event_time', 'desc');
            // $offset, $limit, $sort, $order, $mode = null
            echo json_encode($event_list);
            exit(0);
            break;
    }
}
/**
 * Method to map event_priority to status strings. 
 * 
 * @todo	Should be moved to event object
 * @param	int $event_priority	
 * @return	string	status string
 */
function getEventStatus($event_priority)
{
コード例 #3
0
 function eventlist()
 {
     // check permissions
     $this->controller->openqrm->init();
     $class = 'event_controller';
     $path = $this->controller->openqrm->get('webdir') . '/server/event/class/event.controller.class.php';
     $role = $this->controller->openqrm->role($this->response);
     require_once $path;
     $controller = new $class($this->controller->openqrm, $this->response);
     $_REQUEST[$controller->actions_name] = 'select';
     $data = $role->check_permission($controller, true);
     if ($data === true) {
         $event = new event();
         $event_list = $event->display_overview(0, 14, 'event_time', 'desc');
         // $offset, $limit, $sort, $order, $mode = null
         echo json_encode($event_list);
     } else {
         $msg = array(array('event_priority' => '9', 'event_source' => 'Permissions', 'event_time' => time(), 'event_description' => 'Permission denied for action <i>select</i> on controller <i>events</i>'));
         echo json_encode($msg);
     }
     exit(0);
 }