function action()
 {
     $event = new event();
     $identifier = $this->response->html->request()->get($this->identifier_name);
     $msg = '';
     if ($identifier !== '') {
         foreach ($identifier as $id) {
             $event->get_instance_by_id($id);
             if ($event->priority == 9 && $event->source === 'License') {
                 continue;
             }
             $fields = array();
             $fields["event_status"] = 1;
             $event->update($id, $fields);
             $msg .= sprintf($this->lang['msg'], $id) . '<br>';
         }
     }
     $this->response->redirect($this->response->get_url($this->actions_name, 'select', $this->message_param, $msg));
 }
Exemple #2
0
 function action()
 {
     global $OPENQRM_SERVER_BASE_DIR;
     $RootDir = $_SERVER["DOCUMENT_ROOT"] . '/openqrm/base/';
     $token = $this->response->html->request()->get('token');
     $event_id = $this->response->html->request()->get('event_id');
     $msg = '';
     if ($token !== '' && $event_id !== '') {
         $event = new event();
         $event->get_instance_by_id($event_id);
         $event->log("event-action", $_SERVER['REQUEST_TIME'], 5, "event-overview.php", "Re-Running command {$token}", "", "", 0, 0, 0);
         $command = "mv -f " . $OPENQRM_SERVER_BASE_DIR . "/openqrm/web/base/server/event/errors/" . $token . ".cmd " . $OPENQRM_SERVER_BASE_DIR . "/openqrm/var/spool/openqrm-queue." . $token . " && rm -f " . $OPENQRM_SERVER_BASE_DIR . "/openqrm/web/base/server/event/errors/" . $token . ".out";
         shell_exec($command);
         $fields = array();
         $fields["event_priority"] = 4;
         $event->update($event_id, $fields);
         $msg .= "Re-running token " . $token . " / Event ID " . $event_id . "<br>";
     }
     $this->response->redirect($this->response->get_url($this->actions_name, 'select', $this->message_param, $msg));
 }
        $fn = $game_i[6];
        $ln = $game_i[7];
        $tn = $game_i[2];
        $passToPlayer = $conn->query("select player_id from Player where first_name = '{$fn}' && last_name = '{$ln}' && team_name = '{$tn}' ");
        if ($passToPlayer->num_rows == 0) {
            printf("Error: No passingTO player found!");
            exit;
        }
        $cnt["passTo"] = $passToPlayer->fetch_row()[0];
    }
    $exist = $conn->query("select * from Event where p_id = '{$player_id}' AND g_id = '{$game_id}'");
    if ($exist->num_rows == 0) {
        // this is a new Event, insert to the Event table.
        // rushing touch down should be initialized.
        $result = event::insert($player_id, $game_id, $cnt["rushing"], $cnt["passing"], $cnt["fieldgoal"], $cnt["passTo"]);
    } else {
        // the event is already inserted.
        // update the table.
        $result = event::update($player_id, $game_id, $cnt["rushing"], $cnt["passing"], $cnt["fieldgoal"], $cnt["passTo"]);
    }
    $event_id = $result->event_id;
    $player_id = $result->player_id;
    $game_id = $result->game_id;
    printf("insert Event " . "{$event_id}: " . "{$player_id}" . " and " . "{$game_id}" . " succeeded!");
    ?>
	<br>
	<?php 
}
?>

 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;
 }
 public static function addEventToGame($game_id, $type, $first, $last, $score, $team)
 {
     $mysqli = new mysqli("classroom.cs.unc.edu", "hongkun", "CH@ngemenow99Please!hongkun", "hongkundb");
     /*check the connection*/
     if (mysqli_connect_errno()) {
         printf("Connection failed: %s\n", mysqli_connect_errno);
         exit;
     }
     // First: add the score to specific team, if team is found
     $teamSelected = $mysqli->query("select * from Game where (Team1 = '{$team}' || Team2 = '{$team}') && game_id = '{$game_id}'");
     if ($teamSelected->num_rows == 0) {
         header("HTTP/1.0 400 Bad Request");
         printMessageJSON("Bad Request, Team Not Match");
         exit;
     }
     $teamSelected = $teamSelected->fetch_row();
     $allAcore = [$teamSelected[1] => $teamSelected[3], $teamSelected[2] => $teamSelected[4]];
     if ($type == "fieldgoal") {
         $allAcore[$team] += 3;
     } else {
         if ($type == "passing") {
             $allAcore[$team] += 7;
         } else {
             if ($type == "rushing") {
                 $allAcore[$team] += 7;
             }
         }
     }
     // if the score is not match, exit();
     if ($allAcore[$team] != $score) {
         header("HTTP/1.0 400 Bad Request");
         printMessageJSON("Bad Request, Score Not Match");
         exit;
     }
     if ($allAcore[$teamSelected[1]] >= $allAcore[$teamSelected[2]]) {
         $winner = [$teamSelected[1] => $allAcore[$teamSelected[1]]];
         $loser = [$teamSelected[2] => $allAcore[$teamSelected[2]]];
     } else {
         $winner = [$teamSelected[2] => $allAcore[$teamSelected[2]]];
         $loser = [$teamSelected[1] => $allAcore[$teamSelected[1]]];
     }
     // Update the team score in Game Table.
     $gameUpdated = game::update($game_id, key($winner), key($loser), current($winner), current($loser));
     // Second: find the player in the team specified.
     // if it exists, return p_id, if not, insert it and return the p_id.
     $player_id = $mysqli->query("select player_id from Player where first_name = '{$first}' && last_name = '{$last}' && team_name = '{$team}'");
     if ($player_id->num_rows == 0) {
         $newPlayer = player::insert($first, $last, $team);
         $newPlayer = (array) $newPlayer;
         $player_id = intval($newPlayer["player_id"]);
     } else {
         $player_id = $player_id->fetch_row()[0];
     }
     // Use the p_id and game_id to find the event of the type,
     // if it exists, increase the number of the type
     // if not, insert the event.
     $eventSelected = $mysqli->query("select event_id from Event where p_id = '{$player_id}' && g_id = '{$game_id}'");
     $cnt = ["rushing" => 0, "passing" => 0, "fieldgoal" => 0, "passTo" => NULL];
     $cnt[$type]++;
     if ($eventSelected->num_rows == 0) {
         $event_id = event::insert($player_id, $game_id, $cnt["rushing"], $cnt["passing"], $cnt["fieldgoal"], $cnt["passTo"]);
     } else {
         $event_id = event::update($player_id, $game_id, $cnt["rushing"], $cnt["passing"], $cnt["fieldgoal"], $cnt["passTo"]);
     }
     // var_dump($event_id);
     $ids = [$game_id, $player_id];
     return $ids;
 }