Wednesday, May 27, 2009

Some of the code which implements the To-Do list gadget

Several different functions are defined for this gadget; one such function loadToDos110 will be called on load; this function also gets user preference values as discussed. Another of the functions addToDos110 will be called on submission of a related form. Other functions still are only invoked internally (e.g., getPriorityText110, sortByPriority110, ...), i.e., by other functions defined within this same script.

<script>
var todos110,
editedPrior110,editedName110,
prefs110,
evenRowColor110="#fff";
_IG_RegisterOnloadHandler(
function(){
loadTodos110();
window._IG_RegisterMaximizeHandler &&
_IG_RegisterMaximizeHandler(110,loadTodos110)
}
);
function loadTodos110(){
prefs110=new _IG_Prefs(110);
evenRowColor110 =
prefs110.getString("bgcolor").replace(/[^a-f0-9#]/g,"");
var a=prefs110.getString("todos");
todos110=a==""?{array:[]}:JSON.parse(a);
editedName110=editedPrior110=-1;
createTable110()
}
function saveTodos110(){
prefs110.set("todos",JSON.stringify(todos110));
_gel("newTodoInput110").focus()
}
function addTodo110(a,c){
resolvePendingEdits110();
a=_trim(a);
_gel("newTodoInput110").value="";
if(!(a=="")){
todos110.array[todos110.array.length]={name:a,priority:c};
createTable110();
saveTodos110();
return false
}
}
function deleteTodo110(a){
resolvePendingEdits110();
var c=todos110.array.slice(0,a),
b=todos110.array.slice(a+1,todos110.array.length);
todos110.array=c.concat(b);
createTable110();
saveTodos110()
}
function swapTodos110(a,c){
var b=todos110.array[a];
todos110.array[a]=todos110.array[c];
todos110.array[c]=b
}
function sortByPriority110(a){...}
function setPriority110(a,c){...}
function createTable110(){...}
function createRow110(a,c,b){...}
function escapeName110(a){...}
function createDelete110(a){...}
function createPrioritySelect110(a,c){...}
...
</script>

<form name=newTodoForm110 onsubmit="return addTodo110(
document.newTodoForm110.
newTodoInput110.value, 3, false)">
...
</form>



No comments:

Post a Comment