My day 2010-10-07
Today i made a
greasmonkey -script for putting shared notes on websites.
One persson can add a note to a webpage they visiting, when that persson or
someone else in the same sharing-group visit that website, the note will apear.
// ==UserScript==
// @name url_notes
// @namespace url_notes
// @description keep notes on urls
// ==/UserScript==
var category = GM_getValue('url_note_category', '');
if(!category)
{
change_category();
category = GM_getValue('url_note_category', 'test');
}
function change_category()
{
category = prompt("Välj en kategori/grupp", GM_getValue('url_note_category', ''));
GM_setValue('url_note_category', category);
}
GM_registerMenuCommand("Change note category", change_category);
GM_registerMenuCommand("Add a note to this page", add_note);
get_notes(category, document.location.href, false);
function add_note()
{
var category = GM_getValue('url_note_category', 'test');
get_notes(category, document.location.href, true);
}
function get_notes(category, url, force)
{
GM_xmlhttpRequest(
{
method: "POST",
url: "https://www.exemple.se/url_notes.php",
data: "category=" + urlencode(category) + "&url=" + urlencode(url) + "&",
headers:
{
"Content-Type": "application/x-www-form-urlencoded"
},
onload: function(response)
{
var text = "";
text += "<div style='float: right; cursor: pointer;' onclick=\"document.getElementById('note_box_div').parentNode.removeChild(document.getElementById('note_box_div'))\"><b>X</b></div>";
text += "<div onmousedown='dragStart(event, \"note_box_div\")' style='background-color: orange; height: 15px;'>Antekningar</div>";
if(response.responseText.length > 2)
{
var notes = eval("(" + response.responseText + ")");
for(key in notes)
{
text += notes[key]['note'] + " <br /> /" + notes[key]['author'] + "<br/> " + notes[key]['birth'] + "<br /><hr />";
}
force = true;
}
if(force)
{
text += "<form action='https://www.exemple.se/url_notes.php' method='post'>";
text += "<textarea name='note'></textarea><br/>";
text += "<input type='submit' value='spara'/>";
text += "<input type='hidden' name='url' value='" + urlencode(url) + "'/>";
text += "<input type='hidden' name='category' value='" + urlencode(category) + "'/>";
text += "</form>";
var notes_div = document.createElement('div');
notes_div.setAttribute('style', 'position: absolute; left: ' + (document.body.clientWidth -350) + 'px; right: auto; top: 100px; bottom: auto; width: 300px; height: auto; background-color: yellow; border: solid black 3px;');
notes_div.innerHTML = text;
notes_div.id = 'note_box_div';
document.getElementsByTagName('body')[0].appendChild(notes_div);
var dyn_script = document.createElement('script');
dyn_script.src = "https://www.interfaceways.se/src/js/dynamic_boxes.js";
document.getElementsByTagName('body')[0].appendChild(dyn_script);
}
}
});
}
function urlencode(str)
{
return escape(str).replace('+', '%2B').replace('%20', '+').replace('*', '%2A').replace('/', '%2F').replace('@', '%40');
}
Written by Puggan, 2010-10-07 19:10:11 CEST (+0200)
Cool_Content_I_like_it