[UICAL-110] Calendar Crashing + Existing opening periods do not display in the calendar view Created: 30/Jun/20  Updated: 23/Oct/20  Resolved: 23/Oct/20

Status: Closed
Project: ui-calendar
Components: None
Affects versions: None
Fix versions: None

Type: Bug Priority: P2
Reporter: Anya Assignee: Cheryl Malmborg
Resolution: Cannot Reproduce Votes: 0
Labels: calendar
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original estimate: Not Specified

Attachments: PNG File screenshot-1.png     PNG File screenshot-2.png     PNG File screenshot-3.png    
Issue links:
Relates
relates to UICAL-114 UX: Calendar app with simplified design Closed
Sprint:
Development Team: Vega
Affected Institution:
Chalmers

 Description   

When adding exception periods in Settings the calendar crashes. Since adding exception periods yesterday we cannot see any opening hours in the calendar.

Updated description from Lisa (for Chalmers) 2020-07-27: Adding some details about the specific issue of existing periods not displaying. It's possible that the "crashing" of the app during creation of new periods is a separate issue – I know we've had some pretty erratic problems with that, but I haven't seen the display issue before.

Issue: Existing opening periods do not display in the calendar view

Steps to reproduce

  1. Go to Settings > Calendar > Library Hours and click on service point HB Infodisk
  2. Click Open calendar to add exceptions to view the calendar
  3. Verify that the calendar is displaying data for the present month (July 2020)
  4. Check the API responses in Developer tools to verify that the service point HB Infodisk does indeed have opening period(s) for the present month
  5. In the left pane, check the box for service point HB Infodisk

Expected result

Regular and exceptional opening periods for service point HB Infodisk are displayed in the calendar

Actual result

No opening periods for service point HB Infodisk are displayed in the calendar. Checking and unchecking the boxes in the left pane, for any of the service points, does not change what is displayed – the calendar display remains empty.

Comments

I am not seeing this issue in the Goldenrod bugfest environment or in FOLIO Snapshot, so I suspect it's either a pre-Goldenrod issue or a Chalmers data issue.
In the console, there is an error message that appears when you open the calendar (ie before you start checking boxes) in the Chalmers environment, but not in bugfest or snapshot.

Uncaught (in promise) TypeError: Cannot read property 'weekdays' of undefined

If I understand correctly, the error occurs at this line of code:

void 0 !== r[a].openingDays[0].weekdays && null !== r[a].openingDays[0].weekdays && (o = !1);


 Comments   
Comment by Anya [ 30/Jun/20 ]

Cheryl Malmborg do you have any insight as to why this might be happening? THey are on Fameflower.

Tagging Siska

Comment by Dennis Bridges [ 30/Jun/20 ]

Anya was this possibly added to the wrong project or is this a concern for the Orders app?

Comment by Anya [ 30/Jun/20 ]

O I am sorry ! Dennis Bridges do you know how to change it ?

Comment by Dennis Bridges [ 30/Jun/20 ]

Yes no problem, what project did you want it on?

Comment by Cheryl Malmborg [ 01/Jul/20 ]

Anya I don't know why this is happening. I think it will take developers looking at Chalmers' calendar and logs.

If they can share the calendar - date range, daily hours, existing exceptions - I can try to reproduce the problem.

Comment by Lisa Sjögren [ 27/Jul/20 ]

Hi Anya!

Doesn't this belong in the SUP project, rather than UXPROD? I'm guessing it's based on our EBSCO Connect issue 5001H000017c9n1QAA.

