UNPKG

rtm-js

Version:

rtm-js is a javascript library for the Remember the Milk API.

118 lines (95 loc) 2.59 kB
<!doctype 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>