[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.2 and 1.11

version 1.2, 2010/01/18 04:51:15 version 1.11, 2010/02/18 05:35:04
Line 1 
Line 1 
 <html><head>  <html><head>
 <title>todo.txt - javascript client</title>          <!-- $AFresh1: index.html,v 1.10 2010/02/17 02:16:28 andrew Exp $ -->
 <script src="prototype.js" type="text/javascript"></script>          <title>todo.txt - ajax client</title>
           <link rel="stylesheet" href="todo.css">
   
           <script src="scriptaculous/lib/prototype.js"></script>
           <script src="scriptaculous/src/scriptaculous.js?load=effects,controls"></script>
 <script type='text/javascript'>  <script type='text/javascript'>
 function getFiles() {  
         document.getElementById('files').innerHTML = "Getting Files . . .";  var TODO = function () {
         new Ajax.Request('/~andrew/user-bin/todo.cgi/andrew.txt', {      var base_url = '/~andrew/user-bin/todo.cgi',
                 method: 'get',          editors  = {},
                 onSuccess: function(response) {  
                          document.getElementById('files').innerHTML = response.responseText;      makeEntryEditor  = function(list, entry) {
                 }          var url = base_url + '/' + list + '/entry/' + entry.line,
         });              id  = entry.id;
 }  
 function getList(list) {         if (editors[id]) {
         document.getElementById('list').innerHTML = "Getting List . . .";              editors[id].editor.dispose();
         new Ajax.Request('/~andrew/user-bin/todo.cgi/andrew/' + list + '.txt', {              delete editors[id];
                 method: 'get',         }
                 onSuccess: function(response) {  
                          document.getElementById('list').innerHTML =         editors[id] = {
                         '<pre>' + response.responseText + '</pre>';             list: list,
                 }             editor: new Ajax.InPlaceEditor(
         });                  id, url + '.json', {
 }                      cols: 80,
 function getEntry(list, entry) {                      rows: 1,
         document.getElementById('entry').innerHTML = "Getting Entry . . .";                      callback: function(form, value) {
         new Ajax.Request('/~andrew/user-bin/todo.cgi/andrew/' + list + '/entry/' + entry + '.md5', {                          entry.oldText = entry.text;
                 method: 'get',                          entry.text = value;
                 onSuccess: function(response) {                          return entry;
                          document.getElementById('entry').innerHTML =                      },
                         '<pre>' + response.responseText + '</pre>';                      onComplete: function (transport, element) {
                 }                          if (transport && transport.responseJSON) {
         });                              updateEntry(transport.responseJSON, element);
 }                          }
                       }
                   }
              ),
          };
       },
   
       updateEntry = function(entry, element) {
           var list = editors[element.id].list;
   
           element.update(entry.text);
   
           if (parseInt(entry.line) !== element.value) {
               for (k in editors) {
                   if (editors.hasOwnProperty(k)) {
                       editors[k].editor.dispose();
                       delete editors[k];
                   }
               }
               return getList(list);
           }
       },
   
       updateList = function (list, transport) {
           var i,
             todo = transport.responseJSON,
             element = new Element('ol');
   
           $("list").update( element );
   
           for (i=0; i <= todo.length; i++) {
               todo[i].id = 'entry_' + todo[i].line;
   
               element.insert( new Element('li', {
                       id: 'entry_' + todo[i].line,
                       value: todo[i].line
                   }).update(todo[i].text)
               );
   
               makeEntryEditor(list, todo[i]);
           }
       },
   
       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>  </script>
 </head>  </head>
 <body onLoad="getFiles();getList('todo');getEntry('todo',5)">  
 <!-- $AFresh1$ -->  <body onLoad="TODO.getList('todo');TODO.getTags('todo');TODO.getFiles()">
 <div id='files'></div>      <h1>Files:</h1><div id='files'></div>
 <div id='list'></div>      <h1>List:</h1> <div id='list'></div>
 <div id='entry'></div>      <h1>Tags:</h1> <div id='tags'></div>
 </body></html>  </body></html>

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.11

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