ebb4234 7 years ago
1 contributor
112 lines | 4.072kb
function insertAtCaret(target, str) {
  var obj = $(target);
  obj.focus();
  if(navigator.userAgent.match(/MSIE/)) {
    var r = document.selection.createRange();
    r.text = str;
    r.select();
  } else {
    var s = obj.val();
    var p = obj.get(0).selectionStart;
    var np = p + str.length;
    obj.val(s.substr(0, p) + str + s.substr(p));
    obj.get(0).setSelectionRange(np, np);
  }
}

// Click write tab
$('#write-tab').on('click', function () {
  $('#write-tab').find('a').attr('class', '');
  $('#preview-tab').find('a').attr('class', 'disable');
  $('#write-area').css('display', 'block');
  $('#preview-area').css('display', 'none');
});

// Click preview tab
$('#preview-tab').on('click', function () {
  $('#write-tab').find('a').attr('class', 'disable');
  $('#preview-tab').find('a').attr('class', '');
  $('#write-area').css('display', 'none');
  $('#preview-area').css('display', 'block');
  
  var text = $('[name=message]').val();
  
  $.post('/api/markdown', {text : text}, function (result) {
    var markdown = result.markdown;
    $('#preview-area').html(markdown);
  });
});

// Click delete button
$('.issue-message-delete-btn').on('click', function () {
  if (window.confirm('Are you sure you want to delete this?')) {
    var issue_message_row_id_div = $(this).closest('.issue-message-row-id');
    var issue_message_row_id_str = issue_message_row_id_div.attr('id');
    
    var issue_message_row_id = (issue_message_row_id_str.match(/row-(.+)/))[1];
    $.post('<%= url_for %>', {op : 'api-delete-issue-message', issue_message_row_id : issue_message_row_id}, function (result) {
      if (result.success) {
        $('#row-' + issue_message_row_id).fadeOut();
      }
    });
  }
});
$('.issue-message-edit-btn').on('click', function () {
  var issue_message_row_id_div = $(this).closest('.issue-message-row-id');
  var issue_message_row_id_str = issue_message_row_id_div.attr('id');
  
  var issue_message_row_id = (issue_message_row_id_str.match(/row-(.+)/))[1];
  
  $('#row-' + issue_message_row_id).find('.issue-message').css('display', 'none');
  $('#row-' + issue_message_row_id).find('.issue-message-update').css('display', 'block');
});
$('.issue-message-update-cancel').on('click', function () {
  var issue_message_row_id_div = $(this).closest('.issue-message-row-id');
  var issue_message_row_id_str = issue_message_row_id_div.attr('id');
  
  var issue_message_row_id = (issue_message_row_id_str.match(/row-(.+)/))[1];
  
  $('#row-' + issue_message_row_id).find('.issue-message').css('display', 'block');
  $('#row-' + issue_message_row_id).find('.issue-message-update').css('display', 'none');
  
  return false;
});


// Comment icon
$('.issue-icon-add-header-text').on('click', function () {
  var textarea = $(this).closest('form').find('textarea');
  insertAtCaret(textarea, "# ");
});
$('.issue-icon-add-bold-text').on('click', function () {
  var textarea = $(this).closest('form').find('textarea');
  insertAtCaret(textarea, "****");
});
$('.issue-icon-add-italic-text').on('click', function () {
  var textarea = $(this).closest('form').find('textarea');
  insertAtCaret(textarea, "__");
});
$('.issue-icon-insert-quote').on('click', function () {
  var textarea = $(this).closest('form').find('textarea');
  insertAtCaret(textarea, "> ");
});
$('.issue-icon-insert-code').on('click', function () {
  var textarea = $(this).closest('form').find('textarea');
  insertAtCaret(textarea, "``");
});
$('.issue-icon-add-link').on('click', function () {
  var textarea = $(this).closest('form').find('textarea');
  insertAtCaret(textarea, "[](url)");
});
$('.issue-icon-add-bulleted-list').on('click', function () {
  var textarea = $(this).closest('form').find('textarea');
  insertAtCaret(textarea, "- ");
});
$('.issue-icon-add-numbered-list').on('click', function () {
  var textarea = $(this).closest('form').find('textarea');
  insertAtCaret(textarea, "1. ");
});
$('.issue-icon-mension-user').on('click', function () {
  var textarea = $(this).closest('form').find('textarea');
  insertAtCaret(textarea, "@");
});