root/trunk/deployment/webuser/webapp/resources/demoskins/themes/bedeworkTheme/head.xsl

Revision 2950 (checked in by johnsa, 3 years ago)

user client: improvements to scheduling UI

Line 
1 <!--
2     Licensed to Jasig under one or more contributor license
3     agreements. See the NOTICE file distributed with this work
4     for additional information regarding copyright ownership.
5     Jasig licenses this file to you under the Apache License,
6     Version 2.0 (the "License"); you may not use this file
7     except in compliance with the License. You may obtain a
8     copy of the License at:
9    
10     http://www.apache.org/licenses/LICENSE-2.0
11    
12     Unless required by applicable law or agreed to in writing,
13     software distributed under the License is distributed on
14     an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15     KIND, either express or implied. See the License for the
16     specific language governing permissions and limitations
17     under the License.
18 -->
19 <xsl:stylesheet
20   version="1.0"
21   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
22   xmlns="http://www.w3.org/1999/xhtml">
23  
24   <!--==== HEAD SECTION  ====-->
25   <xsl:template name="head">
26     <title><xsl:copy-of select="$bwStr-Head-PageTitle"/></title>
27     <meta name="robots" content="noindex,nofollow"/>
28     <meta content="text/html;charset=utf-8" http-equiv="Content-Type" />
29     <link rel="stylesheet" href="{$resourcesRoot}/css/bedeworkTheme.css"/>
30     <link rel="stylesheet" type="text/css" media="print" href="{$resourcesRoot}/css/print.css" />
31     <link rel="icon" type="image/ico" href="{$resourcesRoot}/images/bedework.ico" />
32
33     <!-- set globals that must be passed in from the XSLT -->
34     <script type="text/javascript">
35       <xsl:comment>
36       var defaultTzid = "<xsl:value-of select="/bedework/now/defaultTzid"/>";
37       var startTzid = "<xsl:value-of select="/bedework/formElements/form/start/tzid"/>";
38       var endTzid = "<xsl:value-of select="/bedework/formElements/form/end/dateTime/tzid"/>";
39       var resourcesRoot = "<xsl:value-of select="$resourcesRoot"/>";
40       </xsl:comment>
41     </script>
42
43     <!-- note: the non-breaking spaces in the script bodies below are to avoid
44          losing the script closing tags (which avoids browser problems) -->
45     <script type="text/javascript" src="/bedework-common/javascript/jquery/jquery-1.3.2.min.js">&#160;</script>
46     <script type="text/javascript" src="/bedework-common/javascript/jquery/jquery-ui-1.7.1.custom.min.js">&#160;</script>
47     <link rel="stylesheet" href="/bedework-common/javascript/jquery/css/custom-theme/jquery-ui-1.7.1.custom.css"/>
48     <link rel="stylesheet" href="/bedework-common/javascript/jquery/css/custom-theme/bedeworkJquery.css"/>
49     <!-- load bedework personal client javascript libraries -->
50     <script type="text/javascript" src="{$resourcesRoot}/javascript/bedework.js">&#160;</script>
51     <script type="text/javascript" src="{$resourcesRoot}/javascript/bedeworkSetup.js">&#160;</script>
52
53     <xsl:if test="/bedework/page='modSchedulingPrefs' or
54                   /bedework/page='modPrefs' or
55                   /bedework/page='attendeeRespond'">
56       <script type="text/javascript" src="{$resourcesRoot}/javascript/bedeworkPrefs.js">&#160;</script>
57     </xsl:if>
58
59     <xsl:if test="/bedework/page='modCalendar' or
60                   /bedework/page='modSchedulingPrefs'">
61       <link rel="stylesheet" href="/bedework-common/default/default/bedeworkAccess.css"/>
62       <script type="text/javascript" src="/bedework-common/javascript/bedework/bedeworkAccess.js">&#160;</script>
63       <!-- initialize calendar acls, if present -->
64       <xsl:if test="/bedework/currentCalendar/acl/ace">
65         <script type="text/javascript">
66           <xsl:apply-templates select="/bedework/currentCalendar/acl/ace" mode="initJS"/>
67         </script>
68       </xsl:if>
69     </xsl:if>
70
71     <xsl:if test="/bedework/page='attendees'">
72       <!--  Note: this page is deprecated, but is still maintained for testing.
73             The following files are included in the add/edit event pages now as well. -->
74       <script type="text/javascript" src="/bedework-common/javascript/jquery/autocomplete/bw-jquery.autocomplete.js">&#160;</script>
75       <script type="text/javascript" src="/bedework-common/javascript/jquery/autocomplete/jquery.bgiframe.min.js">&#160;</script>
76       <script type="text/javascript" src="{$resourcesRoot}/javascript/bedeworkAttendees.js">&#160;</script>
77       <link rel="stylesheet" type="text/css" href="/bedework-common/javascript/jquery/autocomplete/jquery.autocomplete.css" />
78     </xsl:if>
79
80     <xsl:if test="/bedework/page='addEvent' or
81                   /bedework/page='editEvent' or
82                   /bedework/page='rdates' or
83                   /bedework/page='calendarListForExport'">
84
85       <xsl:choose>
86         <xsl:when test="$portalFriendly = 'true'">
87           <script type="text/javascript" src="{$resourcesRoot}/javascript/dynCalendarWidget.js">&#160;</script>
88           <link rel="stylesheet" href="{$resourcesRoot}/css/dynCalendarWidget.css"/>
89         </xsl:when>
90         <xsl:otherwise>
91           <script type="text/javascript">
92             <xsl:comment>
93             $.datepicker.setDefaults({
94               constrainInput: true,
95               dateFormat: "yy-mm-dd",
96               showOn: "both",
97               buttonImage: "<xsl:value-of select='$resourcesRoot'/>/images/calIcon.gif",
98               buttonImageOnly: true,
99               gotoCurrent: true,
100               duration: ""
101             });
102
103             function bwSetupDatePickers() {
104               // startdate
105               $("#bwEventWidgetStartDate").datepicker({
106                 defaultDate: new Date(<xsl:value-of select="/bedework/formElements/form/start/yearText/input/@value"/>, <xsl:value-of select="number(/bedework/formElements/form/start/month/select/option[@selected = 'selected']/@value) - 1"/>, <xsl:value-of select="/bedework/formElements/form/start/day/select/option[@selected = 'selected']/@value"/>)
107               }).attr("readonly", "readonly");
108               $("#bwEventWidgetStartDate").val('<xsl:value-of select="substring-before(/bedework/formElements/form/start/rfc3339DateTime,'T')"/>');
109
110               // enddate
111               $("#bwEventWidgetEndDate").datepicker({
112                 defaultDate: new Date(<xsl:value-of select="/bedework/formElements/form/end/dateTime/yearText/input/@value"/>, <xsl:value-of select="number(/bedework/formElements/form/end/dateTime/month/select/option[@selected = 'selected']/@value) - 1"/>, <xsl:value-of select="/bedework/formElements/form/end/dateTime/day/select/option[@selected = 'selected']/@value"/>)
113               }).attr("readonly", "readonly");
114               $("#bwEventWidgetEndDate").val('<xsl:value-of select="substring-before(/bedework/formElements/form/end/rfc3339DateTime,'T')"/>');
115
116               // recurrence until
117               $("#bwEventWidgetUntilDate").datepicker({
118                 <xsl:choose>
119                   <xsl:when test="/bedework/formElements/form/recurrence/until">
120                     defaultDate: new Date(<xsl:value-of select="substring(/bedework/formElements/form/recurrence/until,1,4)"/>, <xsl:value-of select="number(substring(/bedework/formElements/form/recurrence/until,5,2)) - 1"/>, <xsl:value-of select="substring(/bedework/formElements/form/recurrence/until,7,2)"/>),
121                   </xsl:when>
122                   <xsl:otherwise>
123                     defaultDate: new Date(<xsl:value-of select="/bedework/formElements/form/start/yearText/input/@value"/>, <xsl:value-of select="number(/bedework/formElements/form/start/month/select/option[@selected = 'selected']/@value) - 1"/>, <xsl:value-of select="/bedework/formElements/form/start/day/select/option[@selected = 'selected']/@value"/>),
124                   </xsl:otherwise>
125                 </xsl:choose>
126                 altField: "#bwEventUntilDate",
127                 altFormat: "yymmdd"
128               }).attr("readonly", "readonly");
129               $("#bwEventWidgetUntilDate").val('<xsl:value-of select="substring-before(/bedework/formElements/form/start/rfc3339DateTime,'T')"/>');
130
131               // rdates and xdates
132               $("#bwEventWidgetRdate").datepicker({
133                 defaultDate: new Date(<xsl:value-of select="/bedework/formElements/form/start/yearText/input/@value"/>, <xsl:value-of select="number(/bedework/formElements/form/start/month/select/option[@selected = 'selected']/@value) - 1"/>, <xsl:value-of select="/bedework/formElements/form/start/day/select/option[@selected = 'selected']/@value"/>),
134                 dateFormat: "yymmdd"
135               }).attr("readonly", "readonly");
136               $("#bwEventWidgetRdate").val('<xsl:value-of select="substring-before(/bedework/formElements/form/start/rfc3339DateTime,'T')"/>');
137              
138               // meeting startdate widget
139               $("#bwEventWidgetStartDateSched").datepicker({
140                 defaultDate: new Date(<xsl:value-of select="/bedework/formElements/form/start/yearText/input/@value"/>, <xsl:value-of select="number(/bedework/formElements/form/start/month/select/option[@selected = 'selected']/@value) - 1"/>, <xsl:value-of select="/bedework/formElements/form/start/day/select/option[@selected = 'selected']/@value"/>)
141               }).attr("readonly", "readonly");
142               $("#bwEventWidgetStartDateSched").val('<xsl:value-of select="substring-before(/bedework/formElements/form/start/rfc3339DateTime,'T')"/>');
143              
144             }
145             </xsl:comment>
146           </script>
147         </xsl:otherwise>
148       </xsl:choose>
149     </xsl:if>
150    
151     <xsl:if test="/bedework/page='addEvent' or
152                   /bedework/page='editEvent'">
153      
154       <script type="text/javascript" src="{$resourcesRoot}/javascript/bwClock.js">&#160;</script>
155       <link rel="stylesheet" href="{$resourcesRoot}/css/bwClock.css"/>
156      
157       <script type="text/javascript" src="{$resourcesRoot}/javascript/bedeworkEventForm.js">&#160;</script>
158      
159       <script type="text/javascript" src="/bedework-common/javascript/bedework/bedeworkXProperties.js">&#160;</script>
160      
161       <script type="text/javascript" src="{$resourcesRoot}/javascript/bedeworkScheduling.js">&#160;</script>
162       <link rel="stylesheet" href="{$resourcesRoot}/css/bwScheduling.css"/>
163      
164       <script type="text/javascript" src="/bedework-common/javascript/jquery/autocomplete/bw-jquery.autocomplete.js">&#160;</script>
165       <script type="text/javascript" src="/bedework-common/javascript/jquery/autocomplete/jquery.bgiframe.min.js">&#160;</script>
166       <script type="text/javascript" src="{$resourcesRoot}/javascript/bedeworkAttendees.js">&#160;</script>
167       <link rel="stylesheet" type="text/css" href="/bedework-common/javascript/jquery/autocomplete/jquery.autocomplete.css" />
168      
169       <script type="text/javascript" src="/bedework-common/javascript/bedework/bedeworkAccess.js">&#160;</script>
170       <link rel="stylesheet" href="/bedework-common/default/default/bedeworkAccess.css"/>
171      
172       <!-- initialize event acls, if present -->
173       <xsl:if test="/bedework/editableAccess/access/acl/ace">
174         <script type="text/javascript">
175           <xsl:apply-templates select="/bedework/editableAccess/access/acl/ace" mode="initJS"/>
176         </script>
177       </xsl:if>
178      
179       <script type="text/javascript">
180         <xsl:comment>
181         // initialize the free/busy grid - values taken directly from the xml
182         // send params: displayId, startRange, startHourRange, endHourRange, attendees, workday, zoom, browserResourcesRoot, fbUrl, organizerUri
183         // example: var bwGrid = new bwSchedulingGrid("bwFreeBusyDisplay","May 5, 2010",8,17,[{name:"Venerable Bede",uid:"vbede@mysite.edu",role:"CHAIR",status:"ACCEPTED",type:"person"}],true,100,"<xsl:value-of select="$resourcesRoot"/>","<xsl:value-of select="$requestFreeBusy"/>","");
184        
185         var bwGridSDate = new Date("<xsl:value-of select="/bedework/formElements/form/start/yearText/input/@value"/>/<xsl:value-of select="/bedework/formElements/form/start/month/select/option[@selected = 'selected']/@value"/>/<xsl:value-of select="/bedework/formElements/form/start/day/select/option[@selected = 'selected']/@value"/>");
186         var bwGridAttees = new Array(<xsl:apply-templates select="/bedework/formElements/form/attendees" mode="loadBwGrid"/>);
187         var bwGridOrganizer = "<xsl:value-of select="/bedework/formElements/form/organizer/organizerUri"/>";
188         var bwGrid = new bwSchedulingGrid("bwFreeBusyDisplay",bwGridSDate,8,17,bwGridAttees,true,100,"<xsl:value-of select="$resourcesRoot"/>","<xsl:value-of select="$requestFreeBusy"/>","<xsl:value-of select="$event-attendeesForEvent"/>",bwGridOrganizer);
189        
190         // set the grid size
191         function bwGridSetSize() {
192           var fbWidth = $("#bwEventTab-Basic").width() - 52;
193           $("#bwFreeBusyDisplay").css("width", fbWidth + "px");
194         };
195        
196         </xsl:comment>
197       </script>
198      
199      
200     </xsl:if>
201     <xsl:if test="/bedework/page='editEvent'">
202       <script type="text/javascript">
203         <xsl:comment>
204         function initRXDates() {
205           // return string values to be loaded into javascript for rdates
206           <xsl:for-each select="/bedework/formElements/form/rdates/rdate">
207             bwRdates.update('<xsl:value-of select="date"/>','<xsl:value-of select="time"/>',false,false,false,'<xsl:value-of select="tzid"/>');
208           </xsl:for-each>
209           // return string values to be loaded into javascript for rdates
210           <xsl:for-each select="/bedework/formElements/form/exdates/rdate">
211             bwExdates.update('<xsl:value-of select="date"/>','<xsl:value-of select="time"/>',false,false,false,'<xsl:value-of select="tzid"/>');
212           </xsl:for-each>
213         }
214         function initXProperties() {
215           <xsl:for-each select="/bedework/formElements/form/xproperties/node()[text()]">
216             bwXProps.init('<xsl:value-of select="name()"/>',[<xsl:for-each select="parameters/node()">['<xsl:value-of select="name()"/>','<xsl:value-of select="node()"/>']<xsl:if test="position() != last()">,</xsl:if></xsl:for-each>],'<xsl:call-template name="escapeApos"><xsl:with-param name="str"><xsl:value-of select="values/text"/></xsl:with-param></xsl:call-template>');
217           </xsl:for-each>
218         }
219         </xsl:comment>
220       </script>
221     </xsl:if>
222
223     <!-- page based jquery initializations -->
224     <xsl:if test="/bedework/page='event'">
225       <!-- jQuery functions for detailed event view -->
226       <script type="text/javascript" src="{$resourcesRoot}/javascript/bedeworkEvent.js">&#160;</script>
227     </xsl:if>
228     <xsl:if test="/bedework/page='eventscalendar'">
229       <!-- jQuery functions for detailed event view -->
230       <script type="text/javascript" src="{$resourcesRoot}/javascript/bedeworkCalendarGrid.js">&#160;</script>
231     </xsl:if>
232
233     <script type="text/javascript">
234       <xsl:comment>
235      
236       // focuses an element by id
237       function focusElement(id) {
238         document.getElementById(id).focus();
239       }
240      
241       $(document).ready(function() {
242         <xsl:choose>
243           <xsl:when test="/bedework/page = 'addEvent' or bedework/page = 'editEvent'">
244             focusElement('bwEventTitle');
245             bwSetupDatePickers();
246             bwGrid.init();
247             bwGridSetSize();
248           </xsl:when>
249           <xsl:when test="/bedework/page = 'editEvent'">
250             <xsl:if test="/bedework/formElements/recurrenceId = ''">
251               initRXDates();
252             </xsl:if>
253             initXProperties();
254           </xsl:when>
255           <xsl:when test="/bedework/page = 'attendees'">
256             focusElement('bwRaUri');
257           </xsl:when>
258           <xsl:when test="/bedework/page = 'modLocation'">
259             focusElement('bwLocMainAddress');
260           </xsl:when>
261         </xsl:choose>
262       });
263        
264       </xsl:comment>
265     </script>
266   </xsl:template>
267  
268  
269 </xsl:stylesheet>
Note: See TracBrowser for help on using the browser.