Skip to content

Commit e226244

Browse files
committed
Better predictive typeahead when no delimeters are used
Close #700
1 parent e16bc3a commit e226244

File tree

5 files changed

+42
-22
lines changed

5 files changed

+42
-22
lines changed

jquery.timepicker.css

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.ui-timepicker-wrapper {
22
overflow-y: auto;
33
max-height: 150px;
4-
width: 6.5em;
4+
width: auto;
55
background: #fff;
66
border: 1px solid #ddd;
77
-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);
@@ -12,13 +12,8 @@
1212
margin: 0;
1313
}
1414

15-
.ui-timepicker-wrapper.ui-timepicker-with-duration {
16-
width: 13em;
17-
}
18-
19-
.ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-30,
20-
.ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-60 {
21-
width: 11em;
15+
.ui-timepicker-wrapper .ui-timepicker-list li {
16+
padding-right: 20px;
2217
}
2318

2419
.ui-timepicker-list {

jquery.timepicker.js

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -450,15 +450,22 @@
450450

451451
var hour = parseInt(time[3] * 1, 10);
452452
var ampm = time[2] || time[9];
453-
var hours = hour;
454-
var minutes = time[5] * 1 || 0;
453+
var minutes = this.parseMinuteString(time[5]);
455454
var seconds = time[7] * 1 || 0;
456455

457456
if (!ampm && time[3].length == 2 && time[3][0] == "0") {
458457
// preceding '0' implies AM
459458
ampm = "am";
460459
}
461460

461+
if (hour > 24 && !minutes) {
462+
// if someone types in something like "83", turn it into "8h 30m"
463+
hour = time[3][0] * 1;
464+
minutes = this.parseMinuteString(time[3][1]);
465+
}
466+
467+
var hours = hour;
468+
462469
if (hour <= 12 && ampm) {
463470
ampm = ampm.trim();
464471
var isPm = ampm == this.settings.lang.pm || ampm == this.settings.lang.PM;
@@ -492,6 +499,21 @@
492499

493500
return timeInt;
494501
}
502+
}, {
503+
key: "parseMinuteString",
504+
value: function parseMinuteString(minutesString) {
505+
if (!minutesString) {
506+
minutesString = 0;
507+
}
508+
509+
var multiplier = 1;
510+
511+
if (minutesString.length == 1) {
512+
multiplier = 10;
513+
}
514+
515+
return parseInt(minutesString) * multiplier || 0;
516+
}
495517
}, {
496518
key: "intStringDateOrFunc2func",
497519
value: function intStringDateOrFunc2func(input) {
@@ -1641,8 +1663,8 @@
16411663
}
16421664

16431665
Timepicker.hideAll();
1644-
$(document).unbind(".ui-timepicker");
1645-
$(window).unbind(".ui-timepicker");
1666+
$(document).off(".ui-timepicker");
1667+
$(window).off(".ui-timepicker");
16461668
}
16471669
/*
16481670
* Keyboard navigation via arrow keys

jquery.timepicker.min.css

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.ui-timepicker-wrapper {
22
overflow-y: auto;
33
max-height: 150px;
4-
width: 6.5em;
4+
width: auto;
55
background: #fff;
66
border: 1px solid #ddd;
77
-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);
@@ -12,13 +12,8 @@
1212
margin: 0;
1313
}
1414

15-
.ui-timepicker-wrapper.ui-timepicker-with-duration {
16-
width: 13em;
17-
}
18-
19-
.ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-30,
20-
.ui-timepicker-wrapper.ui-timepicker-with-duration.ui-timepicker-step-60 {
21-
width: 11em;
15+
.ui-timepicker-wrapper .ui-timepicker-list li {
16+
padding-right: 20px;
2217
}
2318

2419
.ui-timepicker-list {

0 commit comments

Comments
 (0)