Line # Revision Author
1 3 ahitrov@rambler.ru <STYLE TYPE="text/css">
2 TABLE#tblCoolbar
3 {
4 background-color:threedface; padding:1px; color:menutext;
5 border-width:1px; border-style:solid;
6 border-color:threedhighlight threedshadow threedshadow threedhighlight;
7 }
8 .cbtn
9 {
10 height:18;
11 BORDER-LEFT: threedface 1px solid;
12 BORDER-RIGHT: threedface 1px solid;
13 BORDER-TOP: threedface 1px solid;
14 BORDER-BOTTOM: threedface 1px solid;
15 }
16 .txtbtn {font-family:tahoma; font-size:70%; color:menutext;}
17 </STYLE>
18
19 <script LANGUAGE="JavaScript">
20 sDocumentClass = '<% $object->class %>';
21 nDocumentID = <% $object->id || 0 %>;
22 var ObjLists = new Array;
23 <%perl>
24 my @properties = $object->structure();
25 my $i = 0;
26 foreach my $attr (@properties)
27 {
28 if ($attr->{type} eq 'obj_list')
29 {
30 $m->out("ObjLists[$i] = '".$attr->{attr}."';\n");
31 $i++;
32 }
33 }
34 </%perl>
35
36 function show_layer( name, xof, yof ) {
37 var layer = eval('document.all.span_' + name);
38 var rel = document.all['pos_' + name];
39 var x = rel.offsetLeft;
40 var y = rel.offsetTop;
41
42 while (rel.offsetParent != null) {
43 rel = rel.offsetParent;
44 x += rel.offsetLeft;
45 y += rel.offsetTop;
46 if (rel.tagName == 'BODY') break;
47 }
48 layer.style.left = x + (xof || 400);
49 layer.style.top = y + (yof || -50);
50 layer.style.visibility = 'visible';
51 }
52
53 function hide_layer(name) {
54 var layer = eval('document.all.span_' + name);
55 layer.style.visibility = 'hidden';
56 }
57
58
59 // object list javascripts
60
61
62
63 function already_added(opts, item)
64 {
65 var i = 0;
66 while ( i < opts.length)
67 {
68 if (opts[i].value == item.value || opts[i].text == item.text) return true;
69 i++;
70 }
71 return false;
72 }
73
74 % if ($links_code) {
75 dobj_opener = self.opener.document.forms['links'].elements['links'];
76 alert(dobj_opener.options.length);
77 % }
78
79 function sel_wo_del(sobj, dobj)
80 {
81 // sobj = eval('iobjs.document.form.objs');
82 // dobj = document.dform.objs;
83 var i = 0;
84 while ( i < sobj.elements.length )
85 {
86 if (sobj.elements[i].checked)
87 {
88 var item = new Option();
89 item.value = sobj.elements[i].name;
90 item.text = sobj.elements[i].value;
91 if (!already_added(dobj.options, item))
92 {
93 dobj.options[dobj.options.length] = item;
94 % if ($links_code) {
95 dobj_opener.options[dobj_opener.options.length] = item;
96 % }
97 }
98 sobj.elements[i].checked = null;
99 }
100 i++;
101 }
102 }
103
104 function del(sobj)
105 {
106 var i = 0;
107 var j;
108 while ( i < sobj.options.length )
109 {
110 if (sobj.options[i].selected && sobj.options[i].value != null)
111 {
112 sobj.options[i] = null;
113 j = i;
114 }
115 i++;
116 }
117
118 % if ($links_code) {
119 dobj_opener.options[j] = null;
120 % }
121 }
122
123 function Save()
124 {
125 for (var i = 0; i < ObjLists.length; i++)
126 {
127 var el = eval("document.form.obj_list_" + ObjLists[i]);
128 var tmp = Array();
129 for (var j=0;j<el.options.length;j++)
130 tmp[j] = el.options[j].value;
131 eval('document.form.' + ObjLists[i]).value = tmp.join(',');
132 }
133
134 if ( document.form.obj_list_dest_id )
135 {
136 for(var i=0; i<document.form.obj_list_dest_id.length; i++)
137 {
138 document.form.obj_list_dest_id[i].selected = true;
139 }
140 }
141
142 return true;
143 }
144
145 </script>
146 <%ARGS>
147
148 $object => undef
149 $links_code => undef
150
151 </%ARGS>
152 <%INIT>
153
154 return undef unless ref($object);
155
156 </%INIT>