Skip to content
Snippets Groups Projects
scp.js 36.1 KiB
Newer Older
  • Learn to ignore specific revisions
  •         body = $('<div class="body">');
        body.load('ajax.php/note/' + note.data('id'), function() {
          try { T.redactor('destroy'); } catch (e) {}
          T.replaceWith(body);
          note.find('.action.save-note').hide();
          note.find('.action.cancel-edit').hide();
          note.find('.action.edit-note').show();
    
          $('#new-note-box').show();
    
    $(document).on('click.note', '.quicknote .action.save-note', function() {
    
        var note = $(this).closest('.quicknote'),
            T = note.find('textarea');
        $.post('ajax.php/note/' + note.data('id'),
          { note: T.redactor('get') },
          function(html) {
            var body = $('<div class="body">').html(html);
            try { T.redactor('destroy'); } catch (e) {}
            T.replaceWith(body);
            note.find('.action.save-note').hide();
            note.find('.action.cancel-edit').hide();
            note.find('.action.edit-note').show();
    
            $('#new-note-box').show();
    
    $(document).on('click.note', '.quicknote .delete', function() {
    
      var that = $(this),
          id = $(this).closest('.quicknote').data('id');
      $.ajax('ajax.php/note/' + id, {
        type: 'delete',
        success: function() {
          that.closest('.quicknote').animate(
            {height: 0, opacity: 0}, 'slow', function() {
              $(this).remove();
          });
        }
      });
      return false;
    });
    
    $(document).on('click', '#new-note', function() {
    
      var note = $(this).closest('.quicknote'),
        T = $('<textarea>'),
    
        button = $('<input type="button">').val(__('Create'));
    
        button.click(function() {
    
          $.post('ajax.php/' + note.data('url'),
    
            { note: T.redactor('get'), no_options: note.hasClass('no-options') },
            function(response) {
              $(T).redactor('destroy').replaceWith(note);
    
              $(response).show('highlight').insertBefore(note.parent());
    
              $('.submit', note.parent()).remove();
            },
            'html'
          );
        });
    
    Peter Rotich's avatar
    Peter Rotich committed
        if (note.closest('.dialog, .tip_box').length)
    
            T.addClass('no-bar small');
        note.replaceWith(T);
        $('<p>').addClass('submit').css('text-align', 'center')
            .append(button).appendTo(T.parent());
        $.redact(T);
        $(T).redactor('focus');
        return false;
    });
    
    
    function __(s) {
    
      if ($.oststrings && $.oststrings[s])
        return $.oststrings[s];
    
    
    // Thanks, http://stackoverflow.com/a/487049
    function addSearchParam(key, value) {
        key = encodeURI(key); value = encodeURI(value);
    
        var kvp = document.location.search.substr(1).split('&');
        var i=kvp.length; var x;
        while (i--) {
            x = kvp[i].split('=');
            if (x[0]==key) {
                x[1] = value;
                kvp[i] = x.join('=');
                break;
            }
        }
        if(i<0) {kvp[kvp.length] = [key,value].join('=');}
    
        //this will reload the page, it's likely better to store this until finished
    
        return kvp.join('&');
    
    
    // Periodically adjust relative times
    window.relativeAdjust = setInterval(function() {
    
      // Thanks, http://stackoverflow.com/a/7641822/1025836
    
      var prettyDate = function(time) {
        var date = new Date((time || "").replace(/-/g, "/").replace(/[TZ]/g, " ")),
            diff = (((new Date()).getTime() - date.getTime()) / 1000),
            day_diff = Math.floor(diff / 86400);
    
        if (isNaN(day_diff) || day_diff < 0 || day_diff >= 31) return;
    
        return day_diff == 0 && (
             diff < 60 && __("just now")
          || diff < 120 && __("about a minute ago")
          || diff < 3600 && __("%d minutes ago").replace('%d', Math.floor(diff/60))
          || diff < 7200 && __("about an hour ago")
    
          || diff < 86400 &&  __("%d hours ago").replace('%d', Math.floor(diff/3600))
    
        )
        || day_diff == 1 && __("yesterday")
        || day_diff < 7 && __("%d days ago").replace('%d', day_diff);
        // Longer dates don't need to change dynamically
      };
      $('time.relative[datetime]').each(function() {
        var rel = prettyDate($(this).attr('datetime'));
        if (rel) $(this).text(rel);
      });
    }, 20000);