mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-22 14:41:29 +01:00
Calendar: fix planner view wasn't working due to rollup issues
et2_calendar_owner was throwing errors due to being loaded twice et2_calendar_planner was left out of the bundle view updaters were not being called
This commit is contained in:
parent
1b5c940d7c
commit
2343bd62b7
@ -33,7 +33,6 @@ class calendar_owner_etemplate_widget extends Etemplate\Widget\Taglist
|
|||||||
public function beforeSendToClient($cname, array $expand=null)
|
public function beforeSendToClient($cname, array $expand=null)
|
||||||
{
|
{
|
||||||
|
|
||||||
Framework::includeJS('.','et2_widget_owner','calendar');
|
|
||||||
Framework::includeCSS('calendar','calendar');
|
Framework::includeCSS('calendar','calendar');
|
||||||
|
|
||||||
$bo = new calendar_bo();
|
$bo = new calendar_bo();
|
||||||
|
@ -22,7 +22,7 @@ export abstract class View
|
|||||||
* @param {Object} state
|
* @param {Object} state
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
static header(state)
|
public static header(state)
|
||||||
{
|
{
|
||||||
let formatDate = new Date(state.date);
|
let formatDate = new Date(state.date);
|
||||||
formatDate = new Date(formatDate.valueOf() + formatDate.getTimezoneOffset() * 60 * 1000);
|
formatDate = new Date(formatDate.valueOf() + formatDate.getTimezoneOffset() * 60 * 1000);
|
||||||
@ -34,7 +34,7 @@ export abstract class View
|
|||||||
*
|
*
|
||||||
* @param {object} state
|
* @param {object} state
|
||||||
*/
|
*/
|
||||||
static _owner(state)
|
public static _owner(state)
|
||||||
{
|
{
|
||||||
let owner = '';
|
let owner = '';
|
||||||
if(state.owner.length && state.owner.length == 1 && app.calendar.sidebox_et2)
|
if(state.owner.length && state.owner.length == 1 && app.calendar.sidebox_et2)
|
||||||
@ -53,7 +53,7 @@ export abstract class View
|
|||||||
* @param {Object} state
|
* @param {Object} state
|
||||||
* @returns {Date}
|
* @returns {Date}
|
||||||
*/
|
*/
|
||||||
static start_date(state)
|
public static start_date(state)
|
||||||
{
|
{
|
||||||
const d = state.date ? new Date(state.date) : new Date();
|
const d = state.date ? new Date(state.date) : new Date();
|
||||||
d.setUTCHours(0);
|
d.setUTCHours(0);
|
||||||
@ -68,7 +68,7 @@ export abstract class View
|
|||||||
* @param {Object} state
|
* @param {Object} state
|
||||||
* @returns {Date}
|
* @returns {Date}
|
||||||
*/
|
*/
|
||||||
static end_date(state)
|
public static end_date(state)
|
||||||
{
|
{
|
||||||
const d = state.date ? new Date(state.date) : new Date();
|
const d = state.date ? new Date(state.date) : new Date();
|
||||||
d.setUTCHours(23);
|
d.setUTCHours(23);
|
||||||
@ -87,7 +87,7 @@ export abstract class View
|
|||||||
* @param {number[]|String} state state.owner List of owner IDs, or a comma seperated list
|
* @param {number[]|String} state state.owner List of owner IDs, or a comma seperated list
|
||||||
* @returns {number[]|String}
|
* @returns {number[]|String}
|
||||||
*/
|
*/
|
||||||
static owner(state)
|
public static owner(state)
|
||||||
{
|
{
|
||||||
return state.owner || 0;
|
return state.owner || 0;
|
||||||
}
|
}
|
||||||
@ -98,7 +98,7 @@ export abstract class View
|
|||||||
* @param {object} state
|
* @param {object} state
|
||||||
* @returns {boolean} Current preference to show 5 or 7 days in weekview
|
* @returns {boolean} Current preference to show 5 or 7 days in weekview
|
||||||
*/
|
*/
|
||||||
static show_weekend(state)
|
public static show_weekend(state)
|
||||||
{
|
{
|
||||||
return state.weekend;
|
return state.weekend;
|
||||||
}
|
}
|
||||||
@ -108,27 +108,30 @@ export abstract class View
|
|||||||
*
|
*
|
||||||
* @param {object} state
|
* @param {object} state
|
||||||
*/
|
*/
|
||||||
static granularity(state)
|
public static granularity(state)
|
||||||
{
|
{
|
||||||
var list = egw.preference('use_time_grid', 'calendar');
|
var list = egw.preference('use_time_grid', 'calendar');
|
||||||
if(list == '0' || typeof list === 'undefined')
|
if(list == '0' || typeof list === 'undefined')
|
||||||
{
|
{
|
||||||
return parseInt('' + egw.preference('interval', 'calendar')) || 30;
|
return parseInt('' + egw.preference('interval', 'calendar')) || 30;
|
||||||
}
|
}
|
||||||
if(typeof list == 'string') list = list.split(',');
|
if(typeof list == 'string')
|
||||||
|
{
|
||||||
|
list = list.split(',');
|
||||||
|
}
|
||||||
if(!(<string><unknown>list).indexOf && jQuery.isPlainObject(list))
|
if(!(<string><unknown>list).indexOf && jQuery.isPlainObject(list))
|
||||||
{
|
{
|
||||||
list = jQuery.map(list, function (el)
|
list = jQuery.map(list, function(el)
|
||||||
{
|
{
|
||||||
return el;
|
return el;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return (<string[]> list).indexOf(state.view) >= 0 ?
|
return (<string[]>list).indexOf(state.view) >= 0 ?
|
||||||
0 :
|
0 :
|
||||||
parseInt(<string> egw.preference('interval', 'calendar')) || 30;
|
parseInt(<string>egw.preference('interval', 'calendar')) || 30;
|
||||||
}
|
}
|
||||||
|
|
||||||
static extend(sub)
|
public static extend(sub)
|
||||||
{
|
{
|
||||||
return jQuery.extend({}, this, {_super: this}, sub);
|
return jQuery.extend({}, this, {_super: this}, sub);
|
||||||
}
|
}
|
||||||
@ -140,7 +143,7 @@ export abstract class View
|
|||||||
* forward, negative for backward
|
* forward, negative for backward
|
||||||
* @returns {Date}
|
* @returns {Date}
|
||||||
*/
|
*/
|
||||||
static scroll(delta)
|
public static scroll(delta)
|
||||||
{
|
{
|
||||||
var d = new Date(app.calendar.state.date);
|
var d = new Date(app.calendar.state.date);
|
||||||
d.setUTCDate(d.getUTCDate() + (7 * delta));
|
d.setUTCDate(d.getUTCDate() + (7 * delta));
|
||||||
@ -158,27 +161,27 @@ export class day extends View
|
|||||||
{
|
{
|
||||||
public static etemplates : (string | etemplate2)[] = ['calendar.view', 'calendar.todo'];
|
public static etemplates : (string | etemplate2)[] = ['calendar.view', 'calendar.todo'];
|
||||||
|
|
||||||
static header(state)
|
public static header(state)
|
||||||
{
|
{
|
||||||
var formatDate = new Date(state.date);
|
var formatDate = new Date(state.date);
|
||||||
formatDate = new Date(formatDate.valueOf() + formatDate.getTimezoneOffset() * 60 * 1000);
|
formatDate = new Date(formatDate.valueOf() + formatDate.getTimezoneOffset() * 60 * 1000);
|
||||||
return date('l, ', formatDate) + super.header(state);
|
return date('l, ', formatDate) + super.header(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
static start_date(state)
|
public static start_date(state)
|
||||||
{
|
{
|
||||||
var d = super.start_date(state);
|
var d = super.start_date(state);
|
||||||
state.date = app.calendar.date.toString(d);
|
state.date = app.calendar.date.toString(d);
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
static show_weekend(state)
|
public static show_weekend(state)
|
||||||
{
|
{
|
||||||
state.days = '1';
|
state.days = '1';
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static scroll(delta)
|
public static scroll(delta)
|
||||||
{
|
{
|
||||||
var d = new Date(app.calendar.state.date);
|
var d = new Date(app.calendar.state.date);
|
||||||
d.setUTCDate(d.getUTCDate() + (delta));
|
d.setUTCDate(d.getUTCDate() + (delta));
|
||||||
@ -188,7 +191,7 @@ export class day extends View
|
|||||||
|
|
||||||
export class day4 extends View
|
export class day4 extends View
|
||||||
{
|
{
|
||||||
static end_date(state)
|
public static end_date(state)
|
||||||
{
|
{
|
||||||
var d = super.end_date(state);
|
var d = super.end_date(state);
|
||||||
state.days = '4';
|
state.days = '4';
|
||||||
@ -199,13 +202,13 @@ export class day4 extends View
|
|||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
static show_weekend(state)
|
public static show_weekend(state)
|
||||||
{
|
{
|
||||||
state.weekend = 'true';
|
state.weekend = 'true';
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static scroll(delta)
|
public static scroll(delta)
|
||||||
{
|
{
|
||||||
var d = new Date(app.calendar.state.date);
|
var d = new Date(app.calendar.state.date);
|
||||||
d.setUTCDate(d.getUTCDate() + (4 * delta));
|
d.setUTCDate(d.getUTCDate() + (4 * delta));
|
||||||
@ -215,7 +218,7 @@ export class day4 extends View
|
|||||||
|
|
||||||
export class week extends View
|
export class week extends View
|
||||||
{
|
{
|
||||||
static header(state)
|
public static header(state)
|
||||||
{
|
{
|
||||||
var end_date = state.last;
|
var end_date = state.last;
|
||||||
if(!week.show_weekend(state))
|
if(!week.show_weekend(state))
|
||||||
@ -228,12 +231,12 @@ export class week extends View
|
|||||||
app.calendar.date.long_date(state.first, end_date);
|
app.calendar.date.long_date(state.first, end_date);
|
||||||
}
|
}
|
||||||
|
|
||||||
static start_date(state)
|
public static start_date(state)
|
||||||
{
|
{
|
||||||
return app.calendar.date.start_of_week(super.start_date(state));
|
return app.calendar.date.start_of_week(super.start_date(state));
|
||||||
}
|
}
|
||||||
|
|
||||||
static end_date(state)
|
public static end_date(state)
|
||||||
{
|
{
|
||||||
var d = app.calendar.date.start_of_week(state.date || new Date());
|
var d = app.calendar.date.start_of_week(state.date || new Date());
|
||||||
// Always 7 days, we just turn weekends on or off
|
// Always 7 days, we just turn weekends on or off
|
||||||
@ -247,7 +250,7 @@ export class week extends View
|
|||||||
|
|
||||||
export class weekN extends View
|
export class weekN extends View
|
||||||
{
|
{
|
||||||
static header(state)
|
public static header(state)
|
||||||
{
|
{
|
||||||
return super._owner(state) + app.calendar.egw.lang('Week') + ' ' +
|
return super._owner(state) + app.calendar.egw.lang('Week') + ' ' +
|
||||||
app.calendar.date.week_number(state.first) + ' - ' +
|
app.calendar.date.week_number(state.first) + ' - ' +
|
||||||
@ -255,12 +258,12 @@ export class weekN extends View
|
|||||||
app.calendar.date.long_date(state.first, state.last);
|
app.calendar.date.long_date(state.first, state.last);
|
||||||
}
|
}
|
||||||
|
|
||||||
static start_date(state)
|
public static start_date(state)
|
||||||
{
|
{
|
||||||
return app.calendar.date.start_of_week(super.start_date(state));
|
return app.calendar.date.start_of_week(super.start_date(state));
|
||||||
}
|
}
|
||||||
|
|
||||||
static end_date(state)
|
public static end_date(state)
|
||||||
{
|
{
|
||||||
state.days = '' + (state.days >= 5 ? state.days : egw.preference('days_in_weekview', 'calendar') || 7);
|
state.days = '' + (state.days >= 5 ? state.days : egw.preference('days_in_weekview', 'calendar') || 7);
|
||||||
|
|
||||||
@ -273,21 +276,21 @@ export class weekN extends View
|
|||||||
|
|
||||||
export class month extends View
|
export class month extends View
|
||||||
{
|
{
|
||||||
static header(state)
|
public static header(state)
|
||||||
{
|
{
|
||||||
var formatDate = new Date(state.date);
|
var formatDate = new Date(state.date);
|
||||||
formatDate = new Date(formatDate.valueOf() + formatDate.getTimezoneOffset() * 60 * 1000);
|
formatDate = new Date(formatDate.valueOf() + formatDate.getTimezoneOffset() * 60 * 1000);
|
||||||
return super._owner(state) + app.calendar.egw.lang(date('F', formatDate)) + ' ' + date('Y', formatDate);
|
return super._owner(state) + app.calendar.egw.lang(date('F', formatDate)) + ' ' + date('Y', formatDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
static start_date(state)
|
public static start_date(state)
|
||||||
{
|
{
|
||||||
var d = super.start_date(state);
|
var d = super.start_date(state);
|
||||||
d.setUTCDate(1);
|
d.setUTCDate(1);
|
||||||
return app.calendar.date.start_of_week(d);
|
return app.calendar.date.start_of_week(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
static end_date(state)
|
public static end_date(state)
|
||||||
{
|
{
|
||||||
var d = super.end_date(state);
|
var d = super.end_date(state);
|
||||||
d = new Date(d.getFullYear(), d.getUTCMonth() + 1, 1, 0, -d.getTimezoneOffset(), 0);
|
d = new Date(d.getFullYear(), d.getUTCMonth() + 1, 1, 0, -d.getTimezoneOffset(), 0);
|
||||||
@ -295,7 +298,7 @@ export class month extends View
|
|||||||
return app.calendar.date.end_of_week(d);
|
return app.calendar.date.end_of_week(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
static scroll(delta)
|
public static scroll(delta)
|
||||||
{
|
{
|
||||||
var d = new Date(app.calendar.state.date);
|
var d = new Date(app.calendar.state.date);
|
||||||
// Set day to 15 so we don't get overflow on short months
|
// Set day to 15 so we don't get overflow on short months
|
||||||
@ -310,7 +313,7 @@ export class planner extends View
|
|||||||
{
|
{
|
||||||
public static etemplates : (string | etemplate2)[] = ['calendar.planner'];
|
public static etemplates : (string | etemplate2)[] = ['calendar.planner'];
|
||||||
|
|
||||||
static header(state)
|
public static header(state)
|
||||||
{
|
{
|
||||||
var startDate = new Date(state.first);
|
var startDate = new Date(state.first);
|
||||||
startDate = new Date(startDate.valueOf() + startDate.getTimezoneOffset() * 60 * 1000);
|
startDate = new Date(startDate.valueOf() + startDate.getTimezoneOffset() * 60 * 1000);
|
||||||
@ -321,17 +324,17 @@ export class planner extends View
|
|||||||
(startDate == endDate ? '' : ' - ' + date(<string>egw.preference('dateformat'), endDate));
|
(startDate == endDate ? '' : ' - ' + date(<string>egw.preference('dateformat'), endDate));
|
||||||
}
|
}
|
||||||
|
|
||||||
static group_by(state)
|
public static group_by(state)
|
||||||
{
|
{
|
||||||
return state.sortby ? state.sortby : 0;
|
return state.sortby ? state.sortby : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: Planner uses the additional value of planner_view to determine
|
// Note: Planner uses the additional value of planner_view to determine
|
||||||
// the start & end dates using other view's functions
|
// the start & end dates using other view's functions
|
||||||
static start_date(state)
|
public static start_date(state)
|
||||||
{
|
{
|
||||||
// Start here, in case we can't find anything better
|
// Start here, in case we can't find anything better
|
||||||
var d = super.start_date( state);
|
var d = super.start_date(state);
|
||||||
|
|
||||||
if(state.sortby && state.sortby === 'month')
|
if(state.sortby && state.sortby === 'month')
|
||||||
{
|
{
|
||||||
@ -353,10 +356,10 @@ export class planner extends View
|
|||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
static end_date(state)
|
public static end_date(state)
|
||||||
{
|
{
|
||||||
|
|
||||||
var d = super.end_date( state);
|
var d = super.end_date(state);
|
||||||
if(state.sortby && state.sortby === 'month')
|
if(state.sortby && state.sortby === 'month')
|
||||||
{
|
{
|
||||||
d.setUTCDate(0);
|
d.setUTCDate(0);
|
||||||
@ -379,13 +382,13 @@ export class planner extends View
|
|||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
static hide_empty(state)
|
public static hide_empty(state)
|
||||||
{
|
{
|
||||||
var check = state.sortby == 'user' ? ['user', 'both'] : ['cat', 'both'];
|
var check = state.sortby == 'user' ? ['user', 'both'] : ['cat', 'both'];
|
||||||
return (check.indexOf(egw.preference('planner_show_empty_rows', 'calendar') + '') === -1);
|
return (check.indexOf(egw.preference('planner_show_empty_rows', 'calendar') + '') === -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static scroll(delta)
|
public static scroll(delta)
|
||||||
{
|
{
|
||||||
if(app.calendar.state.planner_view && !isNaN(delta) && app.calendar.state.sortby !== "month")
|
if(app.calendar.state.planner_view && !isNaN(delta) && app.calendar.state.sortby !== "month")
|
||||||
{
|
{
|
||||||
@ -425,7 +428,7 @@ export class listview extends View
|
|||||||
{
|
{
|
||||||
public static etemplates : (string | etemplate2)[] = ['calendar.list'];
|
public static etemplates : (string | etemplate2)[] = ['calendar.list'];
|
||||||
|
|
||||||
static header(state)
|
public static header(state)
|
||||||
{
|
{
|
||||||
var startDate = new Date(state.first || state.date);
|
var startDate = new Date(state.first || state.date);
|
||||||
startDate = new Date(startDate.valueOf() + startDate.getTimezoneOffset() * 60 * 1000);
|
startDate = new Date(startDate.valueOf() + startDate.getTimezoneOffset() * 60 * 1000);
|
||||||
|
@ -29,6 +29,7 @@ import {day, day4, listview, month, planner, week, weekN} from "./View";
|
|||||||
import {et2_calendar_view} from "./et2_widget_view";
|
import {et2_calendar_view} from "./et2_widget_view";
|
||||||
import {et2_calendar_timegrid} from "./et2_widget_timegrid";
|
import {et2_calendar_timegrid} from "./et2_widget_timegrid";
|
||||||
import {et2_calendar_daycol} from "./et2_widget_daycol";
|
import {et2_calendar_daycol} from "./et2_widget_daycol";
|
||||||
|
import {et2_calendar_planner} from "./et2_widget_planner";
|
||||||
import {et2_calendar_planner_row} from "./et2_widget_planner_row";
|
import {et2_calendar_planner_row} from "./et2_widget_planner_row";
|
||||||
import {et2_calendar_event} from "./et2_widget_event";
|
import {et2_calendar_event} from "./et2_widget_event";
|
||||||
import {et2_dialog} from "../../api/js/etemplate/et2_widget_dialog";
|
import {et2_dialog} from "../../api/js/etemplate/et2_widget_dialog";
|
||||||
@ -256,10 +257,12 @@ export class CalendarApp extends EgwApp
|
|||||||
if(sidebox.length == 0 && egw_getFramework() != null)
|
if(sidebox.length == 0 && egw_getFramework() != null)
|
||||||
{
|
{
|
||||||
// Force rollup to load owner widget, it leaves it out otherwise
|
// Force rollup to load owner widget, it leaves it out otherwise
|
||||||
new et2_calendar_owner(_et2.widgetContainer,{});
|
new et2_calendar_owner(_et2.widgetContainer, {});
|
||||||
|
// Force rollup to load planner widget, it leaves it out otherwise
|
||||||
|
new et2_calendar_planner(_et2.widgetContainer, {});
|
||||||
|
|
||||||
var egw_fw = egw_getFramework();
|
var egw_fw = egw_getFramework();
|
||||||
sidebox= jQuery('#favorite_sidebox_'+this.appname,egw_fw.sidemenuDiv);
|
sidebox = jQuery('#favorite_sidebox_' + this.appname, egw_fw.sidemenuDiv);
|
||||||
}
|
}
|
||||||
|
|
||||||
var content = this.et2.getArrayMgr('content');
|
var content = this.et2.getArrayMgr('content');
|
||||||
@ -3051,21 +3054,28 @@ export class CalendarApp extends EgwApp
|
|||||||
{
|
{
|
||||||
// Simple, easy case - just one widget for the selected time span. (planner)
|
// Simple, easy case - just one widget for the selected time span. (planner)
|
||||||
// Update existing view's special attribute filters, defined in the view list
|
// Update existing view's special attribute filters, defined in the view list
|
||||||
for(var updater in view)
|
for(let updater of Object.getOwnPropertyNames(view))
|
||||||
{
|
{
|
||||||
if(typeof view[updater] === 'function')
|
if(typeof view[updater] === 'function')
|
||||||
{
|
{
|
||||||
let value = view[updater].call(this,state.state);
|
let value = view[updater].call(this, state.state);
|
||||||
if(updater === 'start_date') state.state.first = this.date.toString(value);
|
if(updater === 'start_date')
|
||||||
if(updater === 'end_date') state.state.last = this.date.toString(value);
|
{
|
||||||
|
state.state.first = this.date.toString(value);
|
||||||
|
}
|
||||||
|
if(updater === 'end_date')
|
||||||
|
{
|
||||||
|
state.state.last = this.date.toString(value);
|
||||||
|
}
|
||||||
|
|
||||||
// Set value
|
// Set value
|
||||||
for(var i = 0; i < view.etemplates.length; i++)
|
for(var i = 0; i < view.etemplates.length; i++)
|
||||||
{
|
{
|
||||||
view.etemplates[i].widgetContainer.iterateOver(function(widget) {
|
view.etemplates[i].widgetContainer.iterateOver(function(widget)
|
||||||
if(typeof widget['set_'+updater] === 'function')
|
{
|
||||||
|
if(typeof widget['set_' + updater] === 'function')
|
||||||
{
|
{
|
||||||
widget['set_'+updater](value);
|
widget['set_' + updater](value);
|
||||||
}
|
}
|
||||||
}, this, et2_calendar_view);
|
}, this, et2_calendar_view);
|
||||||
}
|
}
|
||||||
|
@ -8,8 +8,7 @@
|
|||||||
* @author Nathan Gray
|
* @author Nathan Gray
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {et2_register_widget} from "../../api/js/etemplate/et2_core_widget";
|
import {et2_register_widget} from "../../api/js/etemplate/et2_core_widget.ts";
|
||||||
import {et2_selectbox} from "../../api/js/etemplate/et2_widget_selectbox";
|
|
||||||
import {et2_taglist_email} from "../../api/js/etemplate/et2_widget_taglist";
|
import {et2_taglist_email} from "../../api/js/etemplate/et2_widget_taglist";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -20,7 +19,7 @@ import {et2_taglist_email} from "../../api/js/etemplate/et2_widget_taglist";
|
|||||||
*
|
*
|
||||||
* Uses MagicSuggest library
|
* Uses MagicSuggest library
|
||||||
* @see http://nicolasbize.github.io/magicsuggest/
|
* @see http://nicolasbize.github.io/magicsuggest/
|
||||||
* @augments et2_selectbox
|
* @augments et2_taglist_email
|
||||||
*/
|
*/
|
||||||
export class et2_calendar_owner extends et2_taglist_email
|
export class et2_calendar_owner extends et2_taglist_email
|
||||||
{
|
{
|
||||||
|
@ -29,6 +29,8 @@ import {et2_compileLegacyJS} from "../../api/js/etemplate/et2_core_legacyJSFunct
|
|||||||
import {et2_no_init} from "../../api/js/etemplate/et2_core_common";
|
import {et2_no_init} from "../../api/js/etemplate/et2_core_common";
|
||||||
import {CalendarApp} from "./app";
|
import {CalendarApp} from "./app";
|
||||||
import {sprintf} from "../../api/js/egw_action/egw_action_common.js";
|
import {sprintf} from "../../api/js/egw_action/egw_action_common.js";
|
||||||
|
import {et2_dataview_grid} from "../../api/js/etemplate/et2_dataview_view_grid";
|
||||||
|
import {et2_selectbox} from "../../api/js/etemplate/et2_widget_selectbox";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class which implements the "calendar-planner" XET-Tag for displaying a longer
|
* Class which implements the "calendar-planner" XET-Tag for displaying a longer
|
||||||
@ -1906,7 +1908,6 @@ export class et2_calendar_planner extends et2_calendar_view implements et2_IDeta
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fetch = true;
|
|
||||||
// Assume it's empty, if there is data it will be filled later
|
// Assume it's empty, if there is data it will be filled later
|
||||||
egw.dataStoreUID(cache_id, []);
|
egw.dataStoreUID(cache_id, []);
|
||||||
}
|
}
|
||||||
@ -2375,22 +2376,26 @@ export class et2_calendar_planner extends et2_calendar_view implements et2_IDeta
|
|||||||
*/
|
*/
|
||||||
_get_time_from_position( x,y)
|
_get_time_from_position( x,y)
|
||||||
{
|
{
|
||||||
|
if(!this.options.start_date || !this.options.end_date)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
x = Math.round(x);
|
x = Math.round(x);
|
||||||
y = Math.round(y);
|
y = Math.round(y);
|
||||||
|
|
||||||
// Round to user's preferred event interval
|
// Round to user's preferred event interval
|
||||||
var interval = egw.preference('interval','calendar') || 30;
|
var interval = egw.preference('interval', 'calendar') || 30;
|
||||||
|
|
||||||
// Relative horizontal position, as a percentage
|
// Relative horizontal position, as a percentage
|
||||||
var width = 0;
|
var width = 0;
|
||||||
jQuery('.calendar_eventRows',this.div).each(function() {width = Math.max(width,jQuery(this).width());});
|
jQuery('.calendar_eventRows', this.div).each(function() {width = Math.max(width, jQuery(this).width());});
|
||||||
var rel_x = Math.min(x / width,1);
|
var rel_x = Math.min(x / width, 1);
|
||||||
|
|
||||||
// Relative time, in minutes from start
|
// Relative time, in minutes from start
|
||||||
var rel_time = 0;
|
var rel_time = 0;
|
||||||
|
|
||||||
var day_header = jQuery('.calendar_plannerScaleDay',this.headers);
|
var day_header = jQuery('.calendar_plannerScaleDay', this.headers);
|
||||||
|
|
||||||
// Simple math, the x is offset from start date
|
// Simple math, the x is offset from start date
|
||||||
if(this.options.group_by !== 'month' && (
|
if(this.options.group_by !== 'month' && (
|
||||||
|
Loading…
Reference in New Issue
Block a user