Skip to content
Snippets Groups Projects
options.js 2.7 KiB
Newer Older
Daniel's avatar
Daniel committed
$(function() {
  if (window.location.href.indexOf("/synsetid/") == -1) {
    $('#synset-box').hide();
  } else {
    $('#synset-box').show();
    $('#type').val("synsetid");
  }

  $('#type').on('change', function() {
    let option = $(this).val();

    switch(option) {
      case 'lemma':
        $('#synset-box').hide();
        $('#lang-box').show();
        break;
      case 'orth':
        $('#synset-box').hide();
        $('#lang-box').show();
        break;
      case 'synsetid':
        $('#lang-box').hide();
        $('#synset-box').show();
        break;
    }
  });
});

function selectWord() {
  let text = "";

  if (window.getSelection) {
    text = window.getSelection().toString();
  } else if (document.selection && document.selection.type != "Control") {
    text = document.selection.createRange().text;
  }

  // if (text == '' || text == undefined || text == null || text.indexOf(' ') > -1) {
  if (text == '' || text == undefined || text == null || text.trim().match(' ')) {
    return;
  }

  let range = window.getSelection().getRangeAt(0);

  while (range.toString()[0].match(/[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]/)) {
    if (range.startOffset > 0) {
      range.setStart(range.startContainer, range.startOffset - 1);
    }
    if (range.startOffset == 0) {
      break;
    }
  }

  while (range.toString()[range.toString().length - 1].match(/[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]/)) {
    if (range.endOffset >= range.endContainer.length) {
      break;
    }
    range.setEnd(range.endContainer, range.endOffset + 1);
  }

  if (range.startContainer.data[range.startOffset] == ' ') {
    range.setStart(range.startContainer, range.startOffset + 1);
  }

  if (range.endOffset != range.endContainer.length || range.endContainer.data[range.endOffset - 1].match(/[^\sa-zA-Z]/) != null) {
    range.setEnd(range.endContainer, range.endOffset - 1);
  }

  let modifiedText = window.getSelection().toString().replace(/[^a-zA-Ząćęłńóśźż]/gi, '');

  return modifiedText;
}

function positionTooltip(data) {
  data.lemma = data.lemma.trim().toLowerCase();

  if (data.lemma.length <= 0) {
    $('#tooltip-test').css('display', 'none');
    return;
  }

  if (data.lemma.indexOf(' ') <= -1) {
    $('#tooltip-test').html('<span lang="pl">Forma wyrazowa: </span><span lang="en">Word form: </span><a style="color: #5AB4FF" href="/orth/' + data.lang + '/' + data.lemma + '">' + data.lemma + '</a>');
    $('#tooltip-test').css('display', 'inline-block').css('left', data.left).css('top', data.top);
  }

  hideTooltipOnScrollAndResize();
}

function hideTooltipOnScrollAndResize() {
  $(window).scroll(function() {
    $('#tooltip-test').hide();
  });
  $(window).resize(function() {
    $('#tooltip-test').hide();
  });
}