summaryrefslogtreecommitdiffstats
path: root/web_src/js/features/repo-unicode-escape.js
blob: 67f2df1d9a673cb7e633dbdd3c8093e392b74c10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import $ from 'jquery';
import {hideElem, showElem} from '../utils/dom.js';

export function initUnicodeEscapeButton() {
  $(document).on('click', 'a.escape-button', (e) => {
    e.preventDefault();
    $(e.target).parents('.file-content, .non-diff-file-content').find('.file-code, .file-view').addClass('unicode-escaped');
    hideElem($(e.target));
    showElem($(e.target).siblings('a.unescape-button'));
  });
  $(document).on('click', 'a.unescape-button', (e) => {
    e.preventDefault();
    $(e.target).parents('.file-content, .non-diff-file-content').find('.file-code, .file-view').removeClass('unicode-escaped');
    hideElem($(e.target));
    showElem($(e.target).siblings('a.escape-button'));
  });
  $(document).on('click', 'a.toggle-escape-button', (e) => {
    e.preventDefault();
    const fileContent = $(e.target).parents('.file-content, .non-diff-file-content');
    const fileView = fileContent.find('.file-code, .file-view');
    if (fileView.hasClass('unicode-escaped')) {
      fileView.removeClass('unicode-escaped');
      hideElem(fileContent.find('a.unescape-button'));
      showElem(fileContent.find('a.escape-button'));
    } else {
      fileView.addClass('unicode-escaped');
      showElem(fileContent.find('a.unescape-button'));
      hideElem(fileContent.find('a.escape-button'));
    }
  });
}