You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SettingsMenu.js 3.1KB

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