From fd6633cd22ed7045d10d5ec782336ed3b7620ad6 Mon Sep 17 00:00:00 2001
From: snaka
Date: Sun, 31 May 2009 14:07:51 +0000
Subject: Add 'done' command.
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@33686 d0d07461-0603-4401-acd4-de1884942a52
---
tada.js | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
1 file changed, 72 insertions(+), 12 deletions(-)
(limited to 'tada.js')
diff --git a/tada.js b/tada.js
index a02afbe..0f274e6 100644
--- a/tada.js
+++ b/tada.js
@@ -19,7 +19,7 @@ var PLUGIN_INFO =
http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/tada.js
snaka
MIT style license
- 0.9.0
+ 0.10.0
_libly.js
0)
- return cachedLists;
-
+ let result = [];
var req = new libly.Request(getURI(), null, {asynchronous: false});
req.addEventListener('onSuccess', function(data) {
liberator.log("success");
data.getHTMLDocument("//div[@id='Container']/div[2]/div/div/ul/li/a").forEach(function(item){
var left = $LX("../span/strong[text()]", item);
- cachedLists.push([parseListId(item.href), item.innerHTML, left.innerHTML]);
+ result.push([parseListId(item.href), item.innerHTML, left.innerHTML]);
});
});
req.get();
- if (cachedLists.length == 0)
+ if (result.length == 0)
throw "Cannot get your list. Please chehek " + getURI() + " is accessible.";
- return cachedLists;
+ return result;
}
function showTodoItems(listId) {
let list = ;
getTodoItems(listId).forEach(function(item) {
- list.li += {item};
+ list.li += {item.title};
});
liberator.echo(list, commandline.FORCE_MULTILINE);
}
+ /*
+ * getTodoItems
+ * @return [[itemId, title], [itemId, title] ... ]
+ */
function getTodoItems(listId) {
let result = [];
var req = new libly.Request(getURI() + listId.toString(), null, {asynchronous: false});
@@ -264,7 +294,10 @@ liberator.plugins.tada = (function(){
req.addEventListener('onSuccess', function(res) {
liberator.log("success");
res.getHTMLDocument("//ul[@id='incomplete_items']/li/form").forEach(function(item) {
- result.push(item.textContent.replace(/^\s*|\n|\r|\s*$/g, ''));
+ result.push({
+ itemId : item.id.match(/edit_item_([^\"]+)/)[1],
+ title : item.textContent.replace(/^\s*|\n|\r|\s*$/g, '')
+ });
});
});
req.get();
@@ -309,11 +342,38 @@ liberator.plugins.tada = (function(){
req.post();
}
+ function doneItem(listId, itemId) {
+ let endpoint = getURI() + listId + "/items/" + itemId;
+ liberator.dump("endpoint: " + endpoint);
+
+ var req = new libly.Request(endpoint, null,
+ {
+ postBody: toQuery({
+ "_method" : "put",
+ "item[completed]" : "1",
+ })
+ }
+ );
+ req.addEventListener('onSuccess', function(data) {
+ liberator.echo("Done: " + itemId);
+ });
+ req.addEventListener('onFailure', function(data) {
+ liberator.echoerr("Done item failed.");
+ liberator.log(data.responseText);
+ });
+ req.post();
+ }
+
// Utilities
function $s(obj) util.objectToString(obj);
function $g(str) liberator.globalVariables[str];
function $LXs(a,b) libly.$U.getNodesFromXPath(a, b);
function $LX(a,b) libly.$U.getFirstNodeFromXPath(a, b);
+ function toQuery(source)
+ [encodeURIComponent(i) + "=" + encodeURIComponent(source[i])
+ for (i in source)
+ ].join('&');
+
// }}}
// API ////////////////////////////////////////////////////////////////{{{
--
cgit v1.2.3