Fixing agenda display error, improving twig templating

skala
Julio Montoya 12 years ago
parent a188992c9b
commit ac5e8efcf4
  1. 7
      main/calendar/agenda_js.php
  2. 368
      main/template/default/agenda/month.tpl

@ -57,7 +57,7 @@ if (!empty($group_id)) {
$interbreadcrumb[] = array ("url"=>"../group/group_space.php?gidReq=".$group_id, "name"=> get_lang('GroupSpace').' '.$group_properties['name']);
}
$tpl = new Template(get_lang('Agenda'));
$tpl = new Template(get_lang('Agenda'));
$tpl->assign('use_google_calendar', 0);
@ -186,7 +186,4 @@ if ((api_is_allowed_to_edit() || $is_group_tutor) && $course_code != '-1' && $ty
$select = $agenda->construct_not_selected_select_form($group_list, $user_list);
$tpl->assign('visible_to', $select);
}
$content = $tpl->fetch('default/agenda/month.tpl');
$tpl->assign('content', $content);
//Loading main Chamilo 1 col template
$tpl->display_one_col_template();
$tpl->display('default/agenda/month.tpl');

@ -1,3 +1,5 @@
{% extends "default/layout/layout_1_col.tpl" %}
{% block content %}
<script>
function checkLength( o, n, min, max ) {
if ( o.val().length > max || o.val().length < min ) {
@ -10,7 +12,7 @@ function checkLength( o, n, min, max ) {
}
}
function clean_user_select() {
//Cleans the selected attr
//Cleans the selected attr
$('#users_to_send_id')
.find('option')
.removeAttr('selected')
@ -22,99 +24,99 @@ $(document).ready(function() {
/*$("body").delegate(".datetime", "focusin", function(){
$(this).datepicker({
stepMinute: 10,
stepMinute: 10,
dateFormat: 'dd/mm/yy',
timeFormat: 'hh:mm:ss'
timeFormat: 'hh:mm:ss'
});
});*/
var date = new Date();
var d = date.getDate();
var m = date.getMonth()+1;
var y = date.getFullYear();
$("#dialog-form").dialog({
autoOpen: false,
modal : false,
width : 580,
modal : false,
width : 580,
height : 480,
zIndex: 20000 // added because of qtip2
});
$("#simple-dialog-form").dialog({
autoOpen: false,
modal : false,
width : 580,
modal : false,
width : 580,
height : 480,
zIndex: 20000 // added because of qtip2
});
var title = $( "#title" ),
content = $( "#content" ),
allFields = $( [] ).add( title ).add( content ), tips = $(".validateTips");
content = $( "#content" ),
allFields = $( [] ).add( title ).add( content ), tips = $(".validateTips");
$('#users_to_send_id').bind('change', function() {
var selected_counts = $("#users_to_send_id option:selected").size();
//alert(selected_counts);
/* if (selected_counts >= 1 && $("#users_to_send_id option[value='everyone']").attr('selected') == 'selected') {
//alert(selected_counts);
/* if (selected_counts >= 1 && $("#users_to_send_id option[value='everyone']").attr('selected') == 'selected') {
clean_user_select();
$('#users_to_send_id option').eq(0).attr('selected', 'selected');
//deleting the everyone
$("#users_to_send_id").trigger("liszt:updated");
deleted_items = true;
}*/
$("#users_to_send_id").trigger("liszt:updated");
$("#users_to_send_id").trigger("liszt:updated");
/*
if (selected_counts >= 1) {
$('#users_to_send_id option').eq(0).removeAttr('selected');
if (selected_counts >= 1) {
$('#users_to_send_id option').eq(0).removeAttr('selected');
}
*/
*/
//clean_user_select();
//$("#users_to_send_id").trigger("liszt:updated");
//alert($("#users_to_send_id option[value='everyone']").attr('selected'));
if ($("#users_to_send_id option[value='everyone']").attr('selected') == 'selected') {
//clean_user_select();
//$('#users_to_send_id option').eq(0).attr('selected', 'selected');
//$("#users_to_send_id").trigger("liszt:updated");
//$("#users_to_send_id").trigger("liszt:updated");
}
});
$.datepicker.setDefaults( $.datepicker.regional[region_value] );
var calendar = $('#calendar').fullCalendar({
header: {
left: 'today prev,next',
center: 'title',
right: 'month,agendaWeek,agendaDay',
},
right: 'month,agendaWeek,agendaDay',
},
{% if use_google_calendar == 1 %}
eventSources: [
'{{ google_calendar_url }}', //if you want to add more just add URL in this array
{
className: 'gcal-event', // an option!
className: 'gcal-event', // an option!
}
],
{% endif %}
buttonText: {{ button_text }},
buttonText: {{ button_text }},
monthNames: {{ month_names }},
monthNamesShort:{{ month_names_short }},
dayNames: {{ day_names }},
dayNamesShort: {{ day_names_short }},
dayNamesShort: {{ day_names_short }},
firstHour: 8,
firstDay: 1,
firstDay: 1,
selectable : true,
selectHelper: true,
viewDisplay: function(view) {
/* When changing the view update the qtips */
/* When changing the view update the qtips */
var api = $('.qtip').qtip('api'); // Access the API of the first tooltip on the page
if (api) {
api.destroy();
@ -123,139 +125,139 @@ $(document).ready(function() {
},
//add event
select: function(start, end, allDay, jsEvent, view) {
//Removing UTC stuff
//Removing UTC stuff
var start_date = $.datepicker.formatDate("yy-mm-dd", start) + " " + start.toTimeString().substr(0, 8);
var end_date = $.datepicker.formatDate("yy-mm-dd", end) + " " + end.toTimeString().substr(0, 8);
$('#visible_to_input').show();
$('#add_as_announcement_div').show();
$('#add_as_announcement_div').show();
$('#visible_to_read_only').hide();
//Cleans the selected attr
//Cleans the selected attr
clean_user_select();
//Sets the 1st item selected by default
//$('#users_to_send_id option').eq(0).attr('selected', 'selected');
//Update chz-select
$("#users_to_send_id").trigger("liszt:updated");
if ({{ can_add_events }} == 1) {
if ({{ can_add_events }} == 1) {
var url = '{{ web_agenda_ajax_url }}&a=add_event&start='+start_date+'&end='+end_date+'&all_day='+allDay+'&view='+view.name;
var start_date_value = $.datepicker.formatDate('{{ js_format_date }}', start);
var end_date_value = $.datepicker.formatDate('{{ js_format_date }}', end);
$('#start_date').html(start_date_value + " " + start.toTimeString().substr(0, 8));
if (view.name != 'month') {
$('#start_date').html(start_date_value + " " + start.toTimeString().substr(0, 8));
if (start.toDateString() == end.toDateString()) {
if (start.toDateString() == end.toDateString()) {
$('#end_date').html(' - '+end.toTimeString().substr(0, 8));
} else {
$('#end_date').html(' - '+start_date_value+" " + end.toTimeString().substr(0, 8));
}
} else {
$('#start_date').html(start_date_value);
$('#end_date').html(' ');
$('#end_date').html(' ');
}
$('#color_calendar').html('{{ type_label }}');
$('#color_calendar').removeClass('group_event');
$('#color_calendar').addClass('label_tag');
$('#color_calendar').addClass('label_tag');
$('#color_calendar').addClass('{{ type_event_class }}');
allFields.removeClass( "ui-state-error" );
$("#dialog-form").dialog("open");
$("#dialog-form").dialog({
$("#dialog-form").dialog("open");
$("#dialog-form").dialog({
buttons: {
'{{ "Add"|get_lang}}' : function() {
var bValid = true;
bValid = bValid && checkLength( title, "title", 1, 255 );
//bValid = bValid && checkLength( content, "content", 1, 255 );
var params = $("#add_event_form").serialize();
var params = $("#add_event_form").serialize();
$.ajax({
url: url+'&'+params,
success:function(data) {
calendar.fullCalendar("refetchEvents");
calendar.fullCalendar("rerenderEvents");
$("#dialog-form").dialog("close");
}
$("#dialog-form").dialog("close");
}
});
},
},
close: function() {
},
close: function() {
$("#title").attr('value', '');
$("#content").attr('value', '');
$("#content").attr('value', '');
}
});
});
//Don't follow the link
return false;
calendar.fullCalendar('unselect');
//Reload events
calendar.fullCalendar("refetchEvents");
calendar.fullCalendar("rerenderEvents");
calendar.fullCalendar("rerenderEvents");
}
},
eventRender: function(event, element) {
},
eventRender: function(event, element) {
if (event.attachment) {
element.qtip({
element.qtip({
hide: {
delay: 2000
},
content: event.attachment,
position: { at:'top right' , my:'bottom right'},
position: { at:'top right' , my:'bottom right'},
}).removeData('qtip'); // this is an special hack to add multiple qtip in the same target
}
if (event.description) {
element.qtip({
hide: {
delay: 2000
},
content: event.description,
position: { at:'top left' , my:'bottom left'},
});
position: { at:'top left' , my:'bottom left'},
});
}
},
eventClick: function(calEvent, jsEvent, view) {
eventClick: function(calEvent, jsEvent, view) {
//var start_date = Math.round(calEvent.start.getTime() / 1000);
var start_date = $.datepicker.formatDate("yy-mm-dd", calEvent.start) + " " + calEvent.start.toTimeString().substr(0, 8);
if (calEvent.allDay == 1) {
var end_date = '';
} else {
var end_date = '';
if (calEvent.allDay == 1) {
var end_date = '';
} else {
var end_date = '';
if (calEvent.end && calEvent.end != '') {
//var end_date = Math.round(calEvent.end.getTime() / 1000);
//var end_date = Math.round(calEvent.end.getTime() / 1000);
var end_date = $.datepicker.formatDate("yy-mm-dd", calEvent.end) + " " + calEvent.end.toTimeString().substr(0, 8);
}
}
//edit event
if (calEvent.editable) {
$('#visible_to_input').hide();
if (calEvent.editable) {
$('#visible_to_input').hide();
$('#add_as_announcement_div').hide();
{% if type != 'admin' %}
$('#visible_to_read_only').show();
$('#visible_to_read_only').show();
$("#visible_to_read_only_users").html(calEvent.sent_to);
{% endif %}
$('#color_calendar').html('{{type_label}}');
$('#color_calendar').addClass('label_tag');
$('#color_calendar').html('{{type_label}}');
$('#color_calendar').addClass('label_tag');
$('#color_calendar').removeClass('course_event');
$('#color_calendar').removeClass('personal_event');
$('#color_calendar').removeClass('group_event');
$('#color_calendar').addClass(calEvent.type+'_event');
$('#color_calendar').removeClass('group_event');
$('#color_calendar').addClass(calEvent.type+'_event');
my_start_month = calEvent.start.getMonth() +1;
$('#start_date').html(calEvent.start.getDate() +"/"+ my_start_month +"/"+calEvent.start.getFullYear());
if (end_date != '') {
@ -264,73 +266,73 @@ $(document).ready(function() {
}
$("#title").attr('value', calEvent.title);
$("#content").attr('value', calEvent.description);
$("#content").attr('value', calEvent.description);
allFields.removeClass( "ui-state-error" );
$("#dialog-form").dialog("open");
var url = '{{web_agenda_ajax_url}}&a=edit_event&id='+calEvent.id+'&start='+start_date+'&end='+end_date+'&all_day='+calEvent.allDay+'&view='+view.name;
var delete_url = '{{web_agenda_ajax_url}}&a=delete_event&id='+calEvent.id;
$("#dialog-form").dialog({
buttons: {
'{{ "ExportiCalConfidential"|get_lang }}' : function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=confidential";
window.location.href = url;
'{{ "ExportiCalConfidential"|get_lang }}' : function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=confidential";
window.location.href = url;
},
'{{ "ExportiCalPrivate"|get_lang }}': function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=private";
'{{ "ExportiCalPrivate"|get_lang }}': function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=private";
window.location.href = url;
},
'{{ "ExportiCalPublic"|get_lang }}': function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=public";
'{{ "ExportiCalPublic"|get_lang }}': function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=public";
window.location.href = url;
},
},
'{{ "Edit"|get_lang }}' : function() {
var bValid = true;
bValid = bValid && checkLength( title, "title", 1, 255 );
var params = $("#add_event_form").serialize();
bValid = bValid && checkLength( title, "title", 1, 255 );
var params = $("#add_event_form").serialize();
$.ajax({
url: url+'&'+params,
success:function() {
calEvent.title = $("#title").val();
calEvent.start = calEvent.start;
calEvent.end = calEvent.end;
calEvent.end = calEvent.end;
calEvent.allDay = calEvent.allDay;
calEvent.description = $("#content").val();
calendar.fullCalendar('updateEvent',
calendar.fullCalendar('updateEvent',
calEvent,
true // make the event "stick"
);
$("#dialog-form").dialog("close");
}
$("#dialog-form").dialog("close");
}
});
},
'{{ "Delete"|get_lang }}': function() {
'{{ "Delete"|get_lang }}': function() {
$.ajax({
url: delete_url,
success:function() {
calendar.fullCalendar('removeEvents',
calEvent
);
calendar.fullCalendar('removeEvents',
calEvent
);
calendar.fullCalendar("refetchEvents");
calendar.fullCalendar("rerenderEvents");
$("#dialog-form").dialog( "close" );
$("#dialog-form").dialog( "close" );
}
});
}
},
close: function() {
},
close: function() {
$("#title").attr('value', '');
$("#content").attr('value', '');
$("#content").attr('value', '');
}
});
} else { //simple form
} else { //simple form
my_start_month = calEvent.start.getMonth() +1;
$('#simple_start_date').html(calEvent.start.getDate() +"/"+ my_start_month +"/"+calEvent.start.getFullYear());
@ -339,34 +341,34 @@ $(document).ready(function() {
$('#simple_start_date').html(calEvent.start.getDate() +"/"+ my_start_month +"/"+calEvent.start.getFullYear() +" - "+calEvent.start.toLocaleTimeString());
$('#simple_end_date').html(' '+calEvent.end.getDate() +"/"+ my_end_month +"/"+calEvent.end.getFullYear() +" - "+calEvent.end.toLocaleTimeString());
}
$("#simple_title").html(calEvent.title);
$("#simple_content").html(calEvent.description);
$("#simple_content").html(calEvent.description);
$("#simple-dialog-form").dialog("open");
$("#simple-dialog-form").dialog({
buttons: {
'{{"ExportiCalConfidential"|get_lang}}' : function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=confidential";
'{{"ExportiCalConfidential"|get_lang}}' : function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=confidential";
window.location.href = url;
},
'{{"ExportiCalPrivate"|get_lang}}': function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=private";
'{{"ExportiCalPrivate"|get_lang}}': function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=private";
window.location.href = url;
},
'{{"ExportiCalPublic"|get_lang}}': function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=public";
'{{"ExportiCalPublic"|get_lang}}': function() {
url = "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=public";
window.location.href = url;
}
}
});
}
},
editable: true,
editable: true,
events: "{{web_agenda_ajax_url}}&a=get_events",
eventDrop: function(event, day_delta, minute_delta, all_day, revert_func) {
eventDrop: function(event, day_delta, minute_delta, all_day, revert_func) {
$.ajax({
url: '{{web_agenda_ajax_url}}',
data: {
@ -380,36 +382,36 @@ $(document).ready(function() {
data: {
a:'resize_event', id: event.id, day_delta: day_delta, minute_delta: minute_delta
}
});
});
},
axisFormat: 'HH(:mm)',
timeFormat: 'HH:mm{ - HH:mm}',
timeFormat: 'HH:mm{ - HH:mm}',
loading: function(bool) {
if (bool) $('#loading').show();
else $('#loading').hide();
}
});
}
});
});
</script>
<div id="simple-dialog-form" style="display:none;">
<div style="width:500px">
<form name="form-simple" class="form-vertical" >
<form name="form-simple" class="form-vertical" >
<div class="control-group">
<label class="control-label"><b>{{"Date"|get_lang}}</b></label>
<label class="control-label"><b>{{"Date"|get_lang}}</b></label>
<div class="controls">
<span id="simple_start_date"></span><span id="simple_end_date"></span>
</div>
<span id="simple_start_date"></span><span id="simple_end_date"></span>
</div>
</div>
<div class="control-group">
<div class="control-group">
<label class="control-label"><b>{{"Title"|get_lang}}</b></label>
<div class="controls">
<div class="controls">
<div id="simple_title"></div>
</div>
</div>
<div class="control-group">
<label class="control-label"><b>{{"Description"|get_lang}}</b></label>
<div class="control-group">
<label class="control-label"><b>{{"Description"|get_lang}}</b></label>
<div class="controls">
<div id="simple_content"></div>
</div>
@ -421,56 +423,56 @@ $(document).ready(function() {
<div id="dialog-form" style="display:none;">
<div style="width:500px">
<form class="form-horizontal" id="add_event_form" name="form">
{% if visible_to is not null %}
<div id="visible_to_input" class="control-group">
<label class="control-label" for="date">{{"To"|get_lang}}</label>
<div id="visible_to_input" class="control-group">
<label class="control-label" for="date">{{"To"|get_lang}}</label>
<div class="controls">
{{visible_to}}
</div>
{{visible_to}}
</div>
</div>
{% endif %}
<div id="visible_to_read_only" class="control-group" style="display:none">
<label class="control-label" for="date">{{"To"|get_lang}}</label>
{% endif %}
<div id="visible_to_read_only" class="control-group" style="display:none">
<label class="control-label" for="date">{{"To"|get_lang}}</label>
<div class="controls">
<div id="visible_to_read_only_users"></div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="date">{{"Agenda"|get_lang}}</label>
<div id="visible_to_read_only_users"></div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="date">{{"Agenda"|get_lang}}</label>
<div class="controls">
<div id="color_calendar"></div>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label" for="date">{{"Date"|get_lang}}</label>
<div class="control-group">
<label class="control-label" for="date">{{"Date"|get_lang}}</label>
<div class="controls">
<span id="start_date"></span><span id="end_date"></span>
</div>
<span id="start_date"></span><span id="end_date"></span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="name">{{"Title"|get_lang}}</label>
<div class="control-group">
<label class="control-label" for="name">{{"Title"|get_lang}}</label>
<div class="controls">
<input type="text" name="title" id="title" size="40" />
<input type="text" name="title" id="title" size="40" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="name">{{"Description"|get_lang}}</label>
<div class="control-group">
<label class="control-label" for="name">{{"Description"|get_lang}}</label>
<div class="controls">
<textarea name="content" id="content" class="span3" rows="5"></textarea>
</div>
</div>
</div>
{% if type == 'course' %}
<div id="add_as_announcement_div">
<div class="control-group">
<div class="control-group">
<label></label>
<div class="controls">
<div class="controls">
<label class="checkbox inline" for="add_as_annonuncement">
{{ "AddAsAnnouncement"|get_lang }} ({{ "SendEmail" | get_lang }})
<input type="checkbox" name="add_as_annonuncement" id="add_as_annonuncement" />
</label>
<input type="checkbox" name="add_as_annonuncement" id="add_as_annonuncement" />
</label>
</div>
</div>
</div>
@ -479,4 +481,6 @@ $(document).ready(function() {
</div>
</div>
<div id="loading" style="margin-left:150px;position:absolute;display:none">{{"Loading"|get_lang}}...</div>
<div id="calendar"></div>
<div id="calendar"></div>
{% endblock %}
Loading…
Cancel
Save