summaryrefslogblamecommitdiffstats
path: root/application/views/scripts/event/index.phtml
blob: 555c6610bdc77a18de85ac9a2503c45073577f5e (plain) (tree)
1
2
3
4
5
6
7
8
9
      

                                                                     
       

                     

                                                     
 
                               
 
                                               
 
                                       
                                             
 

                                  
                                 
                                     
                                         
                                       

                                                               
                                
                                



                                                        






















                                                                       
   

                          

                                      

   






                                      
 
                                                            




                                                                                                                
 


                                                                                  
                                           




                                                                                  
                                                  
           
         

         
                          


                                                            

                                                
                                         
                                                  

                                                                  
                                                                     
                                  

                                                           
                                               
                                                  

                                                   
                                                          
                                               
                                                            
                                                     
                                                
                                                        
                                
                                                                                   
                                        
                                  



                                                                            
                                                                             

                             


                                                               


                                                                      
                             
                                
                                                                         
 







                                                                                                                                   
                                
                              
 
                                                                                         
 
                                                                                                                             

                                                                                    
                                                                                                                          
                                                           

                                          

                                                                                             


                                                                           
 
                                                                                                                                                              

                                                 


                                                                                                                                                           


                               
                            
                                                                                                   
 
                                                                                                                                          

                                                 
                                                                                                                            



                                           
                          
 
                                                                       




                                                                                                             







                                                                      

                                 
                    
                                                                
                            

                                                               
                                                                                                                                                                                            

                              
 
                                                             
                    




                                                               
                           

                                      
                            







                                                                                                                                                                                                                                                                                     
                                                                                                                                                                                                        
    




                                                                                                                                                                                                                                                          


                                                               

                                           


                                                         

                                    


                                                         

                                        


                                                         


                                        

                       
    
 
                                          

                                                                                                                  
         


        
                
         






                                                                                         

      
                              
                               
                
                                             








                                                                                                                      





                                                                                         

                                                                                                                   





                                                                                         























                                                                                                                    
      

















                                                                                          
      
<head>
<title>Pool Control</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<h1>Pool Control</h1>

<div id='calendar'
	style='margin: 3em 0; font-size: 13px'></div>

<script type="text/javascript">

$(document).ready(function() {iniCalendar();});

var eventColor = {ev:null, color:null};
var selectedEvent = null; // keydown variable


// change border color of an event
  function eventSelected(event) {
	  if (eventColor.ev != null){
		  event.selected = false;
		  selectedEvent = null;
		  eventColor.ev.borderColor = eventColor.color;
		  }
	  event.selected = true;
	  selectedEvent = event;
	  eventColor.ev = event;
	  eventColor.color = event.borderColor;
	  event.borderColor = 'black';
	  $('#calendar').fullCalendar("rerenderEvents");

	  // dialog for deleting wdhEvents
		$(function() {
			$( "#dialog" ).dialog({
	            autoOpen: false,
	            width: 600,
				modal: true,
				title: 'Delete ' + selectedEvent.title,
	            buttons: {
	              "Cancel": function() { 
	                $(this).dialog("close");
	              }, 
	              "Delete just this Event": function() { 
	                $(this).dialog("close");
	                $("form:eq(1)").submit(); 
	              },
	              "Delete all Events": function() { 
	                $(this).dialog("close");
	                $("form:eq(2)").submit(); 
	              }
	            }
			});
		});
  }
  
// change view to addEvent
  function addEvent() {
	  self.location="/event/add/";
  }

	function showCalendar() {
		$("#calendar").show();
	}

	function hideCalendar() {
		$("#calendar").hide();
	}

// fetch all poolevents of the selected #poolselectbox value
	function fetchPoolEvents(element) {
		var poolID = $("#poolselectbox option:selected").val();
		$('#calendar').fullCalendar("removeEvents");
		$('#calendar').fullCalendar("addEventSource", "/event/eventlist/poolID/" + poolID);		
	}

// delete selected event by key del(8) or entf(46)
	$(document).keydown(function (e) {
        if (e.keyCode == 8 || e.keyCode == 46 && selectedEvent.selected == true) {
            if(selectedEvent.repeat == 0) {
            if (confirm("Are you sure to delete " + selectedEvent.title + " ?")) {
                self.location="/event/delete/eventID/" + selectedEvent.id;
                $('#calendar').fullCalendar( 'removeEvents', selectedEvent.id );
                $('#calendar').fullCalendar( 'rerenderEvents' );     
              }
            }else $( "#dialog" ).dialog('open'); {
          }
        }
      });

