rtm-js
Version:
rtm-js is a javascript library for the Remember the Milk API.
118 lines (95 loc) • 2.59 kB
HTML
<html>
<head>
<title>rtm-js example</title>
<style>
button {
display: block;
width: 200px;
border: 1px solid #808080;
padding: 10px;
}
button#auth {
width: 300px;
}
#lists {
float: left;
width: 210px;
}
#tasks {
float: left;
}
.task-div {
padding: 5px;
}
</style>
</head>
<body>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript" src="http://www.myersdaily.org/joseph/javascript/md5.js"></script>
<script type="text/javascript" src="../../rtm.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var api_key = 'INSERT API KEY HERE',
api_secret = 'INSERT APP SECRET HERE',
checkPopup,
popup,
token,
frob;
window.rtm = new RememberTheMilk(api_key, api_secret, 'delete');
rtm.get('rtm.auth.getFrob', function(resp){
$('#auth').attr('disabled', null);
frob = resp.rsp.frob;
});
$('#auth').click(function(){
var authUrl = rtm.getAuthUrl(frob);
popup = window.open(authUrl);
checkPopup = setInterval(function(){
if (popup.closed == true) {
clearInterval(checkPopup);
rtm.get('rtm.auth.getToken', {frob: frob}, function(resp){
rtm.auth_token = resp.rsp.auth.token;
loadLists();
});
}
}, 200);
})
});
var loadLists = function(){
$('#auth').hide();
rtm.get('rtm.lists.getList', function(resp){
$.each(resp.rsp.lists.list, function(index, list){
$('<button>').html(list.name).data({
id: list.id
}).addClass('list')
.appendTo($('#lists'));
});
$('button.list').click(function(){
$('#tasks').html('Loading...');
var listId = $(this).data('id');
rtm.get('rtm.tasks.getList', {list_id: listId, filter: 'status:incomplete'}, function(resp){
$('#tasks').empty();
if (!resp.rsp.tasks || !resp.rsp.tasks.list) {
$('#tasks').html('No tasks!');
return;
}
$.each(resp.rsp.tasks.list, function(index, listItem){
if (Object.prototype.toString.call(listItem.taskseries) != '[object Array]') {
listItem.taskseries = [listItem.taskseries];
}
$.each(listItem.taskseries, function(index, task){
var div = $('<div>').addClass('task-div');
$('<input>').attr('type', 'checkbox').appendTo(div);
$('<span>').html(task.name).appendTo(div);
div.appendTo($('#tasks'));
})
});
})
})
});
}
</script>
<button id="auth" disabled="disabled">Log In with Remember The Milk</button>
<div id="lists"></div>
<div id="tasks"></div>
</body></html>