package WebGUI::Widget::EventsCalendar; #------------------------------------------------------------------- # WebGUI is Copyright 2001 Plain Black Software. #------------------------------------------------------------------- # Please read the legal notices (docs/legal.txt) and the license # (docs/license.txt) that came with this distribution before using # this software. #------------------------------------------------------------------- # http://www.plainblack.com info@plainblack.com #------------------------------------------------------------------- use strict; use WebGUI::Privilege; use WebGUI::Session; use WebGUI::SQL; use WebGUI::Utility; use WebGUI::Widget; #------------------------------------------------------------------- sub widgetName { return "Events Calendar"; } #------------------------------------------------------------------- sub www_add { my ($output); if (WebGUI::Privilege::canEditPage()) { $output = '

Add Events Calendar

'; $output .= WebGUI::Form::hidden("widget","EventsCalendar"); $output .= WebGUI::Form::hidden("func","addSave"); $output .= ''; $output .= ''; $output .= ''; $output .= ''; $output .= '
Title'.WebGUI::Form::text("title",20,30).'
Display the title?'.WebGUI::Form::checkbox("displayTitle","1").'
'.WebGUI::Form::submit("save").'
'; return $output; } else { return WebGUI::Privilege::insufficient(); } return $output; } #------------------------------------------------------------------- sub www_addSave { my ($widgetId); if (WebGUI::Privilege::canEditPage()) { $widgetId = create(); return ""; } else { return WebGUI::Privilege::insufficient(); } } #------------------------------------------------------------------- sub www_addEvent { my ($output, $today); if (WebGUI::Privilege::canEditPage()) { ($today) = WebGUI::SQL->quickArray("select date_format(date_add(now(), interval 1 day),'%m/%d/%Y')",$session{dbh}); $output = '

Add Event

'; $output .= WebGUI::Form::hidden("wid",$session{form}{wid}); $output .= WebGUI::Form::hidden("func","addEventSave"); $output .= ''; $output .= ''; $output .= ''; $output .= ''; $output .= ''; $output .= ''; $output .= '
Name'.WebGUI::Form::text("name",20,30).'
Description'.WebGUI::Form::textArea("description",'',50,10,1).'
Start Date'.WebGUI::Form::text("startDate",20,30,$today,1).'
End Date'.WebGUI::Form::text("endDate",20,30,$today,1).'
'.WebGUI::Form::submit("save").'
'; return $output; } else { return WebGUI::Privilege::insufficient(); } return $output; } #------------------------------------------------------------------- sub www_addEventSave { my ($eventId); if (WebGUI::Privilege::canEditPage()) { $eventId = getNextId("eventId"); WebGUI::SQL->write("insert into event set widgetId=$session{form}{wid}, eventId=$eventId, name=".quote($session{form}{name}).", description=".quote($session{form}{description}).", startDate='".humanToMysqlDate($session{form}{startDate})."', endDate='".humanToMysqlDate($session{form}{endDate})."'",$session{dbh}); return www_edit(); } else { return WebGUI::Privilege::insufficient(); } } #------------------------------------------------------------------- sub www_deleteEvent { my ($output); if (WebGUI::Privilege::canEditPage()) { $output = '

Please Confirm

'; $output = 'Are you certain that you want to delete this event?

Yes, I\'m sure.   No, I made a mistake.
'; return $output; } else { return WebGUI::Privilege::insufficient(); } } #------------------------------------------------------------------- sub www_deleteEventConfirm { my ($output); if (WebGUI::Privilege::canEditPage()) { WebGUI::SQL->write("delete from event where eventId=$session{form}{eid}",$session{dbh}); return www_edit(); } else { return WebGUI::Privilege::insufficient(); } } #------------------------------------------------------------------- sub www_edit { my ($output, %data, @event, $sth); if (WebGUI::Privilege::canEditPage()) { %data = WebGUI::SQL->quickHash("select widget.title, widget.displayTitle from widget where widget.widgetId=$session{form}{wid}",$session{dbh}); $output = '

