JSFiddle - React, Tailwind, and code Playground

by spitfire378

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/1.6.4/fullcalendar.min.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/1.6.4/fullcalendar.css">
    <div class="container">
      <div class="row">
        <div class="col-md-3">
          <div id='external-events'>
            <h4>Scénarios</h4>
            <div class="single-scenario external-event"><div class='fleft name'>Scénario 1</div><div class="edit fright"><a href="#">Modifier</a></div><div class="clearer"></div></div>
          </div>
        </div>
        <div class="col-md-9">
          <div id='calendar'></div>
        </div>  
      </div>
    </div>

CSS

.container {
	margin-top: 30px;
}

.external-event {
	background: silver;
	color: #fff;
	cursor: pointer;
	padding: 2px 5px;
}

.fleft {
	float: left;
}

.fright {
	float: right;
}

.clearer {
	clear: both;
}

.single-scenario {
	margin-bottom: 10px;
	text-align: center;
}

JavaScript

$(document).ready(function() {


	/* initialize the external events
	-----------------------------------------------------------------*/

	$('#external-events div.external-event').each(function() {
	
		var eventSources = [{
			title		: 'event1',
			start		: '8:00:00',
			allDay 		: false
		},{
			title		: 'event2',
			start		: '10:00:00',
			allDay		: false
		}];
		
		$(this).data('eventObject', eventSources);
		
		$(this).draggable({
			zIndex: 999,
			revert: true,      
			revertDuration: 0, 
			start: function(event, ui) {
				$(this).children('.edit').hide();
				$(this).css('background-color', 'red' );
			},
			stop: function(event, ui) {
				$(this).children('.edit').show();
				$(this).css('background-color', '' );
			}			

		});
		
	});


	/* initialize the calendar
	-----------------------------------------------------------------*/
	
	$('#calendar').fullCalendar({
		header: {
			left: 'prev,next today',
			center: 'title',
			right: 'month,agendaWeek,agendaDay'
		},
		editable: false,
		selectable: false,
		droppable: true,
		drop: function(date, allDay) { 

			var month = date.getMonth() + 1;
			var day = date.getDate();
			var year = date.getFullYear();
			newdate = year + "-" + month + "-" + day;
		
			var originalEventObject = $(this).data('eventObject');
			var copiedEventObject = $.merge([], originalEventObject);

			for (var i = 0; i < copiedEventObject.length; i++) {
				copiedEventObject[i].start = newdate + ' ' + originalEventObject[i].start;
				console.log(copiedEventObject[i].start);
			}
			
			$('#calendar').fullCalendar('addEventSource', copiedEventObject, true);	
		}
	});
	
});