Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/Rouche/fullcalendar
Browse files Browse the repository at this point in the history
  • Loading branch information
arshaw committed Dec 5, 2016
2 parents 3c12c1d + fd8681b commit c206378
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 2 deletions.
8 changes: 8 additions & 0 deletions src/common/DayGrid.limit.js
Expand Up @@ -247,6 +247,14 @@ DayGrid.mixin({
viewportConstrain: view.opt('popoverViewportConstrain'),
hide: function() {
// kill everything when the popover is hidden
// notify events to be removed
if (_this.popoverSegs) {
var seg;
for (var i = 0; i < _this.popoverSegs.length; ++i) {
seg = _this.popoverSegs[i];
view.trigger('eventDestroy', seg.event, seg.event, seg.el);
}
}
_this.segPopover.removeElement();
_this.segPopover = null;
_this.popoverSegs = null;
Expand Down
4 changes: 2 additions & 2 deletions tasks/locale.js
Expand Up @@ -72,7 +72,7 @@ gulp.task('locale:each:data', function() {
return gulp.src('node_modules/moment/locale/*.js')
.pipe(modify({
fileModifier: function(file, momentContent) {
var localeCode = file.path.match(/([^\/]*)\.js$/)[1];
var localeCode = file.path.match(/([^\/\\]*)\.js$/)[1];
var js = getLocaleJs(localeCode, momentContent);

if (js) {
Expand Down Expand Up @@ -183,7 +183,7 @@ function extractMomentLocaleJS(js) {

// remove the UMD wrap
js = js.replace(
/\(\s*function[\S\s]*?function\s*\(\s*moment\s*\)\s*\{([\S\s]*)\}\)\);?/,
/\(\s*function[\S\s]*?function\s*\(\s*moment\s*\)\s*\{([\S\s]*)\}\)\)\)?;?/,
function(m0, body) {
return body;
}
Expand Down
81 changes: 81 additions & 0 deletions tests/automated/eventLimit-popoverDestroy.js
@@ -0,0 +1,81 @@

describe('eventLimit popover', function() {

var options;

beforeEach(function() {
affix('#cal');
options = {
defaultView: 'month',
defaultDate: '2014-08-01',
eventLimit: 3,
events: [
{ title: 'event1', start: '2014-07-28', end: '2014-07-30', className: 'event1' },
{ title: 'event2', start: '2014-07-29', end: '2014-07-31', className: 'event2' },
{ title: 'event3', start: '2014-07-29', className: 'event3' },
{ title: 'event4', start: '2014-07-29', className: 'event4' }
],
popoverViewportConstrain: false, // because PhantomJS window is small, don't do smart repositioning
handleWindowResize: false // because showing the popover causes scrollbars and fires resize
};
});

function init() {
$('.fc-more').simulate('click');
}

it('closes when user clicks the X and trigger eventDestroy for every render', function() {
var eventsRendered = {};
var renderCount = 0;
var activated = false;
options.eventRender = function(eventObject, element, view) {
if (activated) {
eventsRendered[eventObject.title] = eventObject;
++renderCount;
}
};
options.eventDestroy = function(eventObject, element, view) {
delete eventsRendered[eventObject.title];
--renderCount;
};
//Create calendar
$('#cal').fullCalendar(options);
//Activate flags and pop event limit popover
activated = true;
$('.fc-more').simulate('click');

expect($('.fc-more-popover')).toBeVisible();
$('.fc-more-popover .fc-close')
.simulate('click');
expect($('.fc-more-popover')).not.toBeVisible();
expect(Object.keys(eventsRendered).length).toEqual(0);
expect(renderCount).toEqual(0);
});

it('closes when user clicks outside of the popover and trigger eventDestroy for every render', function() {
var eventsRendered = {};
var renderCount = 0;
var activated = false;
options.eventRender = function(eventObject, element, view) {
if (activated) {
eventsRendered[eventObject.title] = eventObject;
++renderCount;
}
};
options.eventDestroy = function(eventObject, element, view) {
delete eventsRendered[eventObject.title];
--renderCount;
};
//Create calendar
$('#cal').fullCalendar(options);
//Activate flags and pop event limit popover
activated = true;
$('.fc-more').simulate('click');

expect($('.fc-more-popover')).toBeVisible();
$('body').simulate('mousedown').simulate('click');
expect($('.fc-more-popover')).not.toBeVisible();
expect(Object.keys(eventsRendered).length).toEqual(0);
expect(renderCount).toEqual(0);
});
});

0 comments on commit c206378

Please sign in to comment.