romo 0.17.1 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,310 @@
1
+ var RomoDate = {
2
+
3
+ date: function(date) {
4
+ if (date === undefined || date === null) {
5
+ return undefined;
6
+ } else {
7
+ var d = new Date(date);
8
+ d.setHours(0,0,0,0); // RomoDate Dates are always local with zero time
9
+ return d;
10
+ }
11
+ },
12
+
13
+ for: function(yearNum, zeroBasedMonthNum, dayNum) {
14
+ return RomoDate.date(new Date(yearNum, zeroBasedMonthNum, dayNum));
15
+ },
16
+
17
+ parse: function(dateString) {
18
+ return (new RomoDate.Parser(String(dateString).trim())).date();
19
+ },
20
+
21
+ format: function(date, formatString) {
22
+ return (new RomoDate.Formatter(String(formatString).trim())).dateString(date);
23
+ },
24
+
25
+ today: function() {
26
+ return RomoDate.date(new Date());
27
+ },
28
+
29
+ currentYear: function() {
30
+ return RomoDate.today().getFullYear();
31
+ },
32
+
33
+ vector: function(date, numDays) {
34
+ var d = RomoDate.date(date)
35
+ return RomoDate.for(d.getFullYear(), d.getMonth(), d.getDate()+(numDays || 0));
36
+ },
37
+
38
+ next: function(date, numDays) {
39
+ return RomoDate.vector(date, numDays || 1);
40
+ },
41
+
42
+ prev: function(date, numDays) {
43
+ return RomoDate.vector(date, -(numDays || 1));
44
+ },
45
+
46
+ firstDateOfMonth: function(monthDate, vectorNumMonths) {
47
+ var d = RomoDate.date(monthDate)
48
+ return RomoDate.for(d.getFullYear(), d.getMonth()+(vectorNumMonths || 0), 1);
49
+ },
50
+
51
+ lastDateOfMonth: function(monthDate, vectorNumMonths) {
52
+ var d = RomoDate.date(monthDate)
53
+ return RomoDate.for(d.getFullYear(), d.getMonth()+(vectorNumMonths || 0)+1, 0);
54
+ },
55
+
56
+ firstDateOfNextMonth: function(monthDate, numMonths) {
57
+ return RomoDate.firstDateOfMonth(monthDate, numMonths || 1);
58
+ },
59
+
60
+ firstDateOfPrevMonth: function(monthDate, numMonths) {
61
+ return RomoDate.firstDateOfMonth(monthDate, -(numMonths || 1));
62
+ },
63
+
64
+ lastDateOfNextMonth: function(monthDate, numMonths) {
65
+ return RomoDate.lastDateOfMonth(monthDate, numMonths || 1);
66
+ },
67
+
68
+ lastDateOfPrevMonth: function(monthDate, numMonths) {
69
+ return RomoDate.lastDateOfMonth(monthDate, -(numMonths || 1));
70
+ },
71
+
72
+ daysInMonth: function(monthDate, vectorNumMonths) {
73
+ return RomoDate.lastDateOfMonth(monthDate, vectorNumMonths).getDate();
74
+ },
75
+
76
+ daysRemainingInMonth: function(monthDate) {
77
+ var d = RomoDate.date(monthDate)
78
+ return RomoDate.daysInMonth(d) - d.getDate() + 1;
79
+ },
80
+
81
+ isoWeekNum: function(weekDate) {
82
+ var d = RomoDate.date(weekDate)
83
+
84
+ // calc full weeks to nearest Thursday (basis for ISO week numbers)
85
+ // set to nearest Thursday: current date + 4 - current day number
86
+ d.setDate(d.getDate() + 4 - (d.getDay()||7));
87
+ var yearStartDate = RomoDate.for(d.getFullYear(), 0, 1);
88
+ var milliSecsSinceYearStart = d - yearStartDate;
89
+ var milliSecsInADay = 24*60*60*1000;
90
+ var daysSinceYearStart = milliSecsSinceYearStart / milliSecsInADay;
91
+ var weekNumber = Math.ceil((daysSinceYearStart + 1) / 7);
92
+
93
+ return weekNumber;
94
+ },
95
+
96
+ isEqual: function(date1, date2, formatString) {
97
+ var d1 = RomoDate.date(date1);
98
+ var d2 = RomoDate.date(date2);
99
+ var f = formatString || 'yyyy-mm-dd'
100
+
101
+ if (d1 === undefined || d2 === undefined) {
102
+ return d1 === d2;
103
+ } else {
104
+ return RomoDate.format(d1, f) === RomoDate.format(d2, f)
105
+ }
106
+ },
107
+
108
+ isSameDate: function(date1, date2) {
109
+ return RomoDate.isEqual(date1, date2);
110
+ },
111
+
112
+ isSameMonth: function(date1, date2) {
113
+ return RomoDate.isEqual(date1, date2, 'yyyy-mm')
114
+ },
115
+
116
+ isSameYear: function(date1, date2) {
117
+ return RomoDate.isEqual(date1, date2, 'yyyy')
118
+ },
119
+
120
+ isDay: function(date, day) {
121
+ if (date === undefined || date === null) {
122
+ return false;
123
+ }
124
+ var d_day = RomoDate.date(date).getDay();
125
+ return (day === d_day ||
126
+ day === RomoDate.Utils.dayNames[d_day] ||
127
+ day === RomoDate.Utils.dayAbbrevs[d_day]);
128
+ },
129
+
130
+ isWeekend: function(date) {
131
+ if (date === undefined || date === null) {
132
+ return false;
133
+ }
134
+ var dow = RomoDate.date(date).getDay();
135
+ return (dow === 0 || dow === 6);
136
+ },
137
+
138
+ // child classes
139
+
140
+ Parser: function(trimmedDateString) {
141
+ this.dateString = trimmedDateString;
142
+ },
143
+
144
+ Formatter: function(trimmedFormatString) {
145
+ this.formatString = trimmedFormatString;
146
+ },
147
+
148
+ Utils: undefined,
149
+
150
+ }
151
+
152
+ // Parser - child utility class to encapsulate parsing a Date obj from a trimmed
153
+ // date String ('12/25', '12/25/16', '12/25/2016', '2016/12/25')
154
+
155
+ RomoDate.Parser.prototype.date = function() {
156
+ if (this.dateString === undefined || this.dateString === '') {
157
+ return undefined;
158
+ }
159
+
160
+ var dateValues = this._parseValues(this.dateString);
161
+ if (dateValues.length === 0) {
162
+ return undefined;
163
+ }
164
+ var year = parseInt(dateValues[0]);
165
+ if (year < 0) {
166
+ return undefined;
167
+ }
168
+ if (dateValues[0].length > 2 && year < 100) {
169
+ return undefined;
170
+ }
171
+ if (dateValues[0].length === 2 && year < 100) {
172
+ var cy = RomoDate.currentYear();
173
+ year = cy - (cy % 100) + year; // 2-digit years are subjective. prefer assuming
174
+ if ((year - cy) > 10) { // they are past years except assuming all years
175
+ year = year - 100; // in the next decade are future years.
176
+ }
177
+ }
178
+
179
+ var month = parseInt(dateValues[1]) - 1;
180
+ if (month < 0 || month > 11) {
181
+ return undefined;
182
+ }
183
+
184
+ var day = parseInt(dateValues[2]);
185
+ var date = RomoDate.for(year, month, day);
186
+ if (date.getMonth() !== month) {
187
+ return undefined;
188
+ }
189
+
190
+ return date;
191
+ }
192
+
193
+ RomoDate.Parser.prototype._parseValues = function(dateString) {
194
+ var regex, matches;
195
+
196
+ regex = /^([0-9]{1,2})[^0-9]+([0-9]{1,2})[^0-9]+([0-9]{2,4})$/; // "mm dd yyyy" or "mm dd yy"
197
+ matches = RomoDate.Utils.regexMatches(dateString, regex);
198
+ if (matches.length === 3) {
199
+ return [matches[2], matches[0], matches[1]];
200
+ }
201
+
202
+ regex = /^([0-9]{3,4})[^0-9]+([0-9]{1,2})[^0-9]+([0-9]{1,2})$/; // "yyyy mm dd"
203
+ matches = RomoDate.Utils.regexMatches(dateString, regex);
204
+ if (matches.length === 3) {
205
+ return matches;
206
+ }
207
+
208
+ regex = /^([0-9]{1,2})[^0-9]+([0-9]{1,2})$/; // "mm dd"
209
+ matches = RomoDate.Utils.regexMatches(dateString, regex);
210
+ if (matches.length === 2) {
211
+ return [RomoDate.currentYear(), matches[0], matches[1]];
212
+ }
213
+
214
+ return [];
215
+ }
216
+
217
+ // Parser
218
+
219
+ // Formatter - child utility class to encapsulate formatting a Date obj into a
220
+ // date String ('12/25', '12/25/16', '12/25/2016', '2016/12/25')
221
+
222
+ RomoDate.Formatter.prototype.dateString = function(forDate) {
223
+ var d = RomoDate.date(forDate)
224
+ var year = d.getFullYear();
225
+ var month = d.getMonth() + 1; // months are zero-based
226
+ var day = d.getDate();
227
+
228
+ var formatter = this;
229
+
230
+ return this.formatString.replace(/([ymMdD]+)/g, function(match) {
231
+ switch (match) {
232
+ case "yyyy":
233
+ case "yyy":
234
+ return year.toString();
235
+ case "yy":
236
+ case "y":
237
+ return year.toString().slice(-2);
238
+ case "mm":
239
+ return ("00"+ month.toString()).slice(-2); // pad 2 with "0"s
240
+ case "m":
241
+ return month.toString();
242
+ case "MM":
243
+ return RomoDate.Utils.monthNames[d.getMonth()]
244
+ case "M":
245
+ return RomoDate.Utils.monthAbbrevs[d.getMonth()]
246
+ case "ddd":
247
+ var ds = day.toString();
248
+ switch (ds.slice(-1)) {
249
+ case '1':
250
+ ds += 'st';
251
+ break;
252
+ case '2':
253
+ ds += 'nd'
254
+ break;
255
+ case '3':
256
+ ds += 'rd';
257
+ break;
258
+ default:
259
+ ds += 'th';
260
+ break;
261
+ }
262
+ return ds;
263
+ case "dd":
264
+ return ("00"+ day.toString()).slice(-2); // pad 2 with "0"s
265
+ case "d":
266
+ return day.toString();
267
+ case "DD":
268
+ return RomoDate.Utils.dayNames[d.getDay()]
269
+ case "D":
270
+ return RomoDate.Utils.dayAbbrevs[d.getDay()]
271
+ default:
272
+ return match; // delimeter, pass-thru
273
+ }
274
+ });
275
+ }
276
+
277
+ // Formatter
278
+
279
+ // Utils - sub utility functions shared by the utility classes
280
+
281
+ RomoDate.Utils = {
282
+
283
+ regexMatches: function(value, regex) {
284
+ if (regex.test(value) === true) {
285
+ return regex.exec(value).slice(1);
286
+ }
287
+ return [];
288
+ },
289
+
290
+ monthNames: [
291
+ "January", "Febuary", "March", "April", "May", "June",
292
+ "July", "August", "September", "October", "November", "December"
293
+ ],
294
+
295
+ monthAbbrevs: [
296
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
297
+ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
298
+ ],
299
+
300
+ dayNames: [
301
+ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
302
+ ],
303
+
304
+ dayAbbrevs: [
305
+ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
306
+ ],
307
+
308
+ }
309
+
310
+ // Utils
@@ -6,10 +6,6 @@ $.fn.romoDatepicker = function() {
6
6
 
7
7
  var RomoDatepicker = function(element) {
8
8
  this.elem = $(element);
9
- this.monthNames = [
10
- "January", "February", "March", "April", "May", "June",
11
- "July", "August", "September", "October", "November", "December"
12
- ]
13
9
 
14
10
  this.defaultFormat = 'yyyy-mm-dd'
15
11
  this.defaultPrevClass = undefined;
@@ -17,7 +13,7 @@ var RomoDatepicker = function(element) {
17
13
  this.itemSelector = 'TD.romo-datepicker-day:not(.disabled)';
18
14
  this.calTable = $();
19
15
  this.date = undefined;
20
- this.today = this._getTodaysDate();
16
+ this.today = RomoDate.today();
21
17
  this.prevValue = undefined;
22
18
 
23
19
  this.doInit();
@@ -84,14 +80,13 @@ RomoDatepicker.prototype.doBindElem = function() {
84
80
  }
85
81
 
86
82
  RomoDatepicker.prototype.doSetFormat = function() {
87
- var format = this.elem.data('romo-datepicker-format') || this.defaultFormat;
88
- this.formatValues = this._parseFormatValues(format);
83
+ this.formatString = this.elem.data('romo-datepicker-format') || this.defaultFormat;
89
84
  }
90
85
 
91
86
  RomoDatepicker.prototype.doSetDate = function(value) {
92
- this.date = this._parseDate(value);
87
+ this.date = RomoDate.parse(value);
93
88
  if (this.date !== undefined) {
94
- this.elem.val(this._formatDate(this.date));
89
+ this.elem.val(RomoDate.format(this.date, this.formatString));
95
90
  } else {
96
91
  this.elem.val(value);
97
92
  }
@@ -151,7 +146,7 @@ RomoDatepicker.prototype.doBuildUI = function() {
151
146
  }
152
147
 
153
148
  RomoDatepicker.prototype.doRefreshUI = function(date) {
154
- var rDate = date || this.date || (new Date);
149
+ var rDate = date || this.date || this.today;
155
150
  this._refreshCalendar(rDate);
156
151
  this.elem.trigger('datepicker:refresh', [rDate, this]);
157
152
 
@@ -163,29 +158,15 @@ RomoDatepicker.prototype.doRefreshUI = function(date) {
163
158
  }
164
159
 
165
160
  RomoDatepicker.prototype.doRefreshToPrevMonth = function() {
166
- var date = this.refreshDate || this.date || (new Date);
167
- var year = date.getUTCFullYear();
168
- var month = date.getUTCMonth() - 1;
169
- if (month < 0) {
170
- year -= 1;
171
- month = 11;
172
- }
173
-
174
- var pDate = this._UTCDate(year, month, 1);
161
+ var date = this.refreshDate || this.date || (new Date);
162
+ var pDate = RomoDate.lastDateOfPrevMonth(date);
175
163
  this.doRefreshUI(pDate);
176
164
  this.elem.trigger('datepicker:prevRefresh', [pDate, this]);
177
165
  }
178
166
 
179
167
  RomoDatepicker.prototype.doRefreshToNextMonth = function() {
180
- var date = this.refreshDate || this.date || (new Date);
181
- var year = date.getUTCFullYear();
182
- var month = date.getUTCMonth() + 1;
183
- if (month > 11) {
184
- year += 1;
185
- month = 0;
186
- }
187
-
188
- var nDate = this._UTCDate(year, month, 1);
168
+ var date = this.refreshDate || this.date || (new Date);
169
+ var nDate = RomoDate.firstDateOfNextMonth(date);
189
170
  this.doRefreshUI(nDate);
190
171
  this.elem.trigger('datepicker:nextRefresh', [nDate, this]);
191
172
  }
@@ -336,11 +317,11 @@ RomoDatepicker.prototype._buildCalendarHeader = function() {
336
317
  header.append(row);
337
318
 
338
319
  row = $('<tr></tr>');
339
- row.append($('<th class="romo-datepicker-day">Su</th>'));
320
+ row.append($('<th class="romo-datepicker-day">S</th>'));
340
321
  row.append($('<th class="romo-datepicker-day">M</th>'));
341
322
  row.append($('<th class="romo-datepicker-day">T</th>'));
342
323
  row.append($('<th class="romo-datepicker-day">W</th>'));
343
- row.append($('<th class="romo-datepicker-day">Th</th>'));
324
+ row.append($('<th class="romo-datepicker-day">T</th>'));
344
325
  row.append($('<th class="romo-datepicker-day">F</th>'));
345
326
  row.append($('<th class="romo-datepicker-day">S</th>'));
346
327
  header.append(row);
@@ -349,66 +330,61 @@ RomoDatepicker.prototype._buildCalendarHeader = function() {
349
330
  }
350
331
 
351
332
  RomoDatepicker.prototype._buildCalendarTitle = function(date) {
352
- return this.monthNames[date.getUTCMonth()] + ' ' + date.getUTCFullYear().toString();
333
+ return RomoDate.format(date, 'MM yyyy');
353
334
  }
354
335
 
355
336
  RomoDatepicker.prototype._buildCalendarBody = function(date) {
356
- var ty = this.today.getUTCFullYear();
357
- var tm = this.today.getUTCMonth();
358
- var td = this.today.getUTCDate();
359
- var year = date.getUTCFullYear();
360
- var month = date.getUTCMonth();
361
- var day = date.getUTCDate();
362
- var fomdow = this._UTCDate(year, month, 1).getUTCDay(); // first-of-the-month day-of-the-week
363
- if (fomdow == 0) {
364
- fomdow = 7; // don't start calendar on the first-of-the-month, show last week of prev month
365
- }
366
- var iDate = this._UTCDate(year, month, 1 - fomdow);
367
- var iWeek = 0;
368
337
  var html = [];
369
338
 
339
+ // prefer showing as many past dates in each month as possible
340
+ // calc the most post days we can show and still fit the date's
341
+ // month in 6 weeks of displayed days:
342
+ // 7 days * 6 weeks = 42 displayed days
343
+ // 42 displayed days - {days in month} = {max past days}
344
+ var fom = RomoDate.firstDateOfMonth(date); // first-of-month
345
+ var dim = RomoDate.daysInMonth(date); // days-in-month
346
+ var past = fom.getDay(); // start on this week's Sunday
347
+ if ((past+7) <= (42-dim)) { // if there is enough room,
348
+ past = past+7; // start on prev week's Sunday
349
+ }
350
+ var iDate = RomoDate.vector(fom, -past);
351
+
352
+ var iWeek = 0;
370
353
  while (iWeek < 6) { // render 6 weeks in the calendar
371
- var y = iDate.getUTCFullYear();
372
- var m = iDate.getUTCMonth();
373
- var d = iDate.getUTCDate();
374
- var dow = iDate.getUTCDay();
375
354
  var cls = [];
376
355
 
377
- if (dow === 0) {
356
+ if (RomoDate.isDay(iDate, 'Sunday')) {
378
357
  html.push('<tr>');
379
358
  }
380
359
 
381
360
  cls.push('romo-datepicker-day');
382
- if (dow === 0 || dow === 6) {
361
+ if (RomoDate.isWeekend(iDate)) {
383
362
  cls.push('romo-datepicker-day-weekend');
384
363
  }
385
- if (y !== year || m !== month) {
364
+ if (!RomoDate.isSameMonth(iDate, date)) {
386
365
  cls.push('romo-datepicker-day-other');
387
366
  }
388
- if (y === ty && m === tm && d === td) {
367
+ if (RomoDate.isEqual(iDate, this.today)) {
389
368
  cls.push('romo-datepicker-day-today');
390
369
  }
391
- if (this.date &&
392
- y === this.date.getUTCFullYear() &&
393
- m === this.date.getUTCMonth() &&
394
- d === this.date.getUTCDate()) {
370
+ if (RomoDate.isEqual(iDate, this.date)) {
395
371
  cls.push('selected');
396
372
  }
397
373
 
398
374
  html.push('<td');
399
375
  html.push(' class="'+cls.join(' ')+'"');
400
- var dt = this._formatDate(iDate);
376
+ var dt = RomoDate.format(iDate, this.formatString);
401
377
  html.push(' title="'+dt+'"');
402
378
  html.push(' data-romo-datepicker-value="'+dt+'"');
403
379
  html.push('>');
404
- html.push(d.toString());
380
+ html.push(RomoDate.format(iDate, 'd'));
405
381
  html.push('</td>');
406
382
 
407
- if (dow === 6) {
383
+ if (RomoDate.isDay(iDate, 'Saturday')) {
408
384
  html.push('</tr>');
409
385
  iWeek += 1;
410
386
  }
411
- iDate.setUTCDate(iDate.getUTCDate()+1);
387
+ iDate = RomoDate.next(iDate);
412
388
  }
413
389
 
414
390
  return $(html.join(''));
@@ -419,141 +395,6 @@ RomoDatepicker.prototype._highlightItem = function(item) {
419
395
  item.addClass('romo-datepicker-highlight');
420
396
  }
421
397
 
422
- RomoDatepicker.prototype._formatDate = function(date) {
423
- var year = date.getUTCFullYear();
424
- var month = date.getUTCMonth() + 1;
425
- var day = date.getUTCDate();
426
-
427
- return this.formatValues.reduce(function(prev, curr) {
428
- switch (curr) {
429
- case "yyyy":
430
- case "yyy":
431
- prev += year.toString();
432
- break;
433
- case "yy":
434
- case "y":
435
- prev += year.toString().slice(-2);
436
- break;
437
- case "mm":
438
- prev += ("00"+ month.toString()).slice(-2); // pad 2 with "0"s
439
- break;
440
- case "m":
441
- prev += month.toString();
442
- break;
443
- case "dd":
444
- prev += ("00"+ day.toString()).slice(-2); // pad 2 with "0"s
445
- break;
446
- case "d":
447
- prev += day.toString();
448
- break;
449
- default:
450
- prev += curr; // delimeter, pass-thru
451
- }
452
- return prev;
453
- }, '');
454
- }
455
-
456
- RomoDatepicker.prototype._parseFormatValues = function(value) {
457
- var regex, matches;
458
-
459
- regex = /^([m]{1,2})([^md]+)([d]{1,2})([^dy]+)([y]{2,4})$/; // mm dd yyyy or mm dd yy
460
- matches = this._regexMatches(value, regex);
461
- if (matches.length === 5) {
462
- return matches;
463
- }
464
-
465
- regex = /^([y]{3,4})([^ym]+)([m]{1,2})([^md]+)([d]{1,2})$/; // yyyy mm dd
466
- matches = this._regexMatches(value, regex);
467
- if (matches.length === 5) {
468
- return matches;
469
- }
470
-
471
- return ['yyyy', '-', 'mm', '-', 'dd'];
472
- }
473
-
474
- RomoDatepicker.prototype._parseDate = function(value) {
475
- if (value.trim() === '') {
476
- return undefined;
477
- }
478
-
479
- var dateValues = this._parseDateValues(value.trim());
480
- if (dateValues.length === 0) {
481
- return undefined;
482
- }
483
-
484
- var year = parseInt(dateValues[0]);
485
- if (year < 0) {
486
- return undefined;
487
- }
488
- if (dateValues[0].length > 2 && year < 100) {
489
- return undefined;
490
- }
491
- if (dateValues[0].length === 2 && year < 100) {
492
- year = this._currentYear() - (this._currentYear() % 1000) + year;
493
- }
494
-
495
- var month = parseInt(dateValues[1]) - 1;
496
- if (month < 0 || month > 11) {
497
- return undefined;
498
- }
499
-
500
- var day = parseInt(dateValues[2]);
501
- var date = this._UTCDate(year, month, day);
502
- if (date.getUTCMonth() !== month) {
503
- return undefined;
504
- }
505
-
506
- return date;
507
- }
508
-
509
- RomoDatepicker.prototype._parseDateValues = function(value) {
510
- var regex, matches;
511
-
512
- regex = /^([0-9]{1,2})[^0-9]+([0-9]{1,2})[^0-9]+([0-9]{2,4})$/; // mm dd yyyy or mm dd yy
513
- matches = this._regexMatches(value, regex);
514
- if (matches.length === 3) {
515
- return [matches[2], matches[0], matches[1]];
516
- }
517
-
518
- regex = /^([0-9]{3,4})[^0-9]+([0-9]{1,2})[^0-9]+([0-9]{1,2})$/; // yyyy mm dd
519
- matches = this._regexMatches(value, regex);
520
- if (matches.length === 3) {
521
- return matches;
522
- }
523
-
524
- regex = /^([0-9]{1,2})[^0-9]+([0-9]{1,2})$/; // mm dd
525
- matches = this._regexMatches(value, regex);
526
- if (matches.length === 2) {
527
- return [this._currentYear(), matches[0], matches[1]];
528
- }
529
-
530
- return [];
531
- }
532
-
533
- RomoDatepicker.prototype._regexMatches = function(value, regex) {
534
- if (regex.test(value) === true) {
535
- return regex.exec(value).slice(1);
536
- }
537
- return [];
538
- }
539
-
540
- RomoDatepicker.prototype._currentYear = function() {
541
- return (new Date).getUTCFullYear();
542
- }
543
-
544
- RomoDatepicker.prototype._getTodaysDate = function() {
545
- var today = new Date();
546
- var dd = today.getDate();
547
- var mm = today.getMonth();
548
- var yyyy = today.getFullYear();
549
-
550
- return this._UTCDate(yyyy, mm, dd);
551
- }
552
-
553
- RomoDatepicker.prototype._UTCDate = function(year, month, day) {
554
- return new Date(Date.UTC.apply(Date, [year, month, day]));
555
- }
556
-
557
398
  Romo.onInitUI(function(e) {
558
399
  Romo.initUIElems(e, '[data-romo-datepicker-auto="true"]').romoDatepicker();
559
400
  });
@@ -7,8 +7,8 @@ $.fn.romoDropdown = function() {
7
7
  var RomoDropdown = function(element) {
8
8
  this.elem = $(element);
9
9
  this.doInitPopup();
10
- this.romoInvoke = this.elem.romoInvoke()[0];
11
- this.romoInvoke.doUnBindInvoke(); // disable auto invoke on click
10
+ this.romoAjax = this.elem.romoAjax()[0];
11
+ this.romoAjax.doUnbindElem(); // disable auto invoke on click
12
12
 
13
13
  if (this.elem.data('romo-dropdown-disable-click-invoke') !== true) {
14
14
  this.elem.unbind('click');
@@ -17,15 +17,15 @@ var RomoDropdown = function(element) {
17
17
  this.elem.on('dropdown:triggerToggle', $.proxy(this.onToggleClick, this));
18
18
  this.elem.on('dropdown:triggerPopupOpen', $.proxy(this.onPopupOpen, this));
19
19
  this.elem.on('dropdown:triggerPopupClose', $.proxy(this.onPopupClose, this));
20
- this.elem.on('invoke:loadStart', $.proxy(function(e, invoke) {
20
+ this.elem.on('romoAjax:callStart', $.proxy(function(e, romoAjax) {
21
21
  this.doLoadBodyStart();
22
22
  return false;
23
23
  }, this));
24
- this.elem.on('invoke:loadSuccess', $.proxy(function(e, data, invoke) {
24
+ this.elem.on('romoAjax:callSuccess', $.proxy(function(e, data, romoAjax) {
25
25
  this.doLoadBodySuccess(data);
26
26
  return false;
27
27
  }, this));
28
- this.elem.on('invoke:loadError', $.proxy(function(e, xhr, invoke) {
28
+ this.elem.on('romoAjax:callError', $.proxy(function(e, xhr, romoAjax) {
29
29
  this.doLoadBodyError(xhr);
30
30
  return false;
31
31
  }, this));
@@ -206,7 +206,7 @@ RomoDropdown.prototype.doPopupOpen = function() {
206
206
  if (this.elem.data('romo-dropdown-content-elem') !== undefined) {
207
207
  this.doLoadBodySuccess($(this.elem.data('romo-dropdown-content-elem')).html())
208
208
  } else {
209
- this.romoInvoke.doInvoke();
209
+ this.romoAjax.doInvoke();
210
210
  }
211
211
 
212
212
  this.popupElem.addClass('romo-dropdown-open');
@@ -14,15 +14,15 @@ var RomoInline = function(element) {
14
14
  this.doShow();
15
15
  }, this));
16
16
 
17
- this.elem.on('invoke:loadStart', $.proxy(function(e, invoke) {
17
+ this.elem.on('romoAjax:callStart', $.proxy(function(e, romoAjax) {
18
18
  this.doLoadStart();
19
19
  return false;
20
20
  }, this));
21
- this.elem.on('invoke:loadSuccess', $.proxy(function(e, data, invoke) {
21
+ this.elem.on('romoAjax:callSuccess', $.proxy(function(e, data, romoAjax) {
22
22
  this.doLoadSuccess(data);
23
23
  return false;
24
24
  }, this));
25
- this.elem.on('invoke:loadError', $.proxy(function(e, xhr, invoke) {
25
+ this.elem.on('romoAjax:callError', $.proxy(function(e, xhr, romoAjax) {
26
26
  this.doLoadError(xhr);
27
27
  return false;
28
28
  }, this));