2017-11-24 00:09:36 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< ? php 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								//DIR Because of include problems
 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-18 22:57:12 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								require_once ( __DIR__  .  " /incident.php " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								require_once ( __DIR__  .  " /service.php " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								require_once ( __DIR__  .  " /user.php " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								require_once ( __DIR__  .  " /token.php " ); 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-24 00:09:36 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								*  Facade  class 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								*/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								class  Constellation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 20:39:10 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   *  Renders  incidents  matching  specified  constraints . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   *  @ param  Boolean  $future  -  specifies  whether  to  render  old  or  upcoming  incidents 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   *  @ param  int  $offset  -  specifies  offset  -  used  for  pagination 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   *  @ param  int  $limit  -  limits  the  number  of  incidents  rendered 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   *  @ param  Boolean  $admin  -  specifies  whether  to  render  admin  controls 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   */ 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-24 00:09:36 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  public  function  render_incidents ( $future = false ,  $offset = 0 ,  $limit  =  5 ,  $admin  =  0 ){ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    global  $mysqli ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ( $offset < 0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      $offset  =  0 ;  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2018-01-02 19:37:15 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    $ajax  =  isset ( $_GET [ 'ajax' ]); 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-24 00:09:36 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    $limit ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $c  =  ( $future ) ? " >= " : " <= " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $timestamp  =  ( isset ( $_GET [ 'timestamp' ]) &&  ! $future ) ? $_GET [ 'timestamp' ] : time (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $sql  =  $mysqli -> prepare ( " SELECT *, status.id as status_id FROM status INNER JOIN users ON user_id=users.id WHERE `time`  $c  ? AND `end_time`  $c  ?  OR (`time`<=? AND `end_time`  $c  ? ) ORDER BY `time` DESC LIMIT ? OFFSET ? " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $sql -> bind_param ( " iiiiii " , $timestamp ,  $timestamp ,  $timestamp ,  $timestamp ,  $limit ,  $offset ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $sql -> execute (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $query  =  $sql -> get_result (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ( $future  &&  $query -> num_rows  &&  ! $ajax ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-31 00:41:58 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  " <h3> " . _ ( " Planned maintenance " ) . " </h3> " ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-24 00:09:36 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else  if  ( $query -> num_rows  &&! $ajax ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      if  ( $offset )  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      { 
							 
						 
					
						
							
								
									
										
										
										
											2018-03-10 00:07:40 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        echo  '<noscript><div class="centered"><a href="' . WEB_URL . '/?offset=' . ( $offset - $limit + 1 ) . '×tamp=' . $timestamp . '" class="btn btn-default">' . _ ( " Back " ) . '</a></div></noscript>' ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-24 00:09:36 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-31 00:41:58 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  " <h3> " . _ ( " Past incidents " ) . " </h3> " ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-24 00:09:36 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else  if  ( ! $future  &&! $ajax ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-31 00:41:58 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      echo  " <h3> " . _ ( " No incidents " ) . " </h3> " ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-24 00:09:36 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $show  =  ! $future  &&  $query -> num_rows == $limit ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $limit -- ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $offset  +=  $limit ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ( $query -> num_rows ){ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      while (( $result  =  $query -> fetch_assoc ())  &&  $limit --> 0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $incident  =  new  Incident ( $result ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $incident -> render ( $admin ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      if  ( $show ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      { 
							 
						 
					
						
							
								
									
										
										
										
											2018-03-10 00:07:40 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        echo  '<div class="centered"><a href="' . WEB_URL . '/?offset=' . ( $offset ) . '×tamp=' . $timestamp . '" id="loadmore" class="btn btn-default">' . _ ( " Load more " ) . '</a></div>' ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-24 00:09:36 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-01-07 20:39:10 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   *  Renders  service  status  -  in  admin  page  it  returns  array  so  it  can  be  processed  further . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   *  @ param  boolean  $admin 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   *  @ return  array  of  services  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-04-13 21:31:03 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  public  function  render_status ( $admin  =  false ,  $heading  =  true ){ 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-24 00:09:36 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    global  $mysqli ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $query  =  $mysqli -> query ( " SELECT id, name  FROM services " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    $array  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ( $query -> num_rows ){ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      $timestamp  =  time (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      while ( $result  =  $query -> fetch_assoc ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $id  =  $result [ 'id' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $sql  =  $mysqli -> prepare ( " SELECT type FROM services_status INNER JOIN status ON services_status.status_id = status.id WHERE service_id = ? AND `time` <= ? AND (`end_time` >= ? OR `end_time`=0) ORDER BY `time` DESC LIMIT 1 " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $sql -> bind_param ( " iii " ,  $id ,  $timestamp ,  $timestamp ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $sql -> execute (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $tmp  =  $sql -> get_result (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        if  ( $tmp -> num_rows ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          $array []  =  new  Service ( $result [ 'id' ],  $result [ 'name' ],  $tmp -> fetch_assoc ()[ 'type' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        else { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          $array []  =  new  Service ( $result [ 'id' ],  $result [ 'name' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      }       
							 
						 
					
						
							
								
									
										
										
										
											2018-04-13 21:31:03 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      if  ( $heading ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        echo  Service :: current_status ( $array ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-24 00:09:36 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else { 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-31 00:41:58 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      $array []  =  new  Service ( 0 ,  _ ( " No services " ),  - 1 ); 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-24 00:09:36 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if  ( ! $admin ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      echo  '<div id="status-container" class="clearfix">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      foreach ( $array  as  $service ){ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        $service -> render (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      echo  '</div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      return  $array ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}           
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$constellation  =  new  Constellation ();