// initialize fullCalendar
	function iniCalendar() {
		
		var calendar = $('#calendar').fullCalendar({

			  // fullCalendar header
				header: {
				  default: 'week',
					left: 'title',
					center: 'prev,next today',
					right: 'agendaWeek,agendaDay'
				},

				// set some default options
				editable: true,
				allDaySlot: false,
				selectable: true,
				selectHelper: true,
				defaultView: 'agendaWeek',
				allDay : false,
				allowCalEventOverlap: false,
		    	overlapEventsSeparate: false,
				slotMinutes: 30,
				defaultEventMinutes: 30,
				
				dayClick: function( date, allDay, jsEvent, view ) {
					
				},

			  eventMouseover: function( event, jsEvent, view ) {
			   }, 
			    
			  eventMouseout: function( event, jsEvent, view ) {  
			   },

			  /* 
			  * TO DO: implement dblclick-function 
			  *
			  dblclick: function( event, jsEvent, view ) {
					  alert('test');
			   },
			   */
				
			   eventClick: function( event, jsEvent, view ) {

				  /*
				  * TO DO: export eventEdit in dblClick function
				  *
					*event.dblclick(alert('test'););
					*$('#calendar').dblclick(function() { self.location = "/event/edit/eventID/" + event.id;});
					*/

					eventSelected(event);
			        
			    },

			  select: function( startDate, endDate, allDay, jsEvent, view ) {

			    	  if (!confirm("Are you sure to add an Event from " + startDate + " to " + endDate + " ?")) {
			    		  $('#calendar').fullCalendar( 'unselect' );
					    }else {
						    self.location="/event/add/evstart/" + startDate + "/evend/" + endDate;
							  }
					  
			    },
			   
			  eventResize: function( event, dayDelta, minuteDelta, revertFunc ) {
			    	  
			    	  if (minuteDelta > 0) { length = 'longer';
			    	  }else{ length = 'shorter'; }

			        if (!confirm( event.title + " is now " + minuteDelta + " minutes " + length +  ".\n\n" + "Are you sure about this change?")) {
			            revertFunc();
			        }else{
				        if (event.category == 'Boot' ) {revertFunc(); alert("You can´t change the EndTime of a BootEvent!");}
				        else if (event.category == 'Shutdown' ) {revertFunc(); alert("You can´t change the EndTime of a ShutdownEvent!");}
				        else $.post("/event/eventresize/evid/" + event.id + "/evend/" + event.end);
		              }

			    },
			    
			  eventDrop: function( event, dayDelta, minuteDelta, allDay, revertFunc ) {

			        if (!confirm(event.title + " was moved to " + event.start + "\n\n" + "Are you sure about this change?")) {
			            revertFunc();
			        }else{
  		            $.post("/event/eventmove/evid/" + event.id + "/evstart/" + event.start + "/evend/" + event.end);
			        	  }

			    },

			  

			  eventRender: function(event, element, view) {

			    	 
			    	/*
			    	* TO DO: Eventhandler löschen bei eventClick, da sich sonst das qtip bindet 
				    *
			    	element.qtip({
	                      content: 
	                        'Title: ' + event.title + '<br/>' +
	                        'Type: ' + event.category + '<br/>' +
	                        'Note: ' + event.note + '<br/>' +
	                        'Participants: ' + event.participants,
	                      show: 'mouseover',
	                      hide: 'mouseout'
	                      });
                    */
                    
			    	if (view.name == 'agendaWeek') {
	                    
                    }
			    	if (view.name == 'agendaDay') {
			    		element.find('.fc-event-title').append("<br/> Type: " + event.category + "<br/> Note: " + event.note + "<br/> Participants: " + event.participants);
                    }
			    },

				viewDisplay: function(view) {
                    
			    	if (view.name == 'agendaWeek') 
                    {
                    }
			    	if (view.name == 'agendaDay') 
                    {
	                  }
			    }
				      
			}); 
		
	// EventType Buttons
	$('.fc-header-center').append('<span id="lecture" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Lecture</span><span class="fc-button-effect"><span></span></span></span></span>');
	$('.fc-header-center').append('<span id="maintenance" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Maintenance</span><span class="fc-button-effect"><span></span></span></span></span>');
	$('.fc-header-center').append('<span id="boot" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Boot</span><span class="fc-button-effect"><span></span></span></span></span>');
	$('.fc-header-center').append('<span id="shutdown" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Shutdown</span><span class="fc-button-effect"><span></span></span></span></span>');
	
	// PoolSelectBox
    $('.fc-header-left').append('<form name="PoolSelectForm"><select id="poolselectbox" name="PoolSelectbox" onChange="fetchPoolEvents(this); "><option>Please choose a Pool</option></select></form>');
    
    // Add Button
    $('.fc-header-right').append('<span id="addEvent" class="fc-button fc-state-default fc-state-hover"><span class="fc-button-inner"><span class="fc-button-content">Add Event</span><span class="fc-button-effect"><span></span></span></span></span>');

   // Change Button-Style
   $("#lecture").click(function(){
		if($(this).hasClass("fc-state-active")) {
			$(this).removeClass("fc-state-active");
		} else {$(this).addClass("fc-state-active");}
		});
	$("#maintenance").click(function(){
	    if($(this).hasClass("fc-state-active")) {
	    	$(this).removeClass("fc-state-active");
	    } else {$(this).addClass("fc-state-active");}
	    });
	$("#boot").click(function(){
	    if($(this).hasClass("fc-state-active")) {
	    	$(this).removeClass("fc-state-active");
	    } else {$(this).addClass("fc-state-active");}
	    });
	$("#shutdown").click(function(){
	    if($(this).hasClass("fc-state-active")) {
	    	$(this).removeClass("fc-state-active");
	    } else {$(this).addClass("fc-state-active");}
	    });

	$("#addEvent").click(function(){
	    addEvent();
	    });
    

	//fetch poollist from pbs database
	$.get("/event/getpoollist/", function(getpoollistresult){$("#poolselectbox").append(getpoollistresult);});
	
	}

	

    		
