update tables without full page reload
This commit is contained in:
		
							parent
							
								
									7e4044e780
								
							
						
					
					
						commit
						161abbe874
					
				| 
						 | 
				
			
			@ -1,6 +1,5 @@
 | 
			
		|||
{% extends 'layout.html' %}
 | 
			
		||||
{% block head %}
 | 
			
		||||
    <meta http-equiv="refresh" content="60">
 | 
			
		||||
    <title>Multiworld Tracker for Room {{ room.id }}</title>
 | 
			
		||||
    <link rel="stylesheet" type="text/css"
 | 
			
		||||
          href="https://cdn.datatables.net/v/bs4/jq-3.3.1/dt-1.10.21/fh-3.1.7/datatables.min.css"/>
 | 
			
		||||
| 
						 | 
				
			
			@ -15,9 +14,29 @@
 | 
			
		|||
                "fixedHeader": true,
 | 
			
		||||
                "dom": "t"
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            $('#searchbox').keyup(function () {
 | 
			
		||||
                tables.search($(this).val()).draw();
 | 
			
		||||
            })
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            function update() {
 | 
			
		||||
                var target = $("<div></div>");
 | 
			
		||||
                target.load("/tracker/{{ room.id }}", function (response, status) {
 | 
			
		||||
                    if (status === "success") {
 | 
			
		||||
                        target.find(".table").each(function (i, new_table) {
 | 
			
		||||
                            var new_trs = $(new_table).find("tbody>tr");
 | 
			
		||||
                            var old_table = tables.eq(i);
 | 
			
		||||
                            old_table.clear();
 | 
			
		||||
                            old_table.rows.add(new_trs).draw();
 | 
			
		||||
                        });
 | 
			
		||||
                    } else {
 | 
			
		||||
                        console.log("Failed to connect to Server, in order to update Table Data.");
 | 
			
		||||
                        console.log(response);
 | 
			
		||||
                    }
 | 
			
		||||
                })
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            setInterval(update, 30000);
 | 
			
		||||
        })
 | 
			
		||||
    </script>
 | 
			
		||||
    <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename="static.css") }}"/>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -192,7 +192,7 @@ def render_timedelta(delta: datetime.timedelta):
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
@app.route('/tracker/<int:room>')
 | 
			
		||||
@cache.memoize(timeout=60)  # update every minute
 | 
			
		||||
@cache.memoize(timeout=30)  # update every 30 seconds
 | 
			
		||||
def get_tracker(room: int):
 | 
			
		||||
    room = Room.get(id=room)
 | 
			
		||||
    if not room:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue