diff --git a/CreateDB.sql b/CreateDB.sql index b2896a0..883dc84 100644 --- a/CreateDB.sql +++ b/CreateDB.sql @@ -27,6 +27,7 @@ CREATE TABLE `Headset` ( `last_used` TIMESTAMP DEFAULT CURRENT_TIME, `user_color` VARCHAR(9), `user_name` VARCHAR(64), + `avatar_url` VARCHAR(128), -- Stuff like player color, nickname, whiteboard state `user_details` JSON, CHECK (JSON_VALID(`user_details`)) diff --git a/velconnect/routes/api.py b/velconnect/routes/api.py index 250219c..a1cd2c6 100644 --- a/velconnect/routes/api.py +++ b/velconnect/routes/api.py @@ -164,7 +164,6 @@ def set_headset_details_json(hw_id): return jsonify({'success': True}) - @bp.route('/set_room_details//json', methods=['POST']) @require_api_key(10) def set_room_details_json(room_id): @@ -183,7 +182,6 @@ def set_room_details_json(room_id): return jsonify({'success': True}) - @bp.route('/set_headset_details//user_name', methods=['POST']) @require_api_key(10) def set_headset_details_user_name(hw_id): @@ -222,6 +220,25 @@ def set_headset_details_user_color(hw_id): return response +@bp.route('/set_headset_details//avatar_url', methods=['POST']) +@require_api_key(10) +def set_headset_details_avatar_url(hw_id): + conn, curr = connectToDB() + query = """ + UPDATE `Headset` + SET `avatar_url` = %(avatar_url)s + WHERE `hw_id` = %(hw_id)s; + """ + data = request.json + data['hw_id'] = hw_id + curr.execute(query, data) + conn.commit() + curr.close() + response = jsonify({'success': True}) + response.headers.add('Access-Control-Allow-Origin', '*') + return response + + @bp.route('/get_room_details/', methods=['GET']) @require_api_key(10) def get_room_details(room_id): diff --git a/velconnect/static/img/copy_avatar_link.png b/velconnect/static/img/copy_avatar_link.png new file mode 100644 index 0000000..4451c18 Binary files /dev/null and b/velconnect/static/img/copy_avatar_link.png differ diff --git a/velconnect/static/img/mini_landscape.png b/velconnect/static/img/mini_landscape.png new file mode 100644 index 0000000..fdfb4c6 Binary files /dev/null and b/velconnect/static/img/mini_landscape.png differ diff --git a/velconnect/templates/api_url.html b/velconnect/templates/api_url.html index 048b346..9491b78 100644 --- a/velconnect/templates/api_url.html +++ b/velconnect/templates/api_url.html @@ -1 +1 @@ -http://velconnect.crabdance.com \ No newline at end of file +http://velconnect.ugavel.com \ No newline at end of file diff --git a/velconnect/templates/index.html b/velconnect/templates/index.html index 9430766..e884b5f 100644 --- a/velconnect/templates/index.html +++ b/velconnect/templates/index.html @@ -32,10 +32,16 @@
+ +
+ +
+
+
TV URL
+ +
+
+ +
+
+
Carpet Color
@@ -122,8 +146,10 @@ let headset_details = document.getElementById('headset_details'); let hw_id_field = document.getElementById('hw_id'); let failure = document.getElementById('failure'); - let set_room_id = document.getElementById('set_room_id'); let current_room = document.getElementById('current_room'); + let set_room_id = document.getElementById('set_room_id'); + let user_color = document.getElementById('user_color'); + let carpet_color = document.getElementById('carpet_color'); // check cookie @@ -139,12 +165,34 @@ writeClass('date_created', respData['user']['date_created'] + "
" + timeSinceString(respData['user']['date_created']) + " ago"); writeClass('last_used', respData['user']['last_used'] + "
" + timeSinceString(respData['user']['last_used']) + " ago"); writeValue('user_color', respData['user']['user_color']); + user_color.parentElement.style.color = respData['user']['user_color']; writeValue('user_name', respData['user']['user_name']); + writeValue('avatar_url', respData['user']['avatar_url']); if (respData['room']) { writeValue('tv_url', respData['room']['tv_url']); writeValue('carpet_color', respData['room']['carpet_color']); + carpet_color.parentElement.style.color = respData['room']['carpet_color']; } + + + Coloris({ + el: '.coloris', + swatches: [ + '#264653', + '#2a9d8f', + '#e9c46a', + '#f4a261', + '#e76f51', + '#d62828', + '#023e8a', + '#0077b6', + '#0096c7', + '#00b4d8', + '#48cae4', + ] + }); + loading.style.display = "none"; headset_details.style.display = "block"; }, (status) => { @@ -182,6 +230,9 @@ document.getElementById('set_carpet_color').addEventListener('click', () => { setRoomData('carpet_color', { "carpet_color": document.getElementById('carpet_color').value }); }); + document.getElementById('set_avatar_url').addEventListener('click', () => { + setUserData('avatar_url', { "avatar_url": document.getElementById('avatar_url').value }); + }); } else { window.location.href = "/pair"; @@ -189,9 +240,6 @@ - - - Coloris({ el: '.coloris', swatches: [ @@ -209,6 +257,5 @@ ] }); - {% endblock %} \ No newline at end of file