Added a calendar to the organiser dashboard

This commit is contained in:
Dave Earley 2016-05-05 16:46:52 +01:00
parent 586d3dff8e
commit 79f8de9653
5 changed files with 82 additions and 10 deletions

View File

@ -18,9 +18,24 @@ class OrganiserDashboardController extends MyBaseController
{
$organiser = Organiser::scope()->findOrFail($organiser_id);
$upcoming_events = $organiser->events()->where('end_date', '>=', Carbon::now())->get();
/* Prepare JSON array for events for use in the dashboard calendar */
foreach($organiser->events as $event) {
$calendar_events[] =[
'title' => $event->title,
'start' => $event->start_date->toIso8601String(),
'end' => $event->end_date->toIso8601String(),
'url' => route('showEventDashboard', [
'event_id' => $event->id
]),
'color' => '#4E558F'
];
}
$data = [
'organiser' => $organiser,
'upcoming_events' => $upcoming_events,
'calendar_events' => json_encode($calendar_events),
];
return view('ManageOrganiser.Dashboard', $data);

View File

@ -27,7 +27,8 @@
"fontawesome": "~4.2.0",
"simplemde": "~1.8.1",
"bootstrap-touchspin": "~3.0.1",
"jquery-minicolors": "^2.2.4"
"jquery-minicolors": "^2.2.4",
"fullcalendar": "^2.7.1"
},
"resolutions": {
"jquery": ">=1.5",

View File

@ -475,4 +475,4 @@ body {
.minicolors-theme-semanticui input {
text-indent: 30px;
}
.page-title .title .organiser_logo{position:absolute;height:45px;right:20px;top:5px;bottom:5px}.page-title .title .organiser_logo img{max-height:45px}.nav li.nav-button a span{padding:10px}.event.panel{margin-top:10px}.event .event-date{border:1px solid #fff;padding-bottom:9px;padding-top:7px;text-align:center;text-shadow:0 1px 1px rgba(0,0,0,0.1);width:46px;position:absolute;background-color:#ffffff;top:-13px;border-color:#404675;color:#666}.event .event-date .day{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:22px;font-weight:500;margin:-2px auto -6px auto}.event .event-date .month{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:10px;font-weight:500;margin:-2px auto 0 auto}.event .event-meta{margin:0;padding:0;margin-left:60px;height:55px;margin-top:10px;color:#ffffff}.event .event-meta li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;list-style:none;font-size:12px}.event .event-meta li a{color:#ffffff}.event .event-meta li.event-title a{font-size:16px}.event .event-meta li.event-organiser a{font-weight:bold}.event .panel-title{height:60px;padding:10px}.event .panel-title a{margin:0;height:40px;display:table-cell;vertical-align:middle;text-indent:50px}.stat-box{padding:20px;background-color:#fff;color:#2E3254;text-align:center;margin-bottom:10px;border:1px solid #e0e0e0}.stat-box h3{margin-bottom:5px;margin-top:0;font-weight:200}.stat-box span{text-transform:uppercase;font-weight:lighter;color:#aeb2d3}.top_of_page_alert{border:none;margin:0;text-align:center;border-bottom:5px solid}.v-align-text{text-align:center;position:relative;top:50%;-ms-transform:translateY(-50%);-wekbit-transform:translateY(-50%);transform:translateY(-50%)}@media (max-width:992px){.page-header>[class*=" col-"],.page-header>[class^="col-"]{margin-bottom:10px}}@media (max-width:480px){.btn-group-responsive{margin-bottom:-10px;float:none !important;display:block !important}.btn-group-responsive .btn{width:100%;padding-left:0;padding-right:0;margin-bottom:10px}.btn-group-responsive .pull-left,.btn-group-responsive .pull-right{float:none !important}}label.required::after{content:'*';color:red;padding-left:3px;font-size:9px}.hasDatepicker[disabled],.hasDatepicker[readonly],fieldset[disabled] .hasDatepicker{cursor:pointer !important;background-color:#fff !important;opacity:1}.more-options{display:none}.col-sort{color:#fff}.col-sort :hover{color:#fff}.pac-container{z-index:9999}.dtpicker-overlay{z-index:9999}.dtpicker-close{display:none}.dtpicker-header .dtpicker-title{color:#AFAFAF;text-align:center;font-size:18px;font-weight:normal}.dtpicker-header .dtpicker-value{padding:.8em .2em .2em .2em;color:#404675;text-align:center;font-size:1.4em}.dtpicker-buttonCont .dtpicker-button{background:#404675;border-radius:0}.dtpicker-content{border-radius:0}.sidebar-open-ltr body{overflow-x:hidden}.order_options .event_count{font-weight:bold;color:#777}.well{background-color:#f9f9f9;box-shadow:none}.input-group-btn select{width:115px !important;border-left:0;font-size:12px}.btn-file{position:relative;overflow:hidden}.btn-file input[type=file]{position:absolute;top:0;right:0;min-width:100%;min-height:100%;font-size:100px;text-align:right;filter:alpha(opacity=0);opacity:0;background:red;cursor:inherit;display:block}input[readonly]{background-color:white !important;cursor:text !important}html.working{cursor:progress}.order_options{padding:10px 0}.minicolors-theme-default.minicolors{width:auto;display:block}.minicolors-theme-default .minicolors-input{padding-left:35px;height:auto;width:100%;display:block}.minicolors-theme-default .minicolors-swatch{top:8px;left:6px;width:18px;height:18px}.pagination>.active>span,.pagination>.active:focus>span,.pagination>.active:hover>span,.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default,.pagination>li>a:hover,.pager>li>a:hover,.pagination>li>span:hover,.pager>li>span:hover,.pagination>li>a:focus,.pager>li>a:focus,.pagination>li>span:focus,.pager>li>span:focus{color:#ffffff !important}.btn-default .caret{border-top-color:#fff}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-right:none}.modal-backdrop{background:url(../images/background.png) repeat;background-color:#2E3254}
.page-title .title .organiser_logo{position:absolute;height:45px;right:20px;top:5px;bottom:5px}.page-title .title .organiser_logo img{max-height:45px}#calendar{border:1px solid #ddd;background:#fff}#calendar .fc-button{background:transparent;border:none;color:inherit;box-shadow:none}#calendar .fc-event{border-color:#fff;-webkit-border-radius:0;border-radius:0;padding:2px;transition:none}#calendar .fc-toolbar{text-align:center;margin-bottom:0;padding:7px}#calendar h2{font-size:15px;text-transform:uppercase;margin-top:6px}#calendar .fc-view{margin:-1px}.nav li.nav-button a span{padding:10px}.event.panel{margin-top:10px}.event .event-date{border:1px solid #fff;padding-bottom:9px;padding-top:7px;text-align:center;text-shadow:0 1px 1px rgba(0,0,0,0.1);width:46px;position:absolute;background-color:#ffffff;top:-13px;border-color:#404675;color:#666}.event .event-date .day{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:22px;font-weight:500;margin:-2px auto -6px auto}.event .event-date .month{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:10px;font-weight:500;margin:-2px auto 0 auto}.event .event-meta{margin:0;padding:0;margin-left:60px;height:55px;margin-top:10px;color:#ffffff}.event .event-meta li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;list-style:none;font-size:12px}.event .event-meta li a{color:#ffffff}.event .event-meta li.event-title a{font-size:16px}.event .event-meta li.event-organiser a{font-weight:bold}.event .panel-title{height:60px;padding:10px}.event .panel-title a{margin:0;height:40px;display:table-cell;vertical-align:middle;text-indent:50px}.stat-box{padding:20px;background-color:#fff;color:#2E3254;text-align:center;margin-bottom:10px;border:1px solid #e0e0e0}.stat-box h3{margin-bottom:5px;margin-top:0;font-weight:200}.stat-box span{text-transform:uppercase;font-weight:lighter;color:#aeb2d3}.top_of_page_alert{border:none;margin:0;text-align:center;border-bottom:5px solid}.v-align-text{text-align:center;position:relative;top:50%;-ms-transform:translateY(-50%);-wekbit-transform:translateY(-50%);transform:translateY(-50%)}@media (max-width:992px){.page-header>[class*=" col-"],.page-header>[class^="col-"]{margin-bottom:10px}}@media (max-width:480px){.btn-group-responsive{margin-bottom:-10px;float:none !important;display:block !important}.btn-group-responsive .btn{width:100%;padding-left:0;padding-right:0;margin-bottom:10px}.btn-group-responsive .pull-left,.btn-group-responsive .pull-right{float:none !important}}label.required::after{content:'*';color:red;padding-left:3px;font-size:9px}.hasDatepicker[disabled],.hasDatepicker[readonly],fieldset[disabled] .hasDatepicker{cursor:pointer !important;background-color:#fff !important;opacity:1}.more-options{display:none}.col-sort{color:#fff}.col-sort :hover{color:#fff}.pac-container{z-index:9999}.dtpicker-overlay{z-index:9999}.dtpicker-close{display:none}.dtpicker-header .dtpicker-title{color:#AFAFAF;text-align:center;font-size:18px;font-weight:normal}.dtpicker-header .dtpicker-value{padding:.8em .2em .2em .2em;color:#404675;text-align:center;font-size:1.4em}.dtpicker-buttonCont .dtpicker-button{background:#404675;border-radius:0}.dtpicker-content{border-radius:0}.sidebar-open-ltr body{overflow-x:hidden}.order_options .event_count{font-weight:bold;color:#777}.well{background-color:#f9f9f9;box-shadow:none}.input-group-btn select{width:115px !important;border-left:0;font-size:12px}.btn-file{position:relative;overflow:hidden}.btn-file input[type=file]{position:absolute;top:0;right:0;min-width:100%;min-height:100%;font-size:100px;text-align:right;filter:alpha(opacity=0);opacity:0;background:red;cursor:inherit;display:block}input[readonly]{background-color:white !important;cursor:text !important}html.working{cursor:progress}.order_options{padding:10px 0}.minicolors-theme-default.minicolors{width:auto;display:block}.minicolors-theme-default .minicolors-input{padding-left:35px;height:auto;width:100%;display:block}.minicolors-theme-default .minicolors-swatch{top:8px;left:6px;width:18px;height:18px}.pagination>.active>span,.pagination>.active:focus>span,.pagination>.active:hover>span,.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default,.pagination>li>a:hover,.pager>li>a:hover,.pagination>li>span:hover,.pager>li>span:hover,.pagination>li>a:focus,.pager>li>a:focus,.pagination>li>span:focus,.pager>li>span:focus{color:#ffffff !important}.btn-default .caret{border-top-color:#fff}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-right:none}.modal-backdrop{background:url(../images/background.png) repeat;background-color:#2E3254}

View File

@ -18,6 +18,40 @@ MANAGE ORGANISERS
max-height: 45px;
}
/* Dashboard calendar */
#calendar {
border: 1px solid #ddd;
background: #fff;
/*padding: 17px;*/
}
#calendar .fc-button {
background: transparent;
border: none;
color: inherit;
box-shadow: none;
}
#calendar .fc-event {
border-color: #fff;
-webkit-border-radius: 0;
border-radius: 0;
padding: 2px;
transition: none;
}
#calendar .fc-toolbar {
text-align: center;
margin-bottom: 0em;
padding: 7px;
}
#calendar h2 {
font-size: 15px;
text-transform: uppercase;
margin-top: 6px;
}
#calendar .fc-view {
margin: -1px;
}
/*

View File

@ -22,15 +22,30 @@
<script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
{!!HTML::script('https://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=places')!!}
{!! HTML::script('https://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=places') !!}
{!! HTML::script('vendor/geocomplete/jquery.geocomplete.min.js')!!}
{!! HTML::script('vendor/moment/moment.js')!!}
{!! HTML::script('vendor/fullcalendar/dist/fullcalendar.min.js')!!}
{!! HTML::style('vendor/fullcalendar/dist/fullcalendar.css')!!}
<style>
svg {
width: 100% !important;
}
</style>
<script>
$(function() {
$('#calendar').fullCalendar({
events: {!! $calendar_events !!},
header: {
left: 'prev,',
center: 'title',
right: 'next'
},
dayClick: function(date, jsEvent, view) {
alert('Clicked on: ' + date.format());
}
});
});
</script>
@stop
@section('content')
@ -66,8 +81,15 @@
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="col-md-8">
<h4 style="margin-bottom: 25px;margin-top: 20px;">Event Calendar</h4>
<div id="calendar"></div>
<h4 style="margin-bottom: 25px;margin-top: 20px;">Upcoming Events</h4>
@if($upcoming_events->count())
@foreach($upcoming_events as $event)
@ -81,7 +103,7 @@
</div>
@endif
</div>
<div class="col-md-6">
<div class="col-md-4">
<h4 style="margin-bottom: 25px;margin-top: 20px;">Recent Orders</h4>
@if($organiser->orders->count())
<ul class="list-group">