User:Awesome Aasim/savedraft.js
if (!savedraft) {
var savedraft = {};
mw.util.addPortletLink("p-personal", "/wiki/Special:BlankPage/Drafts", "Drafts", "pt-drafts", "View my drafts", "", $("#pt-preferences"));
$(document).ready(function() {
if (mw.config.get("wgAction") == "edit" || mw.config.get("wgAction") == "submit") {
savedraft.section = (new URL(document.location)).searchParams.get("section");
savedraft.key = mw.config.get("wgUserName") + "#" + mw.config.get("wgPageName") + (savedraft.section ? ("#" + savedraft.section) : "");
$('').append($('').text("Save draft").click(function(e) {
e.preventDefault();
localStorage.setItem(savedraft.key, JSON.stringify({
text: $("#wpTextbox1").val(),
date: (new Date()).toUTCString()
}));
if (!$("#savedraft-buttons").text()) {
$("#mw-content-text").prepend($('').append($("", {
text: "Load draft",
id: "savedraft-load",
href: "#",
click: function(e) {
e.preventDefault();
try {
$("#wpTextbox1").val(JSON.stringify(localStorage.getItem(savedraft.key)).text);
} catch(e) {
}
mw.notify("Draft loaded.");
}
})).append(" • ").append($("", {
text: "Delete draft",
id: "savedraft-delete",
href: "#",
click: function(e) {
e.preventDefault();
if (confirm("Really delete the draft for this page?")) {
localStorage.removeItem(savedraft.key);
mw.notify("Draft deleted.");
$("#savedraft-buttons").remove();
}
}
})));
}
mw.notify("Draft saved.");
})).insertAfter("#wpDiffWidget");
var itemText;
try {
itemText = JSON.parse(localStorage.getItem(savedraft.key)).text;
} catch(e) {
itemText = false;
}
if (itemText) {
$("#mw-content-text").prepend($('
').append($("", {text: "Load draft",
id: "savedraft-load",
href: "#",
click: function(e) {
e.preventDefault();
try {
$("#wpTextbox1").val(JSON.parse(localStorage.getItem(savedraft.key)).text);
} catch (e) {
}
mw.notify("Draft loaded.");
}
})).append(" • ").append($("", {
text: "Delete draft",
id: "savedraft-delete",
href: "#",
click: function(e) {
e.preventDefault();
if (confirm("Really delete the draft for this page?")) {
localStorage.removeItem(savedraft.key);
mw.notify("Draft deleted.");
$("#savedraft-buttons").remove();
}
}
})));
}
if ((new URL(document.location)).searchParams.get("draft")) {
try {
$("#wpTextbox1").val(JSON.parse(localStorage.getItem(savedraft.key)).text);
} catch (e) {
}
mw.notify("Draft loaded.");
}
savedraft.timeout = function() {};
/*
$("#wpTextbox1").on('keyup', function() {
clearTimeout(savedraft.timeout);
savedraft.timeout = setTimeout(function() {
try {
localStorage.setItem(savedraft.key, JSON.stringify({
text: $("#wpTextbox1").val(),
date: (new Date()).toUTCString()
}));
} catch (e) {
}
if (!$("#savedraft-buttons").text()) {
$("#mw-content-text").prepend($('').append($("", {
text: "Load draft",
id: "savedraft-load",
href: "#",
click: function(e) {
e.preventDefault();
try {
$("#wpTextbox1").val(JSON.stringify(localStorage.getItem(savedraft.key)).text);
} catch (e) {
}
mw.notify("Draft loaded.");
}
})).append(" • ").append($("", {
text: "Delete draft",
id: "savedraft-delete",
href: "#",
click: function(e) {
e.preventDefault();
if (confirm("Really delete the draft for this page?")) {
localStorage.removeItem(savedraft.key);
mw.notify("Draft deleted.");
$("#savedraft-buttons").remove();
}
}
})));
}
mw.notify("Draft automatically saved.");
}, 3000);
});
$("#wpTextbox1").on('keydown', function() {
clearTimeout(savedraft.timeout);
});
*/
/*
$(".wikiEditor-ui").focusout(function() {
localStorage.setItem(savedraft.key, JSON.stringify({
text: $("#wpTextbox1").val(),
date: (new Date()).toUTCString()
}));
if (!$("#savedraft-buttons").text()) {
$("#mw-content-text").prepend($('').append($("", {
text: "Load draft",
id: "savedraft-load",
href: "#",
click: function(e) {
e.preventDefault();
try {
$("#wpTextbox1").val(JSON.stringify(localStorage.getItem(savedraft.key)).text);
} catch (e) {
}
mw.notify("Draft loaded.");
}
})).append(" • ").append($("", {
text: "Delete draft",
id: "savedraft-delete",
href: "#",
click: function(e) {
e.preventDefault();
if (confirm("Really delete the draft for this page?")) {
localStorage.removeItem(savedraft.key);
mw.notify("Draft deleted.");
$("#savedraft-buttons").remove();
}
}
})));
}
mw.notify("Draft automatically saved.");
});
*/
} else if (mw.config.get("wgPageName").toLowerCase() == 'Special:BlankPage/Drafts'.toLowerCase()) {
savedraft.drafts = {};
savedraft.ul = $('
for (var i in localStorage) {
if (i.split("#")[0] == mw.config.get("wgUserName")) {
var sec = i.split("#")[2];
var temp = $("
");try {
temp.append(JSON.parse(localStorage.getItem(i)).date + ": " + "" + i.split("#")[1] + "");
} catch (e) {
}
temp.append(" (").append($("", {
href: "#",
"data-draft": i,
text: "delete",
click: function(e) {
e.preventDefault();
if (confirm("Really delete the draft for this page?")) {
localStorage.removeItem($(this).attr("data-draft"));
mw.notify("Draft deleted.");
$(this).parent().remove();
}
}
})).append(")");
savedraft.ul.append(temp);
}
}
$('title').text("My drafts - " + mw.config.get("wgSiteName"));
$('#firstHeading').text("My drafts");
$('#mw-content-text').html('
Click on a page below to view and manage a draft that you have stored to your computer.
').after(savedraft.ul.html() ? savedraft.ul : "No drafts to view.
");}
/*if (mw.config.get("wgAction") == "submit") {
localStorage.setItem(savedraft.key, JSON.stringify({
text: $("#wpTextbox1").val(),
date: (new Date()).toUTCString()
}));
if (!$("#savedraft-buttons").text()) {
$("#mw-content-text").prepend($('').append($("", {
text: "Load draft",
id: "savedraft-load",
href: "#",
click: function(e) {
e.preventDefault();
try {
$("#wpTextbox1").val(JSON.parse(localStorage.getItem(savedraft.key)).text);
} catch (e) {
}
mw.notify("Draft loaded.");
}
})).append(" • ").append($("", {
text: "Delete draft",
id: "savedraft-delete",
href: "#",
click: function(e) {
e.preventDefault();
if (confirm("Really delete the draft for this page?")) {
localStorage.removeItem(savedraft.key);
mw.notify("Draft deleted.");
$("#savedraft-buttons").remove();
}
}
})));
}
mw.notify("Draft automatically saved.");
}*/
});
}