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

Diff for /todotxt/Text-Todo-REST-API/example/htdocs/lib/todo.js between version 1.2 and 1.3

version 1.2, 2010/02/23 03:55:22 version 1.3, 2010/02/23 05:34:26
Line 1 
Line 1 
   "use strict";
 var TODO = function () {  var TODO = function () {
     var base_url = '/~andrew/user-bin/todo-rest.cgi',      var base_url = '/~andrew/user-bin/todo-rest.cgi',
         editors  = {},          editors = {},
   
     makeEntryEditor  = function(list, entry) {      makeEntryEditor = function (list, entry) {
         var url = base_url + '/' + list + '/entry/' + entry.line,          var url = base_url + '/' + list + '/entry/' + entry.line,
             id  = entry.id;              id = entry.id;
   
         if (!id) {          if (!id) {
             id = 'entry_' + entry.line;              id = 'entry_' + entry.line;
         }          }
   
         if (editors[id]) {          if (editors[id]) {
                 editors[id].dispose();              editors[id].dispose();
                 delete editors[id];              delete editors[id];
         }          }
   
         editors[id] = new Ajax.InPlaceEditor( id, url + '.json', {          editors[id] = new Ajax.InPlaceEditor(id, url + '.json', {
                 ajaxOptions: {              ajaxOptions: {
                         method: 'put',                  method: 'put'
                 },              },
                 cols: 80,              cols: 80,
                 rows: 1,              rows: 1,
                 callback: function(form, value) {              callback: function (form, value) {
                     entry.oldText = entry.text;                  entry.oldText = entry.text;
                     entry.text = value;                  entry.text = value;
                     return entry;                  return entry;
                 },              },
                 onComplete: function (transport, element) {              onComplete: function (transport, element) {
                     if (transport && transport.responseJSON) {                  if (transport && transport.responseJSON) {
                         updateEntry( list, transport.responseJSON, element);                      updateEntry(list, transport.responseJSON, element);
                     }  
                 }                  }
             }              }
         );          });
     },      },
   
     updateEntry = function(list, entry, element) {      getList = function (list) {
           $('list').update("Getting List . . .");
   
           var request = new Ajax.Request(base_url + '/' + list + '.json', {
               method: 'get',
               onSuccess: function (transport) {
                   updateList(list, transport);
               },
           });
   
       },
   
       updateEntry = function (list, entry, element) {
         if (!entry.id) {          if (!entry.id) {
             entry.id = 'entry_' + entry.line;              entry.id = 'entry_' + entry.line;
         }          }
         var liId = 'li_' + entry.id;          var k, liId = 'li_' + entry.id;
   
         if (parseInt(entry.line) !== $(liId).value) {          if (parseInt(entry.line) !== $(liId).value) {
             for (k in editors) {              for (k in editors) {
Line 52 
Line 64 
         }          }
   
         $(liId).update(          $(liId).update(
             new Element('span', { id: entry.id }). update(entry.text)          new Element('span', {
         ).insert({              id: entry.id
             top: new Element('input', {          }).update(entry.text)).insert({
                 type: 'checkbox' ,              top: new Element('input', {
                 id:   'do_' + entry.line,                  type: 'checkbox',
                   id: 'do_' + entry.line,
                 checked: entry.done,                  checked: entry.done,
                 disabled: true,                  disabled: true,
             })              })
Line 66 
Line 79 
     },      },
   
     updateList = function (list, transport) {      updateList = function (list, transport) {
         var i,          var i, todo = transport.responseJSON,
           todo = transport.responseJSON,              element = new Element('ol'),
           element = new Element('ol'),              entryElement;
           entryElement;  
   
         $("list").update( element );          $("list").update(element);
   
         for (i=0; i <= todo.length; i++) {          for (i = 0; i <= todo.length; i++) {
             todo[i].id = 'entry_' + todo[i].line;              todo[i].id = 'entry_' + todo[i].line;
   
             entryElement = new Element('li', {              entryElement = new Element('li', {
                 id: 'li_' + todo[i].id,                  id: 'li_' + todo[i].id,
                 value: todo[i].line                  value: todo[i].line
             });              });
   
             element.insert(entryElement);              element.insert(entryElement);
Line 90 
Line 102 
     getFiles = function () {      getFiles = function () {
         $('files').update("Getting Files . . .");          $('files').update("Getting Files . . .");
   
         new Ajax.Updater('files', base_url, {          var request = new Ajax.Updater('files', base_url, {
             method: 'get',              method: 'get'
         });          });
     },      },
   
     getTags = function (list) {      getTags = function (list) {
             $('tags').update("Getting Tags. . .");          $('tags').update("Getting Tags. . .");
   
             var url = base_url + '/' + list + '/tags';          var url = base_url + '/' + list + '/tags';
   
             new Ajax.Request(url + '.json', {          var request = new Ajax.Request(url + '.json', {
             method: 'get',              method: 'get',
             onSuccess: function (transport) {              onSuccess: function (transport) {
                 var k,                  var k, data = transport.responseJSON,
                     data = transport.responseJSON,  
                     element = new Element('ul');                      element = new Element('ul');
   
                 $("tags").update(element);                  $("tags").update(element);
                 for (k in data) {                  for (k in data) {
                     if (data.hasOwnProperty(k)) {                      if (data.hasOwnProperty(k)) {
                     element.insert(                          element.insert(
                         new Element('li', {                          new Element('li', {
                             id: 'tag_' + k,                              id: 'tag_' + k,
                             }).update( k + ": " + data[k]  )                          }).update(k + ": " + data[k]));
                     );                          getTag(list, k);
                     getTag(list, k);  
                     }                      }
                 }                  }
             },              },
         });          });
     },      },
   
     getTag = function( list, tag ) {      getTag = function (list, tag) {
         new Ajax.Request(base_url + '/' + list + '/tags/' + tag + '.json', {          var request = new Ajax.Request(base_url + '/' + list + '/tags/' + tag + '.json', {
             method: 'get',              method: 'get',
             onSuccess: function (transport) {              onSuccess: function (transport) {
                 if (transport && transport.responseJSON) {                  if (transport && transport.responseJSON) {
                     var i,                      var i, myTags = transport.responseJSON,
                         myTags = transport.responseJSON,  
                         element = new Element('ul');                          element = new Element('ul');
   
                     if (myTags.length) {                      if (myTags.length) {
                         $('tag_' + tag).insert(element);                          $('tag_' + tag).insert(element);
   
                         for (i=0; i<myTags.length; i++) {                          for (i = 0; i < myTags.length; i++) {
                             element.insert( new Element('li').                              element.insert(new Element('li').
                                 update( myTags[i] ));                              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 {      return {
         getList:  getList,          getList: getList,
         getFiles: getFiles,          getFiles: getFiles,
         getTags:  getTags,          getTags: getTags,
     };      };
 }();  }();

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

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