Edit Events Calendar

'; $output .= WebGUI::Form::hidden("wid",$session{form}{wid}); $output .= WebGUI::Form::hidden("func","editSave"); $output .= ''; $output .= ''; $output .= ''; $output .= ''; $output .= '
Title'.WebGUI::Form::text("title",20,30,$data{title}).'
Display the title?'.WebGUI::Form::checkbox("displayTitle","1",$data{displayTitle}).'
'.WebGUI::Form::submit("save").'
'; $output .= '

Add New Event

'; $output .= ''; $sth = WebGUI::SQL->read("select eventId, name from event where widgetId='$session{form}{wid}' order by startDate",$session{dbh}); while (@event = $sth->array) { $output .= ''; } $sth->finish; $output .= '
'.$event[1].'
'; return $output; } else { return WebGUI::Privilege::insufficient(); } } #------------------------------------------------------------------- sub www_editSave { if (WebGUI::Privilege::canEditPage()) { update(); return ""; } else { return WebGUI::Privilege::insufficient(); } } #------------------------------------------------------------------- sub www_editEvent { my ($output, %event); if (WebGUI::Privilege::canEditPage()) { %event = WebGUI::SQL->quickHash("select name, description, date_format(startDate,'%m/%d/%Y') as start, date_format(endDate,'%m/%d/%Y') as end from event where eventId='$session{form}{eid}'",$session{dbh}); $output = '

Edit Event

'; $output .= WebGUI::Form::hidden("wid",$session{form}{wid}); $output .= WebGUI::Form::hidden("eid",$session{form}{eid}); $output .= WebGUI::Form::hidden("func","editEventSave"); $output .= ''; $output .= '' ; $output .= ''; $output .= ''; $output .= ''; $output .= ''; $output .= '
Name'.WebGUI::Form::text("name",20,30,$event{name}).'
Description'.WebGUI::Form::textArea("description",$event{description},50,10,1).'
Start Date'.WebGUI::Form::text("startDate",20,30,$event{start},1).'
End Date'.WebGUI::Form::text("endDate",20,30,$event{end},1).'
'.WebGUI::Form::submit("save").'
'; return $output; } else { return WebGUI::Privilege::insufficient(); } return $output; } #------------------------------------------------------------------- sub www_editEventSave { my ($eventId); if (WebGUI::Privilege::canEditPage()) { WebGUI::SQL->write("update event set name=".quote($session{form}{name}).", description=".quote($session{form}{description}).", startDate='".humanToMysqlDate($session{form}{startDate})."', endDate='".humanToMysqlDate($session{form}{endDate})."' where eventId=$session{form}{eid}",$session{dbh}); return www_edit(); } else { return WebGUI::Privilege::insufficient(); } } #------------------------------------------------------------------- sub www_view { my (%data, @event, $output, $widgetId, $sth); $widgetId = shift; %data = WebGUI::SQL->quickHash("select widget.title, widget.displayTitle from widget where widget.widgetId='$widgetId'",$session{dbh}); if (defined %data) { if ($data{displayTitle} == 1) { $output = "

".$data{title}."

"; } $sth = WebGUI::SQL->read("select name, description, date_format(startDate,'%M'), date_format(startDate,'%e'), date_format(startDate,'%Y'), date_format(endDate,'%e') from event where widgetId='$widgetId' and startDate>now() order by startDate",$session{dbh}); while (@event = $sth->array) { $output .= "$event[2] $event[3]"; if ($event[3] ne $event[5]) { $output .= "-$event[5]"; } $output .= ", $event[4]"; $output .= "
"; $output .= ''.$event[0].''; if ($event[1] ne "") { $output .= ' - '; $output .= ''.$event[1]; } $output .= '

'; } $sth->finish; } return $output; } 1;