sidebar.js 1019 B

1234567891011121314151617181920212223242526272829303132333435
  1. /*global Backbone, _, window */
  2. const Sidebar = Backbone.NativeView.extend({
  3. el: 'div.sidebar',
  4. events: {
  5. 'click .hamburger': 'onHamburgerClicked'
  6. },
  7. initialize () {
  8. this.render();
  9. },
  10. onHamburgerClicked () {
  11. const hamburger = document.querySelector('.hamburger');
  12. const converse_el = document.querySelector('#conversejs');
  13. if (_.includes(converse_el.classList, 'sidebar-open')) {
  14. converse_el.classList.remove('sidebar-open');
  15. hamburger.classList.remove('fa-times');
  16. hamburger.classList.add('fa-bars');
  17. } else {
  18. converse_el.classList.add('sidebar-open');
  19. hamburger.classList.remove('fa-bars');
  20. hamburger.classList.add('fa-times');
  21. }
  22. },
  23. render () {
  24. const xhr = new XMLHttpRequest();
  25. xhr.open('GET', 'sidebar.html', true);
  26. xhr.onload = () => {
  27. this.el.innerHTML = xhr.responseText;
  28. }
  29. xhr.send();
  30. }
  31. });