todo-server/public/mytinytodo_ajax_storage.js

202 lines
7.1 KiB
JavaScript
Executable File

/*
This file is a part of myTinyTodo.
(C) Copyright 2010 Max Pozdeev <maxpozdeev@gmail.com>
Licensed under the GNU GPL v2 license. See file COPYRIGHT for details.
*/
// AJAX myTinyTodo Storage
(function () {
var mtt;
function mytinytodoStorageAjax(amtt) {
this.mtt = mtt = amtt;
}
window.mytinytodoStorageAjax = mytinytodoStorageAjax;
mytinytodoStorageAjax.prototype =
{
/* required method */
request: function (action, params, callback) {
if (!this[action]) throw "Unknown storage action: " + action;
this[action](params, function (json) {
if (json.denied) mtt.errorDenied();
if (callback) callback.call(mtt, json)
});
},
loadLists: function (params, callback) {
$.getJSON(this.mtt.mttUrl + 'ajax.php?loadLists' + '&rnd=' + Math.random(), callback);
},
loadTasks: function (params, callback) {
var q = '';
if (params.search && params.search != '') q += '&s=' + encodeURIComponent(params.search);
if (params.tag && params.tag != '') q += '&t=' + encodeURIComponent(params.tag);
if (params.setCompl && params.setCompl != 0) q += '&setCompl=1';
q += '&rnd=' + Math.random();
/* $.getJSON(mtt.mttUrl+'ajax.php?loadTasks&list='+params.list+'&compl='+params.compl+'&sort='+params.sort+'&tz='+params.tz+q, function(json){
callback.call(mtt, json);
})
*/
$.getJSON(this.mtt.mttUrl + 'ajax.php?loadTasks&list=' + params.list + '&compl=' + params.compl + '&looping=' + params.looping + '&sort=' + params.sort + q, callback);
},
newTask: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?newTask',
{list: params.list, title: params.title, tag: params.tag}, callback, 'json');
},
fullNewTask: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?fullNewTask',
{
list: params.list,
title: params.title,
note: params.note,
prio: params.prio,
tags: params.tags,
duedate: params.duedate,
loop: params.loop,
cron: params.cron,
},
callback, 'json');
},
editTask: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?editTask=' + params.id,
{
id: params.id,
title: params.title,
note: params.note,
prio: params.prio,
tags: params.tags,
duedate: params.duedate,
loop: params.loop,
cron: params.cron,
},
callback, 'json');
},
editNote: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?editNote=' + params.id, {
id: params.id,
note: params.note
}, callback, 'json');
},
completeTask: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?completeTask=' + params.id, {
id: params.id,
compl: params.compl
}, callback, 'json');
},
deleteTask: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?deleteTask=' + params.id, {id: params.id}, callback, 'json');
},
setPrio: function (params, callback) {
$.getJSON(this.mtt.mttUrl + 'ajax.php?setPrio=' + params.id + '&prio=' + params.prio + '&rnd=' + Math.random(), callback);
},
setSort: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?setSort', {
list: params.list,
sort: params.sort
}, callback, 'json');
},
changeOrder: function (params, callback) {
var order = '';
for (var i in params.order) {
order += params.order[i].id + '=' + params.order[i].diff + '&';
}
$.post(this.mtt.mttUrl + 'ajax.php?changeOrder', {order: order}, callback, 'json');
},
tagCloud: function (params, callback) {
$.getJSON(this.mtt.mttUrl + 'ajax.php?tagCloud&list=' + params.list + '&rnd=' + Math.random(), callback);
},
moveTask: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?moveTask', {
id: params.id,
from: params.from,
to: params.to
}, callback, 'json');
},
parseTaskStr: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?parseTaskStr', {
list: params.list,
title: params.title,
tag: params.tag
}, callback, 'json');
},
// Lists
addList: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?addList', {name: params.name}, callback, 'json');
},
renameList: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?renameList', {
list: params.list,
name: params.name
}, callback, 'json');
},
deleteList: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?deleteList', {list: params.list}, callback, 'json');
},
publishList: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?publishList', {
list: params.list,
publish: params.publish
}, callback, 'json');
},
setShowNotesInList: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?setShowNotesInList', {
list: params.list,
shownotes: params.shownotes
}, callback, 'json');
},
setHideList: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?setHideList', {
list: params.list,
hide: params.hide
}, callback, 'json');
},
changeListOrder: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?changeListOrder', {order: params.order}, callback, 'json');
},
clearCompletedInList: function (params, callback) {
$.post(this.mtt.mttUrl + 'ajax.php?clearCompletedInList', {list: params.list}, callback, 'json');
}
};
})();