UserNotes

Скрипт для Лепры, позволяющий видеть, добавлять и изменять заметки прямо в посте и на глагне

目前为 2014-11-04 提交的版本,查看 最新版本

// ==UserScript==
// @name          UserNotes
// @author        Gipnokote
// @version       1.5
// @namespace     https://leprosorium.ru/*
// @include       https://*leprosorium.ru/*
// @description   Скрипт для Лепры, позволяющий видеть, добавлять и изменять заметки прямо в посте и на глагне
// run-at         document-end
// ==/UserScript==



unsafeWindow.getNote = function(user_id){
    var userLinks = $$('div.ddi a.c_user[data-user_id='+user_id+']');
    var userNotes = $$('div.ddi span.usernote_'+user_id);
    userNotes.destroy();
    var noteRequest = new Request({
        url: '/ajax/user/note/get/',
        method: 'post',
        onSuccess: function(responseText){
            var response = JSON.parse(responseText);
            if (response.user_note) {
                userLinks.map(function injectNotes(userLink) {
                    var userNote = new Element('span', {class: 'usernote_'+user_id, html: ', [<span style="color:green;cursor:pointer;" onClick="setUserNote('+user_id+',\''+response.user_note.body.replace(/"/g,'&quot;')+'\'); return false;">'+response.user_note.body+'</span>]'});
                    userNote.inject(userLink, 'after');
                });
            } else {
                userLinks.map(function injectNotes(userLink) {
                    var userNote = new Element('span', {class: 'usernote_'+user_id, html: ', [<span style="color:green;cursor:pointer;" onClick="setUserNote('+user_id+',\'\');">+</span>]'});
                    userNote.inject(userLink, 'after');
                });
            }
        }
    });
    noteRequest.send('user='+user_id+'&csrf_token='+globals.user['csrf_token']);
}

unsafeWindow.setNote = function (user_id, note){
    var result = '';
    var noteRequest = new Request({
        url: '/ajax/user/note/set/',
        method: 'post',
        onSuccess: function(){
            getNote(user_id);
        }
    });
	noteRequest.send('user='+user_id+'&note='+note+'&csrf_token='+globals.user['csrf_token']);
}

unsafeWindow.setUserNote = function (user_id, currentNote){
    var z = prompt('Введите заметку:',currentNote);
    if (z!=null) {
        setNote(user_id, z);
    }
}

function eliminateDuplicates(arr) {
  var i,
      len=arr.length,
      out=[],
      obj={};
 
  for (i=0;i<len;i++) {
    obj[arr[i]]=0;
  }
  for (i in obj) {
    out.push(i);
  }
  return out;
}

var emptyArray = [];
var uids = eliminateDuplicates($$('div.ddi a.c_user').getProperty('data-user_id'));
uids.map(function process(uid){
    getNote(uid);
});