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

version 1.4, 2010/01/31 02:31:47 version 1.11, 2010/02/18 05:35:04
Line 1 
Line 1 
 <html><head>  <html><head>
 <title>todo.txt - ajax client</title>          <!-- $AFresh1: index.html,v 1.10 2010/02/17 02:16:28 andrew Exp $ -->
 <link rel="stylesheet" href="todo.css">          <title>todo.txt - ajax client</title>
 <script src="http://o.aolcdn.com/dojo/1.4/dojo/dojo.xd.js"></script>          <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'>
 var base_url = '/~andrew/user-bin/todo.cgi';  
   
   function loadIntoNode(data, xhr){  var TODO = function () {
     if(xhr.args.node){      var base_url = '/~andrew/user-bin/todo.cgi',
       xhr.args.node.innerHTML = data;          editors  = {},
     }  
   }      makeEntryEditor  = function(list, entry) {
 function getFiles() {          var url = base_url + '/' + list + '/entry/' + entry.line,
   dojo.byId('files').innerHTML = "Getting Files . . .";              id  = entry.id;
   dojo.xhrGet({  
     url: base_url,  
     node: dojo.byId("files"),  
     load: loadIntoNode  
   });  
   
 }         if (editors[id]) {
 function getList(list) {              editors[id].editor.dispose();
   dojo.byId('list').innerHTML = "Getting List . . .";              delete editors[id];
   dojo.xhrGet({         }
     url: base_url + '/' + list + '.txt',  
     node: dojo.byId("list"),         editors[id] = {
     load: loadIntoNode             list: list,
   });             editor: new Ajax.InPlaceEditor(
 }                  id, url + '.json', {
 function getEntry(list, entry) {                      cols: 80,
         document.getElementById('entry').innerHTML = "Getting Entry . . .";                      rows: 1,
   dojo.xhrGet({                      callback: function(form, value) {
     url: base_url + '/' + list + '/entry/' + entry + '.md5',                          entry.oldText = entry.text;
     node: dojo.byId("entry"),                          entry.text = value;
     load: loadIntoNode                          return entry;
   });                      },
 }                      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: index.html,v 1.3 2010/01/19 03:33:13 andrew Exp $ -->  <body onLoad="TODO.getList('todo');TODO.getTags('todo');TODO.getFiles()">
 <div id='files'></div>      <h1>Files:</h1><div id='files'></div>
 <pre><div id='list'></div></pre>      <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.4  
changed lines
  Added in v.1.11

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