123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- /* global APP, $ */
- var Avatar = require("../../avatar/Avatar");
- var Settings = require("./../../../settings/Settings");
- var UIUtil = require("../../util/UIUtil");
- var languages = require("../../../../service/translation/languages");
-
- 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>";
- }
-
-
- var SettingsMenu = {
-
- init: function () {
- var startMutedSelector = $("#startMutedOptions");
- startMutedSelector.before(generateLanguagesSelectBox());
- APP.translation.translateElement($("#languages_selectbox"));
- $('#settingsmenu>input').keyup(function(event){
- if(event.keyCode === 13) {//enter
- SettingsMenu.update();
- }
- });
-
- if (APP.xmpp.isModerator()) {
- startMutedSelector.css("display", "block");
- }
- else {
- startMutedSelector.css("display", "none");
- }
-
- $("#updateSettings").click(function () {
- SettingsMenu.update();
- });
- },
-
- onRoleChanged: function () {
- if(APP.xmpp.isModerator()) {
- $("#startMutedOptions").css("display", "block");
- }
- else {
- $("#startMutedOptions").css("display", "none");
- }
- },
-
- setStartMuted: function (audio, video) {
- $("#startAudioMuted").attr("checked", audio);
- $("#startVideoMuted").attr("checked", video);
- },
-
- update: function() {
- var newDisplayName =
- UIUtil.escapeHtml($('#setDisplayName').get(0).value);
- var newEmail = UIUtil.escapeHtml($('#setEmail').get(0).value);
-
- if(newDisplayName) {
- var displayName = Settings.setDisplayName(newDisplayName);
- APP.xmpp.addToPresence("displayName", displayName, true);
- }
-
- var language = $("#languages_selectbox").val();
- APP.translation.setLanguage(language);
- Settings.setLanguage(language);
-
- APP.xmpp.addToPresence("email", newEmail);
- var email = Settings.setEmail(newEmail);
-
- var startAudioMuted = ($("#startAudioMuted").is(":checked"));
- var startVideoMuted = ($("#startVideoMuted").is(":checked"));
- APP.xmpp.addToPresence("startMuted",
- [startAudioMuted, startVideoMuted]);
-
- Avatar.setUserAvatar(APP.xmpp.myJid(), email);
- },
-
- isVisible: function() {
- return $('#settingsmenu').is(':visible');
- },
-
- setDisplayName: function(newDisplayName) {
- var displayName = Settings.setDisplayName(newDisplayName);
- $('#setDisplayName').get(0).value = displayName;
- },
-
- onDisplayNameChange: function(peerJid, newDisplayName) {
- if(peerJid === 'localVideoContainer' ||
- peerJid === APP.xmpp.myJid()) {
- this.setDisplayName(newDisplayName);
- }
- },
- changeAvatar: function (thumbUrl) {
- $('#avatar').get(0).src = thumbUrl;
- }
- };
-
-
- module.exports = SettingsMenu;
|