Added sort by max confidence to Best Recordings page

This commit is contained in:
Brian Dembinski
2024-10-22 11:57:59 -04:00
committed by Nachtzuster
parent b581a22c14
commit 62e98ade0b
+23 -3
View File
@@ -22,6 +22,16 @@ if(isset($_GET['sort']) && $_GET['sort'] == "occurrences") {
$statement2 = $db->prepare('SELECT Date, Time, File_Name, Com_Name, COUNT(*), MAX(Confidence) FROM detections GROUP BY Com_Name ORDER BY COUNT(*) DESC'); $statement2 = $db->prepare('SELECT Date, Time, File_Name, Com_Name, COUNT(*), MAX(Confidence) FROM detections GROUP BY Com_Name ORDER BY COUNT(*) DESC');
ensure_db_ok($statement2); ensure_db_ok($statement2);
$result2 = $statement2->execute(); $result2 = $statement2->execute();
} else if(isset($_GET['sort']) && $_GET['sort'] == "confidence") {
$statement = $db->prepare('SELECT Date, Time, File_Name, Com_Name, COUNT(*), MAX(Confidence) FROM detections GROUP BY Com_Name ORDER BY MAX(Confidence) DESC');
ensure_db_ok($statement);
$result = $statement->execute();
$statement2 = $db->prepare('SELECT Date, Time, File_Name, Com_Name, COUNT(*), MAX(Confidence) FROM detections GROUP BY Com_Name ORDER BY MAX(Confidence) DESC');
ensure_db_ok($statement2);
$result2 = $statement2->execute();
} else { } else {
$statement = $db->prepare('SELECT Date, Time, File_Name, Com_Name, COUNT(*), MAX(Confidence) FROM detections GROUP BY Com_Name ORDER BY Com_Name ASC'); $statement = $db->prepare('SELECT Date, Time, File_Name, Com_Name, COUNT(*), MAX(Confidence) FROM detections GROUP BY Com_Name ORDER BY Com_Name ASC');
@@ -33,8 +43,6 @@ if(isset($_GET['sort']) && $_GET['sort'] == "occurrences") {
$result2 = $statement2->execute(); $result2 = $statement2->execute();
} }
if(isset($_GET['species'])){ if(isset($_GET['species'])){
$selection = htmlspecialchars_decode($_GET['species'], ENT_QUOTES); $selection = htmlspecialchars_decode($_GET['species'], ENT_QUOTES);
$statement3 = $db->prepare("SELECT Com_Name, Sci_Name, COUNT(*), MAX(Confidence), File_Name, Date, Time from detections WHERE Com_Name = \"$selection\""); $statement3 = $db->prepare("SELECT Com_Name, Sci_Name, COUNT(*), MAX(Confidence), File_Name, Date, Time from detections WHERE Com_Name = \"$selection\"");
@@ -71,6 +79,9 @@ if (get_included_files()[0] === __FILE__) {
<button <?php if(isset($_GET['sort']) && $_GET['sort'] == "occurrences"){ echo "class='sortbutton active'";} else { echo "class='sortbutton'"; }?> type="submit" name="sort" value="occurrences"> <button <?php if(isset($_GET['sort']) && $_GET['sort'] == "occurrences"){ echo "class='sortbutton active'";} else { echo "class='sortbutton'"; }?> type="submit" name="sort" value="occurrences">
<img src="images/sort_occ.svg" title="Sort by occurrences" alt="Sort by occurrences"> <img src="images/sort_occ.svg" title="Sort by occurrences" alt="Sort by occurrences">
</button> </button>
<button <?php if(isset($_GET['sort']) && $_GET['sort'] == "confidence"){ echo "class='sortbutton active'";} else { echo "class='sortbutton'"; }?> type="submit" name="sort" value="confidence">
<img src="images/sort_conf.svg" title="Sort by confidence" alt="Sort by confidence">
</button>
</form> </form>
</div> </div>
<br> <br>
@@ -80,12 +91,17 @@ if (get_included_files()[0] === __FILE__) {
<table> <table>
<?php <?php
$birds = array(); $birds = array();
$confidence = array();
while($results=$result2->fetchArray(SQLITE3_ASSOC)) while($results=$result2->fetchArray(SQLITE3_ASSOC))
{ {
$comname = preg_replace('/ /', '_', $results['Com_Name']); $comname = preg_replace('/ /', '_', $results['Com_Name']);
$comname = preg_replace('/\'/', '', $comname); $comname = preg_replace('/\'/', '', $comname);
$filename = "/By_Date/".$results['Date']."/".$comname."/".$results['File_Name']; $filename = "/By_Date/".$results['Date']."/".$comname."/".$results['File_Name'];
$birds[] = $results['Com_Name']; $birds[] = $results['Com_Name'];
if ($_GET['sort'] == "confidence") {
$confidence[] = ' (' . round($results['MAX(Confidence)'] * 100) . '%)';
}
} }
if(count($birds) > 45) { if(count($birds) > 45) {
@@ -93,6 +109,7 @@ if (get_included_files()[0] === __FILE__) {
} else { } else {
$num_cols = 1; $num_cols = 1;
} }
$num_rows = ceil(count($birds) / $num_cols); $num_rows = ceil(count($birds) / $num_cols);
for ($row = 0; $row < $num_rows; $row++) { for ($row = 0; $row < $num_rows; $row++) {
@@ -104,7 +121,7 @@ if (get_included_files()[0] === __FILE__) {
if ($index < count($birds)) { if ($index < count($birds)) {
?> ?>
<td> <td>
<button type="submit" name="species" value="<?php echo $birds[$index];?>"><?php echo $birds[$index];?></button> <button type="submit" name="species" value="<?php echo $birds[$index];?>"><?php echo $birds[$index].$confidence[$index];?></button>
</td> </td>
<?php <?php
} else { } else {
@@ -118,12 +135,14 @@ if (get_included_files()[0] === __FILE__) {
</table> </table>
</form> </form>
</div> </div>
<dialog style="margin-top: 5px;max-height: 95vh; <dialog style="margin-top: 5px;max-height: 95vh;
overflow-y: auto;overscroll-behavior:contain" id="attribution-dialog"> overflow-y: auto;overscroll-behavior:contain" id="attribution-dialog">
<h1 id="modalHeading"></h1> <h1 id="modalHeading"></h1>
<p id="modalText"></p> <p id="modalText"></p>
<button onclick="hideDialog()">Close</button> <button onclick="hideDialog()">Close</button>
</dialog> </dialog>
<script src="static/dialog-polyfill.js"></script> <script src="static/dialog-polyfill.js"></script>
<script> <script>
var dialog = document.querySelector('dialog'); var dialog = document.querySelector('dialog');
@@ -143,6 +162,7 @@ function setModalText(iter, title, text, authorlink) {
showDialog(); showDialog();
} }
</script> </script>
<div class="column center"> <div class="column center">
<?php if(!isset($_GET['species'])){ <?php if(!isset($_GET['species'])){
?><p class="centered">Choose a species to load images from Flickr.</p> ?><p class="centered">Choose a species to load images from Flickr.</p>