...

View Full Version : javascript for Gadget



Onlinetest
10-16-2008, 07:36 PM
I'm working javascript for todo gadget and i get some bugs. This is my code todo.xml of gadget todo :

<?xml version="1.0" encoding="UTF-8" ?>

<Module>

<ModulePrefs author="eXoPlatform"

title="Todo"

directory_title="Todo"

title_url="http://www.n2lose.org"

height="235">

<Require feature="setprefs" />

</ModulePrefs>

<UserPref name="todoList"

datatype="list"/>

<Content type="html">

<![CDATA[

<style type="text/css">



body {

margin: 0;

outline: none;

font: normal 100%/1.25 Verdana, Tahoma, Arial, Helvetica, sans-serif;

text-decoration: none;

text-align: center;

}



img {

border:none;

}



li {

list-style-type:none;

}



.clear {

clear:both;

width:0;

height:0;

line-height:0;

font-size:0;

}



.Note {

background: url(/n2lose/skin/image/Note.jpg) top left no-repeat;

width: 160px;

height: 235px;

margin: 0 auto;

padding: 42px 18px 0 18px;

}



.write {

width: 155px;

height: 165px;

overflow: auto;

}



.write input {

background: url(/n2lose/skin/image/line.gif) bottom left repeat-x;

font-size: 11px;

color: #be0d08;

border: none;

width: 100%;

line-height: auto;

font-style: italic;

margin-bottom: 2px;

height: 18px;

}



</style>

<script type="text/javascript">

var prefs = new gadgets.Prefs();

var keynum;

var parentGadgets = window.top.gadgets;

var gadget = parentGadgets.container.getGadget(prefs.getModuleId());



function onLoad() {

var appendParrent = document.getElementById("write");
var inputlist = top.eXo.core.DOMUtil.findDescendantsByTagName(appendParrent,"input");
var j = inputlist.length ;
while(j--) {
inputlist[j].onkeyup = finish(this,event) ;
inputlist[j].onfocus = checkIndex(this,event) ;
}

var lists = window.top.JSON.stringify(gadget.getUserPrefs());

if(lists == "{}") return;

lists = lists.substring(1,lists.length-1);

var listsTodo = lists.split("|");

for(var i=0; i<listsTodo.length; i++) {

if(i>6) {

var input = document.createElement("input");

input.setAttribute("type","text");

input.setAttribute("name",i+1);

input.onkeyup = finish(this,event);

input.setAttribute("id",i+1);

appendParrent.insertBefore(input,null);

}

var tmp = document.getElementById(parseInt(i)+1);

tmp.value = listsTodo[i];

}

}



function finish(element,e) {

var lists = window.top.JSON.stringify(gadget.getUserPrefs());

if(lists.length == 0 || lists == "{}") lists = null;

else {

lists = lists.substring(1,lists.length-1);

var listTodo = lists.split("|");

}

var appendParrent = document.getElementById("write");

var nameElement = parseInt(element.name) + 1;

if(window.event) {

keynum = e.keyCode;

}else if(e.which) {

keynum = e.which;

}

if(keynum == 13) {

if(nameElement == 8 && element.nextSibling.nextSibling!=null) {

element.nextSibling.nextSibling.focus();

return;

}

if(nameElement > 8 && element.nextSibling!=null) {

element.nextSibling.focus();

return;

}

if(nameElement > 7) {

var input = document.createElement("input");

input.setAttribute("type","text");

input.setAttribute("name",nameElement);

input.setAttribute("onkeydown","finish(this,event);");

input.setAttribute("id",nameElement);

appendParrent.insertBefore(input,null);

}

var nextInput = element.nextSibling.nextSibling;

if(nameElement > 8) nextInput = element.nextSibling;

if(nextInput.value == null || nextInput.value==""){

nextInput.value = nameElement + ".";

if(lists == null) lists = element.value;

else {

lists = lists + "|" + element.value;

}

} else

{

var oldStr = listTodo[parseInt(nameElement-2)];

var lists = lists.replace(oldStr,element.value);

}

prefs.setArray("todoList",[lists]);

gadget.setUserPrefs(lists);

nextInput.focus();

}

}

</script>

<body onload="onLoad()">

<div class="Note">

<div class="write" id="write">

<input type="text" id="1" onfocus="javascript: if(this.value == '1. Type new task here') this.value='1.'" value="1. Type new task here" name="1" onkeyup="finish(this,event);"/>

<input type="text" id="2" name="2" onkeyup="finish(this,event);"/>

<input type="text" id="3" name="3" onkeyup="finish(this,event);"/>

<input type="text" id="4" name="4" onkeyup="finish(this,event);"/>

<input type="text" id="5" name="5" onkeyup="finish(this,event);"/>

<input type="text" id="6" name="6" onkeyup="finish(this,event);"/>

<input type="text" id="7" name="7" onkeyup="finish(this,event);"/>

</div>

</div>

</body>

]]>

</Content>

</Module>


above is code todo.xml of todo gadget. anybody help javascript :
1. When anybody add new task, he typing follow i can save to there. 'Cause when you typing a task you must be press Enter key to save task.
2. Check index of Task when he press enter key or Tab por mouse new Tabs.


Anybody help me please?



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum