/content/tinder.php

https://github.com/db48x/testswarm · PHP · 207 lines · 167 code · 40 blank · 0 comment · 90 complexity · 6865e2ec12cb7c8c8a46ed9b6bebe733 MD5 · raw file

  1. <?php
  2. function get_status($num){
  3. if ( $num == 0 ) {
  4. return "Not started yet.";
  5. } else if ( $num == 1 ) {
  6. return "In progress.";
  7. } else {
  8. return "Completed.";
  9. }
  10. }
  11. function get_status2($num, $fail, $error, $total){
  12. if ( $num == 0 ) {
  13. return "notstarted notdone";
  14. } else if ( $num == 1 ) {
  15. return "progress notdone";
  16. } else if ( $num == 2 && $fail == -1 ) {
  17. return "timeout";
  18. } else if ( $num == 2 && ($error > 0 || $total == 0) ) {
  19. return "error";
  20. } else {
  21. return $fail > 0 ? "fail" : "pass";
  22. }
  23. }
  24. $result = mysql_queryf("SELECT useragents.engine as engine, useragents.name as name, clients.os as os, DATE_FORMAT(clients.created, '%Y-%m-%dT%H:%i:%sZ') as since FROM users, clients, useragents WHERE clients.useragent_id=useragents.id AND DATE_ADD(clients.updated, INTERVAL 1 minute) > NOW() AND clients.user_id=users.id AND users.name=%s ORDER BY useragents.engine, useragents.name;", $search_user);
  25. if ( mysql_num_rows($result) > 0 ) {
  26. echo "<h3>Active Clients:</h3><ul class='clients'>";
  27. while ( $row = mysql_fetch_array($result) ) {
  28. $engine = $row[0];
  29. $browser_name = $row[1];
  30. $name = $row[2];
  31. $since = $row[3];
  32. if ( $name == "xp" ) {
  33. $name = "Windows XP";
  34. } else if ( $name == "vista" ) {
  35. $name = "Windows Vista";
  36. } else if ( $name == "win7" ) {
  37. $name = "Windows 7";
  38. } else if ( $name == "2000" ) {
  39. $name = "Windows 2000";
  40. } else if ( $name == "2003" ) {
  41. $name = "Windows 2003";
  42. } else if ( $name == "osx10.4" ) {
  43. $name = "OS X 10.4";
  44. } else if ( $name == "osx10.5" ) {
  45. $name = "OS X 10.5";
  46. } else if ( $name == "osx10.6" ) {
  47. $name = "OS X 10.6";
  48. } else if ( $name == "osx" ) {
  49. $name = "OS X";
  50. } else if ( $name == "linux" ) {
  51. $name = "Linux";
  52. }
  53. echo "<li><img src='" . swarmpath( "/" ) . "images/$engine.sm.png' class='$engine'/> <strong class='name'>$browser_name $name</strong><br>Connected <span title='$since' class='pretty'>$since</span></li>";
  54. }
  55. echo "</ul>";
  56. }
  57. $job_search = preg_replace("/[^a-zA-Z ]/", "", getItem( "job", $_REQUEST, "" ) );
  58. $job_search .= "%";
  59. $search_result = mysql_queryf("SELECT jobs.name, jobs.status, jobs.id FROM jobs, users WHERE jobs.name LIKE %s AND users.name=%s AND jobs.user_id=users.id ORDER BY jobs.created DESC LIMIT 15;", $job_search, $search_user);
  60. if ( mysql_num_rows($search_result) > 0 ) {
  61. echo '<br/><h3>Recent Jobs:</h3><table class="results"><tbody>';
  62. $output = "";
  63. $browsers = array();
  64. $addBrowser = true;
  65. $last = "";
  66. while ( $row = mysql_fetch_array($search_result) ) {
  67. $job_name = $row[0];
  68. $job_status = get_status(intval($row[1]));
  69. $job_id = $row[2];
  70. $output .= '<tr><th><a href="' . swarmpath( "job/{$job_id}/" ) . '">' . strip_tags($job_name) . "</a></th>\n";
  71. $results = array();
  72. $states = array();
  73. $result = mysql_queryf("SELECT runs.id as run_id, runs.url as run_url, runs.name as run_name, useragents.engine as browser, useragents.name as browsername, useragents.id as useragent_id, run_useragent.status as status FROM run_useragent, runs, useragents WHERE runs.job_id=%u AND run_useragent.run_id=runs.id AND run_useragent.useragent_id=useragents.id;", $job_id);
  74. $runs_results = array();
  75. while ( $row = mysql_fetch_assoc($result) ) {
  76. array_push($runs_results, $row);
  77. }
  78. usort($runs_results, function($a, $b) {
  79. $fa = $a[run_id];
  80. $fb = $b[run_id];
  81. $r = ($fa > $fb) ? 1 : ($fa = $fb) ? 0 : -1;
  82. return ($r != 0) ? $r : strnatcmp($a[browsername], $b[browsername]);
  83. });
  84. foreach ( $runs_results as $row ) {
  85. if ( $row["run_id"] != $last ) {
  86. if ( $last ) {
  87. $addBrowser = false;
  88. }
  89. $useragents = array();
  90. $runResult = mysql_queryf("SELECT run_client.client_id as client_id, run_client.status as status, run_client.fail as fail, run_client.error as error, run_client.total as total, clients.useragent_id as useragent_id, useragents.name as browser FROM useragents, run_client, clients WHERE run_client.run_id=%u AND run_client.client_id=clients.id AND useragents.id=useragent_id;", $row["run_id"]);
  91. $ua_results = array();
  92. while ( $ua_row = mysql_fetch_assoc($runResult) ) {
  93. array_push($ua_results, $ua_row);
  94. }
  95. usort($ua_results, function($a, $b) {
  96. return ($r != 0) ? $r : strnatcmp($a[browser], $b[browser]);
  97. });
  98. foreach ( $ua_results as $ua_row ) {
  99. if ( !$useragents[ $ua_row["useragent_id"] ] ) {
  100. $useragents[ $ua_row["useragent_id"] ] = array();
  101. }
  102. array_push( $useragents[ $ua_row["useragent_id"] ], $ua_row );
  103. }
  104. }
  105. if ( $addBrowser ) {
  106. array_push( $browsers, array(
  107. "name" => $row["browsername"],
  108. "engine" => $row["browser"],
  109. "id" => $row["useragent_id"]
  110. ) );
  111. }
  112. $last_browser = "";
  113. if ( $useragents[ $row["useragent_id"] ] ) {
  114. foreach ( $useragents[ $row["useragent_id"] ] as $ua ) {
  115. $status = get_status2(intval($ua["status"]), intval($ua["fail"]), intval($ua["error"]), intval($ua["total"]));
  116. if ( $last_browser != $ua["browser"] ) {
  117. $cur = $results[ $ua["useragent_id"] ];
  118. $results[ $ua["useragent_id"] ] = $cur + intval($ua["fail"]);
  119. $cur = $states[ $ua["useragent_id"] ];
  120. if ( strstr($status, "notdone") || strstr($cur, "notdone") ) {
  121. $status = "notstarted notdone";
  122. } else if ( $status == "error" || $cur == "error" ) {
  123. $status = "error";
  124. } else if ( $status == "timeout" || $cur == "timeout" ) {
  125. $status = "timeout";
  126. } else if ( $status == "fail" || $cur == "fail" ) {
  127. $status = "fail";
  128. } else {
  129. $status = "pass";
  130. }
  131. $states[ $ua["useragent_id"] ] = $status;
  132. }
  133. $last_browser = $ua["browser"];
  134. }
  135. } else {
  136. $cur = $results[ $row["useragent_id"] ];
  137. $results[ $row["useragent_id"] ] = $cur + 0;
  138. $states[ $row["useragent_id"] ] = "notstarted notdone";
  139. }
  140. $last = $row["run_id"];
  141. }
  142. foreach ( $results as $key => $fail ) {
  143. $output .= '<td class="' . $states[$key] . '"></td>';
  144. }
  145. $output .= "</tr>\n";
  146. }
  147. if ( $last ) {
  148. $header = "<tr><th></th>\n";
  149. $last_browser = array();
  150. foreach ( $browsers as $browser ) {
  151. if ( $last_browser["id"] != $browser["id"] ) {
  152. $header .= '<th><div class="browser">' .
  153. '<img src="' . swarmpath( 'images/' ) . $browser["engine"] .
  154. '.sm.png" class="browser-icon ' . $browser["engine"] .
  155. '" alt="' . $browser["name"] .
  156. '" title="' . $browser["name"] .
  157. '"/><span class="browser-name">' .
  158. preg_replace('/\w+ /', "", $browser["name"]) . ', ' .
  159. '</span></div></th>';
  160. }
  161. $last_browser = $browser;
  162. }
  163. $header .= "</tr>\n";
  164. $output = $header . $output;
  165. }
  166. echo "$output</tr>\n</tbody>\n</table>";
  167. }