forked from extern/egroupware
Apply show_weekends to planner view
This commit is contained in:
parent
f7588fb0ea
commit
8a93fa5068
@ -40,6 +40,12 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
||||
default: '',
|
||||
description: 'A filter that is used to select events. It is passed along when events are queried.'
|
||||
},
|
||||
show_weekend: {
|
||||
name: "Weekends",
|
||||
type: "boolean",
|
||||
default: egw.preference('days_in_weekview','calendar') != 5,
|
||||
description: "Display weekends. The date range should still include them for proper scrolling, but they just won't be shown."
|
||||
},
|
||||
value: {
|
||||
type: "any",
|
||||
description: "A list of events, optionally you can set start_date, end_date and group_by as keys and events will be fetched"
|
||||
@ -1012,6 +1018,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
||||
var t = new Date(start.valueOf() + start.getTimezoneOffset() * 60 * 1000);
|
||||
for(var left = 0,i = 0; i < days; t.setDate(t.getDate()+1),left += day_width,++i)
|
||||
{
|
||||
if(!this.options.show_weekend && [0,6].indexOf(t.getDay()) !== -1 ) continue;
|
||||
var holidays = [];
|
||||
var tempDate = new Date(t);
|
||||
tempDate.setMinutes(tempDate.getMinutes()-start.getTimezoneOffset());
|
||||
@ -1034,7 +1041,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
||||
state = new Date(t.valueOf() - start.getTimezoneOffset() * 60 * 1000).toJSON();
|
||||
|
||||
content += '<div class="calendar_plannerDayScale et2_clickable et2_link '+ day_class+
|
||||
'" data-date=\'' + state +'\' style="left: '+left+'%; width: '+day_width+'%;"'+
|
||||
'" data-date=\'' + state +'\''+
|
||||
(holidays ? ' title="'+holidays.join(',')+'"' : '')+'>'+title+"</div>\n";
|
||||
}
|
||||
content += "</div>"; // end of plannerScale
|
||||
@ -1076,6 +1083,7 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
||||
var t = new Date(start.valueOf() + start.getTimezoneOffset() * 60 * 1000);
|
||||
for(var left = 0,i = 0; i < hours; left += cell_width,i += decr)
|
||||
{
|
||||
if(!this.options.show_weekend && [0,6].indexOf(t.getDay()) !== -1 ) continue;
|
||||
var title = date(egw.preference('timeformat','calendar') == 12 ? 'ha' : 'H',t);
|
||||
|
||||
content += '<div class="calendar_plannerHourScale et2_link" data-date="' + t.toJSON() +'" style="left: '+left+'%; width: '+(cell_width)+'%;">'+title+"</div>";
|
||||
@ -1638,6 +1646,24 @@ var et2_calendar_planner = (function(){ "use strict"; return et2_calendar_view.e
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Turn on or off the visibility of weekends
|
||||
*
|
||||
* @param {boolean} weekends
|
||||
*/
|
||||
set_show_weekend: function(weekends)
|
||||
{
|
||||
weekends = weekends ? true : false;
|
||||
if(this.options.show_weekend !== weekends)
|
||||
{
|
||||
this.options.show_weekend = weekends;
|
||||
if(this.isAttached())
|
||||
{
|
||||
this.invalidate();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Call change handler, if set
|
||||
*
|
||||
|
@ -104,14 +104,14 @@ var et2_calendar_planner_row = (function(){ "use strict"; return et2_valueWidget
|
||||
this.rows.remove('.calendar_eventRowsMarkedDay,.calendar_eventRowsFiller').nextAll().remove();
|
||||
|
||||
var days = 31;
|
||||
var width = 85;
|
||||
var width = 100;
|
||||
if (this._parent.options.group_by === 'month')
|
||||
{
|
||||
days = new Date(this.options.end_date.getUTCFullYear(),this.options.end_date.getUTCMonth()+1,0).getUTCDate();
|
||||
if(days < 31)
|
||||
{
|
||||
width = 85*days/31;
|
||||
this.rows.css('width',width+'%');
|
||||
width = 100*days/31;
|
||||
this.rows.css('width','calc('+width+'% - 162px)');
|
||||
}
|
||||
}
|
||||
|
||||
@ -125,7 +125,7 @@ var et2_calendar_planner_row = (function(){ "use strict"; return et2_valueWidget
|
||||
{
|
||||
// add a filler for non existing days in that month
|
||||
this.rows.after('<div class="calendar_eventRowsFiller"'+
|
||||
' style="left:'+(15+width)+'%; width:'+(85-width)+'%;" ></div>');
|
||||
' style="width:'+(99.5-width)+'%;" ></div>');
|
||||
}
|
||||
},
|
||||
|
||||
@ -406,8 +406,29 @@ var et2_calendar_planner_row = (function(){ "use strict"; return et2_valueWidget
|
||||
if(t <= start) return 0; // We are left of our scale
|
||||
if(t >= end) return 100; // We are right of our scale
|
||||
|
||||
// Remove space for weekends, if hidden
|
||||
var weekend_count = 0;
|
||||
var weekend_before = 0;
|
||||
if(this._parent.options.group_by !== 'month' && this._parent && !this._parent.options.show_weekend)
|
||||
{
|
||||
|
||||
var counter_date = new Date(start);
|
||||
do
|
||||
{
|
||||
if([0,6].indexOf(counter_date.getUTCDay()) !== -1)
|
||||
{
|
||||
weekend_count++;
|
||||
if(counter_date < t) weekend_before++;
|
||||
}
|
||||
counter_date.setUTCDate(counter_date.getUTCDate() + 1);
|
||||
} while(counter_date < end)
|
||||
// Put it in ms
|
||||
weekend_before *= 24 * 3600 * 1000;
|
||||
weekend_count *= 24 * 3600 * 1000;
|
||||
}
|
||||
|
||||
// Basic scaling, doesn't consider working times
|
||||
pos = (t - start) / (end - start);
|
||||
pos = (t - start - weekend_before) / (end - start - weekend_count);
|
||||
|
||||
// Month view
|
||||
if(this._parent.options.group_by !== 'month')
|
||||
|
@ -1045,6 +1045,9 @@ Hide subsequent headers in week view with non-consolidated owners
|
||||
width: 100%;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
align-content: stretch;
|
||||
}
|
||||
.calendar_plannerDayScale,.calendar_plannerMonthScale,.calendar_plannerWeekScale,.calendar_plannerHourScale,.calendar_plannerDayOfMonthScale {
|
||||
position: absolute;
|
||||
@ -1060,6 +1063,10 @@ Hide subsequent headers in week view with non-consolidated owners
|
||||
* width:
|
||||
*/
|
||||
}
|
||||
.calendar_plannerDayScale,.calendar_plannerWeekScale,.calendar_plannerHourScale {
|
||||
position: static;
|
||||
flex: 1 1 14%;
|
||||
}
|
||||
.calendar_plannerHourScale {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
@ -11,7 +11,7 @@
|
||||
* @package calendar
|
||||
* @version $Id$
|
||||
*/
|
||||
/* $Id: app.css 55765 2016-04-18 19:03:35Z nathangray $ */
|
||||
/* $Id: app.css 55773 2016-04-19 17:31:24Z nathangray $ */
|
||||
/*Media print classes*/
|
||||
@media print {
|
||||
#calendar-view.et2_container,
|
||||
@ -128,7 +128,7 @@
|
||||
padding: 2px;
|
||||
background-color: white;
|
||||
}
|
||||
/* Loader */
|
||||
/* Loader - hide sizing behind overlay*/
|
||||
#egw-loadin-prompt_calendar::before {
|
||||
opacity: 1;
|
||||
background-color: #e6e6e6;
|
||||
@ -1015,6 +1015,9 @@ Hide subsequent headers in week view with non-consolidated owners
|
||||
width: 100%;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
align-content: stretch;
|
||||
}
|
||||
.calendar_plannerDayScale,
|
||||
.calendar_plannerMonthScale,
|
||||
@ -1034,6 +1037,12 @@ Hide subsequent headers in week view with non-consolidated owners
|
||||
* width:
|
||||
*/
|
||||
}
|
||||
.calendar_plannerDayScale,
|
||||
.calendar_plannerWeekScale,
|
||||
.calendar_plannerHourScale {
|
||||
position: static;
|
||||
flex: 1 1 14%;
|
||||
}
|
||||
.calendar_plannerHourScale {
|
||||
font-size: 90%;
|
||||
}
|
||||
@ -1111,6 +1120,7 @@ Hide subsequent headers in week view with non-consolidated owners
|
||||
.calendar_eventRowsFiller {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
height: 93%;
|
||||
background-color: white;
|
||||
border: 1px dashed gray;
|
||||
|
Loading…
Reference in New Issue
Block a user