]> git.imager.perl.org - bse.git/blob - t-js/10menu.js
allow fieldtype to be configure to set "type" in the fields
[bse.git] / t-js / 10menu.js
1 document.observe("dom:loaded", function() {
2   plan(7);
3
4   ok(BSEMenu, "have a BSEMenu class");
5   ok(BSEMenu.Item, "have a BSEMenu.Item class");
6   ok(BSEMenu.SubMenu, "have a BSEMenu.SubMenu class");
7
8   var clicked = function(item) { diag("Item " + item.text + " clicked") };
9
10   var bar = $("nav");
11   {
12     var m1 = new BSEMenu({
13       title: "Test 1",
14       current: true,
15       items: [
16         {
17           text: "Item A",
18           separator: true,
19           onClick: clicked
20         },
21         {
22           text: "Item B",
23           onClick: clicked
24         }
25       ]
26     });
27     ok(m1, "made a menu");
28     bar.appendChild(m1.element());
29   }
30   {
31     var itemfb = {
32       text: "Item F b",
33       check: true,
34       checked: true
35     };
36     itemfb.onClick = function() {
37       var check = !this.object.checked();
38       this.object.setChecked(check);
39       diag("Item F b clicked, now " + (check ? "" : "not ") + "checked");
40     }.bind(itemfb);
41     var items = [
42         {
43           text: "Item E",
44           separate: true,
45           onClick: clicked
46         },
47         {
48           text: "Item F",
49           submenu: {
50             items: [
51               {
52                 text: "Item F a",
53                 disabled: true,
54                 onClick: function() { diag("item F a shouldn't be clickable") }
55               },
56               itemfb
57             ]
58           }
59         }
60     ];
61     var m2 = new BSEMenu({
62       title: "Test 2",
63       items: items
64     });
65     bar.appendChild(m2.element());
66     ok(m2, "made second menu, with submenu");
67   }
68   {
69     var itemM = {
70       text: "item M",
71       onClick: clicked
72     };
73     var itemN = {
74       text: "item N",
75       onClick: clicked
76     };
77     var m3 = new BSEMenu({
78       title: "Test 3",
79       items: [
80         itemM,
81         itemN
82       ]
83     });
84     ok(m3, "made third menu");
85     bar.appendChild(m3.element());
86     m3.setText("Test 3 modified");
87     itemN.object.setText("Item N modified");
88     itemN.object.setSubmenu(new BSEMenu.SubMenu({
89       items: [
90         {
91           text: "item Na added",
92           onClick: clicked
93         },
94         {
95           text: "item Nb added",
96           onClick: clicked
97         },
98         {
99           text: "item Nc added",
100           onClick: clicked
101         },
102         {
103           text: "item Nd added",
104           onClick: clicked
105         },
106         {
107           text: "item Ne added",
108           onClick: clicked
109         }
110       ]
111     }));
112   }
113   {
114     var subT = new Element("ul");
115     var li1 = new Element("li");
116     li1.appendChild(new Element("input", { type: "text" }));
117     subT.appendChild(li1);
118     var li2 = new Element("li");
119     var a2 = new Element("a", { href: "#" });
120     a2.update("Foo");
121     li2.appendChild(a2);
122     subT.appendChild(li2);
123     
124     var itemT = {
125       text: "Articles",
126       submenu: {
127         element: subT
128       }
129     };
130     var m4 = new BSEMenu({
131       title: "Articles",
132       items: [
133         {
134           text: "New article",
135           onClick: clicked
136         },
137         itemT
138       ]
139     });
140     bar.appendChild(m4.element());
141     ok(m4, "made m4");
142   }
143   tests_done();
144 });
145