]> err.no Git - scalable-opengroupware.org/blob - UI/Templates/MailerUI/UIxMailView.wox
improved reliability on iCal viewer
[scalable-opengroupware.org] / UI / Templates / MailerUI / UIxMailView.wox
1 <?xml version='1.0' standalone='yes'?>
2 <var:component
3   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:uix="OGo:uix"
7   xmlns:rsrc="OGo:url"
8   xmlns:label="OGo:label"
9   className="UIxMailPanelFrame"
10   title="panelTitle"
11 >
12   <!-- TODO: refactor address rendering into an own component(/element) -->
13
14   <!-- TODO: can we create own clientObject's for Kolab entities? Probably
15              not (since we would always need to fetch the header during 
16              lookup). It would work for 'annotated' folders though.
17        TODO: for Kolab we need a completely different viewer with a different
18              toolbar etc. And for Kolab we would need a different list viewer
19              as well ...
20     -->
21  <var:if condition="clientObject.isKolabObject" const:negate="1">
22   <!-- 
23     Note: We cannot make this section static (like the toolbar) because the CC
24           list has a dynamic height (would require some tricky JavaScript).
25     -->
26   <table class="mailer_fieldtable">
27     <tr class="mailer_fieldrow">
28       <td class="mailer_fieldname" ><var:string label:value="Subject"/>:</td>
29       <td class="mailer_subjectfieldvalue">
30         <var:string value="clientObject.subject"
31                     formatter="context.mailSubjectFormatter"/>
32       </td>
33     </tr>
34     <tr class="mailer_fieldrow">
35       <td class="mailer_fieldname" ><var:string label:value="From"/>:</td>
36       <td class="mailer_fieldvalue">
37         <var:foreach list="clientObject.fromEnvelopeAddresses"
38                      item="currentAddress">
39           <a var:href="currentAddressLink">
40             <var:string value="currentAddress"
41                  formatter="context.mailEnvelopeFullAddressFormatter" /></a>
42         </var:foreach>
43       </td>
44     </tr>
45     <tr class="mailer_fieldrow">
46       <td class="mailer_fieldname" ><var:string label:value="Date"/>:</td>
47       <td class="mailer_fieldvalue">
48         <var:string value="clientObject.date" 
49                     formatter="context.mailDateFormatter"/>
50
51         <!-- TODO:
52         (<a rsrc:href="tbird_073_viewer.png">screenshot</a>)
53          -->
54       </td>
55     </tr>
56
57     <tr class="mailer_fieldrow">
58       <td class="mailer_fieldname" ><var:string label:value="To"/>:</td>
59       <td class="mailer_fieldvalue">
60         <var:foreach list="clientObject.toEnvelopeAddresses"
61                      item="currentAddress">
62           <a var:href="currentAddressLink">
63             <var:string value="currentAddress"
64                  formatter="context.mailEnvelopeFullAddressFormatter" /></a>
65         </var:foreach>
66       </td>
67     </tr>
68     <var:if condition="hasCC">
69       <tr class="mailer_fieldrow">
70         <td class="mailer_fieldname" ><var:string label:value="CC"/>:</td>
71         <td class="mailer_fieldvalue">
72           <var:foreach list="clientObject.ccEnvelopeAddresses" 
73                        item="currentAddress">
74             <a var:href="currentAddressLink">
75               <var:string value="currentAddress"
76                    formatter="context.mailEnvelopeFullAddressFormatter" /></a>
77             <br /> <!-- TODO: better to use li+CSS -->
78           </var:foreach>
79         </td>
80       </tr>
81     </var:if>
82
83
84     <!-- header fields if available -->
85     <var:if condition="clientObject.hasMailHeaderInCoreInfos">
86
87       <var:if condition="clientObject.mailHeaders.organization.isNotEmpty">
88         <tr class="mailer_fieldrow">
89           <td class="mailer_fieldname" 
90               ><var:string label:value="Organization"/>:</td>
91           <td class="mailer_fieldvalue">
92             <var:if-qualifier
93                const:condition="organization hasPrefix: 'http://'" 
94                object="clientObject.mailHeaders">
95               <a var:href="clientObject.mailHeaders.organization"
96                  var:string="clientObject.mailHeaders.organization" />
97             </var:if-qualifier>
98             <var:if-qualifier
99                const:condition="organization hasPrefix: 'http://'" 
100                object="clientObject.mailHeaders"
101                const:negate="1">
102               <var:string value="clientObject.mailHeaders.organization" />
103             </var:if-qualifier>
104           </td>
105         </tr>
106       </var:if>
107       
108       <var:if condition="clientObject.mailHeaders.list-id.isNotEmpty">
109         <tr class="mailer_fieldrow">
110           <td class="mailer_fieldname" 
111               ><var:string label:value="Mailinglist"/>:</td>
112           <td class="mailer_fieldvalue">
113             <a var:href="clientObject.mailingListArchiveURL"
114                target="_blank"
115                var:string="clientObject.mailHeaders.list-id" />
116             |
117             <a var:href="clientObject.mailingListSubscribeURL"
118                target="_blank"><var:string label:value="subscribe"/></a>
119             |
120             <a var:href="clientObject.mailingListUnsubscribeURL"
121                target="_blank"><var:string label:value="unsubscribe"/></a>
122           </td>
123         </tr>
124       </var:if>
125       
126       <var:if condition="clientObject.mailHeaders.x-virus-status.isNotEmpty">
127         <tr class="mailer_fieldrow">
128           <td class="mailer_fieldname" 
129               ><var:string label:value="Virusstatus"/>:</td>
130           <td class="mailer_fieldvalue">
131             <var:string value="clientObject.mailHeaders.x-virus-status" />
132           </td>
133         </tr>
134       </var:if>
135
136       <var:if condition="clientObject.mailHeaders.x-spam-level.isNotEmpty">
137         <tr class="mailer_fieldrow">
138           <td class="mailer_fieldname" 
139               ><var:string label:value="Spamlevel"/>:</td>
140           <td class="mailer_fieldvalue">
141             <var:string value="clientObject.mailHeaders.x-spam-level" />
142             <var:if condition="clientObject.mailHeaders.x-spam-flag"
143                     const:value="YES">
144               / <var:string label:value="marked as spam by mailserver" />
145             </var:if>
146           </td>
147         </tr>
148       </var:if>
149       
150       <!-- all headers
151       <tr class="mailer_fieldrow">
152         <td class="mailer_fieldname" ><var:string label:value="Header"/>:</td>
153         <td class="mailer_fieldvalue">
154            <pre><var:string value="clientObject.mailHeaders" /></pre>
155         </td>
156       </tr>
157       -->
158     </var:if>
159   </table>
160  </var:if><!-- !Kolab -->
161
162   <div class="mailer_mailcontent">
163     <var:component value="contentViewerComponent"
164                    bodyInfo="clientObject.bodyStructure" />
165   </div>
166
167   <script language="JavaScript">
168     if (window.opener) {
169       markMailReadInWindow(window.opener, 
170         '<var:string value="clientObject.nameInContainer"/>');
171     }
172   </script>
173 </var:component>