src/cm/media/js/lib/yui/yui_3.10.3/docs/calendar/index.html
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
<!DOCTYPE html>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
<html lang="en">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
<head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
    <meta charset="utf-8">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
    <title>Calendar</title>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
    <link rel="stylesheet" href="../assets/css/main.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
    <script src="../../build/yui/yui-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
</head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
<body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
<!--
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
-->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
<div id="doc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    <div id="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
        <a href="#toc" class="jump">Jump to Table of Contents</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
            <h1>Calendar</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
                <div class="content"><div class="intro">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
<img src="../assets/calendar/calendar.png" alt="Screenshot of the Calendar widget" style="border: 1px solid #bfbfbf; float:right; height:161px; margin: 0 0 8px 8px; width:272px;">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
The Calendar widget is a visual representation of a range of dates in blocks of one or more months, which allows the user to select dates and navigate the date range.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
In addition to the core logic for displaying a date range and allowing date selection and navigation, Calendar also provides options for custom date filtering, custom formatting of individual dates, various display options, internationalization, flexible templates, additional navigation plugins, and more.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
Calendar is highly modular and easy to extend so that it can be modified or used as the basis for custom implementations and widgets.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
<h2 id="getting-started">Getting Started</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
To include the source files for Calendar and its dependencies, first load
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
the YUI seed file if you haven't already loaded it.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
<pre class="code prettyprint">&lt;script src=&quot;http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;3.10.3&#x2F;build&#x2F;yui&#x2F;yui-min.js&quot;&gt;&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
Next, create a new YUI instance for your application and populate it with the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
modules you need by specifying them as arguments to the <code>YUI().use()</code> method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
YUI will automatically load any dependencies required by the modules you
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
specify.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
<pre class="code prettyprint">&lt;script&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
&#x2F;&#x2F; Create a new YUI instance and populate it with the required modules.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
YUI().use(&#x27;calendar&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
    &#x2F;&#x2F; Calendar is available and ready for use. Add implementation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
    &#x2F;&#x2F; code here.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
For more information on creating YUI instances and on the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
<a href="http://yuilibrary.com/yui/docs/api/classes/YUI.html#method_use"><code>use()</code> method</a>, see the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
documentation for the <a href="../yui/index.html">YUI Global Object</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
<h2 id="using-calendar">Using Calendar</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
<h3 id="quick-start">Quick Start</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
Here's an easy way to create an instance of a Calendar with just a few lines of code.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
<h4 id="html">HTML</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
<strong>Note:</strong> be sure to add the <code>yui3-skin-sam</code> classname to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
page's <code>&lt;body&gt;</code> element or to a parent element of the widget in order to apply
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
the default CSS skin. See <a href="http://yuilibrary.com/yui/docs/tutorials/skins/">Understanding Skinning</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
<pre class="code prettyprint">&lt;body class=&quot;yui3-skin-sam&quot;&gt; &lt;!-- You need this skin class --&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
<h4 id="javascript">JavaScript</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
<pre class="code prettyprint">YUI().use(&#x27;calendar&#x27;, function (Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
  &#x2F;&#x2F; Create a new instance of Calendar, setting its width 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
  &#x2F;&#x2F; and height, allowing the dates from the previous
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
  &#x2F;&#x2F; and next month to be visible and setting the initial
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
  &#x2F;&#x2F; date to be November, 1982.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
  var calendar = new Y.Calendar({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
          contentBox: &quot;#mycalendar&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
          height:&#x27;200px&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
          width:&#x27;600px&#x27;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
          showPrevMonth: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
          showNextMonth: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
          date: new Date(1982,11,1)}).render();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
For a more complete discussion of how to use, configure, and customize Calendar, read on.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
<h3 id="configuring-calendar">Configuring Calendar</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
Except for <code>contentBox</code>, all configuration attributes are optional. This list only contains the most interesting attributes. For a complete list of all attributes, please refer to the <a href="http://yuilibrary.com/yui/docs/api/Calendar.html">API docs</a>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
<h4 id="calendarbase-config-attributes">CalendarBase Config Attributes</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
These attributes are provided by <code>CalendarBase</code>, which is the core foundation for the Calendar widget. They are available on all Calendar instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
  <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
      <th>Attribute</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
      <th>Default</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
      <th>Description</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
  </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
  <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
      <td><code>width</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
      <td><code>300px</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
        The width of the calendar widget.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
      <td><code>height</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
      <td><code>200px</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
        The height of the calendar widget.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
      <td><code>date</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
      <td>Today's date on the user's system</td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
        The date corresponding to the month and the year to be displayed. The date assigned to this attribute will always be normalized to the noon on the first of the month. In a multi-pane calendar, the month and the year of the first pane will correspond to this date.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
      <td><code>customRenderer</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
      <td><code>null</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
        An object containing a <code>rules</code> attribute and a <code>filterFunction</code> attribute. See the <a href="#custom-rendering">Custom Rendering</a> section for details on how these attributes work.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
      <td><code>showPrevMonth</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
      <td><code>false</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
        Whether the dates from the previous month should be shown in the empty cells of the month grid before the first of the month (if there are any).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
      <td><code>showNextMonth</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
      <td><code>false</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
        Whether the dates from the next month should be shown in the empty cells of the month grid after the last of the month (if there are any).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
      <td><code>headerRenderer</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
      <td><code>&quot;%B %Y&quot;</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
        The formatting for the header of the Calendar. This attribute can be either a String with the formatting tokens used by the <code>strftime</code> specification, or a callback function that will receive a <code>Date</code> object as an argument and output a <code>String</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
  </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
<h4 id="calendar-config-attributes">Calendar Config Attributes</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
These attributes are provided by <code>Calendar</code>, which is the complete implementation of Calendar widget that includes user interactivity (navigation and selection). They are available on all instances of <code>Calendar</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
<table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
  <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
      <th>Attribute</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
      <th>Default</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
      <th>Description</th>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
  </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
  <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
      <td><code>selectionMode</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
      <td><code>single</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
        The configuration for the type of date selection allowed by the calendar. The <code>selectionMode</code> can be either <code>&quot;single&quot;</code>, <code>&quot;multiple&quot;</code> or <code>&quot;multiple-sticky&quot;</code>.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
      <td><code>minimumDate</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
      <td><code>null</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
        Specification for the earliest month which the Calendar will display. In a multi-pane calendar, this is the earliest month that will appear in the first pane.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
      <td><code>maximumDate</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
      <td><code>null</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
        Specification for the latest month which the Calendar will display. In a multi-pane calendar, this is the latest month that will appear in the last pane.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
      <td><code>enabledDatesRule</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
      <td><code>null</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
        The name of the rule that should be matched by enabled dates. If specified, a <code>customRenderer</code> definition is required (see <a href="#custom-rendering">Custom Rendering</a> for more information). Only dates matching the rule will be enabled for interaction; all other dates will be disabled. Cannot be specified simultaneously with the <code>disabledDatesRule</code> attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
    <tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
      <td><code>disabledDatesRule</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
      <td><code>null</code></td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
      <td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
        The name of the rule that should be matched by disabled dates. If specified, a <code>customRenderer</code> definition is required (see <a href="#custom-rendering">Custom Rendering</a> for more information). Only dates not matching the rule will be enabled for interaction; all other dates will be disabled. Cannot be specified simultaneously with the <code>enabledDatesRule</code> attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
      </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
    </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
  </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
</table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
<h3 id="custom-rendering">Custom Rendering</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
Calendar allows the developer to customize the rendering of individual cells based on a set of rules that match
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
specific dates. To create a set of custom rules and a custom renderer function that is triggered when a rule is matched, set the <code>customRenderer</code> property to an <code>Object</code> with two keys: <code>rules</code> and <code>filterFunction</code>:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
<pre class="code prettyprint">calendar.set(&quot;customRenderer&quot;, {rules: myRules, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
                                filterFunction: myFilterFunction});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
<h4 id="rendering-rules">Rendering Rules</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
<p>The <code>rules</code> parameter looks as follows:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
<pre class="code prettyprint">var rules = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
&quot;2011,2013,2015-2019,2017&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
  &quot;0,1,5-7&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
    &quot;5,6,8&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
      &quot;all&quot;: &quot;rule_name&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
      }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
  }  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
};</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
At the top level, the rules object specifies years that dates should match; the next level is months (indexed 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
starting at 0), the next is days of the month (indexed starting at 1), and the last is days of the week (indexed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
from Sunday, starting at 0). The actual value is the name of the rule that is matched by a date. In the example
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
above, the rule "rule_name" is matched by the 5th, 6th and 8th days of January, February, June, July and August of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
2011, 2013, 2015 through 2019, and 2017.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
Note that the keyword <code>&#x27;all&#x27;</code> can appear at any level of the <code>rule</code> object and will match all parameters (e.g. all years, or all months) at that level. Furthermore, the rule name value can also appear at any level, for instance:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
<pre class="code prettyprint">var rules = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
&quot;2011&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
  &quot;5-7&quot;: &quot;summer-2011&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
  }  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
};</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
The rule 'summer-2011' corresponds to June through August of 2011. More than one rule can be specified in the same
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
rules object:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
<pre class="code prettyprint">var rules = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
&quot;2011&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
  &quot;5-7&quot;: &quot;summer-2011&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
  },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