I'll try to flesh out the description a bit, but I actually think it would be even better to make this into two separate issues:

  1. Existing periods don't display in the Calendar calendar view
  2. Calendar app frequently crashes when you try to add new period (I'll try to repro it and add some info)
Comment by Anya [ 27/Jul/20 ]

Cheryl Malmborg- could you assign this to you and to your dev team?

Comment by Darcy Branchini [ 28/Jul/20 ]

Cheryl Malmborg, I thought we all (RA SIG and Circ POs) decided to rewrite/simplify the UI for the calendar using text inputs instead of a GUI calendar view which we know has been buggy. Have you been able to follow up on that? Or do you know if Kimie Kester was able to do any mockups? If you don't have time for this, I might be willing to give it a shot with Kimie. I probably don't know as much as you about this function and the variances within libraries, but as long as we recreate the existing functionality, we should be in good shape.

Comment by Darcy Branchini [ 28/Jul/20 ]

Lisa Sjögren I agree with your thinking and making this two separate issues and any details to the crashing issue would be greatly appreciated! Thank you!

Comment by Lisa Sjögren [ 29/Jul/20 ]

Darcy Branchini Simplifying the GUI sounds like a great idea!

My colleague who originally reported this will be on leave for the rest of the year, and - for good and bad - I haven't been able to reproduce the crash. The only thing I have to add to the description is that my colleague experienced this when trying to add new exception periods for four of our service points. I'm not sure if she did it by checking them all at once, or one by one – but perhaps the load of performing several actions concurrently/in quick succession might perhaps have been a factor in making the calendar unstable.

I also know that we used to have some pretty erratic-seeming problems with getting stuck in a loop of "Select a starting date", "Select a name" etc errors even when all fields were filled in, but I don't think I've seen or heard reports of this since Edelweiss.

Comment by Lisa Sjögren [ 29/Jul/20 ]

As for the periods-not-displaying issue, I'm really curious about whether anyone else running Fameflower has experienced it? ping Kelly Drake and Brooks Travis

Comment by Kelly Drake [ 29/Jul/20 ]

Lisa Sjögren - Simmons doesn't have any exceptions so I tested on our test system. Don't know if I'm doing everything correctly but when I add exceptions they don't show on the calendar at all. The calendar still has the regular opening and closing times. Let me know if you need to me to try something else.

Comment by Lisa Sjögren [ 29/Jul/20 ]

Thanks Kelly Drake! That's interesting. In our case, right now, neither normal nor exceptions are showing. Are you seeing an "Uncaught (in promise) TypeError: Cannot read property 'weekdays' of undefined" error in the console when you click "Open calendar to add exceptions"?

For reference, this is what the calendar should look like with regular and exceptional periods displaying for the checked service point(s):

Comment by Lisa Sjögren [ 29/Jul/20 ]

Here's a strange thing that I managed to produce while testing around in the Chalmers calendar:

    {
      "id": "36094938-1f3a-498d-8353-66d704aa2218",
      "servicePointId": "1f255785-626e-4803-a477-3d1f46e05289",
      "name": "Two short days",
      "startDate": "2020-08-26T00:00:00.000+0000",
      "endDate": "2020-08-28T00:00:00.000+0000",
      "openingDays": [
        {
          "openingDay": {
            "openingHour": [
              {
                "startTime": "23:00",
                "endTime": "12:00"
              }
            ],
            "allDay": false,
            "open": false
          }
        }
      ]
    },

It has an opening period of 1 hr per day, but also has_ "open": false_ (which I though was the same as "closed all day").

I have no idea how that happened.

Comment by Cheryl Malmborg [ 29/Jul/20 ]

I've experimented with the University of Chcago famflower test server. I've not been able to reproduce either problem. I do not get error messages and I can see the regular and exception hours in the calendar.

Lisa Sjögren Kelly Drake
Can you add what version of the calendar you have installed? Go to Settings->Software versions->settings modules->@folio/calendar.

Thanks

Comment by Kelly Drake [ 29/Jul/20 ]

Lisa Sjögren - I do not get that error message, and after playing around am now able to see the exceptions on the calendar. (Wish I could remember exactly what i did!)

Comment by Lisa Sjögren [ 29/Jul/20 ]

Thanks Cheryl Malmborg!

We have @folio/calendar 3.0.0.

Anya, has the hosting team looked into this? The fact that other libraries on Faneflower aren't experiencing it does seem to imply that it's an issue with our tenant or data.

Comment by Anya [ 29/Jul/20 ]

Lisa Sjögren- yes they have, but I will ping them again with this extended information.

Comment by Cheryl Malmborg [ 29/Jul/20 ]

Lisa Sjögren
3.0.0 is the same version I tested.

Comment by Lisa Sjögren [ 30/Jul/20 ]

Thanks, Anya!

Comment by Brooks Travis [ 30/Jul/20 ]

Sorry for the delayed reply. I'm not seeing this issue in our Fameflower system, but we don't have any exceptions defined on our calendars currently (this is something I need to fix, in general and have just been putting off).

Comment by Anya [ 03/Aug/20 ]

Via the Support sig - just asking for a status on this....

Comment by Darcy Branchini [ 03/Aug/20 ]

Cheryl Malmborg, does anything here require a hotfix?

Comment by Cheryl Malmborg [ 05/Aug/20 ]

Darcy Branchini The problem is not reproducible and Chalmers is no longer crashing. I don't think there could be a hotfix.

The problem seems to be limited to Chalmers.

Comment by Lisa Sjögren [ 06/Aug/20 ]

To clarify, the issue where we our existing normal and exceptional periods do not display still stands. I do agree that it looks like it's limited to Chalmers, though.

Anya, any news from the FSE/hosting team? Have you ruled out the theory that incorrect/incompatible data is causing this?

As I understand, errors like

Uncaught (in promise) TypeError: Cannot read property 'weekdays' of undefined

generally imply that some value or element FOLIO is expecting to find is missing - typically because the data has not (in the upgrade process) been updated to comply with the latest version of FOLIO, or because a referenced record has been deleted by another app. Cf for example UIU-1411 Closed .

Comment by Kruthi Vuppala [ 06/Aug/20 ]

so I found the issue: For the service point "Main Library HB" An exception has been added without openingDays, that causes the below exception

Uncaught (in promise) TypeError: Cannot read property 'weekdays' of undefined

Here is the record which is causing issue

curl --location --request GET 'https://okapi-chalmers.folio.ebsco.com/calendar/periods/bd353ac4-73f9-4431-b0cc-088e564691db/period?withOpeningDays=true&showPast=true&showExceptional=true' \
--header 'x-okapi-token: {okapiToken}'

RESPONSE:

{
  "openingPeriods": [
........
    {
      "id": "312d9488-3861-427e-8f50-90be8dfe1991",
      "servicePointId": "bd353ac4-73f9-4431-b0cc-088e564691db",
      "name": "Corona Sommar 2020",
      "startDate": "2020-05-05T00:00:00.000+0000",
      "endDate": "2020-08-16T00:00:00.000+0000",
      "openingDays": []
    }
  ],
  "totalRecords": 5
}

I think once this record is removed, it should work

Comment by Lisa Sjögren [ 07/Aug/20 ]

Excellent! Thank you for identifying the erroneous data, Kruthi Vuppala. Please remove the incomplete record!

Judging from the startDate (since there seems to be no createdDate), we probably created this exception period sometime back in April (ie in Edelweiss). It's pretty rarely that we do anything in the calendar, but on April 6th a colleague who was adding exception periods reported to me (and, I believe, to Theodor Tolstoy (One-Group.se), maybe he has more details) that she had ended up in a "loop of_ Select start date_ and Select end date messages". Perhaps that loop issue caused or was caused by the incomplete record.

Comment by Kruthi Vuppala [ 07/Aug/20 ]

Lisa Sjögren I deleted the record. And able to see the existing periods being displayed. Please verify and let me know

Comment by Zak Burke [ 17/Aug/20 ]

As Kruthi Vuppala noted, the issue is that the UI doesn't handle periods without an openingDays attribute. Given that the API allows periods to be saved without this attribute, even if it's pointless, doing so shouldn't break the UI. Given the console messages mentioned in the description:

Uncaught (in promise) TypeError: Cannot read property 'weekdays' of undefined
void 0 !== r[a].openingDays[0].weekdays && null !== r[a].openingDays[0].weekdays && (o = !1);

ExceptionWrapper.js#587 looks like a likely culprit:

if (temp[j].openingDays[0].weekdays !== undefined && temp[j].openingDays[0].weekdays !== null) {
Comment by Lisa Sjögren [ 24/Aug/20 ]

Thanks Kruthi Vuppala! Looks good. Anya, you can close the EBSCO Connect issue since it's been solved for Chalmers. If the calendar crashes again we'll create a new one.

Comment by Darcy Branchini [ 27/Aug/20 ]

Anya, based on Lisa's comment above, can this be closed?

Generated at Fri Feb 09 00:24:57 UTC 2024 using Jira 1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d.