static/js/treelist.js
author Tero Marttila <terom@fixme.fi>
Fri, 21 Jan 2011 04:40:36 +0200
changeset 60 b364279347d9
parent 1 06451697083a
permissions -rw-r--r--
html: refactor and update doctests
1
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
/**
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
 * Dynamically expandable tree-form lists
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
 */
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
/* Document startup */
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
function treelist_init () 
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
{
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
    $$('.treelist li').each(function (item_li) {
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
        item_handle = item_li.down('div.item');
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
        item_handle.on('click', function (event, element) {
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
            // only target clicks directly in div, not in element inside it
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
            if (!element.match('div.item'))
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
                return;
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    15
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
            if (item_li.hasClassName('more'))
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
                item_li.toggleClassName('open');
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
        });
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
    });
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
}
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
Event.on(window, 'load', treelist_init);
06451697083a some experimental treelist thing
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24