jsonmootools

making a todolist in Mootools


I'm making a todolist in mootools and having the following problem. I store my todo items in a cookie but the issue is I can't read how many cookies I've set so I can get the value of them.

my question is: is there any way to count how many cookies I've set so I can loop through them and get the correct value?

When I put the getData in a console.log I'm getting my JSON but I also can't read the values from there. What am I doing wrong and which other implementation do you advise me.

Thanks in advance.

for now I have the following code.

window.addEvent('domready', function(){
    
    
    
    $('add').addEvent('click', function(){

        var value = $('todo').value;
        var t = new Todo(value,"beschrijving",new Date(),1);
        var storeData = JSON.encode(t);
        
        var c = Cookie.write(value,storeData,{duration:1});
        
        var getData = Cookie.read(value);
        
        console.log(getData);
    });

});


var Todo = new Class(
    {
    initialize: function(title,description,date,isDone){
        this.title = title;
        this.description = description;
        this.date = new Date();
        this.isDone = isDone;
        
    },
    
    getTitle:function()
    {       
        return this.title;  
    },
    
    getIsDone:function()
    {
        return this.isDone;
    },
    
    setIsDone:function(value)
    {
        this.isDone = value;
    },
    
    
});

Solution

  • You seem to be missing the core point of cookies - when you set a cookie with a specified name, it overwrites the previous value of that cookie. With your current approach, it will never contain more than a single item.

    You have to keep an array of todo items and serialize and store that array instead of the Todo object itself.

    Also, you'll grow out of max cookie size quickly this way. I'd recommend using HTML5 LocalStorage instead. A base wrapper of LocalStorage can be found in Mootools Powertools.