&quot;2012&quot;:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
  {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
   &quot;all&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
      &quot;all&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
        &quot;0,6&quot;: &quot;all-weekends-in-2012&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
      } 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
   }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
  }  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
};</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
<h4 id="custom-rendering-function">Custom Rendering Function</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
<p>In order to match these rules, the customRenderer allows the developer to provide a <code>filterFunction</code> that will get called every time one or more rules is matched. The <code>filterFunction</code> has the following signature:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
<pre class="code prettyprint">filterFunction = function (date &#x2F;*Date*&#x2F;, node &#x2F;*Node*&#x2F;, rules &#x2F;*Array*&#x2F;) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
  if (rules.indexOf(&quot;rule_name&quot;) &gt;= 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
};</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
<p>The first parameter, <code>date</code>, is a single date that matched one or more rules. The second parameter, <code>node</code>, is the <code>Node</code> wrapping the DOM element corresponding to the given date. Finally, the third parameter, <code>rules</code>, is an
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
<code>Array</code> of <code>String</code>s, each containing a rule name that the given date matched.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
<p>As an example, here is a custom renderer that assigns a custom CSS class to all summer weekends:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
<pre class="code prettyprint">var rules = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
  &quot;all&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
    &quot;5-7&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
      &quot;all&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
        &quot;0,6&quot;: &quot;all-summer-weekends&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
      }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
