events page: set calendar start date from url (events/[year]/[month]/) and show event popup from url anchor (#link-[event id])

This commit is contained in:
Fabio Comuni 2012-04-24 08:12:30 +02:00
parent 7923404c83
commit fc61616c53
2 changed files with 79 additions and 64 deletions

View file

@ -1249,11 +1249,11 @@ if(! function_exists('get_events')) {
$o .= '<div id="event-title-end"></div>'; $o .= '<div id="event-title-end"></div>';
foreach($r as $rr) { foreach($r as $rr) {
if($rr['adjust']) if($rr['adjust'])
$md = datetime_convert('UTC',$a->timezone,$rr['start'],'Y/m\#\l\i\n\k\-j'); $md = datetime_convert('UTC',$a->timezone,$rr['start'],'Y/m');
else else
$md = datetime_convert('UTC','UTC',$rr['start'],'Y/m\#\l\i\n\k\-j'); $md = datetime_convert('UTC','UTC',$rr['start'],'Y/m');
$md .= "/#link-".$rr['id'];
$title = substr(strip_tags(bbcode($rr['desc'])),0,32) . '... '; $title = substr(strip_tags(bbcode($rr['desc'])),0,32) . '... ';
if(! $title) if(! $title)
@ -1262,7 +1262,7 @@ if(! function_exists('get_events')) {
$strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start']); $strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start']);
$today = ((substr($strt,0,10) === datetime_convert('UTC',$a->timezone,'now','Y-m-d')) ? true : false); $today = ((substr($strt,0,10) === datetime_convert('UTC',$a->timezone,'now','Y-m-d')) ? true : false);
$o .= '<div class="event-list" id="event-' . $rr['eid'] . '"></a> <a href="events/' . $md . '">' . $title . '</a>' $o .= '<div class="event-list" id="event-' . $rr['id'] . '"></a> <a href="events/' . $md . '">' . $title . '</a>'
. day_translate(datetime_convert('UTC', $rr['adjust'] ? $a->timezone : 'UTC', $rr['start'], $bd_format)) . (($today) ? ' ' . t('[today]') : '') . day_translate(datetime_convert('UTC', $rr['adjust'] ? $a->timezone : 'UTC', $rr['start'], $bd_format)) . (($today) ? ' ' . t('[today]') : '')
. '</div>' ; . '</div>' ;
} }

View file

@ -3,8 +3,17 @@
src="$baseurl/library/fullcalendar/fullcalendar.min.js"></script> src="$baseurl/library/fullcalendar/fullcalendar.min.js"></script>
<script> <script>
function showEvent(eventid) {
$.get(
'$baseurl/events/?id='+eventid,
function(data){
$.fancybox(data);
}
);
}
$(document).ready(function() { $(document).ready(function() {
$('#events-calendar').fullCalendar({ $('#events-calendar').fullCalendar({
events: '$baseurl/events/json/', events: '$baseurl/events/json/',
header: { header: {
left: 'prev,next today', left: 'prev,next today',
@ -13,12 +22,7 @@
}, },
timeFormat: 'H(:mm)', timeFormat: 'H(:mm)',
eventClick: function(calEvent, jsEvent, view) { eventClick: function(calEvent, jsEvent, view) {
$.get( showEvent(calEvent.id);
'$baseurl/events/?id='+calEvent.id,
function(data){
$.fancybox(data);
}
);
}, },
eventRender: function(event, element, view) { eventRender: function(event, element, view) {
@ -55,70 +59,81 @@
} }
}) })
// center on date
var args=location.href.replace(baseurl,"").split("/");
if (args.length>=4) {
$("#events-calendar").fullCalendar('gotoDate',args[2] , args[3]-1);
}
// show event popup
var hash = location.hash.split("-")
if (hash.length==2 && hash[0]=="#link") showEvent(hash[1]);
}); });
</script> </script>
<script language="javascript" type="text/javascript" <script language="javascript" type="text/javascript"
src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script> src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
<script language="javascript" type="text/javascript"> <script language="javascript" type="text/javascript">
tinyMCE.init({ tinyMCE.init({
theme : "advanced", theme : "advanced",
mode : "textareas", mode : "textareas",
plugins : "bbcode,paste", plugins : "bbcode,paste",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code", theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",
theme_advanced_buttons2 : "", theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "", theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top", theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center", theme_advanced_toolbar_align : "center",
theme_advanced_blockformats : "blockquote,code", theme_advanced_blockformats : "blockquote,code",
gecko_spellcheck : true, gecko_spellcheck : true,
paste_text_sticky : true, paste_text_sticky : true,
entity_encoding : "raw", entity_encoding : "raw",
add_unload_trigger : false, add_unload_trigger : false,
remove_linebreaks : false, remove_linebreaks : false,
force_p_newlines : false, force_p_newlines : false,
force_br_newlines : true, force_br_newlines : true,
forced_root_block : '', forced_root_block : '',
content_css: "$baseurl/view/custom_tinymce.css", content_css: "$baseurl/view/custom_tinymce.css",
theme_advanced_path : false, theme_advanced_path : false,
setup : function(ed) { setup : function(ed) {
ed.onInit.add(function(ed) { ed.onInit.add(function(ed) {
ed.pasteAsPlainText = true; ed.pasteAsPlainText = true;
}); });
}
});
$(document).ready(function() {
$('#event-share-checkbox').change(function() {
if ($('#event-share-checkbox').is(':checked')) {
$('#acl-wrapper').show();
}
else {
$('#acl-wrapper').hide();
}
}).trigger('change');
$('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
var selstr;
$('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
selstr = $(this).text();
$('#jot-public').hide();
});
if(selstr == null) {
$('#jot-public').show();
} }
}).trigger('change'); });
});
$(document).ready(function() {
$('#event-share-checkbox').change(function() {
if ($('#event-share-checkbox').is(':checked')) {
$('#acl-wrapper').show();
}
else {
$('#acl-wrapper').hide();
}
}).trigger('change');
$('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
var selstr;
$('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
selstr = $(this).text();
$('#jot-public').hide();
});
if(selstr == null) {
$('#jot-public').show();
}
}).trigger('change');
});
</script> </script>