Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

SettingsMenu.js 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /* global APP, $ */
  2. import UIUtil from "../../util/UIUtil";
  3. import UIEvents from "../../../../service/UI/UIEvents";
  4. import languages from "../../../../service/translation/languages";
  5. function generateLanguagesSelectBox() {
  6. var currentLang = APP.translation.getCurrentLanguage();
  7. var html = '<select id="languages_selectbox">';
  8. var langArray = languages.getLanguages();
  9. for(var i = 0; i < langArray.length; i++) {
  10. var lang = langArray[i];
  11. html += "<option ";
  12. if(lang === currentLang)
  13. html += "selected ";
  14. html += "value=\"" + lang + "\" data-i18n='languages:" + lang + "'>";
  15. html += "</option>";
  16. }
  17. return html + "</select>";
  18. }
  19. var SettingsMenu = {
  20. init: function (emitter) {
  21. this.emitter = emitter;
  22. var startMutedSelector = $("#startMutedOptions");
  23. startMutedSelector.before(generateLanguagesSelectBox());
  24. APP.translation.translateElement($("#languages_selectbox"));
  25. $('#settingsmenu>input').keyup(function(event){
  26. if(event.keyCode === 13) {//enter
  27. SettingsMenu.update();
  28. }
  29. });
  30. if (APP.conference.isModerator) {
  31. startMutedSelector.css("display", "block");
  32. } else {
  33. startMutedSelector.css("display", "none");
  34. }
  35. $("#updateSettings").click(function () {
  36. SettingsMenu.update();
  37. });
  38. },
  39. onRoleChanged: function () {
  40. if(APP.conference.isModerator) {
  41. $("#startMutedOptions").css("display", "block");
  42. }
  43. else {
  44. $("#startMutedOptions").css("display", "none");
  45. }
  46. },
  47. setStartMuted: function (audio, video) {
  48. $("#startAudioMuted").attr("checked", audio);
  49. $("#startVideoMuted").attr("checked", video);
  50. },
  51. update: function() {
  52. // FIXME check if this values really changed:
  53. // compare them with Settings etc.
  54. var newDisplayName =
  55. UIUtil.escapeHtml($('#setDisplayName').get(0).value);
  56. if (newDisplayName) {
  57. this.emitter.emit(UIEvents.NICKNAME_CHANGED, newDisplayName);
  58. }
  59. var language = $("#languages_selectbox").val();
  60. this.emitter.emit(UIEvents.LANG_CHANGED, language);
  61. var newEmail = UIUtil.escapeHtml($('#setEmail').get(0).value);
  62. this.emitter.emit(UIEvents.EMAIL_CHANGED, newEmail);
  63. var startAudioMuted = ($("#startAudioMuted").is(":checked"));
  64. var startVideoMuted = ($("#startVideoMuted").is(":checked"));
  65. this.emitter.emit(
  66. UIEvents.START_MUTED_CHANGED, startAudioMuted, startVideoMuted
  67. );
  68. },
  69. isVisible: function() {
  70. return $('#settingsmenu').is(':visible');
  71. },
  72. onDisplayNameChange: function(id, newDisplayName) {
  73. if(id === 'localVideoContainer' || APP.conference.isLocalId(id)) {
  74. $('#setDisplayName').get(0).value = newDisplayName;
  75. }
  76. },
  77. changeAvatar: function (thumbUrl) {
  78. $('#avatar').get(0).src = thumbUrl;
  79. }
  80. };
  81. module.exports = SettingsMenu;