searchable event log
This commit is contained in:
		
							parent
							
								
									cea83d65ee
								
							
						
					
					
						commit
						8de01a6184
					
				@ -44,7 +44,31 @@ class LogDatabase extends SimpleExtension {
 | 
				
			|||||||
		global $database, $user;
 | 
							global $database, $user;
 | 
				
			||||||
		if($event->page_matches("log/view")) {
 | 
							if($event->page_matches("log/view")) {
 | 
				
			||||||
			if($user->is_admin()) {
 | 
								if($user->is_admin()) {
 | 
				
			||||||
				$events = $database->get_all("SELECT * FROM score_log ORDER BY id DESC LIMIT 50");
 | 
									$wheres = array();
 | 
				
			||||||
 | 
									$args = array();
 | 
				
			||||||
 | 
									if(!empty($_GET["time"])) {
 | 
				
			||||||
 | 
										$wheres[] = "date_sent LIKE ?";
 | 
				
			||||||
 | 
										$args[] = $_GET["time"]."%";
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									if(!empty($_GET["module"])) {
 | 
				
			||||||
 | 
										$wheres[] = "section = ?";
 | 
				
			||||||
 | 
										$args[] = $_GET["module"];
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									if(!empty($_GET["user"])) {
 | 
				
			||||||
 | 
										$wheres[] = "(username = ? OR address = ?)";
 | 
				
			||||||
 | 
										$args[] = $_GET["user"];
 | 
				
			||||||
 | 
										$args[] = $_GET["user"];
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									if(!empty($_GET["priority"])) {
 | 
				
			||||||
 | 
										$wheres[] = "priority >= ?";
 | 
				
			||||||
 | 
										$args[] = int_escape($_GET["priority"]);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									$where = "";
 | 
				
			||||||
 | 
									if(count($wheres) > 0) {
 | 
				
			||||||
 | 
										$where = "WHERE ";
 | 
				
			||||||
 | 
										$where .= join(" AND ", $wheres);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									$events = $database->get_all("SELECT * FROM score_log $where ORDER BY id DESC LIMIT 50", $args);
 | 
				
			||||||
				$this->theme->display_events($events);
 | 
									$this->theme->display_events($events);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,10 +1,39 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class LogDatabaseTheme extends Themelet {
 | 
					class LogDatabaseTheme extends Themelet {
 | 
				
			||||||
 | 
						protected function heie($var) {
 | 
				
			||||||
 | 
							if(isset($_GET[$var])) return html_escape($_GET[$var]);
 | 
				
			||||||
 | 
							else return "";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	public function display_events($events) {
 | 
						public function display_events($events) {
 | 
				
			||||||
		$table = "<table class='zebra'>";
 | 
							$table = "
 | 
				
			||||||
		$table .= "<thead><th>Time</th><th>Module</th><th>User</th><th>Message</th></thead>";
 | 
					<style>
 | 
				
			||||||
		$table .= "<tbody>\n";
 | 
					.sizedinputs TD INPUT {
 | 
				
			||||||
 | 
						width: 100%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
 | 
					<table class='zebra'>
 | 
				
			||||||
 | 
						<thead>
 | 
				
			||||||
 | 
							<tr><th>Time</th><th>Module</th><th>User</th><th>Message</th></tr>
 | 
				
			||||||
 | 
							<form action='".make_link("log/view")."' method='GET'>
 | 
				
			||||||
 | 
								<tr class='sizedinputs'>
 | 
				
			||||||
 | 
									<td><input type='text' name='time' value='".$this->heie("time")."'></td>
 | 
				
			||||||
 | 
									<td><input type='text' name='module' value='".$this->heie("module")."'></td>
 | 
				
			||||||
 | 
									<td><input type='text' name='user' value='".$this->heie("user")."'></td>
 | 
				
			||||||
 | 
									<td>
 | 
				
			||||||
 | 
										<select name='priority'>
 | 
				
			||||||
 | 
											<option value='".SCORE_LOG_DEBUG."'>Debug</option>
 | 
				
			||||||
 | 
											<option value='".SCORE_LOG_INFO."' selected>Info</option>
 | 
				
			||||||
 | 
											<option value='".SCORE_LOG_WARNING."'>Warning</option>
 | 
				
			||||||
 | 
											<option value='".SCORE_LOG_ERROR."'>Error</option>
 | 
				
			||||||
 | 
											<option value='".SCORE_LOG_CRITICAL."'>Critical</option>
 | 
				
			||||||
 | 
										</select>
 | 
				
			||||||
 | 
										<input type='submit' value='Search' style='width: 20%'>
 | 
				
			||||||
 | 
									</td>
 | 
				
			||||||
 | 
								</tr>
 | 
				
			||||||
 | 
							</form>
 | 
				
			||||||
 | 
						</thead>
 | 
				
			||||||
 | 
						<tbody>\n";
 | 
				
			||||||
		$n = 0;
 | 
							$n = 0;
 | 
				
			||||||
		foreach($events as $event) {
 | 
							foreach($events as $event) {
 | 
				
			||||||
			$oe = ($n++ % 2 == 0) ? "even" : "odd";
 | 
								$oe = ($n++ % 2 == 0) ? "even" : "odd";
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user