After updating the personal environment to version 11.8.0, I started having problems translating the Calendar widget (Date Picker). I have always used the Brazilian Portuguese translation by inserting the following in AdvancedFormat:

"
{
    i18n: {
        previousMonth: 'Anterior',
        nextMonth: 'Próximo',
        months: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
        weekdays: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'],
        weekdaysShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'],
        todayButton: 'Hoje'
    }
}
"


However, after the update, a few days ago the calendar no longer opens after compiling the app (neither on Android nor on iOS).

I have already tried to update Pickaday's documentation, but the recommendation is to insert exactly the way I presented it.

Has anyone experienced this problem?

Hello Eurico.

My PE was updated this morning to 11.8.

I just added Date Picker to a screen and it worked. With exactly your settings. Even the same variable name. The handler was the auto-generated action.

Is your variable DataAgenda of type Date?

Any error in Service Center?

Hi Eurico,

Did you install the latest OutSystems UI (version 2.4.2) after the Platform upgrade?

If not, update to the latest version and republish your application after refreshing the dependencies.

Regards,

Nordin


I will answer both questions here. The version of Outsystems UI is 2.4.2.

The error that appears in my app is:

Cannot read property '0' of undefined

Cannot read property '0' of undefinedeSpaceVer: Id=1345, PubId=0, CompiledWith=11.8.0.10304
RequestUrl: https://agenda-app.outsystemscloud.com/Agenda/moduleservices/log?clientTimeInMillis=1589154446690 (Method: POST)
AppDomain: /LM/W3SVC/9/ROOT/Agenda-275-132336278199319779
FilePath: C:\OutSystems\Sandboxes\MTMY1B006\Platform Server\running\Agenda\
ClientIp: 191.177.182.174
DeviceUUID: 33bf3de6b1c451dd
Locale: en-US
DateFormat: dd/MM/yyyy
PID: 11756 ('w3wp', Started='4/14/2020 1:09:02 PM', Priv=933Mb, Virt=2117720Mb)
TID: 70
Thread Name:
.NET: 4.0.30319.42000
NetworkType: WIFI
AppVersionCode: 45
NativeShell: 8.2.7
DeviceUUID: 33bf3de6b1c451dd
AppVersionName: 1.0.6
DeviceModel: ONEPLUS A5000
OperatingSystem: Android 7.1.1
NetworkStatus: Online
Cordova: 8.1.0
Client-Side LogTypeError: Cannot read property '0' of undefined
    at renderTable (https://agenda-app.outsystemscloud.com/Agenda/scripts/OutSystemsUI.Calendar.js?RR7KW2DDm290grZ5dGZTEQ:505:194)
    at Pikaday.render (https://agenda-app.outsystemscloud.com/Agenda/scripts/OutSystemsUI.Calendar.js?RR7KW2DDm290grZ5dGZTEQ:1655:20)
    at Pikaday.draw (https://agenda-app.outsystemscloud.com/Agenda/scripts/OutSystemsUI.Calendar.js?RR7KW2DDm290grZ5dGZTEQ:1471:205)
    at Pikaday.show (https://agenda-app.outsystemscloud.com/Agenda/scripts/OutSystemsUI.Calendar.js?RR7KW2DDm290grZ5dGZTEQ:1674:22)
    at new Pikaday (https://agenda-app.outsystemscloud.com/Agenda/scripts/OutSystemsUI.Calendar.js?RR7KW2DDm290grZ5dGZTEQ:1076:18)
    at https://agenda-app.outsystemscloud.com/Agenda/scripts/OutSystemsUI.Interaction.DatePicker.mvc.js?KuKCNSvwICLTSIWabsiasA:1085:27
    at Controller.e.safeExecuteJSNode (https://agenda-app.outsystemscloud.com/Agenda/scripts/OutSystems.js?p5eKvE3aS8b15CXklrM6cw:12:31300)
    at Controller._init$Action (https://agenda-app.outsystemscloud.com/Agenda/scripts/OutSystemsUI.Interaction.DatePicker.mvc.js?KuKCNSvwICLTSIWabsiasA:523:33)
    at Controller._onReady$Action (https://agenda-app.outsystemscloud.com/Agenda/scripts/OutSystemsUI.Interaction.DatePicker.mvc.js?KuKCNSvwICLTSIWabsiasA:796:12)
    at https://agenda-app.outsystemscloud.com/Agenda/scripts/OutSystems.js?p5eKvE3aS8b15CXklrM6cw:13:10429


Eurico Junior

It is the opposite of what Nordin said.

My OSUI on this server was outdated. I got the latest version and now it is giving the same error that you got.

Ok, I'm reporting this to OS.

Probably the other tab error is the same. Can you still go back to the previous version for a while?

I removed the translation from the calendar and left it in English for now.

Hmm I was just taking a guess. I imagined it’s most times a good thing to update your components to latest version. But I guess in this case it is not. Now, it sounds like 2.4.2 contains a bug.

Good you’re reporting it to OutSystems Nuno, thanks.

Today OutsystemsUI has been updated to 2.5.0, but the problem still persists. it is not possible to use AdvancedFormat as per the Pickaday documentation.

Today OutsystemsUI has been updated to 2.5.1, but the problem still persists. it is not possible to use AdvancedFormat as per the Pickaday documentation.

Solution

Hi Guys,

At the moment, there is an issue on the DatePicker, introduced as a side effect of the Accessibility improvements done recently. So, what is the problem exactly? The i18n option requires to translate all the fields, or else an error is thrown.

After the Accessibility improvements, there are new strings that need translation, so your previous configuration does not work in this version, What will OutSystems do? We will analyse the possibility of supporting the partial translation, so a normal translation like the one on this thread works like before. We will also support the translations for Accessibility.

As a workaround, you can translate all the strings, including the Accessibility ones, as described bellow:

"
{
    i18n: {
        previousMonth: 'Anterior',
        nextMonth: 'Próximo',
        months: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
        weekdays: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'],
        weekdaysShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'],
        todayButton: 'Hoje',
        ariaLabelIsDisabled     : 'Desactivado. ',
        ariaLabelIsToday        : 'Hoje. ',
        ariaLabelDaySelected    : 'Dia seleccionado. ',
        ariaLabelHasEvent       : 'Tem evento.',
        ariaLabelDaysInRange    : 'Dias no intervalo de datas. ',
        ariaLabelStartRange     : 'Início do intervalo de datas. ',
        ariaLabelEndRange       : 'Fim do intervalo de datas. ',
        ariaLabelNavigation     : 'navegação',
        ariaLabelMonth          : 'mês',
        ariaLabelYear           : 'ano',
        ariaLabelPreviousMonth  : 'Mês anterior',
        ariaLabelNextMonth      : 'Próximo mês',
        ariaLabelKeyboardShortcuts: 'Atalhos',
        ariaLabelCalendarDates  : 'Dias do calendário',
        keyboardShortcutsDialog : ['Estes são os atalhos disponíveis:','LEFT / RIGHT para navegar entre os dias.','UP / DOWN para navegar entre as semanas.','DELETE para anular a data.','ESCAPE para fechar o calendário.','PAGE UP para navegar para o mês anterior.','PAGE DOWN para navegar para o próximo mês.','SPACE / ENTER para seleccionar a data.'],
        keyboardShortcutsDialogButton : 'Entendi!',
        ariaLabelDateSelected   : 'Data seleccionada: ',
        ariaLabelCalendar       : 'Calendário',
        ariaLabelGoToToday      : 'Ir para o dia actual',
        ariaLabelOpenCalendar   : 'Aberto. Pressione Enter para fechar o calendário',
        ariaLabelCloseCalendar  : 'Fechado. Pressione Enter para abrir o calendário',
        ariaLabelEnterCalendar  : 'Pressione Tab para entrar no calendário'
    }
}
"

Thank you for reporting this issue!

Solution