jiti-meet/modules/UI/side_pannels/settings/SettingsMenu.js

102 lines
3.1 KiB
JavaScript
Raw Normal View History

/* global APP, $ */
2015-02-13 09:38:37 +00:00
var Settings = require("./../../../settings/Settings");
2015-01-23 12:01:44 +00:00
var UIUtil = require("../../util/UIUtil");
var languages = require("../../../../service/translation/languages");
2015-12-01 13:41:58 +00:00
var UIEvents = require("../../../../service/UI/UIEvents");
function generateLanguagesSelectBox() {
var currentLang = APP.translation.getCurrentLanguage();
var html = "<select id=\"languages_selectbox\">";
var langArray = languages.getLanguages();
for(var i = 0; i < langArray.length; i++) {
var lang = langArray[i];
html += "<option ";
if(lang === currentLang)
html += "selected ";
html += "value=\"" + lang + "\" data-i18n='languages:" + lang + "'>";
html += "</option>";
}
return html + "</select>";
}
2015-01-07 14:54:03 +00:00
var SettingsMenu = {
2015-12-01 13:41:58 +00:00
init: function (emitter) {
this.emitter = emitter;
var startMutedSelector = $("#startMutedOptions");
startMutedSelector.before(generateLanguagesSelectBox());
APP.translation.translateElement($("#languages_selectbox"));
$('#settingsmenu>input').keyup(function(event){
if(event.keyCode === 13) {//enter
SettingsMenu.update();
}
});
2015-12-03 13:11:01 +00:00
if (APP.conference.isModerator) {
startMutedSelector.css("display", "block");
2015-12-01 13:41:58 +00:00
} else {
startMutedSelector.css("display", "none");
2015-05-19 15:03:01 +00:00
}
$("#updateSettings").click(function () {
SettingsMenu.update();
});
},
2015-05-19 15:03:01 +00:00
onRoleChanged: function () {
2015-12-03 13:11:01 +00:00
if(APP.conference.isModerator) {
2015-05-19 15:03:01 +00:00
$("#startMutedOptions").css("display", "block");
}
else {
2015-05-19 15:03:01 +00:00
$("#startMutedOptions").css("display", "none");
}
},
setStartMuted: function (audio, video) {
$("#startAudioMuted").attr("checked", audio);
$("#startVideoMuted").attr("checked", video);
},
2015-01-07 14:54:03 +00:00
update: function() {
2015-12-01 13:41:58 +00:00
// FIXME check if this values really changed:
// compare them with Settings etc.
var newDisplayName =
2015-12-01 13:41:58 +00:00
UIUtil.escapeHtml($('#setDisplayName').get(0).value);
2015-01-07 14:54:03 +00:00
2015-12-01 13:41:58 +00:00
if (newDisplayName) {
this.emitter.emit(UIEvents.NICKNAME_CHANGED, newDisplayName);
2015-01-07 14:54:03 +00:00
}
var language = $("#languages_selectbox").val();
2015-12-01 13:41:58 +00:00
this.emitter.emit(UIEvents.LANG_CHANGED, language);
2015-01-07 14:54:03 +00:00
2015-12-01 13:41:58 +00:00
var newEmail = UIUtil.escapeHtml($('#setEmail').get(0).value);
this.emitter.emit(UIEvents.EMAIL_CHANGED, newEmail);
2015-01-07 14:54:03 +00:00
2015-05-19 15:03:01 +00:00
var startAudioMuted = ($("#startAudioMuted").is(":checked"));
var startVideoMuted = ($("#startVideoMuted").is(":checked"));
2015-12-01 13:41:58 +00:00
this.emitter.emit(
UIEvents.START_MUTED_CHANGED, startAudioMuted, startVideoMuted
);
2015-01-07 14:54:03 +00:00
},
isVisible: function() {
return $('#settingsmenu').is(':visible');
},
2015-12-01 13:41:58 +00:00
onDisplayNameChange: function(id, newDisplayName) {
if(id === 'localVideoContainer' || APP.conference.isLocalId(id)) {
$('#setDisplayName').get(0).value = newDisplayName;
}
},
changeAvatar: function (thumbUrl) {
$('#avatar').get(0).src = thumbUrl;
2015-01-07 14:54:03 +00:00
}
};
module.exports = SettingsMenu;