Skip to content

Commit

Permalink
Merge pull request #8313 from nightscout/wip/bewest/collaborations
Browse files Browse the repository at this point in the history
Wip/bewest/collaborations
  • Loading branch information
bewest authored Nov 25, 2024
2 parents 5b440b7 + 558927b commit 085590b
Show file tree
Hide file tree
Showing 9 changed files with 647 additions and 624 deletions.
2 changes: 1 addition & 1 deletion lib/server/booterror.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ function bootError(env, ctx) {
return '<dt><b>' + obj.desc + '</b></dt><dd>' + message.replace(/\\n/g, '<br/>') + '</dd>';
}).join(' ');

res.render('error.html', {
res.status(500).render('error.html', {
errors,
locals
});
Expand Down
28 changes: 25 additions & 3 deletions lib/server/loop.js
Original file line number Diff line number Diff line change
Expand Up @@ -130,14 +130,36 @@ function init (env, ctx) {
notification.payload = payload;
notification.interruptionLevel = "time-sensitive"

provider.send(notification, [loopSettings.deviceToken]).then( (response) => {
provider.send(notification, [loopSettings.deviceToken]).then((response) => {
if (response.sent && response.sent.length > 0) {
completion();
} else {
console.log("APNs delivery failed:", response.failed)
completion("APNs delivery failed: " + response.failed[0].response.reason);
console.log("APNs delivery failed:", response.failed);

// Check if response.failed and response.failed[0] are defined
if (response.failed && response.failed.length > 0) {
const failedResponse = response.failed[0];
const reason = failedResponse.response && failedResponse.response.reason
? failedResponse.response.reason
: 'Unknown reason';

// Provide detailed debugging information
const errorMessage = `APNs delivery failed: ${reason}`;
console.error(errorMessage, failedResponse);
completion(errorMessage);
} else {
// Handle the case where response.failed is undefined or empty
const errorMessage = 'APNs delivery failed: No failure details available.';
console.error(errorMessage, response);
completion(errorMessage);
}
}
}).catch((error) => {
// Catch any other unexpected errors
console.error('Unexpected error during APNs delivery:', error);
completion(`APNs delivery failed: ${error.message || 'Unknown error'}`);
});

};

return loop();
Expand Down
28 changes: 14 additions & 14 deletions translations/ar_SA.json
Original file line number Diff line number Diff line change
Expand Up @@ -329,15 +329,15 @@
"Edit treatment": "تعديل المعالجة",
"Duration": "المدة",
"Duration in minutes": "المدة بالدقائق",
"Temp Basal": "درجة الحرارة القاعدية",
"Temp Basal Start": "بداية درجة الحرارة القاعدية",
"Temp Basal End": "نهاية درجة الحرارة القاعدية",
"Temp Basal": "الجرعة القاعدية المؤقتة",
"Temp Basal Start": "بداية الجرعة القاعدية المؤقتة",
"Temp Basal End": "نهاية الجرعة القاعدية المؤقتة",
"Percent": "بالمائة",
"Basal change in %": "التغيير الأساسي بالمائة",
"Basal value": "القيمة الأساسية",
"Absolute basal value": "القيمة الأساسية المطلقة",
"Announcement": "إعلان",
"Loading temp basal data": "تحميل درجة حرارة البيانات القاعدية",
"Loading temp basal data": "جارٍ تحميل بيانات الجرعة القاعدية المؤقتة",
"Save current record before changing to new?": "حفظ السجل الحالي قبل التغيير إلى جديد؟",
"Profile Switch": "تبديل الملف الشخصي",
"Profile": "الملف الشخصي",
Expand Down Expand Up @@ -413,8 +413,8 @@
"Targets": "الأهداف",
"Bolus insulin:": "جرعة أنسولين:",
"Base basal insulin:": "الأنسولين القاعدي الأساسي:",
"Positive temp basal insulin:": "الأنسولين القاعدي ذو درجة الحرارة الإيجابية:",
"Negative temp basal insulin:": "الأنسولين القاعدي ذو درجة الحرارة السلبية:",
"Positive temp basal insulin:": "الأنسولين القاعدي المؤقت الإيجابي:",
"Negative temp basal insulin:": "الأنسولين القاعدي المؤقت السلبي:",
"Total basal insulin:": "إجمالي الأنسولين القاعدي:",
"Total daily insulin:": "إجمالي الأنسولين اليومي:",
"Unable to save Role": "تعذر حفظ الدور",
Expand Down Expand Up @@ -452,10 +452,10 @@
"Current Carb Ratio": "نسبة الكربوهيدرات الحالية",
"Basal timezone": "المنطقة الزمنية القاعدية",
"Active profile": "ملف نشط",
"Active temp basal": "درجة الحرارة القاعدية النشطة",
"Active temp basal start": "بداية درجة الحرارة القاعدية النشطة",
"Active temp basal duration": "مدة درجة الحرارة القاعدية النشطة",
"Active temp basal remaining": "درجة الحرارة القاعدية النشطة المتبقية",
"Active temp basal": "الجرعة القاعدية المؤقتة النشطة",
"Active temp basal start": "بداية الجرعة القاعدية المؤقتة النشطة",
"Active temp basal duration": "مدة الجرعة القاعدية المؤقتة النشطة",
"Active temp basal remaining": "الوقت المتبقي للجرعة القاعدية المؤقتة النشطة",
"Basal profile value": "قيمة الملف القاعدي",
"Active combo bolus": "جرعة تركيبة نشطة",
"Active combo bolus start": "بداية جرعة تركيبة نشطة",
Expand Down Expand Up @@ -492,8 +492,8 @@
"or adjust basal": "أو ضبط القاعدية",
"Check BG using glucometer before correcting!": "-> تحقق من نسبة السكر في الدم باستخدام مقياس السكر قبل التصحيح!",
"Basal reduction to account %1 units:": "التخفيض القاعدي لحساب%1 وحدة:",
"30m temp basal": "30 متر من درجة الحرارة القاعدية",
"1h temp basal": "ساعة واحدة من درجة الحرارة القاعدية",
"30m temp basal": "جرعة قاعدية مؤقتة لمدة 30 دقيقة",
"1h temp basal": "جرعة قاعدية مؤقتة لمدة ساعة واحدة",
"Cannula change overdue!": "تغيير قنية متأخر!",
"Time to change cannula": "ميعاد تغيير القنية الطبية",
"Change cannula soon": "تغيير القنية الطبية قريبا",
Expand Down Expand Up @@ -578,7 +578,7 @@
"virtAsstTitleDelta": "دلتا جلوكوز الدم",
"virtAsstStatus": "%1 و%2 اعتبارًا من %3.",
"virtAsstBasal": "%1 القاعدي الحالي هو %2 وحدة في الساعة",
"virtAsstBasalTemp": "%1 درجة الحرارة القاعدية من %2 وحدة في الساعة ستنتهي %3",
"virtAsstBasalTemp": "%1 جرعة قاعدية مؤقتة من %2 وحدة في الساعة ستنتهي %3",
"virtAsstIob": "ولديك %1 من الأنسولين النشط.",
"virtAsstIobIntent": "لديك %1 من الأنسولين النشط",
"virtAsstIobUnits": "%1 وحدة من",
Expand Down Expand Up @@ -682,7 +682,7 @@
"Previous day": "اليوم السابق",
"Next day": "اليوم التالي",
"Next": "التالي",
"Temp basal delta": "درجة حرارة دلتا الأساسية",
"Temp basal delta": "تغير الجرعة القاعدية المؤقتة",
"Authorized by token": "مصرح به من قبل رمز",
"Auth role": "دور المصادقة",
"view without token": "عرض بدون رمز",
Expand Down
3 changes: 2 additions & 1 deletion translations/es_ES.json
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@
"View all treatments": "Visualizar todos los tratamientos",
"Enable Alarms": "Activar las alarmas",
"Pump Battery Change": "Cambio batería bomba",
"Pump Battery Age": "Edad de la batería en la bomba",
"Pump Battery Age": "Edad de la batería de la bomba",
"Pump Battery Low Alarm": "Alarma de Bomba Baja",
"Pump Battery change overdue!": "Cambio de batería de bomba atrasado!",
"When enabled an alarm may sound.": "Cuando estén activas, una alarma podrá sonar",
Expand Down Expand Up @@ -704,4 +704,5 @@
"Weak API_SECRET detected. Please use a mix of small and CAPITAL letters, numbers and non-alphanumeric characters such as !#%&/ to reduce the risk of unauthorized access. The minimum length of the API_SECRET is 12 characters.": "Detectada API_SECRET débil. Por favor, utilice una mezcla de letras en minúscula y en mayúscula, números y caracteres no alfanuméricos como !#%&/ para reducir el riesgo de acceso no autorizado. La longitud mínima de la API_SECRET es de 12 caracteres.",
"less than 1": "menos de 1",
"MongoDB password and API_SECRET match. This is a really bad idea. Please change both and do not reuse passwords across the system.": "La contraseña de MongoDB y la API_SECRET coinciden. Esto es una muy mala idea. Por favor, cambie ambas contraseñas y no reutilice contraseñas en el sistema."
"virtAsstLaunch":"¿Qué quieres saber de Nightscout?"
}
32 changes: 16 additions & 16 deletions translations/it_IT.json
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,9 @@
"Move to the top": "Spostare verso l'alto",
"Hidden": "Nascosto",
"Hide after use": "Nascondi dopo l'uso",
"Your API secret must be at least 12 characters long": "Il tuo API segreto deve essere lungo almeno 12 caratteri",
"Bad API secret": "API segreto non corretto",
"API secret hash stored": "Hash API segreto memorizzato",
"Your API secret must be at least 12 characters long": "Il tuo \"API secret\" deve essere lungo almeno 12 caratteri",
"Bad API secret": "\"API secret\" non corretto",
"API secret hash stored": "Hash \"API secret\" memorizzato",
"Status": "Stato",
"Not loaded": "Non caricato",
"Food Editor": "Database Alimenti",
Expand All @@ -115,8 +115,8 @@
"Record": "Registro",
"Quick picks": "Scelta rapida",
"Show hidden": "Mostra nascosto",
"Your API secret or token": "Il tuo API segreto o token",
"Remember this device. (Do not enable this on public computers.)": "Ricorda questo dispositivo. (Da non abilitare su computer condivisi con altri.)",
"Your API secret or token": "Il tuo token \"API secret\"",
"Remember this device. (Do not enable this on public computers.)": "Ricorda questo dispositivo. (Da non abilitare su computer condivisi con altri)",
"Treatments": "Somministrazioni",
"Time": "Tempo",
"Event Type": "Tipo di evento",
Expand All @@ -128,7 +128,7 @@
"Event Time": "Ora Evento",
"Please verify that the data entered is correct": "Verificare che i dati inseriti siano corretti",
"BG": "Glicemie",
"Use BG correction in calculation": "Utilizza la correzione delle Glicemia nel calcolo",
"Use BG correction in calculation": "Utilizza la correzione delle Glicemie nel calcolo",
"BG from CGM (autoupdated)": "Glicemie da sensore (aggiornamento automatico)",
"BG from meter": "Glicemie da glucometro",
"Manual BG": "Inserisci Glicemia",
Expand Down Expand Up @@ -424,7 +424,7 @@
"admin, school, family, etc": "amministrazione, scuola, famiglia, etc",
"Permissions": "Permessi",
"Are you sure you want to delete: ": "Sei sicuro di voler eliminare:",
"Each role will have a 1 or more permissions. The <em>*</em> permission is a wildcard, permissions are a hierarchy using <em>:</em> as a separator.": "Ogni ruolo avrà un 1 o più autorizzazioni. Il <em>*</em> il permesso è un jolly, i permessi sono una gerarchia utilizzando <em>:</em> come separatore.",
"Each role will have a 1 or more permissions. The <em>*</em> permission is a wildcard, permissions are a hierarchy using <em>:</em> as a separator.": "Ogni ruolo avrà 1 o più autorizzazioni. Il permesso <em>*</em> è un jolly, i permessi sono una gerarchia utilizzando <em>:</em> come separatore.",
"Add new Role": "Aggiungere un nuovo ruolo",
"Roles - Groups of People, Devices, etc": "Ruoli - gruppi di persone, dispositivi, etc",
"Edit this role": "Modifica questo ruolo",
Expand Down Expand Up @@ -470,7 +470,7 @@
"Warning": "Avviso",
"Info": "Informazioni",
"Lowest": "Minore",
"Snoozing high alarm since there is enough IOB": "Addormenta allarme alto poiché non vi è sufficiente Insulina attiva",
"Snoozing high alarm since there is enough IOB": "Silenzia allarme alto poiché non vi è sufficiente Insulina attiva",
"Check BG, time to bolus?": "Controllare Glicemia, ora di bolo?",
"Notice": "Preavviso",
"required info missing": "richiesta informazioni mancanti",
Expand All @@ -479,9 +479,9 @@
"Expected effect": "Effetto Previsto",
"Expected outcome": "Risultato previsto",
"Carb Equivalent": "Carb equivalenti",
"Excess insulin equivalent %1U more than needed to reach low target, not accounting for carbs": "L'eccesso d'insulina equivalente %1U più che necessari per raggiungere l'obiettivo basso, non rappresentano i carboidrati.",
"Excess insulin equivalent %1U more than needed to reach low target, MAKE SURE IOB IS COVERED BY CARBS": "L' eccesso d'insulina equivale a %1U in più di quanto necessario per raggiungere l'obiettivo basso, ASSICURARSI CHE L'INSULINA ATTIVA SIA COPERTA DAI CARBOIDRATI",
"%1U reduction needed in active insulin to reach low target, too much basal?": "Riduzione %1U necessaria dell'insulina attiva per raggiungere l'obiettivo basso, troppa basale?",
"Excess insulin equivalent %1U more than needed to reach low target, not accounting for carbs": "Eccesso di insulina equivalente a %1U, più che necessaria per raggiungere l'obiettivo basso, non contando i carboidrati",
"Excess insulin equivalent %1U more than needed to reach low target, MAKE SURE IOB IS COVERED BY CARBS": "Eccesso di insulina equivalente a %1U in più di quanto necessario per raggiungere l'obiettivo basso, ASSICURARSI CHE L'INSULINA ATTIVA SIA COPERTA DAI CARBOIDRATI",
"%1U reduction needed in active insulin to reach low target, too much basal?": "Riduzione %1U necessaria all'insulina attiva per raggiungere l'obiettivo basso, troppa basale?",
"basal adjustment out of range, give carbs?": "regolazione basale fuori intervallo, dare carboidrati?",
"basal adjustment out of range, give bolus?": "regolazione basale fuori campo, dare bolo?",
"above high": "sopra alto",
Expand All @@ -505,7 +505,7 @@
"IAGE": "Età Insulina",
"Insulin reservoir change overdue!": "Cambio serbatoio d'insulina in ritardo!",
"Time to change insulin reservoir": "Momento di cambiare serbatoio d'insulina",
"Change insulin reservoir soon": "Cambiare serbatoio d'insulina prossimamente",
"Change insulin reservoir soon": "Cambiare serbatoio d'insulina a breve",
"Insulin reservoir age %1 hours": "IAGE - Durata Serbatoio d'insulina %1 ore",
"Changed": "Cambiato",
"IOB": "Insulina Attiva",
Expand All @@ -521,7 +521,7 @@
"RETRO": "RETRO",
"SAGE": "Età Sensore",
"Sensor change/restart overdue!": "Cambio/riavvio del sensore in ritardo!",
"Time to change/restart sensor": "Tempo di cambiare/riavvio sensore",
"Time to change/restart sensor": "Tempo di cambiare/riavviare sensore",
"Change/restart sensor soon": "Modifica/riavvio sensore prossimamente",
"Sensor age %1 days %2 hours": "Durata Sensore %1 giorni %2 ore",
"Sensor Insert": "SAGE - inserimento sensore",
Expand Down Expand Up @@ -659,7 +659,7 @@
"Admin messages in queue": "Messaggi di amministrazione in coda",
"Queue empty": "Coda vuota",
"There are no admin messages in queue": "Non ci sono messaggi di amministrazione in coda",
"Please sign in using the API_SECRET to see your administration messages": "Effettua il login utilizzando API_SECRET per vedere i messaggi di amministrazione",
"Please sign in using the API_SECRET to see your administration messages": "Effettua il login utilizzando \"API secret\" per vedere i messaggi di amministrazione",
"Reads enabled in default permissions": "Letture abilitate nelle autorizzazioni predefinite",
"Data reads enabled": "Lettura dati abilitata",
"Data writes enabled": "Scrittura dati abilitata",
Expand Down Expand Up @@ -701,7 +701,7 @@
"minutes": "minuti",
"Last recorded %1 %2 ago.": "Ultima registrazione %1 %2 fa.",
"Security issue": "Problema di sicurezza",
"Weak API_SECRET detected. Please use a mix of small and CAPITAL letters, numbers and non-alphanumeric characters such as !#%&/ to reduce the risk of unauthorized access. The minimum length of the API_SECRET is 12 characters.": "Rilevata API_SECRET debole. Si prega di utilizzare lettere minuscole e maiuscole, numeri e caratteri non alfanumerici come !#%&/ per ridurre il rischio di accesso non autorizzato. La lunghezza minima dell'API_SECRET è di 12 caratteri.",
"Weak API_SECRET detected. Please use a mix of small and CAPITAL letters, numbers and non-alphanumeric characters such as !#%&/ to reduce the risk of unauthorized access. The minimum length of the API_SECRET is 12 characters.": "Rilevata \"API secret\" debole. Si prega di utilizzare lettere minuscole e maiuscole, numeri e caratteri non alfanumerici come !#%&/ per ridurre il rischio di accesso non autorizzato. La lunghezza minima dell'API_SECRET è di 12 caratteri.",
"less than 1": "meno di 1",
"MongoDB password and API_SECRET match. This is a really bad idea. Please change both and do not reuse passwords across the system.": "La password di MongoDB e API_SECRET coincidono. Questa è una cattiva idea. Cambiale entrambe e non riutilizzare le password in tutto il sistema."
"MongoDB password and API_SECRET match. This is a really bad idea. Please change both and do not reuse passwords across the system.": "La password di MongoDB e \"API secret\" coincidono. Questa è una cattiva idea. Cambiale entrambe e non riutilizzare le password in tutto il sistema."
}
2 changes: 1 addition & 1 deletion translations/pt_PT.json
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@
"Pump Battery Age": "Idade Bateria da Bomba",
"Pump Battery Low Alarm": "Alarme de Bateria Fraca da Bomba",
"Pump Battery change overdue!": "Troca de Bateria da Bomba atrasada!",
"When enabled an alarm may sound.": "Quando activado um alarme pode soar.",
"When enabled an alarm may sound.": "Quando ativado um alarme pode soar.",
"Urgent High Alarm": "Alarme Muito Alto",
"High Alarm": "Alarme Hiper",
"Low Alarm": "Alarme Hipo",
Expand Down
6 changes: 3 additions & 3 deletions translations/ru_RU.json
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@
"Loading profile switch data": "Загрузка данных нового профиля",
"Redirecting you to the Profile Editor to create a new profile.": "Переход к редактору профиля для создания нового",
"Pump": "Помпа",
"Sensor Age": "Сенсору",
"Sensor Age": "Сенсор проработал",
"Insulin Age": "Инсулину",
"Temporary target": "Временная цель",
"Reason": "Основание",
Expand Down Expand Up @@ -519,11 +519,11 @@
"%1h ago": "%1 час назад",
"%1d ago": "%1d назад",
"RETRO": "ПРОШЛОЕ",
"SAGE": "Сенсор работает",
"SAGE": "СЕНСОРУ",
"Sensor change/restart overdue!": "Рестарт сенсора пропущен",
"Time to change/restart sensor": "Время замены/рестарта сенсора",
"Change/restart sensor soon": "Приближается срок замены/рестарта сенсора",
"Sensor age %1 days %2 hours": "Сенсору %1 дн %2 час",
"Sensor age %1 days %2 hours": "Сенсор отработал %1 дн %2 час",
"Sensor Insert": "Сенсор установлен",
"Sensor Start": "Старт сенсора",
"days": "дней",
Expand Down
4 changes: 2 additions & 2 deletions translations/tr_TR.json
Original file line number Diff line number Diff line change
Expand Up @@ -557,8 +557,8 @@
"virtAsstUnknown": "Bu değer şu anda bilinmiyor. Daha fazla ayrıntı için lütfen Nightscout sitenize bakın.",
"virtAsstTitleAR2Forecast": "AR2 Tahmini",
"virtAsstTitleCurrentBasal": "Geçerli Bazal",
"virtAsstTitleCurrentCOB": "Geçerli AKRB",
"virtAsstTitleCurrentIOB": "Geçerli AİNS",
"virtAsstTitleCurrentCOB": "Mevcut AKRB",
"virtAsstTitleCurrentIOB": "Mevcut AİNS",
"virtAsstTitleLaunch": "Nightscout'a hoş geldiniz",
"virtAsstTitleLoopForecast": "Döngü Tahmini",
"virtAsstTitleLastLoop": "Son Döngü",
Expand Down
Loading

0 comments on commit 085590b

Please sign in to comment.