var filterFunction = function (date, node, rules) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
  if (rules.indexOf(&quot;all-summer-weekends&quot; &gt;= 0)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
    node.addClass(&quot;customCSSClass&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
calendar.set(&quot;customRenderer&quot;, {rules: rules, filterFunction: filterFunction});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
<h4 id="-enabling-and-disabling-dates"> Enabling and Disabling Dates</h4>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
<p> In addition to custom rendering, the rules can also be used to specify sets of dates that should be enabled or disabled for selection. To do that, specify a rule set as described above, and then specify which rule should be used to match either the disabled dates, or the enabled dates (but not both: only one of the two parameters will be honored):</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
<pre class="code prettyprint">calendar.set(&quot;disabledDatesRule&quot;, &quot;someRuleName&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
&#x2F;&#x2F; OR
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
calendar.set(&quot;enabledDatesRule&quot;, &quot;someRuleName&quot;);</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
<p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
Note, by the way, that the same rule name can be listed multiple times, giving the developer a lot of flexibility in defining what set of dates can be matched. For example, the following rule set matches all weekends and the 10th of every month:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
<pre class="code prettyprint">var rules = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
  &quot;all&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
    &quot;all&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
      &quot;all&quot;: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
        &quot;0,6&quot;: &quot;all-summer-weekends&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
      },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
      &quot;10&quot;: &quot;10th-of-every-month&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
};</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
<h3 id="calendar-templates">Calendar Templates</h3>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
<p>By default, the calendar is rendered using a set of templates, specified as static properties of the <code>CalendarBase</code> class. These templates can be completely modified to reconfigure the markup of the calendar, as long as the tokens they use as placeholders for CSS classes, ids and content are preserved.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
<p>Using the template logic, the developer can easily switch from a single pane calendar, to a calendar with
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
an arbitrary number of panes. Consider the main <code>CONTENT_TEMPLATE</code> in <code>CalendarBase</code>:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
<pre class="code prettyprint">CONTENT_TEMPLATE:  &#x27;&lt;div class=&quot;yui3-g {calendar_pane_class}&quot; id=&quot;{calendar_id}&quot;&gt;&#x27; +  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
                            &#x27;{header_template}&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
                          &#x27;&lt;div class=&quot;yui3-u-1&quot;&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
                            &#x27;{calendar_grid_template}&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
                          &#x27;&lt;&#x2F;div&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
               &#x27;&lt;&#x2F;div&gt;&#x27;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
<p>In this template, the <code>{calendar_grid_template}</code> is a so-called iterative token -- that means it can be used
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
multiple times, and the calendar will automatically adjust to generate multiple sequential month grids for the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
calendar</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
<p>For convenience, we provide a two-pane and a three-pane calendar templates. Here is the two-pane template:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
<pre class="code prettyprint">TWO_PANE_TEMPLATE: 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
    &#x27;&lt;div class=&quot;yui3-g {calendar_pane_class}&quot; id=&quot;{calendar_id}&quot;&gt;&#x27; +  
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
                 &#x27;{header_template}&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
               &#x27;&lt;div class=&quot;yui3-u-1-2&quot;&gt;&#x27;+
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
                       &#x27;&lt;div class = &quot;{calendar_left_grid_class}&quot;&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
                    &#x27;{calendar_grid_template}&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
                       &#x27;&lt;&#x2F;div&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
               &#x27;&lt;&#x2F;div&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
               &#x27;&lt;div class=&quot;yui3-u-1-2&quot;&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
                       &#x27;&lt;div class = &quot;{calendar_right_grid_class}&quot;&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
                    &#x27;{calendar_grid_template}&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
                       &#x27;&lt;&#x2F;div&gt;&#x27; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
               &#x27;&lt;&#x2F;div&gt;&#x27; +                   
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
    &#x27;&lt;&#x2F;div&gt;&#x27;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
<p>Switching to the two-pane template is as simple as assigning the value of <code>CalendarBase.CONTENT_TEMPLATE</code>:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
<pre class="code prettyprint">CalendarBase.CONTENT_TEMPLATE = CalendarBase.TWO_PANE_TEMPLATE;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
Custom templates may also be constructed, with as many <code>{calendar_grid_template}</code> tokens as necessary.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
<h2 id="calendar-plugins">Calendar Plugins</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
<p>The Calendar ships with a default <code>CalendarNavigator</code> plugin, which adds the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
simple navigation controls to the top of the widget. The plugin is located on the <code>navigator</code> namespace (that is, to access it and its properties, you would reference <code>mycalendar.navigator</code>). For future releases, more complex calendar navigation plugins
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
are planned.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
<p>In addition, in future releases, Calendar will also have a Popup plugin that will 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
allow it to be easily hidden, shown, and associated with other UI elements.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
<h2 id="known-issues">Known Issues</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
<ul class="spaced">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
  <li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
    <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
    The calendar is currently not enabled with popup functionality.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
    </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
  </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
                    <div id="toc" class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
                            <h2 class="no-toc">Table of Contents</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
                            <ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
<a href="#getting-started">Getting Started</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
<a href="#using-calendar">Using Calendar</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
<a href="#quick-start">Quick Start</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
<a href="#html">HTML</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
<a href="#javascript">JavaScript</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
<a href="#configuring-calendar">Configuring Calendar</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
<a href="#calendarbase-config-attributes">CalendarBase Config Attributes</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
<a href="#calendar-config-attributes">Calendar Config Attributes</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
<a href="#custom-rendering">Custom Rendering</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
<ul class="toc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
<a href="#rendering-rules">Rendering Rules</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
<a href="#custom-rendering-function">Custom Rendering Function</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
<a href="#-enabling-and-disabling-dates"> Enabling and Disabling Dates</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
<a href="#calendar-templates">Calendar Templates</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
<a href="#calendar-plugins">Calendar Plugins</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
<li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
<a href="#known-issues">Known Issues</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
</ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
                                        <li data-description="How to create a single-pane calendar with selectable dates">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
                                            <a href="calendar-simple.html">Simple Calendar with Selection</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
                                        <li data-description="How to create a multi-pane calendar with custom-rendered cells and multiple date selection.">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
                                            <a href="calendar-multipane.html">Two-Pane Calendar with Custom Rendering and Multiple Selection</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
    assets: '../assets/calendar',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
    name: 'calendar',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
    title: 'Calendar',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
YUI.Env.Tests.examples.push('calendar-simple');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
YUI.Env.Tests.examples.push('calendar-multipane');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
</html>