restorando / angular-pickadate

A simple and fluid inline datepicker for AngularJS with no extra dependencies.
MIT License
273 stars 91 forks source link

Add the options 'week-starts-on' and 'no-extra-rows'. #25

Closed asharbitz closed 10 years ago

asharbitz commented 10 years ago

The first-day attribute sets the first day of the week. The no-extra-rows attribute disables adding empty rows to the calendar.

gschammah commented 10 years ago

Hi there,

Thanks for your PR!

Before checking your changes I ran the tests in my laptop (TZ UTC-3), and some are failing. Ideally the tests should pass in any machine regardless of the TZ configuration.

Here is the output:

> angular-pickadate@0.2.0 test /Users/gschammah/redo/angular-pickadate
> gulp test

[21:47:35] Using gulpfile ~/redo/angular-pickadate/gulpfile.js
[21:47:35] Starting 'lint'...
[21:47:36] Finished 'lint' after 762 ms
[21:47:36] Starting 'test'...
INFO [karma]: Karma v0.12.21 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9.7 (Mac OS X)]: Connected on socket oUassmeW1Ic05qJx0_lb with id 30333001
PhantomJS 1.9.7 (Mac OS X): Executed 0 of 23 SUCCESS (0 secs / 0 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 1 of 23 SUCCESS (0 secs / 0.005 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 2 of 23 SUCCESS (0 secs / 0.005 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 3 of 23 SUCCESS (0 secs / 0.014 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 4 of 23 SUCCESS (0 secs / 0.016 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 5 of 23 SUCCESS (0 secs / 0.025 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 6 of 23 SUCCESS (0 secs / 0.025 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 7 of 23 SUCCESS (0 secs / 0.025 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 8 of 23 SUCCESS (0 secs / 0.034 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 9 of 23 SUCCESS (0 secs / 0.063 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 10 of 23 SUCCESS (0 secs / 0.099 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 11 of 23 SUCCESS (0 secs / 0.119 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 12 of 23 SUCCESS (0 secs / 0.135 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 13 of 23 SUCCESS (0 secs / 0.155 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 14 of 23 SUCCESS (0 secs / 0.155 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 15 of 23 SUCCESS (0 secs / 0.155 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 16 of 23 SUCCESS (0 secs / 0.155 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 17 of 23 SUCCESS (0 secs / 0.155 secs)
PhantomJS 1.9.7 (Mac OS X) pickadateUtils visibleDates returns the correct dates FAILED
    AssertionError: expected Mon, 29 Dec 2014 00:00:00 GMT to deeply equal Sun, 28 Dec 2014 00:00:00 GMT
        at /Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:925
        at assertEql (/Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:1434)
        at /Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:3627
        at assertEqual (/Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:1394)
        at /Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:3627
        at /Users/gschammah/redo/angular-pickadate/test/pickadate-utils.spec.js:55
        at callFn (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4387)
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4380
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4782
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4873
        at next (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4707)
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4717
        at next (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4655)
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4684
        at timeslice (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:5904)
PhantomJS 1.9.7 (Mac OS X): Executed 18 of 23 (1 FAILED) (0 secs / 0.156 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 19 of 23 (1 FAILED) (0 secs / 0.156 secs)
PhantomJS 1.9.7 (Mac OS X) pickadateUtils visibleDates should not add empty rows when told not to FAILED
    AssertionError: expected 7 to equal 35
        at /Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:925
        at assertEqual (/Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:1402)
        at /Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:3627
        at /Users/gschammah/redo/angular-pickadate/test/pickadate-utils.spec.js:68
        at callFn (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4387)
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4380
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4782
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4873
        at next (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4707)
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4717
        at next (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4655)
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4684
        at timeslice (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:5904)
PhantomJS 1.9.7 (Mac OS X): Executed 20 of 23 (2 FAILED) (0 secs / 0.156 secs)
PhantomJS 1.9.7 (Mac OS X) pickadateUtils visibleDates adds 2 extra rows when required FAILED
    AssertionError: expected 7 to equal 28
        at /Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:925
        at assertEqual (/Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:1402)
        at /Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:3627
        at /Users/gschammah/redo/angular-pickadate/test/pickadate-utils.spec.js:75
        at callFn (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4387)
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4380
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4782
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4873
        at next (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4707)
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4717
        at next (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4655)
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4684
        at timeslice (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:5904)
PhantomJS 1.9.7 (Mac OS X): Executed 21 of 23 (3 FAILED) (0 secs / 0.156 secs)
PhantomJS 1.9.7 (Mac OS X) pickadateUtils visibleDates works when the first day of the week is monday FAILED
    AssertionError: expected Tue, 30 Dec 2014 00:00:00 GMT to deeply equal Mon, 29 Dec 2014 00:00:00 GMT
        at /Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:925
        at assertEql (/Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:1434)
        at /Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:3627
        at assertEqual (/Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:1394)
        at /Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:3627
        at /Users/gschammah/redo/angular-pickadate/test/pickadate-utils.spec.js:82
        at callFn (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4387)
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4380
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4782
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4873
        at next (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4707)
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4717
        at next (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4655)
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4684
        at timeslice (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:5904)
PhantomJS 1.9.7 (Mac OS X): Executed 22 of 23 (4 FAILED) (0 secs / 0.156 secs)
PhantomJS 1.9.7 (Mac OS X) pickadateUtils visibleDates works when the first day of the week is saturday FAILED
    AssertionError: expected Sun, 28 Dec 2014 00:00:00 GMT to deeply equal Sat, 27 Dec 2014 00:00:00 GMT
        at /Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:925
        at assertEql (/Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:1434)
        at /Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:3627
        at assertEqual (/Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:1394)
        at /Users/gschammah/redo/angular-pickadate/node_modules/karma-chai-plugins/node_modules/chai/chai.js:3627
        at /Users/gschammah/redo/angular-pickadate/test/pickadate-utils.spec.js:91
        at callFn (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4387)
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4380
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4782
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4873
        at next (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4707)
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4717
        at next (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4655)
        at /Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:4684
        at timeslice (/Users/gschammah/redo/angular-pickadate/node_modules/mocha/mocha.js:5904)
PhantomJS 1.9.7 (Mac OS X): Executed 23 of 23 (5 FAILED) (0 secs / 0.156 secs)
PhantomJS 1.9.7 (Mac OS X): Executed 23 of 23 (5 FAILED) (0.252 secs / 0.156 secs)
[21:47:38] 'test' errored after 1.93 s
[21:47:38] Error: 1
    at formatError (/Users/gschammah/redo/angular-pickadate/node_modules/gulp/bin/gulp.js:161:10)
    at Gulp.<anonymous> (/Users/gschammah/redo/angular-pickadate/node_modules/gulp/bin/gulp.js:187:15)
    at Gulp.emit (events.js:95:17)
    at Gulp.Orchestrator._emitTaskDone (/Users/gschammah/redo/angular-pickadate/node_modules/gulp/node_modules/orchestrator/index.js:264:8)
    at /Users/gschammah/redo/angular-pickadate/node_modules/gulp/node_modules/orchestrator/index.js:275:23
    at finish (/Users/gschammah/redo/angular-pickadate/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:21:8)
    at cb (/Users/gschammah/redo/angular-pickadate/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:29:3)
    at removeAllListeners (/Users/gschammah/redo/angular-pickadate/node_modules/karma/lib/server.js:216:7)
    at Server.<anonymous> (/Users/gschammah/redo/angular-pickadate/node_modules/karma/lib/server.js:227:9)
    at Server.g (events.js:180:16)
gschammah commented 10 years ago

Hi @asharbitz, the code in your PR looks pretty neat. I left you some (opinionated) comments.

Thanks for your contribution

asharbitz commented 10 years ago

Thanks for really great feedback @gschammah. I have fixed the bugs and implemented most of the proposed changes.

I still bind to noExtraRows to check if it's set to false.

Other things that's not done (no time):

Please feel free to make these changes :)

gschammah commented 10 years ago

Thanks for the changes @asharbitz

I will see when I have time this week to make the pending changes and I'll merge it. :shipit:

gschammah commented 10 years ago

@asharbitz merged! Thanks a lot!