</script>

<!-- delte wdhEvent dialog -->
<div id="dialog" style="display:none">
	<p>Do you want to delete any event occurring this event or just the selected?</p>
</div>


<br />
<br />
<div class='listelement'><?php
if(count($this->eventlist)>0) {
	?> <?php
	foreach ($this->poollist as $pool):?>
<div id='pool<?php echo $pool->getID(); ?>' style='display: none;'>
<h2><?php echo $pool->getTitle(); ?></h2>
	<?php if(!isset($this->eventlist[$pool->getID()])) {
		echo "This Pool hasn't events yet";
	} else { ?> <?php $poolEvents = $this->eventlist[$pool->getID()]; ?> <?php foreach ($poolEvents as $event): ?>
<div class='element'>
<div class='content'>
<div class='actions'><a
	href="<?php echo $this->url(
						array(
							'controller' => 'event',
							'action'     => 'edit',
							'eventID'   =>  $event['eventID']
						),
						'default',
						true);?>"><img src='/media/img/edit.png' alt='Edit Group' /></a> <a
	href="<?php echo $this->url(
						array(
							'controller' => 'event',
							'action'     => 'delete',
							'eventID'   =>  $event['eventID']
						),
						'default',
						true);?>"><img src='/media/img/delete.png' alt='Delete Group' /></a>
</div>
<div class='title'><?php echo $event['title']; ?></div>
						<?php if($event['category']) {
							?>
<div class='subtitle'><?php echo $event['category']; ?></div>
							<?php
						} else {
							?>
<div class='subtitle'>&nbsp;</div>
							<?php
						}
						?>
<div class='details'><label>Start Time:</label>
<div class='item'><?php echo date ('d F Y - H:i', strtotime($event['start'])); ?>&nbsp;</div>
</div>
<div class='details'><label>End Time:</label>
<div class='item'><?php echo date ('d F Y - H:i', strtotime($event['end'])); ?>&nbsp;</div>
</div>
<div class='details'><label>Participants:</label>
<div class='item'><?php echo $event['participants']; ?>&nbsp;</div>
</div>
<div class='details'><label>Membership:</label>
<div class='item'><?php echo $event['pbs_person_name']; ?>&nbsp;</div>
</div>
<div class='details'><label>BootOs:</label>
<div class='item'><?php echo $event['pbs_bootos_title']; ?>&nbsp;</div>
</div>
<div class='details'><label>Repeat:</label>
<div class='item'><?php if($event['repeat']) echo 'yes'; else echo 'no'; ?>&nbsp;</div>
</div>
<div class='details'><label>Immediate:</label>
<div class='item'><?php if($event['immediate']) echo 'yes'; else echo 'no'; ?>&nbsp;</div>
</div>
<div class='details'><label>Note:</label>
<div class='item'><?php echo $event['note']; ?>&nbsp;</div>
</div>
</div>
</div>
<div class='clear'></div>
<?php endforeach ?> <?php } ?></div>
<?php endforeach ?> <?php } ?></div>
<br />
<br />