]> err.no Git - scalable-opengroupware.org/blob - SOGo/UI/Templates/AnaisUidSelector.wox
rewrote the AnaisUidSelector - it's now unable to add duplicate ids
[scalable-opengroupware.org] / SOGo / UI / Templates / AnaisUidSelector.wox
1 <?xml version='1.0' standalone='yes'?>
2
3 <span xmlns="http://www.w3.org/1999/xhtml"
4       xmlns:var="http://www.skyrix.com/od/binding"
5       xmlns:const="http://www.skyrix.com/od/constant"
6       xmlns:rsrc="OGo:url"
7       xmlns:label="OGo:label"
8  >
9   <script language="JavaScript">
10     function clearElementWithId(elemId) {
11       var o = document.getElementById(elemId);
12       var dst = o.parentNode;
13       var n = document.createElement('td');
14       n.setAttribute('id', elemId);
15       n.setAttribute('align', 'left');
16       n.setAttribute('class', 'anais_uids');
17       dst.replaceChild(n, o);
18     }
19     function clearUidList() {
20       clearElementWithId('userCNs');
21       var e = document.getElementById('userUIDString');
22       e.setAttribute('value', '');
23       var td = document.getElementById('addMeToo');
24       td.setAttribute('style', 'visibility:visible');
25       td = document.getElementById('clearUidList');
26       td.setAttribute('style', 'visibility:hidden');
27       td = document.getElementById('showUidList');
28       td.setAttribute('style', 'visibility:hidden');
29     }
30     function addMeToo() {
31       addUid('', '', '<var:string value="context.activeUser.login" />', '', '<var:string value="context.activeUser.cn" />', '');
32       var td = document.getElementById('addMeToo');
33       td.setAttribute('style', 'visibility:hidden');
34     }
35     function clearAllAndAddMe() {
36       clearUidList();
37       addMeToo();
38     }
39     function addUidFromAnais(type, email, uid, sn, cn, dn) {
40       addUid(type, email, uid, sn, cn, dn); 
41     }
42     function addUid(type, email, uid, sn, cn, dn) {
43       if(!uid)
44         return;
45       var e = document.getElementById(uid);
46       if (e)
47         return;
48       e     = document.getElementById('userUIDString');
49       var s = e.getAttribute('value');
50       if(s)
51         s = s + ',' + uid;
52       else
53         s = uid;
54       e.setAttribute('value', s);
55       
56       // add CN
57       var td = document.getElementById('userCNs');
58       var text;
59       if(td.hasChildNodes()) {
60         text = document.createTextNode(', ');
61         td.appendChild(text);
62       }
63       text     = document.createTextNode(cn);
64       var span = document.createElement('span');
65       span.setAttribute('id', uid);
66       if(uid == '<var:string value="context.activeUser.login" />')
67         span.setAttribute('class', 'anais_me');
68       span.appendChild(text);
69       td.appendChild(span);
70
71       td = document.getElementById('clearUidList');
72       td.setAttribute('style', 'visibility:visible');
73       td = document.getElementById('showUidList');
74       td.setAttribute('style', 'visibility:visible');
75     }
76   </script>
77   <table cellspacing="2" cellpadding="0" width="100%" border="0">
78     <var:if condition="isAccessRestricted" const:negate="YES">
79       <tr valign="middle">
80         <td>
81           <var:component className="AnaisSelector"
82                          label:title="Search in Anais"
83                          const:windowId="UidSelector"
84                          const:callback="addUidFromAnais"
85                          const:extraAttributes="cn,dn"
86           />
87           <var:component className="UIxContactSelector"
88                          label:title="Search in Addressbook"
89                          const:windowId="UidSelector"
90                          const:callback="addUid"
91           />
92           <span id="addMeToo" class="button_submit_env" var:style="meTooStyle">
93             <a href="javascript:addMeToo()"
94                class="button_submit"
95             ><var:string label:value="me too" /></a>
96           </span>
97           <span id="clearAllAndAddMe" class="button_submit_env">
98             <a href="javascript:clearAllAndAddMe()"
99                class="button_submit"
100             ><var:string label:value="me alone" /></a>
101           </span>
102         </td>
103         <td align="right" valign="middle" rowspan="2">
104           <div style="clear: both; text-align: center;">
105             <div style="margin-bottom: 4px;">
106               <span id="clearUidList" class="button_submit_env">
107                 <a href="javascript:clearUidList()"
108                     class="button_submit"
109                  ><var:string label:value="clear" /></a>
110               </span>
111             </div>
112             <div style="margin-top: 4px;">
113               <span id="showUidList" class="button_submit_env">
114                 <form var:href="showHref">
115                   <input type="hidden"
116                          name="userUIDString"
117                          id="userUIDString"
118                          var:value="userUIDString"
119                   />
120                   <input type="hidden"
121                          name="previousMethod"
122                          var:value="ownMethodName"
123                   />
124                   <input type="submit" label:value="show" class="button_auto" />
125                 </form>
126               </span>
127             </div>
128           </div>
129         </td>
130       </tr>
131     </var:if>
132     <tr valign="top">
133       <td id="userCNs"
134           align="left"
135           class="anais_uids"
136       ><var:foreach list="userUIDs"
137                     item="userUID"
138                     index="userUIDIdx"
139        ><var:if condition="needsComma">, </var:if>
140         <var:string value="prettyCN"
141                     const:escapeHTML="NO"
142         /></var:foreach>
143       </td>
144     </tr>
145   </table>
146 </span>