data tables are going to need some work yet, but the other stuff seems to be working 100%
1407 lines
136 KiB
HTML
1407 lines
136 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<html>
|
|
<head>
|
|
<title>API: calendar CalendarNavigator.js (YUI Library)</title>
|
|
<link rel="stylesheet" type="text/css" href="assets/api.css">
|
|
<script type="text/javascript" src="assets/api-js"></script>
|
|
<script type="text/javascript" src="assets/ac-js"></script>
|
|
</head>
|
|
|
|
<body id="yahoo-com">
|
|
|
|
<div id="doc3" class="yui-t2">
|
|
|
|
<div id="hd">
|
|
<a href="http://developer.yahoo.com/yui/"><h1>Yahoo! UI Library</h1></a>
|
|
<h3>Calendar <span class="subtitle">2.6.0</span></h3>
|
|
<p>
|
|
<a href="./index.html">Yahoo! UI Library</a>
|
|
> <a href="./module_calendar.html">calendar</a>
|
|
|
|
> CalendarNavigator.js (source view)
|
|
</p>
|
|
|
|
|
|
</div>
|
|
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
<form name="yui-classopts-form">
|
|
<span id="classopts"><input type="checkbox" name="showprivate" id="showprivate" /> <label for="showprivate">Show Private</label></span>
|
|
<span id="classopts"><input type="checkbox" name="showprotected" id="showprotected" /> <label for="showprotected">Show Protected</label></span>
|
|
<span id="classopts"><input type="checkbox" name="showdeprecated" id="showdeprecated" /> <label for="showdeprecated">Show Deprecated</label></span>
|
|
</form>
|
|
|
|
<div id="srcout">
|
|
<style>
|
|
#doc3 #classopts { display:none; }
|
|
</style>
|
|
<div class="highlight" ><pre><span class="c">/**</span>
|
|
<span class="c"> * The CalendarNavigator is used along with a Calendar/CalendarGroup to </span>
|
|
<span class="c"> * provide a Month/Year popup navigation control, allowing the user to navigate </span>
|
|
<span class="c"> * to a specific month/year in the Calendar/CalendarGroup without having to </span>
|
|
<span class="c"> * scroll through months sequentially</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @namespace YAHOO.widget</span>
|
|
<span class="c"> * @class CalendarNavigator</span>
|
|
<span class="c"> * @constructor</span>
|
|
<span class="c"> * @param {Calendar|CalendarGroup} cal The instance of the Calendar or CalendarGroup to which this CalendarNavigator should be attached.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span> <span class="o">=</span> <span class="k">function</span><span class="o">(</span><span class="nx">cal</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">init</span><span class="o">(</span><span class="nx">cal</span><span class="o">);</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="o">(</span><span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="c">// Setup static properties (inside anon fn, so that we can use shortcuts)</span>
|
|
<span class="c"></span> <span class="k">var</span> <span class="nx">CN</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * YAHOO.widget.CalendarNavigator.CLASSES contains constants</span>
|
|
<span class="c"> * for the class values applied to the CalendarNaviatgator's </span>
|
|
<span class="c"> * DOM elements</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.CLASSES</span>
|
|
<span class="c"> * @type Object</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CN</span><span class="o">.</span><span class="nx">CLASSES</span> <span class="o">=</span> <span class="o">{</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Class applied to the Calendar Navigator's bounding box</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.CLASSES.NAV</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">NAV</span> <span class="o">:</span><span class="s2">"yui-cal-nav"</span><span class="o">,</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Class applied to the Calendar/CalendarGroup's bounding box to indicate</span>
|
|
<span class="c"> * the Navigator is currently visible</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.CLASSES.NAV_VISIBLE</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">NAV_VISIBLE</span><span class="o">:</span> <span class="s2">"yui-cal-nav-visible"</span><span class="o">,</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Class applied to the Navigator mask's bounding box</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.CLASSES.MASK</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">MASK</span> <span class="o">:</span> <span class="s2">"yui-cal-nav-mask"</span><span class="o">,</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Class applied to the year label/control bounding box</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.CLASSES.YEAR</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">YEAR</span> <span class="o">:</span> <span class="s2">"yui-cal-nav-y"</span><span class="o">,</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Class applied to the month label/control bounding box</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.CLASSES.MONTH</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">MONTH</span> <span class="o">:</span> <span class="s2">"yui-cal-nav-m"</span><span class="o">,</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Class applied to the submit/cancel button's bounding box</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.CLASSES.BUTTONS</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">BUTTONS</span> <span class="o">:</span> <span class="s2">"yui-cal-nav-b"</span><span class="o">,</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Class applied to buttons wrapping element</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.CLASSES.BUTTON</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">BUTTON</span> <span class="o">:</span> <span class="s2">"yui-cal-nav-btn"</span><span class="o">,</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Class applied to the validation error area's bounding box</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.CLASSES.ERROR</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">ERROR</span> <span class="o">:</span> <span class="s2">"yui-cal-nav-e"</span><span class="o">,</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Class applied to the year input control</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.CLASSES.YEAR_CTRL</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">YEAR_CTRL</span> <span class="o">:</span> <span class="s2">"yui-cal-nav-yc"</span><span class="o">,</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Class applied to the month input control</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.CLASSES.MONTH_CTRL</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">MONTH_CTRL</span> <span class="o">:</span> <span class="s2">"yui-cal-nav-mc"</span><span class="o">,</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Class applied to controls with invalid data (e.g. a year input field with invalid an year)</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.CLASSES.INVALID</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">INVALID</span> <span class="o">:</span> <span class="s2">"yui-invalid"</span><span class="o">,</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Class applied to default controls</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.CLASSES.DEFAULT</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">DEFAULT</span> <span class="o">:</span> <span class="s2">"yui-default"</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Object literal containing the default configuration values for the CalendarNavigator</span>
|
|
<span class="c"> * The configuration object is expected to follow the format below, with the properties being</span>
|
|
<span class="c"> * case sensitive.</span>
|
|
<span class="c"> * <dl></span>
|
|
<span class="c"> * <dt>strings</dt></span>
|
|
<span class="c"> * <dd><em>Object</em> : An object with the properties shown below, defining the string labels to use in the Navigator's UI</span>
|
|
<span class="c"> * <dl></span>
|
|
<span class="c"> * <dt>month</dt><dd><em>String</em> : The string to use for the month label. Defaults to "Month".</dd></span>
|
|
<span class="c"> * <dt>year</dt><dd><em>String</em> : The string to use for the year label. Defaults to "Year".</dd></span>
|
|
<span class="c"> * <dt>submit</dt><dd><em>String</em> : The string to use for the submit button label. Defaults to "Okay".</dd></span>
|
|
<span class="c"> * <dt>cancel</dt><dd><em>String</em> : The string to use for the cancel button label. Defaults to "Cancel".</dd></span>
|
|
<span class="c"> * <dt>invalidYear</dt><dd><em>String</em> : The string to use for invalid year values. Defaults to "Year needs to be a number".</dd></span>
|
|
<span class="c"> * </dl></span>
|
|
<span class="c"> * </dd></span>
|
|
<span class="c"> * <dt>monthFormat</dt><dd><em>String</em> : The month format to use. Either YAHOO.widget.Calendar.LONG, or YAHOO.widget.Calendar.SHORT. Defaults to YAHOO.widget.Calendar.LONG</dd></span>
|
|
<span class="c"> * <dt>initialFocus</dt><dd><em>String</em> : Either "year" or "month" specifying which input control should get initial focus. Defaults to "year"</dd></span>
|
|
<span class="c"> * </dl></span>
|
|
<span class="c"> * @property _DEFAULT_CFG</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @type Object</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CN</span><span class="o">.</span><span class="nx">_DEFAULT_CFG</span> <span class="o">=</span> <span class="o">{</span>
|
|
<span class="nx">strings</span> <span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">month</span><span class="o">:</span> <span class="s2">"Month"</span><span class="o">,</span>
|
|
<span class="nx">year</span><span class="o">:</span> <span class="s2">"Year"</span><span class="o">,</span>
|
|
<span class="nx">submit</span><span class="o">:</span> <span class="s2">"Okay"</span><span class="o">,</span>
|
|
<span class="nx">cancel</span><span class="o">:</span> <span class="s2">"Cancel"</span><span class="o">,</span>
|
|
<span class="nx">invalidYear</span> <span class="o">:</span> <span class="s2">"Year needs to be a number"</span>
|
|
<span class="o">},</span>
|
|
<span class="nx">monthFormat</span><span class="o">:</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">LONG</span><span class="o">,</span>
|
|
<span class="nx">initialFocus</span><span class="o">:</span> <span class="s2">"year"</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The suffix added to the Calendar/CalendarGroup's ID, to generate</span>
|
|
<span class="c"> * a unique ID for the Navigator and it's bounding box.</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.ID_SUFFIX</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CN</span><span class="o">.</span><span class="nx">ID_SUFFIX</span> <span class="o">=</span> <span class="s2">"_nav"</span><span class="o">;</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The suffix added to the Navigator's ID, to generate</span>
|
|
<span class="c"> * a unique ID for the month control.</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.MONTH_SUFFIX</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @type String </span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CN</span><span class="o">.</span><span class="nx">MONTH_SUFFIX</span> <span class="o">=</span> <span class="s2">"_month"</span><span class="o">;</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The suffix added to the Navigator's ID, to generate</span>
|
|
<span class="c"> * a unique ID for the year control.</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.YEAR_SUFFIX</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CN</span><span class="o">.</span><span class="nx">YEAR_SUFFIX</span> <span class="o">=</span> <span class="s2">"_year"</span><span class="o">;</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The suffix added to the Navigator's ID, to generate</span>
|
|
<span class="c"> * a unique ID for the error bounding box.</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.ERROR_SUFFIX</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CN</span><span class="o">.</span><span class="nx">ERROR_SUFFIX</span> <span class="o">=</span> <span class="s2">"_error"</span><span class="o">;</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The suffix added to the Navigator's ID, to generate</span>
|
|
<span class="c"> * a unique ID for the "Cancel" button.</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.CANCEL_SUFFIX</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CN</span><span class="o">.</span><span class="nx">CANCEL_SUFFIX</span> <span class="o">=</span> <span class="s2">"_cancel"</span><span class="o">;</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The suffix added to the Navigator's ID, to generate</span>
|
|
<span class="c"> * a unique ID for the "Submit" button.</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.SUBMIT_SUFFIX</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CN</span><span class="o">.</span><span class="nx">SUBMIT_SUFFIX</span> <span class="o">=</span> <span class="s2">"_submit"</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The number of digits to which the year input control is to be limited.</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.YR_MAX_DIGITS</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CN</span><span class="o">.</span><span class="nx">YR_MAX_DIGITS</span> <span class="o">=</span> <span class="m">4</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The amount by which to increment the current year value,</span>
|
|
<span class="c"> * when the arrow up/down key is pressed on the year control</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.YR_MINOR_INC</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CN</span><span class="o">.</span><span class="nx">YR_MINOR_INC</span> <span class="o">=</span> <span class="m">1</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The amount by which to increment the current year value,</span>
|
|
<span class="c"> * when the page up/down key is pressed on the year control</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.YR_MAJOR_INC</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CN</span><span class="o">.</span><span class="nx">YR_MAJOR_INC</span> <span class="o">=</span> <span class="m">10</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Artificial delay (in ms) between the time the Navigator is hidden</span>
|
|
<span class="c"> * and the Calendar/CalendarGroup state is updated. Allows the user</span>
|
|
<span class="c"> * the see the Calendar/CalendarGroup page changing. If set to 0</span>
|
|
<span class="c"> * the Calendar/CalendarGroup page will be updated instantly</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.UPDATE_DELAY</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CN</span><span class="o">.</span><span class="nx">UPDATE_DELAY</span> <span class="o">=</span> <span class="m">50</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Regular expression used to validate the year input</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.YR_PATTERN</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @type RegExp</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CN</span><span class="o">.</span><span class="nx">YR_PATTERN</span> <span class="o">=</span> <span class="sr">/^\d+$/</span><span class="o">;</span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Regular expression used to trim strings</span>
|
|
<span class="c"> * @property YAHOO.widget.CalendarNavigator.TRIM</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @type RegExp</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CN</span><span class="o">.</span><span class="nx">TRIM</span> <span class="o">=</span> <span class="sr">/^\s*(.*?)\s*$/</span><span class="o">;</span>
|
|
<span class="o">})();</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="o">{</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The unique ID for this CalendarNavigator instance</span>
|
|
<span class="c"> * @property id</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">id</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The Calendar/CalendarGroup instance to which the navigator belongs</span>
|
|
<span class="c"> * @property cal</span>
|
|
<span class="c"> * @type {Calendar|CalendarGroup}</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">cal</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Reference to the HTMLElement used to render the navigator's bounding box</span>
|
|
<span class="c"> * @property navEl</span>
|
|
<span class="c"> * @type HTMLElement</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">navEl</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Reference to the HTMLElement used to render the navigator's mask</span>
|
|
<span class="c"> * @property maskEl</span>
|
|
<span class="c"> * @type HTMLElement</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">maskEl</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Reference to the HTMLElement used to input the year</span>
|
|
<span class="c"> * @property yearEl</span>
|
|
<span class="c"> * @type HTMLElement</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">yearEl</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Reference to the HTMLElement used to input the month</span>
|
|
<span class="c"> * @property monthEl</span>
|
|
<span class="c"> * @type HTMLElement</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">monthEl</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Reference to the HTMLElement used to display validation errors</span>
|
|
<span class="c"> * @property errorEl</span>
|
|
<span class="c"> * @type HTMLElement</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">errorEl</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Reference to the HTMLElement used to update the Calendar/Calendar group</span>
|
|
<span class="c"> * with the month/year values</span>
|
|
<span class="c"> * @property submitEl</span>
|
|
<span class="c"> * @type HTMLElement</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">submitEl</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Reference to the HTMLElement used to hide the navigator without updating the </span>
|
|
<span class="c"> * Calendar/Calendar group</span>
|
|
<span class="c"> * @property cancelEl</span>
|
|
<span class="c"> * @type HTMLElement</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">cancelEl</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
<span class="c">/** </span>
|
|
<span class="c"> * Reference to the first focusable control in the navigator (by default monthEl)</span>
|
|
<span class="c"> * @property firstCtrl</span>
|
|
<span class="c"> * @type HTMLElement</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">firstCtrl</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
<span class="c">/** </span>
|
|
<span class="c"> * Reference to the last focusable control in the navigator (by default cancelEl)</span>
|
|
<span class="c"> * @property lastCtrl</span>
|
|
<span class="c"> * @type HTMLElement</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">lastCtrl</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The document containing the Calendar/Calendar group instance</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @property _doc</span>
|
|
<span class="c"> * @type HTMLDocument</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_doc</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Internal state property for the current year displayed in the navigator</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @property _year</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_year</span><span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Internal state property for the current month index displayed in the navigator</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @property _month</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_month</span><span class="o">:</span> <span class="m">0</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Private internal state property which indicates whether or not the </span>
|
|
<span class="c"> * Navigator has been rendered.</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @property __rendered</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">__rendered</span><span class="o">:</span> <span class="kc">false</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Init lifecycle method called as part of construction</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method init</span>
|
|
<span class="c"> * @param {Calendar} cal The instance of the Calendar or CalendarGroup to which this CalendarNavigator should be attached</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">init</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">cal</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">calBox</span> <span class="o">=</span> <span class="nx">cal</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">;</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cal</span> <span class="o">=</span> <span class="nx">cal</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">calBox</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">.</span><span class="nx">ID_SUFFIX</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_doc</span> <span class="o">=</span> <span class="nx">calBox</span><span class="o">.</span><span class="nx">ownerDocument</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Private flag, to identify IE6/IE7 Quirks</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @property __isIEQuirks</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">var</span> <span class="nx">ie</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">.</span><span class="nx">ie</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">__isIEQuirks</span> <span class="o">=</span> <span class="o">(</span><span class="nx">ie</span> <span class="o">&&</span> <span class="o">((</span><span class="nx">ie</span> <span class="o"><=</span> <span class="m">6</span><span class="o">)</span> <span class="o">||</span> <span class="o">(</span><span class="nx">ie</span> <span class="o">===</span> <span class="m">7</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">_doc</span><span class="o">.</span><span class="nx">compatMode</span> <span class="o">==</span> <span class="s2">"BackCompat"</span><span class="o">)));</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Displays the navigator and mask, updating the input controls to reflect the </span>
|
|
<span class="c"> * currently set month and year. The show method will invoke the render method</span>
|
|
<span class="c"> * if the navigator has not been renderered already, allowing for lazy rendering</span>
|
|
<span class="c"> * of the control.</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * The show method will fire the Calendar/CalendarGroup's beforeShowNav and showNav events</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method show</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">show</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">CLASSES</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">.</span><span class="nx">CLASSES</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">.</span><span class="nx">beforeShowNavEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">())</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">__rendered</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">render</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">clearErrors</span><span class="o">();</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_updateMonthUI</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_updateYearUI</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_show</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">navEl</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setInitialFocus</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showMask</span><span class="o">();</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">,</span> <span class="nx">CLASSES</span><span class="o">.</span><span class="nx">NAV_VISIBLE</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">.</span><span class="nx">showNavEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Hides the navigator and mask</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * The show method will fire the Calendar/CalendarGroup's beforeHideNav event and hideNav events</span>
|
|
<span class="c"> * @method hide</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">hide</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">CLASSES</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">.</span><span class="nx">CLASSES</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">.</span><span class="nx">beforeHideNavEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">())</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_show</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">navEl</span><span class="o">,</span> <span class="kc">false</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideMask</span><span class="o">();</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">,</span> <span class="nx">CLASSES</span><span class="o">.</span><span class="nx">NAV_VISIBLE</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">.</span><span class="nx">hideNavEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Displays the navigator's mask element</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method showMask</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">showMask</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_show</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">maskEl</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">__isIEQuirks</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_syncMask</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Hides the navigator's mask element</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method hideMask</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">hideMask</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_show</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">maskEl</span><span class="o">,</span> <span class="kc">false</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Returns the current month set on the navigator</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * Note: This may not be the month set in the UI, if </span>
|
|
<span class="c"> * the UI contains an invalid value.</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method getMonth</span>
|
|
<span class="c"> * @return {Number} The Navigator's current month index</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">getMonth</span><span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_month</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Returns the current year set on the navigator</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * Note: This may not be the year set in the UI, if </span>
|
|
<span class="c"> * the UI contains an invalid value.</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method getYear</span>
|
|
<span class="c"> * @return {Number} The Navigator's current year value</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">getYear</span><span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_year</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Sets the current month on the Navigator, and updates the UI</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method setMonth</span>
|
|
<span class="c"> * @param {Number} nMonth The month index, from 0 (Jan) through 11 (Dec).</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">setMonth</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">nMonth</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">nMonth</span> <span class="o">>=</span> <span class="m">0</span> <span class="o">&&</span> <span class="nx">nMonth</span> <span class="o"><</span> <span class="m">12</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_month</span> <span class="o">=</span> <span class="nx">nMonth</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_updateMonthUI</span><span class="o">();</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Sets the current year on the Navigator, and updates the UI. If the </span>
|
|
<span class="c"> * provided year is invalid, it will not be set.</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method setYear</span>
|
|
<span class="c"> * @param {Number} nYear The full year value to set the Navigator to.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">setYear</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">nYear</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">yrPattern</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">.</span><span class="nx">YR_PATTERN</span><span class="o">;</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isNumber</span><span class="o">(</span><span class="nx">nYear</span><span class="o">)</span> <span class="o">&&</span> <span class="nx">yrPattern</span><span class="o">.</span><span class="nx">test</span><span class="o">(</span><span class="nx">nYear</span><span class="o">+</span><span class="s2">""</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_year</span> <span class="o">=</span> <span class="nx">nYear</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_updateYearUI</span><span class="o">();</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Renders the HTML for the navigator, adding it to the </span>
|
|
<span class="c"> * document and attaches event listeners if it has not </span>
|
|
<span class="c"> * already been rendered.</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method render</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">render</span><span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">.</span><span class="nx">beforeRenderNavEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">__rendered</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">createNav</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">createMask</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">applyListeners</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">__rendered</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">.</span><span class="nx">renderNavEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Creates the navigator's containing HTMLElement, it's contents, and appends </span>
|
|
<span class="c"> * the containg element to the Calendar/CalendarGroup's container.</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method createNav</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">createNav</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">NAV</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">;</span>
|
|
<span class="k">var</span> <span class="nx">doc</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_doc</span><span class="o">;</span>
|
|
|
|
<span class="k">var</span> <span class="nx">d</span> <span class="o">=</span> <span class="nx">doc</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">"div"</span><span class="o">);</span>
|
|
<span class="nx">d</span><span class="o">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">CLASSES</span><span class="o">.</span><span class="nx">NAV</span><span class="o">;</span>
|
|
|
|
<span class="k">var</span> <span class="nx">htmlBuf</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">renderNavContents</span><span class="o">([]);</span>
|
|
|
|
<span class="nx">d</span><span class="o">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">htmlBuf</span><span class="o">.</span><span class="nx">join</span><span class="o">(</span><span class="s1">''</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">d</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">navEl</span> <span class="o">=</span> <span class="nx">d</span><span class="o">;</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span> <span class="o">=</span> <span class="nx">doc</span><span class="o">.</span><span class="nx">getElementById</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">YEAR_SUFFIX</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">monthEl</span> <span class="o">=</span> <span class="nx">doc</span><span class="o">.</span><span class="nx">getElementById</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">MONTH_SUFFIX</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">errorEl</span> <span class="o">=</span> <span class="nx">doc</span><span class="o">.</span><span class="nx">getElementById</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">ERROR_SUFFIX</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">submitEl</span> <span class="o">=</span> <span class="nx">doc</span><span class="o">.</span><span class="nx">getElementById</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">SUBMIT_SUFFIX</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cancelEl</span> <span class="o">=</span> <span class="nx">doc</span><span class="o">.</span><span class="nx">getElementById</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">CANCEL_SUFFIX</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">.</span><span class="nx">gecko</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">.</span><span class="nx">type</span> <span class="o">==</span> <span class="s2">"text"</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">// Avoid XUL error on focus, select [ https://bugzilla.mozilla.org/show_bug.cgi?id=236791, </span>
|
|
<span class="c"></span> <span class="c">// supposedly fixed in 1.8.1, but there are reports of it still being around for methods other than blur ]</span>
|
|
<span class="c"></span> <span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">.</span><span class="nx">setAttribute</span><span class="o">(</span><span class="s2">"autocomplete"</span><span class="o">,</span> <span class="s2">"off"</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_setFirstLastElements</span><span class="o">();</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Creates the Mask HTMLElement and appends it to the Calendar/CalendarGroups</span>
|
|
<span class="c"> * container.</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method createMask</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">createMask</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">C</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">.</span><span class="nx">CLASSES</span><span class="o">;</span>
|
|
|
|
<span class="k">var</span> <span class="nx">d</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_doc</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">"div"</span><span class="o">);</span>
|
|
<span class="nx">d</span><span class="o">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">C</span><span class="o">.</span><span class="nx">MASK</span><span class="o">;</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">.</span><span class="nx">appendChild</span><span class="o">(</span><span class="nx">d</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">maskEl</span> <span class="o">=</span> <span class="nx">d</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Used to set the width/height of the mask in pixels to match the Calendar Container.</span>
|
|
<span class="c"> * Currently only used for IE6 and IE7 quirks mode. The other A-Grade browser are handled using CSS (width/height 100%).</span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * The method is also registered as an HTMLElement resize listener on the Calendars container element.</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @method _syncMask</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_syncMask</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">c</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">;</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">c</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">maskEl</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">r</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">getRegion</span><span class="o">(</span><span class="nx">c</span><span class="o">);</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">maskEl</span><span class="o">,</span> <span class="s2">"width"</span><span class="o">,</span> <span class="nx">r</span><span class="o">.</span><span class="nx">right</span> <span class="o">-</span> <span class="nx">r</span><span class="o">.</span><span class="nx">left</span> <span class="o">+</span> <span class="s2">"px"</span><span class="o">);</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">maskEl</span><span class="o">,</span> <span class="s2">"height"</span><span class="o">,</span> <span class="nx">r</span><span class="o">.</span><span class="nx">bottom</span> <span class="o">-</span> <span class="nx">r</span><span class="o">.</span><span class="nx">top</span> <span class="o">+</span> <span class="s2">"px"</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Renders the contents of the navigator</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method renderNavContents</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @param {Array} html The HTML buffer to append the HTML to.</span>
|
|
<span class="c"> * @return {Array} A reference to the buffer passed in.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">renderNavContents</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">html</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">NAV</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">,</span>
|
|
<span class="nx">C</span> <span class="o">=</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">CLASSES</span><span class="o">,</span>
|
|
<span class="nx">h</span> <span class="o">=</span> <span class="nx">html</span><span class="o">;</span> <span class="c">// just to use a shorter name</span>
|
|
<span class="c"></span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'<div class="'</span> <span class="o">+</span> <span class="nx">C</span><span class="o">.</span><span class="nx">MONTH</span> <span class="o">+</span> <span class="s1">'">'</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">renderMonth</span><span class="o">(</span><span class="nx">h</span><span class="o">);</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'</div>'</span><span class="o">;</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'<div class="'</span> <span class="o">+</span> <span class="nx">C</span><span class="o">.</span><span class="nx">YEAR</span> <span class="o">+</span> <span class="s1">'">'</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">renderYear</span><span class="o">(</span><span class="nx">h</span><span class="o">);</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'</div>'</span><span class="o">;</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'<div class="'</span> <span class="o">+</span> <span class="nx">C</span><span class="o">.</span><span class="nx">BUTTONS</span> <span class="o">+</span> <span class="s1">'">'</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">renderButtons</span><span class="o">(</span><span class="nx">h</span><span class="o">);</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'</div>'</span><span class="o">;</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'<div class="'</span> <span class="o">+</span> <span class="nx">C</span><span class="o">.</span><span class="nx">ERROR</span> <span class="o">+</span> <span class="s1">'" id="'</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">ERROR_SUFFIX</span> <span class="o">+</span> <span class="s1">'"></div>'</span><span class="o">;</span>
|
|
|
|
<span class="k">return</span> <span class="nx">h</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Renders the month label and control for the navigator</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method renderNavContents</span>
|
|
<span class="c"> * @param {Array} html The HTML buffer to append the HTML to.</span>
|
|
<span class="c"> * @return {Array} A reference to the buffer passed in.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">renderMonth</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">html</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">NAV</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">,</span>
|
|
<span class="nx">C</span> <span class="o">=</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">CLASSES</span><span class="o">;</span>
|
|
|
|
<span class="k">var</span> <span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">MONTH_SUFFIX</span><span class="o">,</span>
|
|
<span class="nx">mf</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">__getCfg</span><span class="o">(</span><span class="s2">"monthFormat"</span><span class="o">),</span>
|
|
<span class="nx">months</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">((</span><span class="nx">mf</span> <span class="o">==</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Calendar</span><span class="o">.</span><span class="nx">SHORT</span><span class="o">)</span> <span class="o">?</span> <span class="s2">"MONTHS_SHORT"</span> <span class="o">:</span> <span class="s2">"MONTHS_LONG"</span><span class="o">),</span>
|
|
<span class="nx">h</span> <span class="o">=</span> <span class="nx">html</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">months</span> <span class="o">&&</span> <span class="nx">months</span><span class="o">.</span><span class="nx">length</span> <span class="o">></span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'<label for="'</span> <span class="o">+</span> <span class="nx">id</span> <span class="o">+</span> <span class="s1">'">'</span><span class="o">;</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">__getCfg</span><span class="o">(</span><span class="s2">"month"</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'</label>'</span><span class="o">;</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'<select name="'</span> <span class="o">+</span> <span class="nx">id</span> <span class="o">+</span> <span class="s1">'" id="'</span> <span class="o">+</span> <span class="nx">id</span> <span class="o">+</span> <span class="s1">'" class="'</span> <span class="o">+</span> <span class="nx">C</span><span class="o">.</span><span class="nx">MONTH_CTRL</span> <span class="o">+</span> <span class="s1">'">'</span><span class="o">;</span>
|
|
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">months</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="nx">i</span><span class="o">++)</span> <span class="o">{</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'<option value="'</span> <span class="o">+</span> <span class="nx">i</span> <span class="o">+</span> <span class="s1">'">'</span><span class="o">;</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="nx">months</span><span class="o">[</span><span class="nx">i</span><span class="o">];</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'</option>'</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'</select>'</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="k">return</span> <span class="nx">h</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Renders the year label and control for the navigator</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method renderYear</span>
|
|
<span class="c"> * @param {Array} html The HTML buffer to append the HTML to.</span>
|
|
<span class="c"> * @return {Array} A reference to the buffer passed in.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">renderYear</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">html</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">NAV</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">,</span>
|
|
<span class="nx">C</span> <span class="o">=</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">CLASSES</span><span class="o">;</span>
|
|
|
|
<span class="k">var</span> <span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">YEAR_SUFFIX</span><span class="o">,</span>
|
|
<span class="nx">size</span> <span class="o">=</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">YR_MAX_DIGITS</span><span class="o">,</span>
|
|
<span class="nx">h</span> <span class="o">=</span> <span class="nx">html</span><span class="o">;</span>
|
|
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'<label for="'</span> <span class="o">+</span> <span class="nx">id</span> <span class="o">+</span> <span class="s1">'">'</span><span class="o">;</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">__getCfg</span><span class="o">(</span><span class="s2">"year"</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'</label>'</span><span class="o">;</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'<input type="text" name="'</span> <span class="o">+</span> <span class="nx">id</span> <span class="o">+</span> <span class="s1">'" id="'</span> <span class="o">+</span> <span class="nx">id</span> <span class="o">+</span> <span class="s1">'" class="'</span> <span class="o">+</span> <span class="nx">C</span><span class="o">.</span><span class="nx">YEAR_CTRL</span> <span class="o">+</span> <span class="s1">'" maxlength="'</span> <span class="o">+</span> <span class="nx">size</span> <span class="o">+</span> <span class="s1">'"/>'</span><span class="o">;</span>
|
|
<span class="k">return</span> <span class="nx">h</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Renders the submit/cancel buttons for the navigator</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method renderButton</span>
|
|
<span class="c"> * @return {String} The HTML created for the Button UI</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">renderButtons</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">html</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">C</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">.</span><span class="nx">CLASSES</span><span class="o">;</span>
|
|
<span class="k">var</span> <span class="nx">h</span> <span class="o">=</span> <span class="nx">html</span><span class="o">;</span>
|
|
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'<span class="'</span> <span class="o">+</span> <span class="nx">C</span><span class="o">.</span><span class="nx">BUTTON</span> <span class="o">+</span> <span class="s1">' '</span> <span class="o">+</span> <span class="nx">C</span><span class="o">.</span><span class="nx">DEFAULT</span> <span class="o">+</span> <span class="s1">'">'</span><span class="o">;</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'<button type="button" id="'</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s1">'_submit'</span> <span class="o">+</span> <span class="s1">'">'</span><span class="o">;</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">__getCfg</span><span class="o">(</span><span class="s2">"submit"</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'</button>'</span><span class="o">;</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'</span>'</span><span class="o">;</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'<span class="'</span> <span class="o">+</span> <span class="nx">C</span><span class="o">.</span><span class="nx">BUTTON</span> <span class="o">+</span><span class="s1">'">'</span><span class="o">;</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'<button type="button" id="'</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s1">'_cancel'</span> <span class="o">+</span> <span class="s1">'">'</span><span class="o">;</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">__getCfg</span><span class="o">(</span><span class="s2">"cancel"</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'</button>'</span><span class="o">;</span>
|
|
<span class="nx">h</span><span class="o">[</span><span class="nx">h</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="s1">'</span>'</span><span class="o">;</span>
|
|
|
|
<span class="k">return</span> <span class="nx">h</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Attaches DOM event listeners to the rendered elements</span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * The method will call applyKeyListeners, to setup keyboard specific </span>
|
|
<span class="c"> * listeners</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * @method applyListeners</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">applyListeners</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">E</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">;</span>
|
|
|
|
<span class="k">function</span> <span class="nx">yearUpdateHandler</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">validate</span><span class="o">())</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setYear</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_getYearFromUI</span><span class="o">());</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">function</span> <span class="nx">monthUpdateHandler</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setMonth</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_getMonthFromUI</span><span class="o">());</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">submitEl</span><span class="o">,</span> <span class="s2">"click"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">submit</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cancelEl</span><span class="o">,</span> <span class="s2">"click"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">cancel</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">,</span> <span class="s2">"blur"</span><span class="o">,</span> <span class="nx">yearUpdateHandler</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">monthEl</span><span class="o">,</span> <span class="s2">"change"</span><span class="o">,</span> <span class="nx">monthUpdateHandler</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">__isIEQuirks</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">,</span> <span class="s2">"resize"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_syncMask</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">applyKeyListeners</span><span class="o">();</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Removes/purges DOM event listeners from the rendered elements</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method purgeListeners</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">purgeListeners</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">E</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">;</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">submitEl</span><span class="o">,</span> <span class="s2">"click"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">submit</span><span class="o">);</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cancelEl</span><span class="o">,</span> <span class="s2">"click"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">cancel</span><span class="o">);</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">,</span> <span class="s2">"blur"</span><span class="o">);</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">monthEl</span><span class="o">,</span> <span class="s2">"change"</span><span class="o">);</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">__isIEQuirks</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">.</span><span class="nx">oDomContainer</span><span class="o">,</span> <span class="s2">"resize"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_syncMask</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">purgeKeyListeners</span><span class="o">();</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Attaches DOM listeners for keyboard support. </span>
|
|
<span class="c"> * Tab/Shift-Tab looping, Enter Key Submit on Year element,</span>
|
|
<span class="c"> * Up/Down/PgUp/PgDown year increment on Year element</span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * NOTE: MacOSX Safari 2.x doesn't let you tab to buttons and </span>
|
|
<span class="c"> * MacOSX Gecko does not let you tab to buttons or select controls,</span>
|
|
<span class="c"> * so for these browsers, Tab/Shift-Tab looping is limited to the </span>
|
|
<span class="c"> * elements which can be reached using the tab key.</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * @method applyKeyListeners</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">applyKeyListeners</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">E</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">,</span>
|
|
<span class="nx">ua</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">;</span>
|
|
|
|
<span class="c">// IE/Safari 3.1 doesn't fire keypress for arrow/pg keys (non-char keys)</span>
|
|
<span class="c"></span> <span class="k">var</span> <span class="nx">arrowEvt</span> <span class="o">=</span> <span class="o">(</span><span class="nx">ua</span><span class="o">.</span><span class="nx">ie</span> <span class="o">||</span> <span class="nx">ua</span><span class="o">.</span><span class="nx">webkit</span><span class="o">)</span> <span class="o">?</span> <span class="s2">"keydown"</span> <span class="o">:</span> <span class="s2">"keypress"</span><span class="o">;</span>
|
|
|
|
<span class="c">// - IE/Safari 3.1 doesn't fire keypress for non-char keys</span>
|
|
<span class="c"></span> <span class="c">// - Opera doesn't allow us to cancel keydown or keypress for tab, but </span>
|
|
<span class="c"></span> <span class="c">// changes focus successfully on keydown (keypress is too late to change focus - opera's already moved on).</span>
|
|
<span class="c"></span> <span class="k">var</span> <span class="nx">tabEvt</span> <span class="o">=</span> <span class="o">(</span><span class="nx">ua</span><span class="o">.</span><span class="nx">ie</span> <span class="o">||</span> <span class="nx">ua</span><span class="o">.</span><span class="nx">opera</span> <span class="o">||</span> <span class="nx">ua</span><span class="o">.</span><span class="nx">webkit</span><span class="o">)</span> <span class="o">?</span> <span class="s2">"keydown"</span> <span class="o">:</span> <span class="s2">"keypress"</span><span class="o">;</span>
|
|
|
|
<span class="c">// Everyone likes keypress for Enter (char keys) - whoo hoo!</span>
|
|
<span class="c"></span> <span class="nx">E</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">,</span> <span class="s2">"keypress"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_handleEnterKey</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">,</span> <span class="nx">arrowEvt</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_handleDirectionKeys</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">lastCtrl</span><span class="o">,</span> <span class="nx">tabEvt</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_handleTabKey</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">firstCtrl</span><span class="o">,</span> <span class="nx">tabEvt</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_handleShiftTabKey</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Removes/purges DOM listeners for keyboard support</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @method purgeKeyListeners</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">purgeKeyListeners</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">E</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">,</span>
|
|
<span class="nx">ua</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">;</span>
|
|
|
|
<span class="k">var</span> <span class="nx">arrowEvt</span> <span class="o">=</span> <span class="o">(</span><span class="nx">ua</span><span class="o">.</span><span class="nx">ie</span> <span class="o">||</span> <span class="nx">ua</span><span class="o">.</span><span class="nx">webkit</span><span class="o">)</span> <span class="o">?</span> <span class="s2">"keydown"</span> <span class="o">:</span> <span class="s2">"keypress"</span><span class="o">;</span>
|
|
<span class="k">var</span> <span class="nx">tabEvt</span> <span class="o">=</span> <span class="o">(</span><span class="nx">ua</span><span class="o">.</span><span class="nx">ie</span> <span class="o">||</span> <span class="nx">ua</span><span class="o">.</span><span class="nx">opera</span> <span class="o">||</span> <span class="nx">ua</span><span class="o">.</span><span class="nx">webkit</span><span class="o">)</span> <span class="o">?</span> <span class="s2">"keydown"</span> <span class="o">:</span> <span class="s2">"keypress"</span><span class="o">;</span>
|
|
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">,</span> <span class="s2">"keypress"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_handleEnterKey</span><span class="o">);</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">,</span> <span class="nx">arrowEvt</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_handleDirectionKeys</span><span class="o">);</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">lastCtrl</span><span class="o">,</span> <span class="nx">tabEvt</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_handleTabKey</span><span class="o">);</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">removeListener</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">firstCtrl</span><span class="o">,</span> <span class="nx">tabEvt</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_handleShiftTabKey</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Updates the Calendar/CalendarGroup's pagedate with the currently set month and year if valid.</span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * If the currently set month/year is invalid, a validation error will be displayed and the </span>
|
|
<span class="c"> * Calendar/CalendarGroup's pagedate will not be updated.</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * @method submit</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">submit</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">validate</span><span class="o">())</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hide</span><span class="o">();</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setMonth</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_getMonthFromUI</span><span class="o">());</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setYear</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_getYearFromUI</span><span class="o">());</span>
|
|
|
|
<span class="k">var</span> <span class="nx">cal</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">;</span>
|
|
|
|
<span class="c">// Artificial delay, just to help the user see something changed</span>
|
|
<span class="c"></span> <span class="k">var</span> <span class="nx">delay</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">.</span><span class="nx">UPDATE_DELAY</span><span class="o">;</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">delay</span> <span class="o">></span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">nav</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
|
|
<span class="nb">window</span><span class="o">.</span><span class="nx">setTimeout</span><span class="o">(</span><span class="k">function</span><span class="o">(){</span> <span class="nx">nav</span><span class="o">.</span><span class="nx">_update</span><span class="o">(</span><span class="nx">cal</span><span class="o">);</span> <span class="o">},</span> <span class="nx">delay</span><span class="o">);</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_update</span><span class="o">(</span><span class="nx">cal</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Updates the Calendar rendered state, based on the state of the CalendarNavigator</span>
|
|
<span class="c"> * @method _update</span>
|
|
<span class="c"> * @param cal The Calendar instance to update</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_update</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">cal</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">cal</span><span class="o">.</span><span class="nx">setYear</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">getYear</span><span class="o">());</span>
|
|
<span class="nx">cal</span><span class="o">.</span><span class="nx">setMonth</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">getMonth</span><span class="o">());</span>
|
|
<span class="nx">cal</span><span class="o">.</span><span class="nx">render</span><span class="o">();</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Hides the navigator and mask, without updating the Calendar/CalendarGroup's state</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method cancel</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">cancel</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hide</span><span class="o">();</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Validates the current state of the UI controls</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method validate</span>
|
|
<span class="c"> * @return {Boolean} true, if the current UI state contains valid values, false if not</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">validate</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_getYearFromUI</span><span class="o">()</span> <span class="o">!==</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">clearErrors</span><span class="o">();</span>
|
|
<span class="k">return</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setYearError</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">setError</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">__getCfg</span><span class="o">(</span><span class="s2">"invalidYear"</span><span class="o">,</span> <span class="kc">true</span><span class="o">));</span>
|
|
<span class="k">return</span> <span class="kc">false</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Displays an error message in the Navigator's error panel</span>
|
|
<span class="c"> * @method setError</span>
|
|
<span class="c"> * @param {String} msg The error message to display</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">setError</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">msg</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">errorEl</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">errorEl</span><span class="o">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">msg</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_show</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">errorEl</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Clears the navigator's error message and hides the error panel</span>
|
|
<span class="c"> * @method clearError </span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">clearError</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">errorEl</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">errorEl</span><span class="o">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s2">""</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_show</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">errorEl</span><span class="o">,</span> <span class="kc">false</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Displays the validation error UI for the year control</span>
|
|
<span class="c"> * @method setYearError</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">setYearError</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">,</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">.</span><span class="nx">CLASSES</span><span class="o">.</span><span class="nx">INVALID</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Removes the validation error UI for the year control</span>
|
|
<span class="c"> * @method clearYearError</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">clearYearError</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">,</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">.</span><span class="nx">CLASSES</span><span class="o">.</span><span class="nx">INVALID</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Clears all validation and error messages in the UI</span>
|
|
<span class="c"> * @method clearErrors</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">clearErrors</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">clearError</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">clearYearError</span><span class="o">();</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Sets the initial focus, based on the configured value</span>
|
|
<span class="c"> * @method setInitialFocus</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">setInitialFocus</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">submitEl</span><span class="o">,</span>
|
|
<span class="nx">f</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">__getCfg</span><span class="o">(</span><span class="s2">"initialFocus"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">f</span> <span class="o">&&</span> <span class="nx">f</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">f</span> <span class="o">=</span> <span class="nx">f</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">();</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">f</span> <span class="o">==</span> <span class="s2">"year"</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">;</span>
|
|
<span class="k">try</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">.</span><span class="nx">select</span><span class="o">();</span>
|
|
<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nx">selErr</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">// Ignore;</span>
|
|
<span class="c"></span> <span class="o">}</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">f</span> <span class="o">==</span> <span class="s2">"month"</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">monthEl</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">el</span> <span class="o">&&</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isFunction</span><span class="o">(</span><span class="nx">el</span><span class="o">.</span><span class="nx">focus</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="k">try</span> <span class="o">{</span>
|
|
<span class="nx">el</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nx">focusErr</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">// TODO: Fall back if focus fails?</span>
|
|
<span class="c"></span> <span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Removes all renderered HTML elements for the Navigator from</span>
|
|
<span class="c"> * the DOM, purges event listeners and clears (nulls) any property</span>
|
|
<span class="c"> * references to HTML references</span>
|
|
<span class="c"> * @method erase</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">erase</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">__rendered</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">purgeListeners</span><span class="o">();</span>
|
|
|
|
<span class="c">// Clear out innerHTML references</span>
|
|
<span class="c"></span> <span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">monthEl</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">errorEl</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">submitEl</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cancelEl</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">firstCtrl</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">lastCtrl</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">navEl</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">navEl</span><span class="o">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s2">""</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">var</span> <span class="nx">p</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">navEl</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">;</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">p</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">p</span><span class="o">.</span><span class="nx">removeChild</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">navEl</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">navEl</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
|
|
<span class="k">var</span> <span class="nx">pm</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">maskEl</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">;</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">pm</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">pm</span><span class="o">.</span><span class="nx">removeChild</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">maskEl</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">maskEl</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">__rendered</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Destroys the Navigator object and any HTML references</span>
|
|
<span class="c"> * @method destroy</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">destroy</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">erase</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_doc</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cal</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">id</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Protected implementation to handle how UI elements are </span>
|
|
<span class="c"> * hidden/shown.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @method _show</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_show</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="nx">bShow</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">el</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="s2">"display"</span><span class="o">,</span> <span class="o">(</span><span class="nx">bShow</span><span class="o">)</span> <span class="o">?</span> <span class="s2">"block"</span> <span class="o">:</span> <span class="s2">"none"</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Returns the month value (index), from the month UI element</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @method _getMonthFromUI</span>
|
|
<span class="c"> * @return {Number} The month index, or 0 if a UI element for the month</span>
|
|
<span class="c"> * is not found</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_getMonthFromUI</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">monthEl</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">monthEl</span><span class="o">.</span><span class="nx">selectedIndex</span><span class="o">;</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="m">0</span><span class="o">;</span> <span class="c">// Default to Jan</span>
|
|
<span class="c"></span> <span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Returns the year value, from the Navitator's year UI element</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @method _getYearFromUI</span>
|
|
<span class="c"> * @return {Number} The year value set in the UI, if valid. null is returned if </span>
|
|
<span class="c"> * the UI does not contain a valid year value.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_getYearFromUI</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">NAV</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">;</span>
|
|
|
|
<span class="k">var</span> <span class="nx">yr</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">value</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">.</span><span class="nx">value</span><span class="o">;</span>
|
|
<span class="nx">value</span> <span class="o">=</span> <span class="nx">value</span><span class="o">.</span><span class="nx">replace</span><span class="o">(</span><span class="nx">NAV</span><span class="o">.</span><span class="nx">TRIM</span><span class="o">,</span> <span class="s2">"$1"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">NAV</span><span class="o">.</span><span class="nx">YR_PATTERN</span><span class="o">.</span><span class="nx">test</span><span class="o">(</span><span class="nx">value</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="nx">yr</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="o">(</span><span class="nx">value</span><span class="o">,</span> <span class="m">10</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="k">return</span> <span class="nx">yr</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Updates the Navigator's year UI, based on the year value set on the Navigator object</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @method _updateYearUI</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_updateYearUI</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">_year</span> <span class="o">!==</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">.</span><span class="nx">value</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_year</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Updates the Navigator's month UI, based on the month value set on the Navigator object</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @method _updateMonthUI</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_updateMonthUI</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">monthEl</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">monthEl</span><span class="o">.</span><span class="nx">selectedIndex</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_month</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Sets up references to the first and last focusable element in the Navigator's UI</span>
|
|
<span class="c"> * in terms of tab order (Naviagator's firstEl and lastEl properties). The references</span>
|
|
<span class="c"> * are used to control modality by looping around from the first to the last control</span>
|
|
<span class="c"> * and visa versa for tab/shift-tab navigation.</span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * See <a href="#applyKeyListeners">applyKeyListeners</a></span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @method _setFirstLastElements</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_setFirstLastElements</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">firstCtrl</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">monthEl</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">lastCtrl</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cancelEl</span><span class="o">;</span>
|
|
|
|
<span class="c">// Special handling for MacOSX.</span>
|
|
<span class="c"></span> <span class="c">// - Safari 2.x can't focus on buttons</span>
|
|
<span class="c"></span> <span class="c">// - Gecko can't focus on select boxes or buttons</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">__isMac</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">.</span><span class="nx">webkit</span> <span class="o">&&</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">.</span><span class="nx">webkit</span> <span class="o"><</span> <span class="m">420</span><span class="o">){</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">firstCtrl</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">monthEl</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">lastCtrl</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">.</span><span class="nx">gecko</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">firstCtrl</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">;</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">lastCtrl</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Default Keyboard event handler to capture Enter </span>
|
|
<span class="c"> * on the Navigator's year control (yearEl)</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method _handleEnterKey</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} e The DOM event being handled</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_handleEnterKey</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">KEYS</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">KeyListener</span><span class="o">.</span><span class="nx">KEY</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">getCharCode</span><span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">==</span> <span class="nx">KEYS</span><span class="o">.</span><span class="nx">ENTER</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">submit</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Default Keyboard event handler to capture up/down/pgup/pgdown</span>
|
|
<span class="c"> * on the Navigator's year control (yearEl).</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method _handleDirectionKeys</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} e The DOM event being handled</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_handleDirectionKeys</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">E</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">,</span>
|
|
<span class="nx">KEYS</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">KeyListener</span><span class="o">.</span><span class="nx">KEY</span><span class="o">,</span>
|
|
<span class="nx">NAV</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">;</span>
|
|
|
|
<span class="k">var</span> <span class="nx">value</span> <span class="o">=</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">.</span><span class="nx">value</span><span class="o">)</span> <span class="o">?</span> <span class="nb">parseInt</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span> <span class="m">10</span><span class="o">)</span> <span class="o">:</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nb">isFinite</span><span class="o">(</span><span class="nx">value</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">dir</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
<span class="nx">switch</span><span class="o">(</span><span class="nx">E</span><span class="o">.</span><span class="nx">getCharCode</span><span class="o">(</span><span class="nx">e</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="nx">case</span> <span class="nx">KEYS</span><span class="o">.</span><span class="nx">UP</span><span class="o">:</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">.</span><span class="nx">value</span> <span class="o">=</span> <span class="nx">value</span> <span class="o">+</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">YR_MINOR_INC</span><span class="o">;</span>
|
|
<span class="nx">dir</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
<span class="nx">case</span> <span class="nx">KEYS</span><span class="o">.</span><span class="nx">DOWN</span><span class="o">:</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">.</span><span class="nx">value</span> <span class="o">=</span> <span class="nb">Math</span><span class="o">.</span><span class="nx">max</span><span class="o">(</span><span class="nx">value</span> <span class="o">-</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">YR_MINOR_INC</span><span class="o">,</span> <span class="m">0</span><span class="o">);</span>
|
|
<span class="nx">dir</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
<span class="nx">case</span> <span class="nx">KEYS</span><span class="o">.</span><span class="nx">PAGE_UP</span><span class="o">:</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">.</span><span class="nx">value</span> <span class="o">=</span> <span class="nx">value</span> <span class="o">+</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">YR_MAJOR_INC</span><span class="o">;</span>
|
|
<span class="nx">dir</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
<span class="nx">case</span> <span class="nx">KEYS</span><span class="o">.</span><span class="nx">PAGE_DOWN</span><span class="o">:</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">.</span><span class="nx">value</span> <span class="o">=</span> <span class="nb">Math</span><span class="o">.</span><span class="nx">max</span><span class="o">(</span><span class="nx">value</span> <span class="o">-</span> <span class="nx">NAV</span><span class="o">.</span><span class="nx">YR_MAJOR_INC</span><span class="o">,</span> <span class="m">0</span><span class="o">);</span>
|
|
<span class="nx">dir</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
<span class="nx">default</span><span class="o">:</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">dir</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
|
|
<span class="k">try</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">yearEl</span><span class="o">.</span><span class="nx">select</span><span class="o">();</span>
|
|
<span class="o">}</span> <span class="k">catch</span><span class="o">(</span><span class="nx">err</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">// Ignore</span>
|
|
<span class="c"></span> <span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Default Keyboard event handler to capture Tab </span>
|
|
<span class="c"> * on the last control (lastCtrl) in the Navigator.</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method _handleTabKey</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} e The DOM event being handled</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_handleTabKey</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">E</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">,</span>
|
|
<span class="nx">KEYS</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">KeyListener</span><span class="o">.</span><span class="nx">KEY</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">E</span><span class="o">.</span><span class="nx">getCharCode</span><span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">==</span> <span class="nx">KEYS</span><span class="o">.</span><span class="nx">TAB</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">e</span><span class="o">.</span><span class="nx">shiftKey</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">try</span> <span class="o">{</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">firstCtrl</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nx">err</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">// Ignore - mainly for focus edge cases</span>
|
|
<span class="c"></span> <span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Default Keyboard event handler to capture Shift-Tab </span>
|
|
<span class="c"> * on the first control (firstCtrl) in the Navigator.</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method _handleShiftTabKey</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {Event} e The DOM event being handled</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_handleShiftTabKey</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">E</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">,</span>
|
|
<span class="nx">KEYS</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">KeyListener</span><span class="o">.</span><span class="nx">KEY</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">shiftKey</span> <span class="o">&&</span> <span class="nx">E</span><span class="o">.</span><span class="nx">getCharCode</span><span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">==</span> <span class="nx">KEYS</span><span class="o">.</span><span class="nx">TAB</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">try</span> <span class="o">{</span>
|
|
<span class="nx">E</span><span class="o">.</span><span class="nx">preventDefault</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">lastCtrl</span><span class="o">.</span><span class="nx">focus</span><span class="o">();</span>
|
|
<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="nx">err</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">// Ignore - mainly for focus edge cases</span>
|
|
<span class="c"></span> <span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Retrieve Navigator configuration values from </span>
|
|
<span class="c"> * the parent Calendar/CalendarGroup's config value.</span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * If it has not been set in the user provided configuration, the method will </span>
|
|
<span class="c"> * return the default value of the configuration property, as set in _DEFAULT_CFG</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @method __getCfg</span>
|
|
<span class="c"> * @param {String} Case sensitive property name.</span>
|
|
<span class="c"> * @param {Boolean} true, if the property is a string property, false if not.</span>
|
|
<span class="c"> * @return The value of the configuration property</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">__getCfg</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">prop</span><span class="o">,</span> <span class="nx">bIsStr</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">DEF_CFG</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">CalendarNavigator</span><span class="o">.</span><span class="nx">_DEFAULT_CFG</span><span class="o">;</span>
|
|
<span class="k">var</span> <span class="nx">cfg</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cal</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"navigator"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bIsStr</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="o">(</span><span class="nx">cfg</span> <span class="o">!==</span> <span class="kc">true</span> <span class="o">&&</span> <span class="nx">cfg</span><span class="o">.</span><span class="nx">strings</span> <span class="o">&&</span> <span class="nx">cfg</span><span class="o">.</span><span class="nx">strings</span><span class="o">[</span><span class="nx">prop</span><span class="o">])</span> <span class="o">?</span> <span class="nx">cfg</span><span class="o">.</span><span class="nx">strings</span><span class="o">[</span><span class="nx">prop</span><span class="o">]</span> <span class="o">:</span> <span class="nx">DEF_CFG</span><span class="o">.</span><span class="nx">strings</span><span class="o">[</span><span class="nx">prop</span><span class="o">];</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="o">(</span><span class="nx">cfg</span> <span class="o">!==</span> <span class="kc">true</span> <span class="o">&&</span> <span class="nx">cfg</span><span class="o">[</span><span class="nx">prop</span><span class="o">])</span> <span class="o">?</span> <span class="nx">cfg</span><span class="o">[</span><span class="nx">prop</span><span class="o">]</span> <span class="o">:</span> <span class="nx">DEF_CFG</span><span class="o">[</span><span class="nx">prop</span><span class="o">];</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Private flag, to identify MacOS</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @property __isMac</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">__isMac</span> <span class="o">:</span> <span class="o">(</span><span class="nx">navigator</span><span class="o">.</span><span class="nx">userAgent</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">().</span><span class="nx">indexOf</span><span class="o">(</span><span class="s2">"macintosh"</span><span class="o">)</span> <span class="o">!=</span> <span class="o">-</span><span class="m">1</span><span class="o">)</span>
|
|
|
|
<span class="o">};</span>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="yui-b">
|
|
<div class="nav">
|
|
|
|
<div class="module">
|
|
<h4>Modules</h4>
|
|
<ul class="content">
|
|
|
|
<li class=""><a href="module_animation.html">animation</a></li>
|
|
|
|
<li class=""><a href="module_autocomplete.html">autocomplete</a></li>
|
|
|
|
<li class=""><a href="module_button.html">button</a></li>
|
|
|
|
<li class="selected"><a href="module_calendar.html">calendar</a></li>
|
|
|
|
<li class=""><a href="module_carousel.html">carousel</a></li>
|
|
|
|
<li class=""><a href="module_charts.html">charts</a></li>
|
|
|
|
<li class=""><a href="module_colorpicker.html">colorpicker</a></li>
|
|
|
|
<li class=""><a href="module_connection.html">connection</a></li>
|
|
|
|
<li class=""><a href="module_container.html">container</a></li>
|
|
|
|
<li class=""><a href="module_cookie.html">cookie</a></li>
|
|
|
|
<li class=""><a href="module_datasource.html">datasource</a></li>
|
|
|
|
<li class=""><a href="module_datatable.html">datatable</a></li>
|
|
|
|
<li class=""><a href="module_dom.html">dom</a></li>
|
|
|
|
<li class=""><a href="module_dragdrop.html">dragdrop</a></li>
|
|
|
|
<li class=""><a href="module_editor.html">editor</a></li>
|
|
|
|
<li class=""><a href="module_element.html">element</a></li>
|
|
|
|
<li class=""><a href="module_event.html">event</a></li>
|
|
|
|
<li class=""><a href="module_get.html">get</a></li>
|
|
|
|
<li class=""><a href="module_history.html">history</a></li>
|
|
|
|
<li class=""><a href="module_imagecropper.html">imagecropper</a></li>
|
|
|
|
<li class=""><a href="module_imageloader.html">imageloader</a></li>
|
|
|
|
<li class=""><a href="module_json.html">json</a></li>
|
|
|
|
<li class=""><a href="module_layout.html">layout</a></li>
|
|
|
|
<li class=""><a href="module_logger.html">logger</a></li>
|
|
|
|
<li class=""><a href="module_menu.html">menu</a></li>
|
|
|
|
<li class=""><a href="module_paginator.html">paginator</a></li>
|
|
|
|
<li class=""><a href="module_profiler.html">profiler</a></li>
|
|
|
|
<li class=""><a href="module_profilerviewer.html">profilerviewer</a></li>
|
|
|
|
<li class=""><a href="module_resize.html">resize</a></li>
|
|
|
|
<li class=""><a href="module_selector.html">selector</a></li>
|
|
|
|
<li class=""><a href="module_slider.html">slider</a></li>
|
|
|
|
<li class=""><a href="module_tabview.html">tabview</a></li>
|
|
|
|
<li class=""><a href="module_treeview.html">treeview</a></li>
|
|
|
|
<li class=""><a href="module_uploader.html">uploader</a></li>
|
|
|
|
<li class=""><a href="module_yahoo.html">yahoo</a></li>
|
|
|
|
<li class=""><a href="module_yuiloader.html">yuiloader</a></li>
|
|
|
|
<li class=""><a href="module_yuitest.html">yuitest</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="module">
|
|
<h4>Classes</h4>
|
|
<ul class="content">
|
|
<li class=""><a href="YAHOO.widget.Calendar.html">YAHOO.widget.Calendar</a></li>
|
|
<li class=""><a href="YAHOO.widget.Calendar2up.html">YAHOO.widget.Calendar2up</a></li>
|
|
<li class=""><a href="YAHOO.widget.Calendar_Core.html">YAHOO.widget.Calendar_Core</a></li>
|
|
<li class=""><a href="YAHOO.widget.CalendarGroup.html">YAHOO.widget.CalendarGroup</a></li>
|
|
<li class=""><a href="YAHOO.widget.CalendarNavigator.html">YAHOO.widget.CalendarNavigator</a></li>
|
|
<li class=""><a href="YAHOO.widget.DateMath.html">YAHOO.widget.DateMath</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="module">
|
|
<h4>Files</h4>
|
|
<ul class="content">
|
|
<li class=""><a href="Calendar.js.html">Calendar.js</a></li>
|
|
<li class=""><a href="CalendarGroup.js.html">CalendarGroup.js</a></li>
|
|
<li class="selected"><a href="CalendarNavigator.js.html">CalendarNavigator.js</a></li>
|
|
<li class=""><a href="DateMath.js.html">DateMath.js</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="ft">
|
|
<hr />
|
|
Copyright © 2008 Yahoo! Inc. All rights reserved.
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|