1 | /*
|
---|
2 | * jQuery Mobile Framework : plugin to provide a date and time picker.
|
---|
3 | * Copyright (c) JTSage
|
---|
4 | * CC 3.0 Attribution. May be relicensed without permission/notification.
|
---|
5 | * https://github.com/jtsage/jquery-mobile-datebox
|
---|
6 | */
|
---|
7 | /* Options Documentation */
|
---|
8 |
|
---|
9 | //all = ['Date','Cal','Flip','Slide','Time','TimeFlip','Dur']; (mode list)
|
---|
10 |
|
---|
11 | var stuff = { // name: ['default','desc','type','mode list']
|
---|
12 | common: {
|
---|
13 | XXname: 'Common Options',
|
---|
14 | mode: ['', 'Mode of operations', 'String', true],
|
---|
15 | lockInput: [true, 'Lock the Input Element from manual input', 'Boolean', true],
|
---|
16 | enhanceInput: [true, 'Enhance Numeric Inputs on Mobile', 'Boolean', [1,0,0,0,1,0,0]],
|
---|
17 | defaultValue: [false, 'Default value for the date - e.g. [2001,1,1] or 13:42', 'Array/String', true],
|
---|
18 | showInitialValue: [false, 'Auto-fill Input field on initialization', 'Boolean', true],
|
---|
19 | startOffsetYears: [false, 'Offset the start year by # - pile on to defaultVale', 'Integer', [1,1,1,1,0,0,0]],
|
---|
20 | startOffsetMonths: [false, 'Offset the start month by # - pile on to defaultVale', 'Integer', [1,1,1,1,0,0,0]],
|
---|
21 | startOffsetDays: [false, 'Offset the start day by # - pile on to defaultVale', 'Integer', [1,1,1,1,0,0,0]],
|
---|
22 | },
|
---|
23 | display: {
|
---|
24 | XXname: 'Display Options',
|
---|
25 | centerHoriz: [false, 'Center Horizonitally', 'Boolean', true],
|
---|
26 | centerVert: [false, 'Center Verticlly', 'Boolean', true],
|
---|
27 | transition: ['pop', 'Transition for display', 'String', true],
|
---|
28 | useAnimation: [true, 'Use Animations', 'Boolean', true],
|
---|
29 | hideInput: [false, 'Hide the Input Element', 'Boolean', true],
|
---|
30 | hideFixedToolbars: [false, 'Hide Fixed toolbars on open', 'Boolean', true],
|
---|
31 | zindex: [500, 'Z-Index of controls', 'Integer', true],
|
---|
32 | clickEvent: ['vclick', 'Listener event for all non-closing buttons in control', 'String', true],
|
---|
33 | clickEventAlt: ['click', 'Listener event for all closing buttons in control', 'String', true],
|
---|
34 | resizeListener: [true, 'Re-Position the control on window resize', 'Boolean', true],
|
---|
35 | dialogEnable: [false, 'Enable the jQM Dialog mode', 'Boolean', true],
|
---|
36 | dialogForce: [false, 'Force use of the jQM Dialog mode', 'Boolean', true],
|
---|
37 | enablePopup: [false, 'Use jQM builtin popups', 'Boolean', true],
|
---|
38 | popupForceX: [false, 'Force the X/Y position of the opened control', 'Number', true],
|
---|
39 | popupForceY: [false, 'Force the X/Y position of the opened control', 'Number', true],
|
---|
40 | popupPosition: [false, 'When set to "window", center control in window', 'String', true],
|
---|
41 | useModal: [false, 'Use faded modal background for control', 'Boolean', true],
|
---|
42 | useInline: [false, 'Show control inline in the page (always visible)', 'Boolean', true],
|
---|
43 | useInlineBlind: [false, 'Show the control inline in the page when clicked (rolldown)', 'Boolean', true],
|
---|
44 | useButton: [true, 'Show a button in the Input Element to open the control', 'Boolean', true],
|
---|
45 | useFocus: [false, 'Open the control when the Input Element is focused', 'Boolean', true],
|
---|
46 | usePlaceholder: [false, 'Attempt to auto fill the placeholder text (or use the supplied custom text)', 'Boolean', true],
|
---|
47 | useNewStyle: [false, 'Use the new input display style (cleaner, less inconsistency)', 'Boolean', true],
|
---|
48 | useAltIcon: [false, 'When using useNewStyle, use a light icon rather than a dark one', 'Boolean', true],
|
---|
49 | overrideStyleClass: [false, 'When using useNewStyle, add a custom icon class', 'String', true]
|
---|
50 | },
|
---|
51 | control: {
|
---|
52 | XXname: 'Control Options',
|
---|
53 | useHeader: [true, 'Use a toolbar header for the control', 'Boolean', true],
|
---|
54 | useImmediate: [false, 'Update the Input Element on every control change', 'Boolean', true],
|
---|
55 | useClearButton: [false, 'Show a button to clear the Input Element in the control', 'Boolean', true],
|
---|
56 | useSetButton: [true, 'Show button to set the date', 'Boolean', [1,0,1,1,1,1,1]],
|
---|
57 | useTodayButton: [false, 'Show button to jump to today', 'Boolean', [0,1,0,0,0,0,0]],
|
---|
58 | useCollapsedBut: [false, 'When 2 buttons would show, collapse them into a single line', 'Boolean', true],
|
---|
59 | rolloverMode: ["{ 'm': true, 'd': true, 'h': true, 'i': true, 's': true }", 'Allow rollover of each date element', 'Object', [1,0,1,1,1,1,0]],
|
---|
60 | slen: ["{'y': 5, 'm':6, 'd':15, 'h':12, 'i':30}", 'Length of sliders (1/2 of slider)', 'Object', [0,0,0,1,0,0,0]],
|
---|
61 | flen: ["{'y': 15, 'm':12, 'd':15, 'h':12, 'i':15, 'a':3}", 'Height of rollers (1/2 of roller)', 'Object', [0,0,1,0,0,1,0]],
|
---|
62 | calShowDays: [true, 'Show Day Labels in calendar', 'Boolean', [0,1,0,0,0,0,0]],
|
---|
63 | calShowWeek: [false, 'Show ISO Week number in calendar', 'Boolean', [0,1,0,0,0,0,0]],
|
---|
64 | calOnlyMonth: [false, 'Do not show next/previous months in calendar', 'Boolean', [0,1,0,0,0,0,0]],
|
---|
65 | calWeekMode: [false, 'Select by single week day in calendar', 'Boolean', [0,1,0,0,0,0,0]],
|
---|
66 | calWeekModeDay: [1, 'Weekday to select when in calWeekMode', 'Integer', [0,1,0,0,0,0,0]]
|
---|
67 | },
|
---|
68 | callback: {
|
---|
69 | XXname: 'Callback options',
|
---|
70 | openCallback: [false, 'Callback function to run on control open', 'Function', true],
|
---|
71 | openCallbackArgs: ["[]", 'Extra arguments to pass to open callback. Note that "this" refers to the widget', 'Array', true],
|
---|
72 | closeCallback: [false, 'Callback function to run on control close', 'Function', true],
|
---|
73 | closeCallbackArgs: ["[]", 'Extra arguments to pass to close callback. Note that "this" refers to the widget and arguments[0] is the date that was just set', 'Array', true]
|
---|
74 | },
|
---|
75 | limiting: {
|
---|
76 | XXname: 'Date Limiting Options',
|
---|
77 | afterToday: [false, 'Limit all dates selected to *after* today\'s date', 'Boolean', [1,1,1,1,0,0,0]],
|
---|
78 | beforeToday: [false, 'Limit all dates selected to *before* today\'s date', 'Boolean', [1,1,1,1,0,0,0]],
|
---|
79 | notToday: [false, 'Limit all dates selected to *not* today\'s date', 'Boolean', [1,1,1,1,0,0,0]],
|
---|
80 | maxDays: [false, 'Limit all dates selected to before today + ## days', 'Integer', [1,1,1,1,0,0,0]],
|
---|
81 | minDays: [false, 'Limit all dates selected to after today - ## days', 'Integer', [1,1,1,1,0,0,0]],
|
---|
82 | maxYear: [false, 'Limit all dates selected to before this year', 'Integer', [1,0,1,1,0,0,0]],
|
---|
83 | minYear: [false, 'Limit all dates selected to after this year', 'Integer', [1,0,1,1,0,0,0]],
|
---|
84 | blackDatesRec: [false, 'Do not allow these recurring dates to be selected (array of arrays)', 'Array', [1,1,1,1,0,0,0]],
|
---|
85 | blackDates: [false, 'Do not allow these ISO dates to be selected (array of dates)', 'Array', [1,1,1,1,0,0,0]],
|
---|
86 | blackDays: [false, 'Do not allow these days to be selected (array of day indexes)', 'Array', [1,1,1,1,0,0,0]],
|
---|
87 | enableDates: [false, 'Allow *only* these ISO dates to be sleected (array of dates)', 'Array', [0,1,0,0,0,0,0]],
|
---|
88 | minHour: [false, 'Limit times to hours *after* this hour', 'Integer', [0,0,0,0,1,1,0]],
|
---|
89 | maxHour: [false, 'Limit times to hours *before* this hour', 'Integer', [0,0,0,0,1,1,0]],
|
---|
90 | validHours: [false, 'Limit times to *only* these hours (array of hours)', 'Array', [0,0,0,0,1,1,0]],
|
---|
91 | minuteStep: [1, 'Stepper for minutes', 'Integer', [0,0,0,1,1,1,0]],
|
---|
92 | minuteStepRound: [0, 'Direction to round :: -1 = Down, 1 = Up, 0 = "Standard Rounding"', 'Integer', [0,0,0,1,1,1,0]],
|
---|
93 | highDays: [false, 'Highlight these days (array of day indexes)', 'Array', [0,1,0,0,0,0,0]],
|
---|
94 | highDates: [false, 'Highlight these ISO dates (array of dates)', 'Array', [0,1,0,0,0,0,0]],
|
---|
95 | highDatesRec: [false, 'Highlight these recurring dates (array of arrays)', 'Array', [0,1,0,0,0,0,0]],
|
---|
96 | highDatesAlt: [false, 'Highlight these ISO dates (array of dates) (alternate)', 'Array', [0,1,0,0,0,0,0]],
|
---|
97 | calShowDateList: [false, 'Show Special Date List Picker', 'Boolean', [0,1,0,0,0,0,0]],
|
---|
98 | calDateList: [false, 'Array of 2 Element Arrays (each w/ an ISO date and a desc)', 'Array', [0,1,0,0,0,0,0]],
|
---|
99 | durationSteppers: ["{'d': 1, 'h': 1, 'i': 1, 's': 1}", 'Steppers for the duration elements', 'Object', [0,0,0,0,0,0,1]]
|
---|
100 | },
|
---|
101 | themes: {
|
---|
102 | XXname: 'Theme Options - Shared',
|
---|
103 | theme: [false, 'Base theme for control', 'Boolean', true],
|
---|
104 | themeHeader: ['a', 'Theme for header', 'String', true],
|
---|
105 | },
|
---|
106 | themesf: {
|
---|
107 | XXname: 'Theme Options - FlipBox / TimeFlipBox',
|
---|
108 | themeDateHigh: ['e', 'Theme swatch for today\'s date', 'String', [0,0,1,0,0,1,0]],
|
---|
109 | themeDatePick: ['a', 'Theme swatch for choosen (centered) date', 'String', [0,0,1,0,0,1,0]],
|
---|
110 | themeDate: ['d', 'Theme swatch for other dates', 'String', [0,0,1,0,0,1,0]],
|
---|
111 | },
|
---|
112 | themess: {
|
---|
113 | XXname: 'Theme Options - SlideBox',
|
---|
114 | themeDateHigh: ['e', 'Theme swatch for today\'s date', 'String', [0,0,0,1,0,0,0]],
|
---|
115 | themeDatePick: ['a', 'Theme swatch for choosen (centered) date', 'String', [0,0,0,1,0,0,0]],
|
---|
116 | themeDate: ['d', 'Theme swatch for other dates', 'String', [0,0,0,1,0,0,0]],
|
---|
117 | },
|
---|
118 | themesd: {
|
---|
119 | XXname: 'Theme Options - DateBox/TimeBox/DurationBox',
|
---|
120 | themeButton: ['a', 'Theme swatch for +/- Buttons', 'String', [1,0,0,0,1,0,1]],
|
---|
121 | themeInput: ['e', 'Theme swatch for input elements', 'String', [1,0,0,0,1,0,1]],
|
---|
122 | },
|
---|
123 | themesc: {
|
---|
124 | XXname: 'Theme Options - CalBox',
|
---|
125 | themeDateToday: ['a', 'Theme swatch for today\'s date', 'String', [0,1,0,0,0,0,0]],
|
---|
126 | themeDayHigh: ['e', 'Theme swatch for highDays', 'String', [0,1,0,0,0,0,0]],
|
---|
127 | themeDatePick: ['a', 'Theme swatch for choosen date', 'String', [0,1,0,0,0,0,0]],
|
---|
128 | themeDateHigh: ['e', 'Theme swatch for highDates', 'String', [0,1,0,0,0,0,0]],
|
---|
129 | themeDateHighAlt: ['e', 'Theme swatch for highDatesAlt', 'String', [0,1,0,0,0,0,0]],
|
---|
130 | themeDateHighRec: ['e', 'Theme swatch for highDatesRec', 'String', [0,1,0,0,0,0,0]],
|
---|
131 | themeDate: ['d', 'Theme swatch for other dates (inherited)', 'String', [0,1,0,0,0,0,0]],
|
---|
132 | calUsePickers: [false, 'Use Month/Year Pickers', 'Boolean', [0,1,0,0,0,0,0]],
|
---|
133 | calNoHeader: [false, 'Suppress Standard Header', 'Boolean', [0,1,0,0,0,0,0]],
|
---|
134 | calHighToday: [true, 'Highlight today\'s date', 'Boolean', [0,1,0,0,0,0,0]],
|
---|
135 | calHighPick: [true, 'Highlight choosen date', 'Boolean', [0,1,0,0,0,0,0]],
|
---|
136 | calWeekHigh: [false, 'Highlight full week on mouseover', 'Boolean', [0,1,0,0,0,0,0]],
|
---|
137 | calControlGroup: [false, 'Use control group buttons in calendar', 'Boolean', [0,1,0,0,0,0,0]]
|
---|
138 | },
|
---|
139 | custom: {
|
---|
140 | XXname: 'Custom Modes',
|
---|
141 | customData: ['N/A', 'Data structure for custom modes', 'Array', false],
|
---|
142 | themeOptPick: ['a', 'Theme for highlighted option (customflip)', 'String', false],
|
---|
143 | themeOpt: ['d', 'Theme for other options (customflip)', 'String', false],
|
---|
144 | overrideCustomSet: ['Looks Good', 'Set button for custom modes (i18n aware)', 'String', false],
|
---|
145 | customDefault: ['[0,0,0]', 'Array of default indexs for custom modes', 'Array', false]
|
---|
146 | },
|
---|
147 | i18n: { //Mode List: [dbox,calbox,flipbox,slidebox,timebox,timeflipbox,durationbox] or true
|
---|
148 | XXname: 'Internationalization / Localization',
|
---|
149 | 'NOTE:: To override, use overrideNameOfOption - e.g. overrideTimeFormat': true,
|
---|
150 | setDateButtonLabel: ['Set Date', 'Set Date Button Label', 'String', [1,1,1,1,0,0,0]],
|
---|
151 | setTimeButtonLabel: ['Set Time', 'Set Time Button Label', 'String', [0,0,0,0,1,1,0]],
|
---|
152 | setDurationButtonLabel: ['Set Duration', 'Set Duration Button Label', 'String', [0,0,0,0,0,0,1]],
|
---|
153 | calTodayButtonLabel: ['Jump to Today', 'Jump to today button Label', 'String', [0,1,0,0,0,0,0]],
|
---|
154 | titleDateDialogLabel: ['Set Date', 'Date modes fallback header label', 'String', [1,1,1,1,0,0,0]],
|
---|
155 | titleTimeDialogLabel: ['Set Time', 'Time modes fallback header label', 'String', [0,0,0,0,1,1,1]],
|
---|
156 | daysOfWeek: ["['Sunday' ... 'Saturday']", 'Days of the week', 'Array', true],
|
---|
157 | daysOfWeekShort: ["['Su' ... 'Sa']", 'Abbreviated days of the week', 'Array', true],
|
---|
158 | monthsOfYear: ["['January' ... 'December']", 'Months of the year', 'Array', true],
|
---|
159 | monthsOfYearShort: ["['Jan' ... 'Dec']", 'Abbreviated months of the year', 'Array', true],
|
---|
160 | durationLabel: ["['Days', 'Hours', 'Minutes', 'Seconds']", 'Labels for duration elements', 'Array', [0,0,0,0,0,0,1]],
|
---|
161 | durationDays: ["['Day', 'Days']", 'Name of day/days for duration', 'Array', [0,0,0,0,0,0,1]],
|
---|
162 | timeFormat: [24, 'Format for clock', 'Integer', [0,0,0,0,1,1,0]],
|
---|
163 | headerFormat: ['%A, %B %-d, %Y', 'Format for header if used', 'String', true],
|
---|
164 | tooltip: ['Open Date Picker', 'Mouseover tooltip for open button', 'String', true],
|
---|
165 | nextMonth: ['Next Month', 'Mouseover tooltip for next month button', 'String', [0,1,0,0,0,0,0]],
|
---|
166 | prevMonth: ['Previous Month', 'Mouseover tooltip for prev month button', 'String', [0,1,0,0,0,0,0]],
|
---|
167 | dateFieldOrder: ["['m', 'd', 'y']", 'Field order for date entry', 'Array', [1,0,1,0,0,0,0]],
|
---|
168 | timeFieldOrder: ["['h', 'i', 'a']", 'Field order for time entry', 'Array', [0,0,0,0,1,1,0]],
|
---|
169 | slideFieldOrder: ["['y', 'm', 'd']", 'Field order for slide mode', 'Array', [0,0,0,1,0,0,0]],
|
---|
170 | dateFormat: ['%Y-%m-%d', 'Format for returned date', 'Array', [1,1,1,1,0,0,0]],
|
---|
171 | useArabicIndic: [false, 'Use Arabic/Indic numerals', 'Boolean', true],
|
---|
172 | isRTL: [false, 'Language runs Right-to-Left', 'Boolean', true],
|
---|
173 | calStartDay: [0, 'Day of week to start calendar on', 'Integer', [0,1,0,0,0,0,0]],
|
---|
174 | clearButton: ['Clear', 'Clear Input Element button label', 'String', true],
|
---|
175 | durationOrder: ["['d', 'h', 'i', 's']", 'Field order for duration entry', 'Array', [0,0,0,0,0,0,1]],
|
---|
176 | meridiem: ["['AM', 'PM']", 'Name of meridiems, if used', 'Array', true],
|
---|
177 | timeOutput: ['%k:%M', 'Format for returned time', 'String', [0,0,0,0,1,1,0]],
|
---|
178 | durationFormat: ['%Dd %DA, %Dl:%DM:%DS', 'Format for returned duration', 'String', [0,0,0,0,0,0,1]],
|
---|
179 | calDateListLabel: ['Other Dates', 'Text for other dates dropdown', 'String', [0,1,0,0,0,0,0]],
|
---|
180 | calHeaderFormat: ['%B %Y', 'Header format for calendar mode', 'String', [0,1,0,0,0,0,0]]
|
---|
181 | }
|
---|
182 | };
|
---|
183 |
|
---|
184 |
|
---|