96 lines
2.4 KiB
JavaScript
96 lines
2.4 KiB
JavaScript
/* global $, APP, JitsiMeetJS */
|
|
import FeedbackWindow from "./FeedbackWindow";
|
|
|
|
/**
|
|
* Defines all methods in connection to the Feedback window.
|
|
*
|
|
* @type {{openFeedbackWindow: Function}}
|
|
*/
|
|
const Feedback = {
|
|
|
|
/**
|
|
* Initialise the Feedback functionality.
|
|
* @param emitter the EventEmitter to associate with the Feedback.
|
|
*/
|
|
init: function (emitter) {
|
|
// CallStats is the way we send feedback, so we don't have to initialise
|
|
// if callstats isn't enabled.
|
|
if (!APP.conference.isCallstatsEnabled())
|
|
return;
|
|
|
|
// If enabled property is still undefined, i.e. it hasn't been set from
|
|
// some other module already, we set it to true by default.
|
|
if (typeof this.enabled == "undefined")
|
|
this.enabled = true;
|
|
|
|
this.window = new FeedbackWindow();
|
|
this.emitter = emitter;
|
|
|
|
$("#feedbackButton").click(Feedback.openFeedbackWindow);
|
|
},
|
|
/**
|
|
* Enables/ disabled the feedback feature.
|
|
*/
|
|
enableFeedback: function (enable) {
|
|
this.enabled = enable;
|
|
},
|
|
|
|
/**
|
|
* Indicates if the feedback functionality is enabled.
|
|
*
|
|
* @return true if the feedback functionality is enabled, false otherwise.
|
|
*/
|
|
isEnabled: function() {
|
|
return this.enabled && APP.conference.isCallstatsEnabled();
|
|
},
|
|
|
|
/**
|
|
* Returns true if the feedback window is currently visible and false
|
|
* otherwise.
|
|
* @return {boolean} true if the feedback window is visible, false
|
|
* otherwise
|
|
*/
|
|
isVisible: function() {
|
|
return $(".feedback").is(":visible");
|
|
},
|
|
|
|
/**
|
|
* Indicates if the feedback is submitted.
|
|
*
|
|
* @return {boolean} {true} to indicate if the feedback is submitted,
|
|
* {false} - otherwise
|
|
*/
|
|
isSubmitted: function() {
|
|
return Feedback.window.submitted;
|
|
},
|
|
|
|
/**
|
|
* Opens the feedback window.
|
|
*/
|
|
openFeedbackWindow: function (callback) {
|
|
Feedback.window.show(callback);
|
|
|
|
JitsiMeetJS.analytics.sendEvent('feedback.open');
|
|
},
|
|
|
|
/**
|
|
* Returns the feedback score.
|
|
*
|
|
* @returns {*}
|
|
*/
|
|
getFeedbackScore: function() {
|
|
return Feedback.window.feedbackScore;
|
|
},
|
|
|
|
/**
|
|
* Returns the feedback free text.
|
|
*
|
|
* @returns {null|*|message}
|
|
*/
|
|
getFeedbackText: function() {
|
|
return Feedback.window.feedbackText;
|
|
}
|
|
};
|
|
|
|
export default Feedback;
|