Success mesage on feedback submit

#6
by riderle - opened
chat_application/main.py CHANGED
@@ -647,8 +647,6 @@ def choose():
647
  "created_at": datetime.utcnow(),
648
  # user identity
649
  "user_id": user_id,
650
- # empty feedback history
651
- "feedbacks": [],
652
  })
653
 
654
  session['room'] = room_id
@@ -842,9 +840,12 @@ def handle_message(payload):
842
  {"_id": room},
843
  {"$push": {"feedback_responses": db_feedback}}
844
  )
845
-
846
- #LR TODO: add success/faillure msg and confirmation
847
-
 
 
 
848
 
849
  @socketio.on('disconnect')
850
  def handle_disconnect():
 
647
  "created_at": datetime.utcnow(),
648
  # user identity
649
  "user_id": user_id,
 
 
650
  })
651
 
652
  session['room'] = room_id
 
840
  {"_id": room},
841
  {"$push": {"feedback_responses": db_feedback}}
842
  )
843
+
844
+ if result:
845
+ print(result)
846
+ if result.modified_count > 0:
847
+ return {'status':'True'}
848
+ return {'ststus':'False'}
849
 
850
  @socketio.on('disconnect')
851
  def handle_disconnect():
chat_application/static/styles/styles.css CHANGED
@@ -462,12 +462,12 @@ hr {
462
  transition: 0.15s ease-in-out;
463
  }
464
 
465
- #abortYesBtn, #abortYesBtn-pre {
466
  background: #d9534f;
467
  color: white;
468
  }
469
 
470
- #abortYesBtn:hover, #abortYesBtn-pre:hover {
471
  background: #c9302c;
472
  }
473
 
@@ -498,12 +498,12 @@ hr {
498
  background: #ccc;
499
  }
500
 
501
- #welcomeOkBtn, #timerOkBtn, #submitFeedbackBtn {
502
  background: green;
503
  color: white;
504
  }
505
 
506
- #welcomeOkBtn:hover, #timerOkBtn:hover, #submitFeedbackBtn:hover {
507
  background: #016601;
508
  }
509
 
 
462
  transition: 0.15s ease-in-out;
463
  }
464
 
465
+ #abortYesBtn, #abortYesBtn-pre, #cancelFeedbackStatusBtn2 {
466
  background: #d9534f;
467
  color: white;
468
  }
469
 
470
+ #abortYesBtn:hover, #abortYesBtn-pre:hover, #cancelFeedbackStatusBtn2:hover {
471
  background: #c9302c;
472
  }
473
 
 
498
  background: #ccc;
499
  }
500
 
501
+ #welcomeOkBtn, #timerOkBtn, #submitFeedbackBtn, #cancelFeedbackStatusBtn {
502
  background: green;
503
  color: white;
504
  }
505
 
506
+ #welcomeOkBtn:hover, #timerOkBtn:hover, #submitFeedbackBtn:hover, #cancelFeedbackStatusBtn:hover {
507
  background: #016601;
508
  }
509
 
chat_application/templates/room.html CHANGED
@@ -30,7 +30,7 @@
30
  <h2 id="room-code-display">Topic: <span class="topic-title">{{ topic_info.title }}</span></h2>
31
  </div>
32
  <div class="topic-header-buttons">
33
- <button id="feedback-btn">Provide Feedback</button>
34
  <button id="end-exp-btn">End Chat Session</button>
35
  <button id="abort-exp-btn">Abort Experiment</button>
36
  </div>
@@ -73,7 +73,7 @@
73
  <h3>Feedback</h3>
74
  <form id="feedback-form">
75
  <div class="feedback-col">
76
- <label for="enter-feedback">Enter Feedback</label>
77
  <textarea id="enter-feedback" name="feedback"></textarea>
78
  </div>
79
  <br>
@@ -84,6 +84,23 @@
84
  </form>
85
  </div>
86
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  </div>
88
  <div id="chat-room-widget">
89
  <div id="msgs-container">
