[BACK]Return to index.html CVS log [TXT][DIR] Up to [local] / todotxt / Text-Todo-REST-API / example / htdocs

Diff for /todotxt/Text-Todo-REST-API/example/htdocs/index.html between version 1.12 and 1.13

version 1.12, 2010/02/18 06:25:31 version 1.13, 2010/02/23 03:00:26
Line 1 
Line 1 
 <html><head>  <html><head>
         <!-- $AFresh1: index.html,v 1.11 2010/02/18 05:35:04 andrew Exp $ -->          <!-- $AFresh1: index.html,v 1.12 2010/02/18 06:25:31 andrew Exp $ -->
         <title>todo.txt - ajax client</title>          <title>todo.txt - ajax client</title>
         <link rel="stylesheet" href="todo.css">          <link rel="stylesheet" href="todo.css">
   
         <script src="scriptaculous/lib/prototype.js"></script>          <script src="scriptaculous/lib/prototype.js"></script>
         <script src="scriptaculous/src/scriptaculous.js?load=effects,controls"></script>          <script src="scriptaculous/src/scriptaculous.js?load=effects,controls"></script>
 <script type='text/javascript'>          <script src="lib/todo.js"></script>
   
 var TODO = function () {  
     var base_url = '/~andrew/user-bin/todo.cgi',  
         editors  = {},  
   
     makeEntryEditor  = function(list, entry) {  
         var url = base_url + '/' + list + '/entry/' + entry.line,  
             id  = entry.id;  
   
         if (!id) {  
             id = 'entry_' + entry.line;  
         }  
   
         if (editors[id]) {  
                 editors[id].dispose();  
                 delete editors[id];  
         }  
   
         editors[id] = new Ajax.InPlaceEditor( id, url + '.json', {  
                 cols: 80,  
                 rows: 1,  
                 callback: function(form, value) {  
                     entry.oldText = entry.text;  
                     entry.text = value;  
                     return entry;  
                 },  
                 onComplete: function (transport, element) {  
                     if (transport && transport.responseJSON) {  
                         updateEntry( list, transport.responseJSON, element);  
                     }  
                 }  
             }  
         );  
     },  
   
     updateEntry = function(list, entry, element) {  
         if (!entry.id) {  
             entry.id = 'entry_' + entry.line;  
         }  
         var liId = 'li_' + entry.id;  
   
         if (parseInt(entry.line) !== $(liId).value) {  
             for (k in editors) {  
                 if (editors.hasOwnProperty(k)) {  
                     editors[k].dispose();  
                     delete editors[k];  
                 }  
             }  
             return getList(list);  
         }  
   
         $(liId).update(  
             new Element('span', { id: entry.id }). update(entry.text)  
         ).insert({  
             top: new Element('input', {  
                 type: 'checkbox' ,  
                 id:   'do_' + entry.line,  
                 checked: entry.done,  
                 disabled: true,  
             })  
         });  
   
         makeEntryEditor(list, entry);  
     },  
   
     updateList = function (list, transport) {  
         var i,  
           todo = transport.responseJSON,  
           element = new Element('ol'),  
           entryElement;  
   
         $("list").update( element );  
   
         for (i=0; i <= todo.length; i++) {  
             todo[i].id = 'entry_' + todo[i].line;  
   
             entryElement = new Element('li', {  
                 id: 'li_' + todo[i].id,  
                 value: todo[i].line  
             });  
   
             element.insert(entryElement);  
   
             updateEntry(list, todo[i], entryElement);  
         }  
     },  
   
     getFiles = function () {  
         $('files').update("Getting Files . . .");  
   
         new Ajax.Updater('files', base_url, {  
             method: 'get',  
         });  
     },  
   
     getTags = function (list) {  
             $('tags').update("Getting Tags. . .");  
   
             var url = base_url + '/' + list + '/tags';  
   
             new Ajax.Request(url + '.json', {  
             method: 'get',  
             onSuccess: function (transport) {  
                 var k,  
                     data = transport.responseJSON,  
                     element = new Element('ul');  
   
                 $("tags").update(element);  
                 for (k in data) {  
                     if (data.hasOwnProperty(k)) {  
                     element.insert(  
                         new Element('li', {  
                             id: 'tag_' + k,  
                             }).update( k + ": " + data[k]  )  
                     );  
                     getTag(list, k);  
                     }  
                 }  
             },  
         });  
     },  
   
     getTag = function( list, tag ) {  
         new Ajax.Request(base_url + '/' + list + '/tags/' + tag + '.json', {  
             method: 'get',  
             onSuccess: function (transport) {  
                 if (transport && transport.responseJSON) {  
                     var i,  
                         myTags = transport.responseJSON,  
                         element = new Element('ul');  
   
                     if (myTags.length) {  
                         $('tag_' + tag).insert(element);  
   
                         for (i=0; i<myTags.length; i++) {  
                             element.insert( new Element('li').  
                                 update( myTags[i] ));  
                         }  
                     }  
                 }  
             }  
         });  
     },  
   
     getList = function (list) {  
         $('list').update("Getting List . . .");  
   
         new Ajax.Request(base_url + '/' + list + '.json', {  
             method:    'get',  
             onSuccess: function (transport) { updateList(list, transport) },  
         });  
   
     };  
   
     return {  
         getList:  getList,  
         getFiles: getFiles,  
         getTags:  getTags,  
     };  
 }();  
   
 </script>  
 </head>  </head>
   
 <body onLoad="TODO.getList('todo');TODO.getTags('todo');TODO.getFiles()">  <body onLoad="TODO.getList('todo');TODO.getTags('todo');TODO.getFiles()">

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>