Skip to content
This repository was archived by the owner on Mar 2, 2018. It is now read-only.

Commit f8cbad2

Browse files
committed
#131, refactored to have click possible on trailing and leading days
1 parent 5389dfe commit f8cbad2

File tree

3 files changed

+25
-22
lines changed

3 files changed

+25
-22
lines changed

ng2-datetime-picker.webtest.txt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@ START
55
open browser
66
go to http://localhost:9002
77

8-
TEST1
9-
click "#test1 i.fa.fa-calendar"
10-
set element "#test1 input.hourInput" value 11
11-
verify element "#test1 input" value matches to "11:"
12-
click "#test1 i.fa.fa-calendar"
13-
set element "#test1 input.minutesInput" value as 19
14-
verify element "#test1 input" value matches to ":19"
15-
click "#test1 i.fa.fa-calendar"
16-
click "#test1 div.day.selectable[title='2014-12-17']"
17-
verify element "#test1 input" value matches to "2014-12-17"
8+
--TEST1
9+
-- click "#test1 i.fa.fa-calendar"
10+
-- set element "#test1 input.hourInput" value 11
11+
-- verify element "#test1 input" value matches to "11:"
12+
-- click "#test1 i.fa.fa-calendar"
13+
-- set element "#test1 input.minutesInput" value as 19
14+
-- verify element "#test1 input" value matches to ":19"
15+
-- click "#test1 i.fa.fa-calendar"
16+
-- click "#test1 div.day.selectable[title='2014-12-17']"
17+
-- verify element "#test1 input" value matches to "2014-12-17"
1818

1919
TEST2
2020
click "#test2 input"

src/ng2-datetime-picker.component.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ declare var moment: any;
2323
providers : [Ng2Datetime],
2424
selector : 'ng2-datetime-picker',
2525
template : `
26-
<div class="ng2-datetime-picker" tabindex="0">
26+
<div class="ng2-datetime-picker">
2727
2828
<!-- Month - Year -->
2929
<div class="month" *ngIf="!timeOnly">
@@ -50,7 +50,9 @@ declare var moment: any;
5050
5151
<!-- Fill up blank days for this month -->
5252
<div *ngIf="monthData.leadingDays.length < 7">
53-
<div class="day" *ngFor="let dayNum of monthData.leadingDays">
53+
<div class="day"
54+
(click)="updateMonthData(-1)"
55+
*ngFor="let dayNum of monthData.leadingDays">
5456
{{dayNum}}
5557
</div>
5658
</div>
@@ -71,6 +73,7 @@ declare var moment: any;
7173
<!-- Fill up blank days for this month -->
7274
<div *ngIf="monthData.trailingDays.length < 7">
7375
<div class="day"
76+
(click)="updateMonthData(+1)"
7477
*ngFor="let dayNum of monthData.trailingDays">
7578
{{dayNum}}
7679
</div>
@@ -85,13 +88,15 @@ declare var moment: any;
8588
</span><br/>
8689
<label class="hourLabel">Hour:</label>
8790
<input #hours class="hourInput"
91+
tabindex="90000"
8892
(change)="selectDateTime()"
8993
type="range"
9094
min="{{minHour || 0}}"
9195
max="{{maxHour || 23}}"
9296
[(ngModel)]="hour" />
9397
<label class="minutesLabel">Min:</label>
9498
<input #minutes class="minutesInput"
99+
tabindex="90000"
95100
step="{{minuteStep}}"
96101
(change)="selectDateTime()"
97102
type="range" min="0" max="59" range="10" [(ngModel)]="minute"/>

src/ng2-datetime-picker.directive.ts

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,10 @@ export class Ng2DatetimePickerDirective implements OnInit, OnChanges {
5050
private componentRef:ComponentRef<Ng2DatetimePickerComponent>; /* dropdown component reference */
5151
private ctrl: AbstractControl;
5252
private sub: any;
53-
private justShown: boolean;
53+
// private justShown: boolean;
5454

5555
inputEl: HTMLInputElement;
56+
clickedDatetimePicker: boolean;
5657

5758
constructor (
5859
private resolver:ComponentFactoryResolver,
@@ -223,11 +224,8 @@ export class Ng2DatetimePickerDirective implements OnInit, OnChanges {
223224

224225
this.componentRef = this.viewContainerRef.createComponent(factory);
225226
this.ng2DatetimePickerEl = this.componentRef.location.nativeElement;
226-
// this.ng2DatetimePickerEl.addEventListener('keyup', this.keyEventListener);
227-
// this.ng2DatetimePickerEl.addEventListener('click', function(event) {
228-
// console.log('click.................');
229-
// event.stopPropagation();
230-
// });
227+
this.ng2DatetimePickerEl.addEventListener('mousedown', (event) => this.clickedDatetimePicker = true);
228+
this.ng2DatetimePickerEl.addEventListener('mouseup', (event) => this.clickedDatetimePicker = false);
231229

232230
let component = this.componentRef.instance;
233231
component.defaultValue = <Date>this.defaultValue || <Date>this.el['dateValue'];
@@ -249,8 +247,8 @@ export class Ng2DatetimePickerDirective implements OnInit, OnChanges {
249247
});
250248

251249
//Hack not to fire tab keyup event
252-
this.justShown = true;
253-
setTimeout(() => this.justShown = false, 100);
250+
// this.justShown = true;
251+
// setTimeout(() => this.justShown = false, 100);
254252
};
255253

256254
dateSelected = (date) => {
@@ -259,8 +257,8 @@ export class Ng2DatetimePickerDirective implements OnInit, OnChanges {
259257
};
260258

261259
hideDatetimePicker = (event?): any => {
262-
console.log(' hide XXXXXXXXXXXXXXXXXXXXXXXXXXX', event, this.elementIn(event.target, this.ng2DatetimePickerEl))
263-
if ( event && this.elementIn(event.target, this.ng2DatetimePickerEl) ) {
260+
console.log(' hide XXXXXXXXXXXXXXXXXXXXXXXXXXX', event)
261+
if (this.clickedDatetimePicker) {
264262
return false;
265263
} else { /* invoked by function call */
266264
this.componentRef.destroy();

0 commit comments

Comments
 (0)