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 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. var Avatar = require("../../avatar/Avatar");
  2. var Settings = require("./../../../settings/Settings");
  3. var UIUtil = require("../../util/UIUtil");
  4. var languages = require("../../../../service/translation/languages");
  5. function generateLanguagesSelectBox()
  6. {
  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. {
  12. var lang = langArray[i];
  13. html += "<option ";
  14. if(lang === currentLang)
  15. html += "selected ";
  16. html += "value=\"" + lang + "\" data-i18n='languages:" + lang + "'>";
  17. html += "</option>";
  18. }
  19. return html + "</select>";
  20. }
  21. var SettingsMenu = {
  22. init: function () {
  23. $("#updateSettings").before(generateLanguagesSelectBox());
  24. $('#settingsmenu>input').keyup(function(event){
  25. if(event.keyCode === 13) {//enter
  26. SettingsMenu.update();
  27. }
  28. });
  29. $("#updateSettings").click(function () {
  30. SettingsMenu.update();
  31. });
  32. },
  33. update: function() {
  34. var newDisplayName = UIUtil.escapeHtml($('#setDisplayName').get(0).value);
  35. var newEmail = UIUtil.escapeHtml($('#setEmail').get(0).value);
  36. if(newDisplayName) {
  37. var displayName = Settings.setDisplayName(newDisplayName);
  38. APP.xmpp.addToPresence("displayName", displayName, true);
  39. }
  40. var language = $("#languages_selectbox").val();
  41. APP.translation.setLanguage(language);
  42. Settings.setLanguage(language);
  43. APP.xmpp.addToPresence("email", newEmail);
  44. var email = Settings.setEmail(newEmail);
  45. Avatar.setUserAvatar(APP.xmpp.myJid(), email);
  46. },
  47. isVisible: function() {
  48. return $('#settingsmenu').is(':visible');
  49. },
  50. setDisplayName: function(newDisplayName) {
  51. var displayName = Settings.setDisplayName(newDisplayName);
  52. $('#setDisplayName').get(0).value = displayName;
  53. },
  54. onDisplayNameChange: function(peerJid, newDisplayName) {
  55. if(peerJid === 'localVideoContainer' ||
  56. peerJid === APP.xmpp.myJid()) {
  57. this.setDisplayName(newDisplayName);
  58. }
  59. }
  60. };
  61. module.exports = SettingsMenu;