fullcalendar.io-rails 2.7.1 → 2.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fullcalendar.io/rails/version.rb +1 -1
- data/vendor/assets/javascripts/fullcalendar.js +203 -101
- data/vendor/assets/javascripts/fullcalendar/gcal.js +1 -1
- data/vendor/assets/stylesheets/fullcalendar.css +22 -27
- data/vendor/assets/stylesheets/fullcalendar.print.css +1 -1
- metadata +60 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 08a75c29d203a527f51cb0be10289fb427a87740
|
4
|
+
data.tar.gz: 37828b19d049c4aeb391cdcc91d464ff16d54ce3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c0478819f07d3b5f64801eeae7f8ef8ab6b60be246e36a0d00c5977597a05cf6e6f8210a22340d75b9b926889d4ae80444f4012782bfd58d1e299058436dab0
|
7
|
+
data.tar.gz: bac737e1e3e9aa25872f0b00380cc421bd90e5634db23d381497c878e9837e3f83f28ecca42a72d7199019ce8214fd5c2a8e79b96d8e4251682920586e119545
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* FullCalendar v2.7.
|
2
|
+
* FullCalendar v2.7.2
|
3
3
|
* Docs & License: http://fullcalendar.io/
|
4
4
|
* (c) 2016 Adam Shaw
|
5
5
|
*/
|
@@ -19,15 +19,12 @@
|
|
19
19
|
;;
|
20
20
|
|
21
21
|
var FC = $.fullCalendar = {
|
22
|
-
version: "2.7.
|
22
|
+
version: "2.7.2",
|
23
23
|
internalApiVersion: 3
|
24
24
|
};
|
25
25
|
var fcViews = FC.views = {};
|
26
26
|
|
27
27
|
|
28
|
-
FC.isTouch = 'ontouchstart' in document;
|
29
|
-
|
30
|
-
|
31
28
|
$.fn.fullCalendar = function(options) {
|
32
29
|
var args = Array.prototype.slice.call(arguments, 1); // for a possible method call
|
33
30
|
var res = this; // what this function will return (this jQuery object by default)
|
@@ -471,6 +468,30 @@ function preventDefault(ev) {
|
|
471
468
|
}
|
472
469
|
|
473
470
|
|
471
|
+
// attach a handler to get called when ANY scroll action happens on the page.
|
472
|
+
// this was impossible to do with normal on/off because 'scroll' doesn't bubble.
|
473
|
+
// http://stackoverflow.com/a/32954565/96342
|
474
|
+
// returns `true` on success.
|
475
|
+
function bindAnyScroll(handler) {
|
476
|
+
if (window.addEventListener) {
|
477
|
+
window.addEventListener('scroll', handler, true); // useCapture=true
|
478
|
+
return true;
|
479
|
+
}
|
480
|
+
return false;
|
481
|
+
}
|
482
|
+
|
483
|
+
|
484
|
+
// undoes bindAnyScroll. must pass in the original function.
|
485
|
+
// returns `true` on success.
|
486
|
+
function unbindAnyScroll(handler) {
|
487
|
+
if (window.removeEventListener) {
|
488
|
+
window.removeEventListener('scroll', handler, true); // useCapture=true
|
489
|
+
return true;
|
490
|
+
}
|
491
|
+
return false;
|
492
|
+
}
|
493
|
+
|
494
|
+
|
474
495
|
/* General Geometry Utils
|
475
496
|
----------------------------------------------------------------------------------------------------------------------*/
|
476
497
|
|
@@ -1966,6 +1987,35 @@ var ListenerMixin = FC.ListenerMixin = (function() {
|
|
1966
1987
|
})();
|
1967
1988
|
;;
|
1968
1989
|
|
1990
|
+
// simple class for toggle a `isIgnoringMouse` flag on delay
|
1991
|
+
// initMouseIgnoring must first be called, with a millisecond delay setting.
|
1992
|
+
var MouseIgnorerMixin = {
|
1993
|
+
|
1994
|
+
isIgnoringMouse: false, // bool
|
1995
|
+
delayUnignoreMouse: null, // method
|
1996
|
+
|
1997
|
+
|
1998
|
+
initMouseIgnoring: function(delay) {
|
1999
|
+
this.delayUnignoreMouse = debounce(proxy(this, 'unignoreMouse'), delay || 1000);
|
2000
|
+
},
|
2001
|
+
|
2002
|
+
|
2003
|
+
// temporarily ignore mouse actions on segments
|
2004
|
+
tempIgnoreMouse: function() {
|
2005
|
+
this.isIgnoringMouse = true;
|
2006
|
+
this.delayUnignoreMouse();
|
2007
|
+
},
|
2008
|
+
|
2009
|
+
|
2010
|
+
// delayUnignoreMouse eventually calls this
|
2011
|
+
unignoreMouse: function() {
|
2012
|
+
this.isIgnoringMouse = false;
|
2013
|
+
}
|
2014
|
+
|
2015
|
+
};
|
2016
|
+
|
2017
|
+
;;
|
2018
|
+
|
1969
2019
|
/* A rectangular panel that is absolutely positioned over other content
|
1970
2020
|
------------------------------------------------------------------------------------------------------------------------
|
1971
2021
|
Options:
|
@@ -2374,7 +2424,7 @@ var CoordCache = FC.CoordCache = Class.extend({
|
|
2374
2424
|
----------------------------------------------------------------------------------------------------------------------*/
|
2375
2425
|
// TODO: use Emitter
|
2376
2426
|
|
2377
|
-
var DragListener = FC.DragListener = Class.extend(ListenerMixin, {
|
2427
|
+
var DragListener = FC.DragListener = Class.extend(ListenerMixin, MouseIgnorerMixin, {
|
2378
2428
|
|
2379
2429
|
options: null,
|
2380
2430
|
|
@@ -2386,6 +2436,8 @@ var DragListener = FC.DragListener = Class.extend(ListenerMixin, {
|
|
2386
2436
|
originX: null,
|
2387
2437
|
originY: null,
|
2388
2438
|
|
2439
|
+
// the wrapping element that scrolls, or MIGHT scroll if there's overflow.
|
2440
|
+
// TODO: do this for wrappers that have overflow:hidden as well.
|
2389
2441
|
scrollEl: null,
|
2390
2442
|
|
2391
2443
|
isInteracting: false,
|
@@ -2398,9 +2450,13 @@ var DragListener = FC.DragListener = Class.extend(ListenerMixin, {
|
|
2398
2450
|
delayTimeoutId: null,
|
2399
2451
|
minDistance: null,
|
2400
2452
|
|
2453
|
+
handleTouchScrollProxy: null, // calls handleTouchScroll, always bound to `this`
|
2454
|
+
|
2401
2455
|
|
2402
2456
|
constructor: function(options) {
|
2403
2457
|
this.options = options || {};
|
2458
|
+
this.handleTouchScrollProxy = proxy(this, 'handleTouchScroll');
|
2459
|
+
this.initMouseIgnoring(500);
|
2404
2460
|
},
|
2405
2461
|
|
2406
2462
|
|
@@ -2412,7 +2468,10 @@ var DragListener = FC.DragListener = Class.extend(ListenerMixin, {
|
|
2412
2468
|
var isTouch = getEvIsTouch(ev);
|
2413
2469
|
|
2414
2470
|
if (ev.type === 'mousedown') {
|
2415
|
-
if (
|
2471
|
+
if (this.isIgnoringMouse) {
|
2472
|
+
return;
|
2473
|
+
}
|
2474
|
+
else if (!isPrimaryMouseButton(ev)) {
|
2416
2475
|
return;
|
2417
2476
|
}
|
2418
2477
|
else {
|
@@ -2454,7 +2513,7 @@ var DragListener = FC.DragListener = Class.extend(ListenerMixin, {
|
|
2454
2513
|
},
|
2455
2514
|
|
2456
2515
|
|
2457
|
-
endInteraction: function(ev) {
|
2516
|
+
endInteraction: function(ev, isCancelled) {
|
2458
2517
|
if (this.isInteracting) {
|
2459
2518
|
this.endDrag(ev);
|
2460
2519
|
|
@@ -2467,13 +2526,20 @@ var DragListener = FC.DragListener = Class.extend(ListenerMixin, {
|
|
2467
2526
|
this.unbindHandlers();
|
2468
2527
|
|
2469
2528
|
this.isInteracting = false;
|
2470
|
-
this.handleInteractionEnd(ev);
|
2529
|
+
this.handleInteractionEnd(ev, isCancelled);
|
2530
|
+
|
2531
|
+
// a touchstart+touchend on the same element will result in the following addition simulated events:
|
2532
|
+
// mouseover + mouseout + click
|
2533
|
+
// let's ignore these bogus events
|
2534
|
+
if (this.isTouch) {
|
2535
|
+
this.tempIgnoreMouse();
|
2536
|
+
}
|
2471
2537
|
}
|
2472
2538
|
},
|
2473
2539
|
|
2474
2540
|
|
2475
|
-
handleInteractionEnd: function(ev) {
|
2476
|
-
this.trigger('interactionEnd', ev);
|
2541
|
+
handleInteractionEnd: function(ev, isCancelled) {
|
2542
|
+
this.trigger('interactionEnd', ev, isCancelled || false);
|
2477
2543
|
},
|
2478
2544
|
|
2479
2545
|
|
@@ -2500,12 +2566,16 @@ var DragListener = FC.DragListener = Class.extend(ListenerMixin, {
|
|
2500
2566
|
touchStartIgnores--; // and we don't want this to fire immediately, so ignore.
|
2501
2567
|
}
|
2502
2568
|
else {
|
2503
|
-
_this.endInteraction(ev);
|
2569
|
+
_this.endInteraction(ev, true); // isCancelled=true
|
2504
2570
|
}
|
2505
2571
|
}
|
2506
2572
|
});
|
2507
2573
|
|
2508
|
-
|
2574
|
+
// listen to ALL scroll actions on the page
|
2575
|
+
if (
|
2576
|
+
!bindAnyScroll(this.handleTouchScrollProxy) && // hopefully this works and short-circuits the rest
|
2577
|
+
this.scrollEl // otherwise, attach a single handler to this
|
2578
|
+
) {
|
2509
2579
|
this.listenTo(this.scrollEl, 'scroll', this.handleTouchScroll);
|
2510
2580
|
}
|
2511
2581
|
}
|
@@ -2526,8 +2596,10 @@ var DragListener = FC.DragListener = Class.extend(ListenerMixin, {
|
|
2526
2596
|
unbindHandlers: function() {
|
2527
2597
|
this.stopListeningTo($(document));
|
2528
2598
|
|
2599
|
+
// unbind scroll listening
|
2600
|
+
unbindAnyScroll(this.handleTouchScrollProxy);
|
2529
2601
|
if (this.scrollEl) {
|
2530
|
-
this.stopListeningTo(this.scrollEl);
|
2602
|
+
this.stopListeningTo(this.scrollEl, 'scroll');
|
2531
2603
|
}
|
2532
2604
|
},
|
2533
2605
|
|
@@ -2660,7 +2732,7 @@ var DragListener = FC.DragListener = Class.extend(ListenerMixin, {
|
|
2660
2732
|
// if the drag is being initiated by touch, but a scroll happens before
|
2661
2733
|
// the drag-initiating delay is over, cancel the drag
|
2662
2734
|
if (!this.isDragging) {
|
2663
|
-
this.endInteraction(ev);
|
2735
|
+
this.endInteraction(ev, true); // isCancelled=true
|
2664
2736
|
}
|
2665
2737
|
},
|
2666
2738
|
|
@@ -3312,7 +3384,7 @@ var MouseFollower = Class.extend(ListenerMixin, {
|
|
3312
3384
|
/* An abstract class comprised of a "grid" of areas that each represent a specific datetime
|
3313
3385
|
----------------------------------------------------------------------------------------------------------------------*/
|
3314
3386
|
|
3315
|
-
var Grid = FC.Grid = Class.extend(ListenerMixin, {
|
3387
|
+
var Grid = FC.Grid = Class.extend(ListenerMixin, MouseIgnorerMixin, {
|
3316
3388
|
|
3317
3389
|
view: null, // a View object
|
3318
3390
|
isRTL: null, // shortcut to the view's isRTL option
|
@@ -3345,6 +3417,9 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, {
|
|
3345
3417
|
this.view = view;
|
3346
3418
|
this.isRTL = view.opt('isRTL');
|
3347
3419
|
this.elsByFill = {};
|
3420
|
+
|
3421
|
+
this.dayDragListener = this.buildDayDragListener();
|
3422
|
+
this.initMouseIgnoring();
|
3348
3423
|
},
|
3349
3424
|
|
3350
3425
|
|
@@ -3480,12 +3555,8 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, {
|
|
3480
3555
|
this.el = el;
|
3481
3556
|
preventSelection(el);
|
3482
3557
|
|
3483
|
-
|
3484
|
-
|
3485
|
-
}
|
3486
|
-
else {
|
3487
|
-
this.bindDayHandler('mousedown', this.dayMousedown);
|
3488
|
-
}
|
3558
|
+
this.bindDayHandler('touchstart', this.dayTouchStart);
|
3559
|
+
this.bindDayHandler('mousedown', this.dayMousedown);
|
3489
3560
|
|
3490
3561
|
// attach event-element-related handlers. in Grid.events
|
3491
3562
|
// same garbage collection note as above.
|
@@ -3563,16 +3634,24 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, {
|
|
3563
3634
|
|
3564
3635
|
// Process a mousedown on an element that represents a day. For day clicking and selecting.
|
3565
3636
|
dayMousedown: function(ev) {
|
3566
|
-
this.
|
3567
|
-
|
3568
|
-
|
3569
|
-
|
3637
|
+
if (!this.isIgnoringMouse) {
|
3638
|
+
this.dayDragListener.startInteraction(ev, {
|
3639
|
+
//distance: 5, // needs more work if we want dayClick to fire correctly
|
3640
|
+
});
|
3641
|
+
}
|
3570
3642
|
},
|
3571
3643
|
|
3572
3644
|
|
3573
3645
|
dayTouchStart: function(ev) {
|
3574
|
-
this.
|
3575
|
-
|
3646
|
+
var view = this.view;
|
3647
|
+
|
3648
|
+
// HACK to prevent a user's clickaway for unselecting a range or an event
|
3649
|
+
// from causing a dayClick.
|
3650
|
+
if (view.isSelected || view.selectedEvent) {
|
3651
|
+
this.tempIgnoreMouse();
|
3652
|
+
}
|
3653
|
+
|
3654
|
+
this.dayDragListener.startInteraction(ev, {
|
3576
3655
|
delay: this.view.opt('longPressDelay')
|
3577
3656
|
});
|
3578
3657
|
},
|
@@ -3590,10 +3669,10 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, {
|
|
3590
3669
|
// this listener tracks a mousedown on a day element, and a subsequent drag.
|
3591
3670
|
// if the drag ends on the same day, it is a 'dayClick'.
|
3592
3671
|
// if 'selectable' is enabled, this listener also detects selections.
|
3593
|
-
var dragListener =
|
3672
|
+
var dragListener = new HitDragListener(this, {
|
3594
3673
|
scroll: view.opt('dragScroll'),
|
3595
3674
|
interactionStart: function() {
|
3596
|
-
dayClickHit = dragListener.origHit;
|
3675
|
+
dayClickHit = dragListener.origHit; // for dayClick, where no dragging happens
|
3597
3676
|
},
|
3598
3677
|
dragStart: function() {
|
3599
3678
|
view.unselect(); // since we could be rendering a new selection, we want to clear any old one
|
@@ -3626,20 +3705,24 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, {
|
|
3626
3705
|
_this.unrenderSelection();
|
3627
3706
|
enableCursor();
|
3628
3707
|
},
|
3629
|
-
interactionEnd: function(ev) {
|
3630
|
-
if (
|
3631
|
-
|
3632
|
-
|
3633
|
-
_this.
|
3634
|
-
|
3635
|
-
|
3636
|
-
|
3637
|
-
|
3638
|
-
|
3639
|
-
|
3708
|
+
interactionEnd: function(ev, isCancelled) {
|
3709
|
+
if (!isCancelled) {
|
3710
|
+
if (
|
3711
|
+
dayClickHit &&
|
3712
|
+
!_this.isIgnoringMouse // see hack in dayTouchStart
|
3713
|
+
) {
|
3714
|
+
view.triggerDayClick(
|
3715
|
+
_this.getHitSpan(dayClickHit),
|
3716
|
+
_this.getHitEl(dayClickHit),
|
3717
|
+
ev
|
3718
|
+
);
|
3719
|
+
}
|
3720
|
+
if (selectionSpan) {
|
3721
|
+
// the selection will already have been rendered. just report it
|
3722
|
+
view.reportSelection(selectionSpan, ev);
|
3723
|
+
}
|
3724
|
+
enableCursor();
|
3640
3725
|
}
|
3641
|
-
enableCursor();
|
3642
|
-
_this.dayDragListener = null;
|
3643
3726
|
}
|
3644
3727
|
});
|
3645
3728
|
|
@@ -3651,9 +3734,8 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, {
|
|
3651
3734
|
// Useful for when public API methods that result in re-rendering are invoked during a drag.
|
3652
3735
|
// Also useful for when touch devices misbehave and don't fire their touchend.
|
3653
3736
|
clearDragListeners: function() {
|
3654
|
-
|
3655
|
-
|
3656
|
-
}
|
3737
|
+
this.dayDragListener.endInteraction();
|
3738
|
+
|
3657
3739
|
if (this.segDragListener) {
|
3658
3740
|
this.segDragListener.endInteraction(); // will clear this.segDragListener
|
3659
3741
|
}
|
@@ -4113,15 +4195,11 @@ Grid.mixin({
|
|
4113
4195
|
|
4114
4196
|
// Attaches event-element-related handlers to the container element and leverage bubbling
|
4115
4197
|
bindSegHandlers: function() {
|
4116
|
-
|
4117
|
-
|
4118
|
-
|
4119
|
-
|
4120
|
-
|
4121
|
-
this.bindSegHandler('mouseleave', this.handleSegMouseout);
|
4122
|
-
this.bindSegHandler('mousedown', this.handleSegMousedown);
|
4123
|
-
}
|
4124
|
-
|
4198
|
+
this.bindSegHandler('touchstart', this.handleSegTouchStart);
|
4199
|
+
this.bindSegHandler('touchend', this.handleSegTouchEnd);
|
4200
|
+
this.bindSegHandler('mouseenter', this.handleSegMouseover);
|
4201
|
+
this.bindSegHandler('mouseleave', this.handleSegMouseout);
|
4202
|
+
this.bindSegHandler('mousedown', this.handleSegMousedown);
|
4125
4203
|
this.bindSegHandler('click', this.handleSegClick);
|
4126
4204
|
},
|
4127
4205
|
|
@@ -4149,8 +4227,12 @@ Grid.mixin({
|
|
4149
4227
|
|
4150
4228
|
// Updates internal state and triggers handlers for when an event element is moused over
|
4151
4229
|
handleSegMouseover: function(seg, ev) {
|
4152
|
-
if (
|
4230
|
+
if (
|
4231
|
+
!this.isIgnoringMouse &&
|
4232
|
+
!this.mousedOverSeg
|
4233
|
+
) {
|
4153
4234
|
this.mousedOverSeg = seg;
|
4235
|
+
seg.el.addClass('fc-allow-mouse-resize');
|
4154
4236
|
this.view.trigger('eventMouseover', seg.el[0], seg.event, ev);
|
4155
4237
|
}
|
4156
4238
|
},
|
@@ -4164,11 +4246,24 @@ Grid.mixin({
|
|
4164
4246
|
if (this.mousedOverSeg) {
|
4165
4247
|
seg = seg || this.mousedOverSeg; // if given no args, use the currently moused-over segment
|
4166
4248
|
this.mousedOverSeg = null;
|
4249
|
+
seg.el.removeClass('fc-allow-mouse-resize');
|
4167
4250
|
this.view.trigger('eventMouseout', seg.el[0], seg.event, ev);
|
4168
4251
|
}
|
4169
4252
|
},
|
4170
4253
|
|
4171
4254
|
|
4255
|
+
handleSegMousedown: function(seg, ev) {
|
4256
|
+
var isResizing = this.startSegResize(seg, ev, { distance: 5 });
|
4257
|
+
|
4258
|
+
if (!isResizing && this.view.isEventDraggable(seg.event)) {
|
4259
|
+
this.buildSegDragListener(seg)
|
4260
|
+
.startInteraction(ev, {
|
4261
|
+
distance: 5
|
4262
|
+
});
|
4263
|
+
}
|
4264
|
+
},
|
4265
|
+
|
4266
|
+
|
4172
4267
|
handleSegTouchStart: function(seg, ev) {
|
4173
4268
|
var view = this.view;
|
4174
4269
|
var event = seg.event;
|
@@ -4184,37 +4279,25 @@ Grid.mixin({
|
|
4184
4279
|
}
|
4185
4280
|
|
4186
4281
|
if (!isResizing && (isDraggable || isResizable)) { // allowed to be selected?
|
4187
|
-
this.clearDragListeners();
|
4188
4282
|
|
4189
4283
|
dragListener = isDraggable ?
|
4190
4284
|
this.buildSegDragListener(seg) :
|
4191
|
-
|
4192
|
-
// simply for the delay, so it can be selected.
|
4285
|
+
this.buildSegSelectListener(seg); // seg isn't draggable, but still needs to be selected
|
4193
4286
|
|
4194
|
-
dragListener.
|
4195
|
-
// if not previously selected, will fire after a delay. then, select the event
|
4196
|
-
if (!isSelected) {
|
4197
|
-
view.selectEvent(event);
|
4198
|
-
}
|
4199
|
-
};
|
4200
|
-
|
4201
|
-
dragListener.startInteraction(ev, {
|
4287
|
+
dragListener.startInteraction(ev, { // won't start if already started
|
4202
4288
|
delay: isSelected ? 0 : this.view.opt('longPressDelay') // do delay if not already selected
|
4203
4289
|
});
|
4204
4290
|
}
|
4205
|
-
},
|
4206
4291
|
|
4292
|
+
// a long tap simulates a mouseover. ignore this bogus mouseover.
|
4293
|
+
this.tempIgnoreMouse();
|
4294
|
+
},
|
4207
4295
|
|
4208
|
-
handleSegMousedown: function(seg, ev) {
|
4209
|
-
var isResizing = this.startSegResize(seg, ev, { distance: 5 });
|
4210
4296
|
|
4211
|
-
|
4212
|
-
|
4213
|
-
|
4214
|
-
|
4215
|
-
distance: 5
|
4216
|
-
});
|
4217
|
-
}
|
4297
|
+
handleSegTouchEnd: function(seg, ev) {
|
4298
|
+
// touchstart+touchend = click, which simulates a mouseover.
|
4299
|
+
// ignore this bogus mouseover.
|
4300
|
+
this.tempIgnoreMouse();
|
4218
4301
|
},
|
4219
4302
|
|
4220
4303
|
|
@@ -4223,7 +4306,6 @@ Grid.mixin({
|
|
4223
4306
|
// `dragOptions` are optional.
|
4224
4307
|
startSegResize: function(seg, ev, dragOptions) {
|
4225
4308
|
if ($(ev.target).is('.fc-resizer')) {
|
4226
|
-
this.clearDragListeners();
|
4227
4309
|
this.buildSegResizeListener(seg, $(ev.target).is('.fc-start-resizer'))
|
4228
4310
|
.startInteraction(ev, dragOptions);
|
4229
4311
|
return true;
|
@@ -4239,6 +4321,7 @@ Grid.mixin({
|
|
4239
4321
|
|
4240
4322
|
// Builds a listener that will track user-dragging on an event segment.
|
4241
4323
|
// Generic enough to work with any type of Grid.
|
4324
|
+
// Has side effect of setting/unsetting `segDragListener`
|
4242
4325
|
buildSegDragListener: function(seg) {
|
4243
4326
|
var _this = this;
|
4244
4327
|
var view = this.view;
|
@@ -4249,6 +4332,10 @@ Grid.mixin({
|
|
4249
4332
|
var mouseFollower; // A clone of the original element that will move with the mouse
|
4250
4333
|
var dropLocation; // zoned event date properties
|
4251
4334
|
|
4335
|
+
if (this.segDragListener) {
|
4336
|
+
return this.segDragListener;
|
4337
|
+
}
|
4338
|
+
|
4252
4339
|
// Tracks mouse movement over the *view's* coordinate map. Allows dragging and dropping between subcomponents
|
4253
4340
|
// of the view.
|
4254
4341
|
var dragListener = this.segDragListener = new HitDragListener(view, {
|
@@ -4268,6 +4355,10 @@ Grid.mixin({
|
|
4268
4355
|
mouseFollower.start(ev);
|
4269
4356
|
},
|
4270
4357
|
dragStart: function(ev) {
|
4358
|
+
if (dragListener.isTouch && !view.isEventSelected(event)) {
|
4359
|
+
// if not previously selected, will fire after a delay. then, select the event
|
4360
|
+
view.selectEvent(event);
|
4361
|
+
}
|
4271
4362
|
isDragging = true;
|
4272
4363
|
_this.handleSegMouseout(seg, ev); // ensure a mouseout on the manipulated event has been reported
|
4273
4364
|
_this.segDragStart(seg, ev);
|
@@ -4339,6 +4430,34 @@ Grid.mixin({
|
|
4339
4430
|
},
|
4340
4431
|
|
4341
4432
|
|
4433
|
+
// seg isn't draggable, but let's use a generic DragListener
|
4434
|
+
// simply for the delay, so it can be selected.
|
4435
|
+
// Has side effect of setting/unsetting `segDragListener`
|
4436
|
+
buildSegSelectListener: function(seg) {
|
4437
|
+
var _this = this;
|
4438
|
+
var view = this.view;
|
4439
|
+
var event = seg.event;
|
4440
|
+
|
4441
|
+
if (this.segDragListener) {
|
4442
|
+
return this.segDragListener;
|
4443
|
+
}
|
4444
|
+
|
4445
|
+
var dragListener = this.segDragListener = new DragListener({
|
4446
|
+
dragStart: function(ev) {
|
4447
|
+
if (dragListener.isTouch && !view.isEventSelected(event)) {
|
4448
|
+
// if not previously selected, will fire after a delay. then, select the event
|
4449
|
+
view.selectEvent(event);
|
4450
|
+
}
|
4451
|
+
},
|
4452
|
+
interactionEnd: function(ev) {
|
4453
|
+
_this.segDragListener = null;
|
4454
|
+
}
|
4455
|
+
});
|
4456
|
+
|
4457
|
+
return dragListener;
|
4458
|
+
},
|
4459
|
+
|
4460
|
+
|
4342
4461
|
// Called before event segment dragging starts
|
4343
4462
|
segDragStart: function(seg, ev) {
|
4344
4463
|
this.isDraggingSeg = true;
|
@@ -8100,8 +8219,7 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
|
|
8100
8219
|
// Binds DOM handlers to elements that reside outside the view container, such as the document
|
8101
8220
|
bindGlobalHandlers: function() {
|
8102
8221
|
this.listenTo($(document), 'mousedown', this.handleDocumentMousedown);
|
8103
|
-
this.listenTo($(document), 'touchstart', this.
|
8104
|
-
this.listenTo($(document), 'touchend', this.handleDocumentTouchEnd);
|
8222
|
+
this.listenTo($(document), 'touchstart', this.processUnselect);
|
8105
8223
|
},
|
8106
8224
|
|
8107
8225
|
|
@@ -8662,25 +8780,18 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
|
|
8662
8780
|
/* Mouse / Touch Unselecting (time range & event unselection)
|
8663
8781
|
------------------------------------------------------------------------------------------------------------------*/
|
8664
8782
|
// TODO: move consistently to down/start or up/end?
|
8783
|
+
// TODO: don't kill previous selection if touch scrolling
|
8665
8784
|
|
8666
8785
|
|
8667
8786
|
handleDocumentMousedown: function(ev) {
|
8668
|
-
|
8669
|
-
|
8670
|
-
if (!this.calendar.isTouch && isPrimaryMouseButton(ev)) {
|
8671
|
-
this.processRangeUnselect(ev);
|
8672
|
-
this.processEventUnselect(ev);
|
8787
|
+
if (isPrimaryMouseButton(ev)) {
|
8788
|
+
this.processUnselect(ev);
|
8673
8789
|
}
|
8674
8790
|
},
|
8675
8791
|
|
8676
8792
|
|
8677
|
-
|
8793
|
+
processUnselect: function(ev) {
|
8678
8794
|
this.processRangeUnselect(ev);
|
8679
|
-
},
|
8680
|
-
|
8681
|
-
|
8682
|
-
handleDocumentTouchEnd: function(ev) {
|
8683
|
-
// TODO: don't do this if because of touch-scrolling
|
8684
8795
|
this.processEventUnselect(ev);
|
8685
8796
|
},
|
8686
8797
|
|
@@ -8953,7 +9064,6 @@ var Calendar = FC.Calendar = Class.extend({
|
|
8953
9064
|
view: null, // current View object
|
8954
9065
|
header: null,
|
8955
9066
|
loadingLevel: 0, // number of simultaneous loading tasks
|
8956
|
-
isTouch: false,
|
8957
9067
|
|
8958
9068
|
|
8959
9069
|
// a lot of this class' OOP logic is scoped within this constructor function,
|
@@ -9000,10 +9110,6 @@ var Calendar = FC.Calendar = Class.extend({
|
|
9000
9110
|
]);
|
9001
9111
|
populateInstanceComputableOptions(this.options);
|
9002
9112
|
|
9003
|
-
this.isTouch = this.options.isTouch != null ?
|
9004
|
-
this.options.isTouch :
|
9005
|
-
FC.isTouch;
|
9006
|
-
|
9007
9113
|
this.viewSpecCache = {}; // somewhat unrelated
|
9008
9114
|
},
|
9009
9115
|
|
@@ -9460,10 +9566,6 @@ function Calendar_constructor(element, overrides) {
|
|
9460
9566
|
tm = options.theme ? 'ui' : 'fc';
|
9461
9567
|
element.addClass('fc');
|
9462
9568
|
|
9463
|
-
element.addClass(
|
9464
|
-
t.isTouch ? 'fc-touch' : 'fc-cursor'
|
9465
|
-
);
|
9466
|
-
|
9467
9569
|
if (options.isRTL) {
|
9468
9570
|
element.addClass('fc-rtl');
|
9469
9571
|
}
|
@@ -9506,7 +9608,7 @@ function Calendar_constructor(element, overrides) {
|
|
9506
9608
|
|
9507
9609
|
header.removeElement();
|
9508
9610
|
content.remove();
|
9509
|
-
element.removeClass('fc fc-
|
9611
|
+
element.removeClass('fc fc-ltr fc-rtl fc-unthemed ui-widget');
|
9510
9612
|
|
9511
9613
|
if (windowResizeProxy) {
|
9512
9614
|
$(window).unbind('resize', windowResizeProxy);
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* FullCalendar v2.7.
|
2
|
+
* FullCalendar v2.7.2 Stylesheet
|
3
3
|
* Docs & License: http://fullcalendar.io/
|
4
4
|
* (c) 2016 Adam Shaw
|
5
5
|
*/
|
@@ -551,24 +551,19 @@ temporary rendered events).
|
|
551
551
|
|
552
552
|
/* resizer (touch devices) */
|
553
553
|
|
554
|
-
.fc-
|
555
|
-
display: none;
|
554
|
+
.fc-event .fc-resizer {
|
555
|
+
display: none;
|
556
556
|
}
|
557
557
|
|
558
|
-
.fc-
|
558
|
+
.fc-event.fc-allow-mouse-resize .fc-resizer,
|
559
|
+
.fc-event.fc-selected .fc-resizer {
|
560
|
+
/* only show when hovering or selected (with touch) */
|
559
561
|
display: block;
|
560
562
|
}
|
561
563
|
|
564
|
+
/* hit area */
|
562
565
|
|
563
|
-
|
564
|
-
--------------------------------------------------------------------------------------------------*/
|
565
|
-
|
566
|
-
.fc-expander { /* fc-event is already position:relative */
|
567
|
-
position: relative;
|
568
|
-
}
|
569
|
-
|
570
|
-
.fc-touch .fc-expander:before,
|
571
|
-
.fc-touch .fc-event .fc-resizer:before {
|
566
|
+
.fc-event.fc-selected .fc-resizer:before {
|
572
567
|
/* 40x40 touch area */
|
573
568
|
content: "";
|
574
569
|
position: absolute;
|
@@ -645,9 +640,9 @@ temporary rendered events).
|
|
645
640
|
right: -1px; /* overcome border */
|
646
641
|
}
|
647
642
|
|
648
|
-
/* resizer (
|
643
|
+
/* resizer (mouse devices) */
|
649
644
|
|
650
|
-
.fc-
|
645
|
+
.fc-h-event.fc-allow-mouse-resize .fc-resizer {
|
651
646
|
width: 7px;
|
652
647
|
top: -1px; /* overcome top border */
|
653
648
|
bottom: -1px; /* overcome bottom border */
|
@@ -655,7 +650,7 @@ temporary rendered events).
|
|
655
650
|
|
656
651
|
/* resizer (touch devices) */
|
657
652
|
|
658
|
-
.fc-
|
653
|
+
.fc-h-event.fc-selected .fc-resizer {
|
659
654
|
/* 8x8 little dot */
|
660
655
|
border-radius: 4px;
|
661
656
|
border-width: 1px;
|
@@ -670,14 +665,14 @@ temporary rendered events).
|
|
670
665
|
}
|
671
666
|
|
672
667
|
/* left resizer */
|
673
|
-
.fc-
|
674
|
-
.fc-
|
668
|
+
.fc-ltr .fc-h-event.fc-selected .fc-start-resizer,
|
669
|
+
.fc-rtl .fc-h-event.fc-selected .fc-end-resizer {
|
675
670
|
margin-left: -4px; /* centers the 8x8 dot on the left edge */
|
676
671
|
}
|
677
672
|
|
678
673
|
/* right resizer */
|
679
|
-
.fc-
|
680
|
-
.fc-
|
674
|
+
.fc-ltr .fc-h-event.fc-selected .fc-end-resizer,
|
675
|
+
.fc-rtl .fc-h-event.fc-selected .fc-start-resizer {
|
681
676
|
margin-right: -4px; /* centers the 8x8 dot on the right edge */
|
682
677
|
}
|
683
678
|
|
@@ -720,14 +715,14 @@ be a descendant of the grid when it is being dragged.
|
|
720
715
|
/* resizer (cursor devices) */
|
721
716
|
|
722
717
|
/* left resizer */
|
723
|
-
.fc-
|
724
|
-
.fc-
|
718
|
+
.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,
|
719
|
+
.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer {
|
725
720
|
margin-left: -2px; /* to the day cell's edge */
|
726
721
|
}
|
727
722
|
|
728
723
|
/* right resizer */
|
729
|
-
.fc-
|
730
|
-
.fc-
|
724
|
+
.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,
|
725
|
+
.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer {
|
731
726
|
margin-right: -2px; /* to the day cell's edge */
|
732
727
|
}
|
733
728
|
|
@@ -1197,7 +1192,7 @@ be a descendant of the grid when it is being dragged.
|
|
1197
1192
|
|
1198
1193
|
/* resizer (cursor device) */
|
1199
1194
|
|
1200
|
-
.fc-
|
1195
|
+
.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer {
|
1201
1196
|
left: 0;
|
1202
1197
|
right: 0;
|
1203
1198
|
bottom: 0;
|
@@ -1210,13 +1205,13 @@ be a descendant of the grid when it is being dragged.
|
|
1210
1205
|
cursor: s-resize;
|
1211
1206
|
}
|
1212
1207
|
|
1213
|
-
.fc-
|
1208
|
+
.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer:after {
|
1214
1209
|
content: "=";
|
1215
1210
|
}
|
1216
1211
|
|
1217
1212
|
/* resizer (touch device) */
|
1218
1213
|
|
1219
|
-
.fc-
|
1214
|
+
.fc-time-grid-event.fc-selected .fc-resizer {
|
1220
1215
|
/* 10x10 dot */
|
1221
1216
|
border-radius: 5px;
|
1222
1217
|
border-width: 1px;
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fullcalendar.io-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.7.
|
4
|
+
version: 2.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dbackowski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jquery-rails
|
@@ -199,34 +199,63 @@ files:
|
|
199
199
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/1z/1zrToN9dimlnr4_kkdSJaL1-bVHicMTTNrygrZbiKmE.cache
|
200
200
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/2v/2v_enXedOXrk8P_wrCDrUgQBIv8vNep_8WXDcPpOAPk.cache
|
201
201
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/3F/3FwWB3dso0BiDgmo2rJzOmvMIR9ZsrWRwUOMCoWiczg.cache
|
202
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/3W/3WbiO2opoGMt4smgz4ErMgiOFlZmYHXHZbq32_eXrtI.cache
|
202
203
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/4v/4v74yXsoUNW6CAlmFbD2cqJk2BF_Iik0VWsa0h7Asg4.cache
|
203
204
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/5P/5PYCfeahBKl0iSuwOCidlYsY453rmAPP0ZNNcF67tqQ.cache
|
204
205
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/8M/8M1wIdL8evq90VzC-9RI5WSBnPSBA7qcqm-w3Wc5zQk.cache
|
206
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/8u/8uJrh-_1h6lrtAE5HZXCchMlGi-eOYO0SH_8WVJZoPQ.cache
|
205
207
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Bb/BbaJr2dSDQ-CoLaPJjh5WAi0189AJulGNC4lzLzVqkU.cache
|
208
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Fz/FzdbPGtKVpZ6nDkCriaiHgtArNZYx1ve40vYH158oRA.cache
|
206
209
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/G_/G_eBie5yKayIsXqQ2t82QYclCtPlk8e0C-Ypy3XrWNE.cache
|
210
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/H_/H_AMg2V0XStjP--4CexdXop4Rl3AiH8h4F3l-5i9CT4.cache
|
211
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Il/Il1-ZHURKrBas9WU2p1_KKDGRvtj8sQNdB7mn1rog0c.cache
|
207
212
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Ip/IpbN3-B8GDUhWNahkeuBlIwntRm5Fh8Qi0lR6NKGHsQ.cache
|
208
213
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/LG/LGLCJcDHu0oVE5-mPjAFByMRf17dScWmYXaA1YpjXlk.cache
|
209
214
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/LX/LX4btAhr-I8jRXhkKHzUc8Faqgbn3ys0o-D0oH6RNF4.cache
|
215
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Mn/MnSdFKH9CP9eCumnvcwL9GWVXpSGfgQ7YGfZm5OJXEg.cache
|
216
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Mo/MouVQPQhx90B7DGl-_xgHJifHwIKkM1LeSml6LgtgZ8.cache
|
217
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/O9/O9kviXg4hfnmcC54J0MRPgrAxRWKhnArPSXStaFeI30.cache
|
218
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Ou/OuRZHGf3ALp9XI4jfBOsIKsWVXndtRCtLUtwttuBnn8.cache
|
219
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/PD/PD2ZRbVk4maNW8CBg9qVygVgQNiMgV0GZmF5kFWJSxk.cache
|
210
220
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/PR/PRWglrXMxT3PuZ58zeNxSkFWaHzwxQVjccshc8XgGAk.cache
|
211
221
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Pb/PbAKo6a2uKJlGVrfzUz0IlxW9_OK0UAbTFZ4c-ebTfM.cache
|
212
222
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Py/PyLoN42JfBw2PAJQZv3EM_p0_zrlHUSZndlW8_9Sg-s.cache
|
213
223
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Qs/Qs_rijpiJFWJE4uEHuPBC1xfRqhkIrV0hMo8zDMGqTI.cache
|
214
224
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/RR/RRmYgXTQIf1QHewBaH8pACfSf3MJWSvj53F68VKeV1Q.cache
|
225
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Ro/RoiPZLDHochxcheNmbSflLdiYxeeeB0udVfH90fZMoY.cache
|
226
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Sz/Sz63PYjJ5GHyNpOgNmSivcjRrZvTOmKgqQUsVPZaoxw.cache
|
227
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/VO/VOwlPpsIlEdmiC7yzKRMfZpuG8kmaIKhqvONJvinJL0.cache
|
215
228
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/W6/W66CRiH8240LjHOrl-iP_PDAWagFYeHve-h7zmvogFY.cache
|
229
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/XI/XIB5kXcDIOqve-1dCw9NIeC2sTraclA8MZNWH-Eg-Gc.cache
|
230
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Yw/YwRQST2FfmjmkqBLEM28FNWkAL6PoXPsHrPFgiEdu2Q.cache
|
231
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Zy/Zy-fKbxo3HN5HVfV-NBmL6_YaD7p2XsAjHVOl80NSQA.cache
|
232
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/_h/_hYQrEbEMuil6MJp_KL2NcquW52dYHbDcwi3nu-w_VQ.cache
|
233
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/_n/_nN6c-BQXZ3AWLGpWMoCfVwF9HxNZP8mie_je7mQFxc.cache
|
216
234
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/ab/abLztZ6RIpy8ik3QuEnFS7pEaWu_8_d2Q_dUNAvZrlY.cache
|
235
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/c6/c6-OeCLASq51m3hakyLc_K0gBEz9shanluuN3Q0o0Pc.cache
|
217
236
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/cw/cwj7NsjtnwbSAyGolIZE4rjV7_MB071J3J9oUWmfJUA.cache
|
218
237
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/dL/dLsumIPJ1BortrKmtkZhkTLRQzKjIt7rvdT7wVKQEw8.cache
|
238
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/dY/dYXBxXudeAWyE96PzziKRH1EojVkAcdud7xSTHCzV18.cache
|
219
239
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/fQ/fQF4Nb2ST_kdJsW1xEb26JjDtN0M2L6MpgaJcwzKKjM.cache
|
240
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/fo/fode1W4tMDtFpZe5FeINHtwaGES8oc1bVkUyVE5hsE0.cache
|
241
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/gP/gPqmECuss-A-RLqP9madF_pKFWHZMwZwmiHDV5Ewr-E.cache
|
220
242
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/gT/gTvrFJh7Q5YvlX82v262_fyF5eenvG41sbxZ7MwqzMo.cache
|
221
243
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/gZ/gZSBHrt-mcVTM9d04uNDtPaoYzDMdcDekcn8gs4s1gs.cache
|
222
244
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/h8/h8vODE9RP0gop3pyz7IptAaJ6IV8k3HJtsEBCavNdzs.cache
|
245
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/iD/iDcTlKrrMYW3VupDw4ZcdL3NoDaCS2JiuR7vyOgtiqI.cache
|
223
246
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/lE/lEcIbUanrpnsXYY0JbuW2Py7GzFX32ZEINj8uT9TTXk.cache
|
224
247
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/lR/lR5vlgxKHWKnxT-F_nmvBQgz4Sjphq8sMQPauO3VkCQ.cache
|
225
248
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/m6/m6JlAtdEZ7WJ5YUPFDkb2aDjQmuN90hVNI5QRSbQOgU.cache
|
249
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/od/od1V62SeO78vztS37dh-CVvdiGW-MQxCsc117YltWwU.cache
|
250
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/r1/r1owugK9kIfLP5ZpsUBZ56ihX0DuIgmyeX4I41lApoY.cache
|
251
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/rN/rNXqW6x1bR11OVcs3nPGn0QWihc8p0XmzqRrp4oobTY.cache
|
226
252
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/rP/rPV-6Lrf4GGkK48HiRlW9KH7JDu8OSOvbr5NoId5G_Q.cache
|
253
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/sA/sAwLZYrHoysBb4qQ2gi8BThpDTvtKcxVlcvKz1CgGAw.cache
|
227
254
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/t1/t1LLf5xvHQaFFYEYGv4e0lW5m_B4wfMX8zjc6qJ2kx0.cache
|
228
255
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/tO/tOxC1i0yU7Pv0qeh6_DIEtXGQGqCu8PcR3ncjUnKAU0.cache
|
229
256
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/vK/vKmDWNjBPqpBw4W3ypKlJIbZi6I4pYXwRR5bMPrazXI.cache
|
257
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/wk/wkQHj4SqvRDNITiQxLPbntXY-TCW1crkQhN5BRMoGLk.cache
|
258
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/yF/yFmF8pySkf4pcqRNBs3J7MRa_iuiTV8g-GZOxbMcajE.cache
|
230
259
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/z1/z1ychbk3GbeFb0PifITr8-CRFFt0Hry2CNDPUk-O08g.cache
|
231
260
|
- spec/features/assets_spec.rb
|
232
261
|
- spec/spec_helper.rb
|
@@ -355,35 +384,64 @@ test_files:
|
|
355
384
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/5P/5PYCfeahBKl0iSuwOCidlYsY453rmAPP0ZNNcF67tqQ.cache
|
356
385
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/dL/dLsumIPJ1BortrKmtkZhkTLRQzKjIt7rvdT7wVKQEw8.cache
|
357
386
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/-T/-TF4g7ysiPxZNjb74I1D6AzI5XvgNMbr95XXvfHMHIo.cache
|
387
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/od/od1V62SeO78vztS37dh-CVvdiGW-MQxCsc117YltWwU.cache
|
388
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/sA/sAwLZYrHoysBb4qQ2gi8BThpDTvtKcxVlcvKz1CgGAw.cache
|
358
389
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/vK/vKmDWNjBPqpBw4W3ypKlJIbZi6I4pYXwRR5bMPrazXI.cache
|
359
390
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/ab/abLztZ6RIpy8ik3QuEnFS7pEaWu_8_d2Q_dUNAvZrlY.cache
|
360
391
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/LX/LX4btAhr-I8jRXhkKHzUc8Faqgbn3ys0o-D0oH6RNF4.cache
|
392
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Zy/Zy-fKbxo3HN5HVfV-NBmL6_YaD7p2XsAjHVOl80NSQA.cache
|
361
393
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Ip/IpbN3-B8GDUhWNahkeuBlIwntRm5Fh8Qi0lR6NKGHsQ.cache
|
362
394
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/lR/lR5vlgxKHWKnxT-F_nmvBQgz4Sjphq8sMQPauO3VkCQ.cache
|
363
395
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/LG/LGLCJcDHu0oVE5-mPjAFByMRf17dScWmYXaA1YpjXlk.cache
|
396
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/PD/PD2ZRbVk4maNW8CBg9qVygVgQNiMgV0GZmF5kFWJSxk.cache
|
397
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/r1/r1owugK9kIfLP5ZpsUBZ56ihX0DuIgmyeX4I41lApoY.cache
|
364
398
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/0r/0rn-tU1eBUPgW0KozwYPjcPwoscBdQbePooRBwPnl5U.cache
|
399
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Mn/MnSdFKH9CP9eCumnvcwL9GWVXpSGfgQ7YGfZm5OJXEg.cache
|
365
400
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/cw/cwj7NsjtnwbSAyGolIZE4rjV7_MB071J3J9oUWmfJUA.cache
|
401
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/8u/8uJrh-_1h6lrtAE5HZXCchMlGi-eOYO0SH_8WVJZoPQ.cache
|
366
402
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/fQ/fQF4Nb2ST_kdJsW1xEb26JjDtN0M2L6MpgaJcwzKKjM.cache
|
367
403
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/8M/8M1wIdL8evq90VzC-9RI5WSBnPSBA7qcqm-w3Wc5zQk.cache
|
368
404
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/gT/gTvrFJh7Q5YvlX82v262_fyF5eenvG41sbxZ7MwqzMo.cache
|
405
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/H_/H_AMg2V0XStjP--4CexdXop4Rl3AiH8h4F3l-5i9CT4.cache
|
406
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/XI/XIB5kXcDIOqve-1dCw9NIeC2sTraclA8MZNWH-Eg-Gc.cache
|
407
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/wk/wkQHj4SqvRDNITiQxLPbntXY-TCW1crkQhN5BRMoGLk.cache
|
369
408
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/G_/G_eBie5yKayIsXqQ2t82QYclCtPlk8e0C-Ypy3XrWNE.cache
|
409
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/c6/c6-OeCLASq51m3hakyLc_K0gBEz9shanluuN3Q0o0Pc.cache
|
370
410
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/2v/2v_enXedOXrk8P_wrCDrUgQBIv8vNep_8WXDcPpOAPk.cache
|
371
411
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/RR/RRmYgXTQIf1QHewBaH8pACfSf3MJWSvj53F68VKeV1Q.cache
|
372
412
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/rP/rPV-6Lrf4GGkK48HiRlW9KH7JDu8OSOvbr5NoId5G_Q.cache
|
373
413
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/m6/m6JlAtdEZ7WJ5YUPFDkb2aDjQmuN90hVNI5QRSbQOgU.cache
|
414
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Mo/MouVQPQhx90B7DGl-_xgHJifHwIKkM1LeSml6LgtgZ8.cache
|
415
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/iD/iDcTlKrrMYW3VupDw4ZcdL3NoDaCS2JiuR7vyOgtiqI.cache
|
416
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/rN/rNXqW6x1bR11OVcs3nPGn0QWihc8p0XmzqRrp4oobTY.cache
|
374
417
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/h8/h8vODE9RP0gop3pyz7IptAaJ6IV8k3HJtsEBCavNdzs.cache
|
418
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/O9/O9kviXg4hfnmcC54J0MRPgrAxRWKhnArPSXStaFeI30.cache
|
375
419
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/4v/4v74yXsoUNW6CAlmFbD2cqJk2BF_Iik0VWsa0h7Asg4.cache
|
376
420
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/t1/t1LLf5xvHQaFFYEYGv4e0lW5m_B4wfMX8zjc6qJ2kx0.cache
|
421
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/3W/3WbiO2opoGMt4smgz4ErMgiOFlZmYHXHZbq32_eXrtI.cache
|
422
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/_n/_nN6c-BQXZ3AWLGpWMoCfVwF9HxNZP8mie_je7mQFxc.cache
|
423
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/VO/VOwlPpsIlEdmiC7yzKRMfZpuG8kmaIKhqvONJvinJL0.cache
|
424
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Il/Il1-ZHURKrBas9WU2p1_KKDGRvtj8sQNdB7mn1rog0c.cache
|
377
425
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Pb/PbAKo6a2uKJlGVrfzUz0IlxW9_OK0UAbTFZ4c-ebTfM.cache
|
426
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Yw/YwRQST2FfmjmkqBLEM28FNWkAL6PoXPsHrPFgiEdu2Q.cache
|
378
427
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/W6/W66CRiH8240LjHOrl-iP_PDAWagFYeHve-h7zmvogFY.cache
|
428
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Ro/RoiPZLDHochxcheNmbSflLdiYxeeeB0udVfH90fZMoY.cache
|
429
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/gP/gPqmECuss-A-RLqP9madF_pKFWHZMwZwmiHDV5Ewr-E.cache
|
379
430
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/z1/z1ychbk3GbeFb0PifITr8-CRFFt0Hry2CNDPUk-O08g.cache
|
431
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/fo/fode1W4tMDtFpZe5FeINHtwaGES8oc1bVkUyVE5hsE0.cache
|
432
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Sz/Sz63PYjJ5GHyNpOgNmSivcjRrZvTOmKgqQUsVPZaoxw.cache
|
380
433
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/1j/1jBm32Lhwj7n0HxpBGOR2Z9eCn883XjM94yW_nhGo7s.cache
|
434
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Ou/OuRZHGf3ALp9XI4jfBOsIKsWVXndtRCtLUtwttuBnn8.cache
|
381
435
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/PR/PRWglrXMxT3PuZ58zeNxSkFWaHzwxQVjccshc8XgGAk.cache
|
436
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/yF/yFmF8pySkf4pcqRNBs3J7MRa_iuiTV8g-GZOxbMcajE.cache
|
382
437
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/gZ/gZSBHrt-mcVTM9d04uNDtPaoYzDMdcDekcn8gs4s1gs.cache
|
383
438
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Py/PyLoN42JfBw2PAJQZv3EM_p0_zrlHUSZndlW8_9Sg-s.cache
|
384
439
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/3F/3FwWB3dso0BiDgmo2rJzOmvMIR9ZsrWRwUOMCoWiczg.cache
|
385
440
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Bb/BbaJr2dSDQ-CoLaPJjh5WAi0189AJulGNC4lzLzVqkU.cache
|
441
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Fz/FzdbPGtKVpZ6nDkCriaiHgtArNZYx1ve40vYH158oRA.cache
|
442
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/_h/_hYQrEbEMuil6MJp_KL2NcquW52dYHbDcwi3nu-w_VQ.cache
|
386
443
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/tO/tOxC1i0yU7Pv0qeh6_DIEtXGQGqCu8PcR3ncjUnKAU0.cache
|
444
|
+
- spec/dummy/tmp/cache/assets/sprockets/v3.0/dY/dYXBxXudeAWyE96PzziKRH1EojVkAcdud7xSTHCzV18.cache
|
387
445
|
- spec/dummy/config.ru
|
388
446
|
- spec/dummy/db/test.sqlite3
|
389
447
|
- spec/spec_helper.rb
|