From 518281ce31fe095738742b3af494d27c74e05475 Mon Sep 17 00:00:00 2001 From: anshuk Date: Mon, 31 Jul 2023 07:56:15 +0530 Subject: [PATCH] -Bug fix - Fixed Events in CalendarView sometimes can't be resized or moved around. --- COMMITMESSAGE.md | 10 +--- src/components/fullcalendar/DashboardView.js | 50 ++++++++++++-------- 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/COMMITMESSAGE.md b/COMMITMESSAGE.md index 45d6c67..ddb7146 100644 --- a/COMMITMESSAGE.md +++ b/COMMITMESSAGE.md @@ -1,8 +1,2 @@ -v0.3.0-dev - - Version bumped to 0.3.0 - - NextAuth.js Introduced - - OAuth now works with MMDL! - - Supports Keycloak, Google, Authentik out of the box. The rest (those supported by NextAuth.js) can be added manually by the user. - - Sequelize formally introduced - - Models and migrations generated - - Bug fixes \ No newline at end of file +-Bug fix + - Fixed Events in CalendarView sometimes can't be resized or moved around. \ No newline at end of file diff --git a/src/components/fullcalendar/DashboardView.js b/src/components/fullcalendar/DashboardView.js index db2ab70..85d00d5 100644 --- a/src/components/fullcalendar/DashboardView.js +++ b/src/components/fullcalendar/DashboardView.js @@ -46,6 +46,7 @@ class DashboardView extends Component { this.showTasksChanged = this.showTasksChanged.bind(this) this.addEventsToCalendar = this.addEventsToCalendar.bind(this) this.userPreferencesChanged = this.userPreferencesChanged.bind(this) + this.allEvents = {} } @@ -167,14 +168,14 @@ class DashboardView extends Component { } eventClick = (e) => { var newID = e.event.id - if (varNotEmpty(this.state.allEvents[e.event.id]) == false) { + if (varNotEmpty(this.allEvents[e.event.id]) == false) { //Probably a recurring event. Get ID from map. newID = this.state.recurMap[e.event.id] } - var eventData = this.state.allEvents[newID] + var eventData = this.allEvents[newID] - if (varNotEmpty(this.state.allEvents[newID]) && this.state.allEvents[newID].type != "VTODO" && this.state.allEvents[newID].type != "VTIMEZONE" && varNotEmpty(this.state.allEvents[newID])) { + if (varNotEmpty(this.allEvents[newID]) && this.allEvents[newID].type != "VTODO" && this.allEvents[newID].type != "VTIMEZONE" && varNotEmpty(this.allEvents[newID])) { this.setState({ showEventEditor: true, selectedID: e.event.id, eventDataDashBoard: eventData }) @@ -197,14 +198,14 @@ class DashboardView extends Component { async eventDrop(e) { //console.log(e) var newID = e.event.id - if (varNotEmpty(this.state.allEvents[e.event.id]) == false) { + if (varNotEmpty(this.allEvents[e.event.id]) == false) { //Probably a recurring event. Get ID from map. newID = this.state.recurMap[e.event.id] } //Calculate delta in ms - var eventData = this.state.allEvents[newID] - if (this.state.allEvents && this.state.allEvents[newID] && this.state.allEvents[newID].type != "VTODO" && this.state.allEvents[newID].type != "VTIMEZONE" && varNotEmpty(this.state.allEvents[newID])) { + var eventData = this.allEvents[newID] + if (this.allEvents && this.allEvents[newID] && this.allEvents[newID].type != "VTODO" && this.allEvents[newID].type != "VTIMEZONE" && varNotEmpty(this.allEvents[newID])) { var delta = e.delta.milliseconds + (e.delta.days * 86400 * 1000) + (e.delta.months * 30 * 86400 * 1000) + (e.delta.years * 365 * 86400 * 1000) //console.log("delta", delta) @@ -254,16 +255,17 @@ class DashboardView extends Component { } async eventResize(e) { - console.log("eventResize", this.state.allEvents[e.event.id]) + console.log("eventResize", this.allEvents[e.event.id]) var newID = e.event.id - if (varNotEmpty(this.state.allEvents[e.event.id]) == false) { + if (varNotEmpty(this.allEvents[e.event.id]) == false) { //Probably a recurring event. Get ID from map. newID = this.state.recurMap[e.event.id] } //Calculate delta in ms - var eventData = _.cloneDeep(this.state.allEvents[newID]) - if (this.state.allEvents && this.state.allEvents[newID] && this.state.allEvents[newID].type != "VTODO" && this.state.allEvents[newID].type != "VTIMEZONE" && varNotEmpty(this.state.allEvents[newID])) { + var eventData = _.cloneDeep(this.allEvents[newID]) + console.log(this.allEvents[newID]) + if (this.allEvents && this.allEvents[newID] && this.allEvents[newID].type != "VTODO" && this.allEvents[newID].type != "VTIMEZONE" && varNotEmpty(this.allEvents[newID])) { var delta = e.endDelta.milliseconds + (e.endDelta.days * 86400 * 1000) + (e.endDelta.months * 30 * 86400 * 1000) + (e.endDelta.years * 365 * 86400 * 1000) //console.log("delta", delta) @@ -332,11 +334,14 @@ class DashboardView extends Component { } async addEventsToCalendar(allEvents){ var finalEvents = [] + this.allEvents = {} if (isValidResultArray(allEvents.data.message)) { for (let i = 0; i < allEvents.data.message.length; i++) { for (const j in allEvents.data.message[i].events) { + + var userWantsToSee = Preference_CalendarsToShow.getShowValueForCalendar(allEvents.data.message[i].info.caldav_accounts_id, allEvents.data.message[i].events[j].calendar_id) if(userWantsToSee ==false){ continue @@ -466,13 +471,16 @@ class DashboardView extends Component { } */ - this.setState((prevState, props) => { - var newAllEvents = _.cloneDeep(prevState.allEvents) - newAllEvents[data.uid] = { data: data, event: allEvents.data.message[i].events[j] } - return({allEvents: newAllEvents}) + // this.setState((prevState, props) => { + // var newAllEvents = _.cloneDeep(prevState.allEvents) + // newAllEvents[data.uid] = { data: data, event: allEvents.data.message[i].events[j] } + // return({allEvents: newAllEvents}) - }) - // this.state.allEvents[data.uid] = { data: data, event: allEvents.data.message[i].events[j] } + // }) + var eventToPush = {} + eventToPush[data.uid] ={ data: data, event: allEvents.data.message[i].events[j] } + this.allEvents[data.uid] = { data: data, event: allEvents.data.message[i].events[j] } + // this.allEvents[data.uid] = { data: data, event: allEvents.data.message[i].events[j] } } else if (event.type == "VTODO" && this.state.showTasksChecked==true) { @@ -540,12 +548,12 @@ class DashboardView extends Component { } } - this.setState((prevState, props) => { - var newAllEvents = _.cloneDeep(prevState.allEvents) - newAllEvents[data.uid] = { data: data, event: allEvents.data.message[i].events[j] } - return({allEvents: newAllEvents}) + // this.setState((prevState, props) => { + // var newAllEvents = _.cloneDeep(prevState.allEvents) + // newAllEvents[data.uid] = { data: data, event: allEvents.data.message[i].events[j] } + // return({allEvents: newAllEvents}) - }) + // }) } }