@@ -272,6 +289,8 @@
272
  //handler for feedback modal popup
273
  let feedbackModal = document.getElementById("feedback-modal");
274
  let form = document.getElementById("feedback-form");
 
 
275
  document.getElementById("feedback-btn").onclick = function () {
276
  feedbackModal.style.display = "block";
277
  };
@@ -279,6 +298,16 @@
279
  feedbackModal.style.display = "none";
280
  };
281
 
 
 
 
 
 
 
 
 
 
 
282
  //override form function to instead emit save feedback event
283
  form.addEventListener("submit", function (e) {
284
  e.preventDefault();
@@ -287,8 +316,13 @@
287
  const feedback = data.get("feedback")?.trim();
288
 
289
  if (!feedback) return;
290
- socketio.emit("feedback_given", { feedback });
291
-
 
 
 
 
 
292
  form.reset();
293
  document.getElementById("feedback-modal").style.display = "none";
294
  });
 
30
  <h2 id="room-code-display">Topic: <span class="topic-title">{{ topic_info.title }}</span></h2>
31
  </div>
32
  <div class="topic-header-buttons">
33
+ <button id="feedback-btn">Share Feedback and Report Bugs</button>
34
  <button id="end-exp-btn">End Chat Session</button>
35
  <button id="abort-exp-btn">Abort Experiment</button>
36
  </div>
 
73
  <h3>Feedback</h3>
74
  <form id="feedback-form">
75
  <div class="feedback-col">
76
+ <label for="enter-feedback">Tell us if you noticed something confusing, unexpected, or not working.</label>
77
  <textarea id="enter-feedback" name="feedback"></textarea>
78
  </div>
79
  <br>
 
84
  </form>
85
  </div>
86
  </div>
87
+
88
+ <div id="feedback-status-confirm" class="modal">
89
+ <div class="modal-content">
90
+ <p>Feedback submitted.</p>
91
+ <div class="modal-buttons">
92
+ <button class="modal-btn" id="cancelFeedbackStatusBtn">Ok</button>
93
+ </div>
94
+ </div>
95
+ </div>
96
+ <div id="feedback-status-fail" class="modal">
97
+ <div class="modal-content">
98
+ <p>Feedback failed to submit.</p>
99
+ <div class="modal-buttons">
100
+ <button class="modal-btn" id="cancelFeedbackStatusBtn2">Ok</button>
101
+ </div>
102
+ </div>
103
+ </div>
104
  </div>
105
  <div id="chat-room-widget">
106
  <div id="msgs-container">
 
289
  //handler for feedback modal popup
290
  let feedbackModal = document.getElementById("feedback-modal");
291
  let form = document.getElementById("feedback-form");
292
+ let feedbackConfirm = document.getElementById("feedback-status-confirm");
293
+ let feedbackFail = document.getElementById("feedback-status-fail");
294
  document.getElementById("feedback-btn").onclick = function () {
295
  feedbackModal.style.display = "block";
296
  };
 
298
  feedbackModal.style.display = "none";
299
  };
300
 
301
+ document.getElementById("cancelFeedbackStatusBtn").onclick = function () {
302
+ feedbackConfirm.style.display = "none";
303
+ feedbackFail.style.display = "none";
304
+ };
305
+
306
+ document.getElementById("cancelFeedbackStatusBtn2").onclick = function () {
307
+ feedbackConfirm.style.display = "none";
308
+ feedbackFail.style.display = "none";
309
+ };
310
+
311
  //override form function to instead emit save feedback event
312
  form.addEventListener("submit", function (e) {
313
  e.preventDefault();
 
316
  const feedback = data.get("feedback")?.trim();
317
 
318
  if (!feedback) return;
319
+
320
+ socketio.emit("feedback_given", { feedback }, (response) => {
321
+ if (response?.status === "True" || response?.status === true) {
322
+ feedbackConfirm.style.display = "block";
323
+ }
324
+ });
325
+
326
  form.reset();
327
  document.getElementById("feedback-modal").style.display = "none";
328
  });