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