Plugins & Hacks

How do I turn off the auto-save feature?

Scenario:
"I don't want Nucleus to auto-save my draft items for me. How can I disable this feature?"

Solution:
As this is a relatively new feature, there is currently no option to disable it. A core hack is required to disable auto-save.

Original forum thread (thanks, meowmix!):
http://forum.nucleuscms.org/viewtopic.php?t=16537

Method:
Find the /nucleus/javascript/xmlhttprequest.js file and open it to locate these lines:

/**
 * Auto saves as draft
 */
function autoSaveDraft() {
	checks = 0;
	seconds = now();
 
	var title = encodeURI(addform.title.value);
	var body = encodeURI(addform.body.value);
	var catid = addform.catid.options[addform.catid.selectedIndex].value;
	var more = encodeURI(addform.more.value);
	var closed = 0;
	if (addform.closed[0].checked) {
		closed = addform.closed[0].value;
	}
	else if (addform.closed[1].checked) {
		closed = addform.closed[1].value;
	}
	var ticket = addform.ticket.value;
 
	var querystring = 'action=autodraft';
	querystring += '&title=' + title;
	querystring += '&body=' + body;
	querystring += '&catid=' + catid;
	querystring += '&more=' + more;
	querystring += '&closed=' + closed;
	querystring += '&ticket=' + ticket;
	if (formtype == 'edit') {
		querystring += '&itemid=' + addform.itemid.value;
		querystring += '&type=edit';
	}
	else {
		querystring += '&blogid=' + addform.blogid.value;
		querystring += '&type=add';
	}
	if (addform.draftid.value > 0) {
		querystring += '&draftid=' + addform.draftid.value;
	}
 
	xmlhttprequest[0].open('POST', goalurl, true);
	xmlhttprequest[0].onreadystatechange = checkMonitor;
	xmlhttprequest[0].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttprequest[0].send(querystring);
 
	var querystring = 'action=updateticket&ticket=' + ticket;
 
	xmlhttprequest[1].open('POST', goalurl, true);
	xmlhttprequest[1].onreadystatechange = updateTicket;
	xmlhttprequest[1].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttprequest[1].send(querystring);
}

Change to this:

/*
 
/**
 * Auto saves as draft
 */
function autoSaveDraft() {
	checks = 0;
	seconds = now();
 
	var title = encodeURI(addform.title.value);
	var body = encodeURI(addform.body.value);
	var catid = addform.catid.options[addform.catid.selectedIndex].value;
	var more = encodeURI(addform.more.value);
	var closed = 0;
	if (addform.closed[0].checked) {
		closed = addform.closed[0].value;
	}
	else if (addform.closed[1].checked) {
		closed = addform.closed[1].value;
	}
	var ticket = addform.ticket.value;
 
	var querystring = 'action=autodraft';
	querystring += '&title=' + title;
	querystring += '&body=' + body;
	querystring += '&catid=' + catid;
	querystring += '&more=' + more;
	querystring += '&closed=' + closed;
	querystring += '&ticket=' + ticket;
	if (formtype == 'edit') {
		querystring += '&itemid=' + addform.itemid.value;
		querystring += '&type=edit';
	}
	else {
		querystring += '&blogid=' + addform.blogid.value;
		querystring += '&type=add';
	}
	if (addform.draftid.value > 0) {
		querystring += '&draftid=' + addform.draftid.value;
	}
 
	xmlhttprequest[0].open('POST', goalurl, true);
	xmlhttprequest[0].onreadystatechange = checkMonitor;
	xmlhttprequest[0].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttprequest[0].send(querystring);
 
	var querystring = 'action=updateticket&ticket=' + ticket;
 
	xmlhttprequest[1].open('POST', goalurl, true);
	xmlhttprequest[1].onreadystatechange = updateTicket;
	xmlhttprequest[1].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttprequest[1].send(querystring);
}
 
*/
section: Plugins & Hacks | submitted by Leng on 2008.Sep.16 | 642 views

item rate
This answer was not rated yet.

Please tell us how useful this answer was to you (0 = useless, 10 = very very helpful):

10