UserNotes

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

目前為 2015-03-27 提交的版本,檢視 最新版本

// ==UserScript==
// @name          UserNotes
// @author        Gipnokote
// @version       1.7
// @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 futuAjax ({
        button: document.createElement("p"),
        url: ajaxUrls.user_note_get,
        data : 'user='+user_id,
        onLoadFunction: function(response){
            if (response.user_note && response.user_note.body) {
                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');
                });
            }
        }
    });
}

unsafeWindow.setNote = function (user_id, note) {
    var noteRequest = new futuAjax ({
        button: document.createElement("p"),
        url: ajaxUrls.user_note_set,
        data: '&user=' + user_id + '&note=' + encodeURIComponent(note),
        onLoadFunction: function (response) {
            getNote(user_id);
	}
    });
};

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);
});