List sessions
This commit is contained in:
		
							parent
							
								
									833a446899
								
							
						
					
					
						commit
						62c54dc3e6
					
				|  | @ -63,9 +63,8 @@ | |||
|                                     <label for="datasetLabel" class="form-label">Sesson name</label> | ||||
|                                     <input type="text" class="form-control" id="datasetLabel" | ||||
|                                         aria-describedby="labelHelp"> | ||||
|                                     <div id="labelHelp" class="form-text">You'll be able to recover this file in the | ||||
|                                         future | ||||
|                                         with this name | ||||
|                                     <div id="labelHelp" class="form-text"> | ||||
|                                         You'll be able to recover this file in the future with this name | ||||
|                                     </div> | ||||
|                                 </div> | ||||
|                                 <div class="modal-body"> | ||||
|  | @ -88,7 +87,7 @@ | |||
|                 <!-- Button trigger modal --> | ||||
|                 <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#staticBackdrop" | ||||
|                     id="loadSessionsButton"> | ||||
|                     Browse sessions | ||||
|                     Load a session | ||||
|                 </button> | ||||
| 
 | ||||
|                 <!-- Modal --> | ||||
|  | @ -97,15 +96,17 @@ | |||
|                     <div class="modal-dialog modal-dialog-scrollable"> | ||||
|                         <div class="modal-content"> | ||||
|                             <div class="modal-header"> | ||||
|                                 <h5 class="modal-title" id="staticBackdropLabel">Current sessions</h5> | ||||
|                                 <h5 class="modal-title" id="staticBackdropLabel">Available sessions</h5> | ||||
|                                 <button type="button" class="btn-close" data-bs-dismiss="modal" | ||||
|                                     aria-label="Close"></button> | ||||
|                             </div> | ||||
|                             <div class="modal-body" id="userSessions"> | ||||
|                                 <p>Current sessions...</p> | ||||
|                                 <ul id="userSessions"> | ||||
|                                 </ul> | ||||
|                             </div> | ||||
|                             <div class="modal-footer"> | ||||
|                                 <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button> | ||||
|                                 <button type="button" class="btn btn-secondary" data-bs-dismiss="modal" | ||||
|                                     id="sessionCloseButton">Close</button> | ||||
|                             </div> | ||||
|                         </div> | ||||
|                     </div> | ||||
|  |  | |||
|  | @ -26,7 +26,6 @@ document.addEventListener("DOMContentLoaded", function () { | |||
| 
 | ||||
| const textarea = document.getElementById('chatTextarea'); | ||||
| const sendButton = document.getElementById('sendButton'); | ||||
| const sessions = document.getElementById('userSessions'); | ||||
| const chatMessages = document.querySelector('.chat-messages'); | ||||
| 
 | ||||
| // Auto resize textarea
 | ||||
|  | @ -167,14 +166,24 @@ document.addEventListener("DOMContentLoaded", function () { | |||
| // Function to get the user sessions
 | ||||
| document.addEventListener("DOMContentLoaded", function () { | ||||
|     const sessionsButton = document.getElementById('loadSessionsButton'); | ||||
|     const sessions = document.getElementById('userSessions'); | ||||
| 
 | ||||
|     sessionsButton.addEventListener('click', async function fetchSessions() { | ||||
|         try { | ||||
|             const response = await fetch('/sessions'); | ||||
|             if (!response.ok) { | ||||
|                 throw new Error('Network response was not ok ' + response.statusText); | ||||
|             } | ||||
|             const data = await response.text(); | ||||
|             sessions.innerHTML = data; | ||||
|             const data = JSON.parse(await response.text()); | ||||
|             sessions.innerHTML = ''; | ||||
|             data.forEach(item => { | ||||
|                 const listItem = document.createElement('li'); | ||||
|                 const button = document.createElement('button'); | ||||
|                 button.textContent = item; | ||||
|                 button.addEventListener("click", function () { alert(`You clicked on ${item}`); }); | ||||
|                 listItem.appendChild(button); | ||||
|                 sessions.appendChild(listItem); | ||||
|             }); | ||||
|         } catch (error) { | ||||
|             sessions.innerHTML = 'Error: ' + error.message; | ||||
|         } | ||||
|  |  | |||
|  | @ -91,16 +91,23 @@ class OwnershipDB(DDB): | |||
|         return sid | ||||
| 
 | ||||
|     def sessions(self, user_email: str) -> List[str]: | ||||
|         return ( | ||||
|             self.db.sql(f""" | ||||
|         try: | ||||
|             return ( | ||||
|                 self.db.sql(f""" | ||||
|             SELECT | ||||
|                 sid | ||||
|             FROM | ||||
|                 '{self.path_prefix}/*.csv' | ||||
|             WHERE | ||||
|                 email = '{user_email}' | ||||
|                 email = '{user_email} | ||||
|             ORDER BY | ||||
|                 timestamp ASC | ||||
|             LIMIT 10' | ||||
|         """) | ||||
|             .pl() | ||||
|             .to_series() | ||||
|             .to_list() | ||||
|         ) | ||||
|                 .pl() | ||||
|                 .to_series() | ||||
|                 .to_list() | ||||
|             ) | ||||
|         # If the table does not exist | ||||
|         except duckdb.duckdb.IOException: | ||||
|             return [] | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue