Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 1 of 1
  1. #1
    New to the CF scene
    Join Date
    Jul 2007
    Posts
    5
    Thanks
    0
    Thanked 0 Times in 0 Posts

    javascript for Gadget

    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?
    Last edited by Onlinetest; 10-16-2008 at 06:43 PM.


 

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •