@c8y/ng1-modules 1019.22.0 → 1019.23.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/locales/de.po +25 -4
- package/core/locales/es.po +21 -0
- package/core/locales/fr.po +21 -0
- package/core/locales/ja_JP.po +9 -0
- package/core/locales/nl.po +21 -0
- package/core/locales/pl.po +21 -0
- package/core/locales/pt_BR.po +21 -0
- package/core/ui/services/measurementsReport.js +1 -1
- package/package.json +1 -1
- package/roles/detail/roleDetailGlobal.component.js +1 -1
- package/roles/detail/roleDetailGlobal.html +1 -4
- package/roles/detail/roleDetailInventory.component.js +1 -1
- package/roles/detail/roleDetailInventory.html +6 -5
- package/roles/list/rolesList.component.js +1 -1
- package/roles/list/rolesList.html +3 -2
- package/roles/rolesUi.provider.js +1 -1
- package/userRoles/inventoryRolesTab/inventoryRolesTab.component.js +1 -1
- package/userRoles/inventoryRolesTab/inventoryRolesTab.html +2 -1
package/core/locales/de.po
CHANGED
|
@@ -242,8 +242,8 @@ msgid ""
|
|
|
242
242
|
" inventory."
|
|
243
243
|
msgstr ""
|
|
244
244
|
"Eine <strong> globale Rolle </strong> enthält allgemein anwendbare Berechtigungen. \n"
|
|
245
|
-
" Wählen Sie zum Beispiel \"Lesen\" in der Zeile \"
|
|
246
|
-
" alle Objekte im
|
|
245
|
+
" Wählen Sie zum Beispiel \"Lesen\" in der Zeile \"Stammdaten\" aus, damit Benutzer mit dieser Rolle\n"
|
|
246
|
+
" alle Objekte im Stammdaten lesen können."
|
|
247
247
|
|
|
248
248
|
msgid "A bulk registration CSV template for NO_SEC devices with all optional fields"
|
|
249
249
|
msgstr "Ein CSV-Template mit allen optionalen Feldern für die Bulk-Registrierung mehrerer NO_SEC-Geräte"
|
|
@@ -2558,7 +2558,7 @@ msgid ""
|
|
|
2558
2558
|
" needs to have inventory write permission."
|
|
2559
2559
|
msgstr ""
|
|
2560
2560
|
"Änderungen, die am Start-Dashboard vorgenommen werden, sind nur für den aktuellen Benutzer sichtbar.\n"
|
|
2561
|
-
" HINWEIS: Dieser Benutzer muss über eine Schreibberechtigung für das
|
|
2561
|
+
" HINWEIS: Dieser Benutzer muss über eine Schreibberechtigung für das Stammdaten verfügen."
|
|
2562
2562
|
|
|
2563
2563
|
msgid "Changes done to the home dashboard are reflected only in the current application."
|
|
2564
2564
|
msgstr "Änderungen, die am Start-Dashboard vorgenommen werden, sind nur in der aktuellen Anwendung sichtbar."
|
|
@@ -3550,12 +3550,21 @@ msgstr "Das Modul \"{{moduleName}}\" konnte nicht eingerichtet werden. Die Kompi
|
|
|
3550
3550
|
msgid "Could not deploy the application, as an application with the same name`KEEP_ORIGINAL`, context-path`KEEP_ORIGINAL` or key`KEEP_ORIGINAL` exists already."
|
|
3551
3551
|
msgstr "Die Anwendung konnte nicht bereitgestellt werden, da bereits eine Anwendung mit demselben name, context-path oder key existiert."
|
|
3552
3552
|
|
|
3553
|
+
msgid "Could not download data for \"{{name}}\": access denied."
|
|
3554
|
+
msgstr "Die Daten für \"{{name}}\" konnten nicht heruntergeladen werden: Zugriff verweigert."
|
|
3555
|
+
|
|
3553
3556
|
msgid "Could not download the file: object with ID \"{{ id }}\" is not a valid binary."
|
|
3554
3557
|
msgstr "Die Datei konnte nicht heruntergeladen werden, weil das Objekt mit der ID \"{{ id }}\" keine gültige Binärdatei ist."
|
|
3555
3558
|
|
|
3556
3559
|
msgid "Could not download the log file."
|
|
3557
3560
|
msgstr "Logdatei konnte nicht heruntergeladen werden."
|
|
3558
3561
|
|
|
3562
|
+
msgid "Could not download the report. You need this global role to download reports: Measurement Read."
|
|
3563
|
+
msgstr "Der Bericht konnte nicht heruntergeladen werden. Sie benötigen die folgende globale Rolle, um Berichte herunterzuladen: Messwerte Lesen."
|
|
3564
|
+
|
|
3565
|
+
msgid "Could not enable the \"Ignore case when logging in\" feature. Duplicate usernames or aliases were detected when ignoring case sensitivity. Resolve conflicting names and try again."
|
|
3566
|
+
msgstr "Die Funktion \"Groß- und Kleinschreibung während des Einloggens ignorieren\" konnte nicht aktiviert werden. Beim Ignorieren der Groß- und Kleinschreibung wurden doppelte Benutzernamen oder Aliasnamen erkannt. Lösen Sie widersprüchliche Namen auf und versuchen Sie es erneut."
|
|
3567
|
+
|
|
3559
3568
|
msgid "Could not execute bulk operation on an empty group. Group with ID \"{{groupId}}\" has no child assets."
|
|
3560
3569
|
msgstr "Bulk-Operationen können nicht für leere Gruppen ausgeführt werden. Die Gruppe mit der ID \"{{groupId}}\" hat keine Kind-Assets."
|
|
3561
3570
|
|
|
@@ -7603,6 +7612,9 @@ msgstr "Wenn diese Option ausgewählt ist, werden leere Werte bei allen nachfolg
|
|
|
7603
7612
|
msgid "If selected, it will process the result of the request using response templates."
|
|
7604
7613
|
msgstr "Wenn diese Option ausgewählt ist, wird das Ergebnis der Anfrage mithilfe von Antwort-Templates verarbeitet."
|
|
7605
7614
|
|
|
7615
|
+
msgid "If selected, the letter case of the username does not matter during login."
|
|
7616
|
+
msgstr "Wenn diese Option ausgewählt ist, istdie Groß- und Kleinschreibung des Benutzernamens während des Einloggens nicht relevant."
|
|
7617
|
+
|
|
7606
7618
|
msgid "If selected, then every request needs to use the same \"User-Agent\" header as the first request which initiated the session."
|
|
7607
7619
|
msgstr "Wird diese Option gewählt, muss jede Anfrage denselben \"User-Agent\"-Header wie die erste Anfrage, die die Sitzung eingeleitet hat, verwenden."
|
|
7608
7620
|
|
|
@@ -7612,6 +7624,9 @@ msgstr "Wenn der Filter gesetzt ist, wird die Firmware nur für Geräte dieses T
|
|
|
7612
7624
|
msgid "If the filter is set, the software will show up for installation only for devices of that type. If no filter is set, it will be available for all devices."
|
|
7613
7625
|
msgstr "Wenn der Filter gesetzt ist, wird die Software nur für Geräte dieses Typs zur Installation angezeigt. Wenn kein Filter gesetzt ist, ist sie für alle Geräte verfügbar."
|
|
7614
7626
|
|
|
7627
|
+
msgid "Ignore case when logging in"
|
|
7628
|
+
msgstr "Groß- und Kleinschreibung während des Einloggens ignorieren"
|
|
7629
|
+
|
|
7615
7630
|
msgid "Ignore empty values"
|
|
7616
7631
|
msgstr "Leere Werte ignorieren"
|
|
7617
7632
|
|
|
@@ -10311,6 +10326,9 @@ msgstr "Online"
|
|
|
10311
10326
|
msgid "Online`type of checking`"
|
|
10312
10327
|
msgstr "Online"
|
|
10313
10328
|
|
|
10329
|
+
msgid "Only a tenant administrator can configure the \"Ignore case when logging in\" option."
|
|
10330
|
+
msgstr "Nur ein Administrator des Mandanten kann die Option \"Groß- und Kleinschreibung während des Einloggens ignorieren\" konfigurieren."
|
|
10331
|
+
|
|
10314
10332
|
msgid "Only active contracts with free slots are displayed."
|
|
10315
10333
|
msgstr "Es werden nur aktive Verträge mit freien Slots angezeigt."
|
|
10316
10334
|
|
|
@@ -12601,7 +12619,7 @@ msgid "Select from available extension packages"
|
|
|
12601
12619
|
msgstr "Wählen Sie eines der verfügbaren Erweiterungspakete"
|
|
12602
12620
|
|
|
12603
12621
|
msgid "Select from inventory"
|
|
12604
|
-
msgstr "Aus
|
|
12622
|
+
msgstr "Aus Stammdaten auswählen"
|
|
12605
12623
|
|
|
12606
12624
|
msgid "Select from predefined"
|
|
12607
12625
|
msgstr "Aus Vordefinierten auswählen"
|
|
@@ -14808,6 +14826,9 @@ msgstr ""
|
|
|
14808
14826
|
"\n"
|
|
14809
14827
|
"Durch diesen Prozess bleibt die neue Hardware mit der Information des Vorgängers verknüpft."
|
|
14810
14828
|
|
|
14829
|
+
msgid "The feature \"Ignore case when logging in\" is not available."
|
|
14830
|
+
msgstr "Die Funktion \"Groß- und Kleinschreibung während des Einloggens ignorieren\" ist nicht verfügbar."
|
|
14831
|
+
|
|
14811
14832
|
msgid "The file is empty."
|
|
14812
14833
|
msgstr "Die Datei ist leer."
|
|
14813
14834
|
|
package/core/locales/es.po
CHANGED
|
@@ -3558,12 +3558,21 @@ msgstr "El módulo \"{{moduleName}}\" no ha podido desplegarse. La compilación
|
|
|
3558
3558
|
msgid "Could not deploy the application, as an application with the same name`KEEP_ORIGINAL`, context-path`KEEP_ORIGINAL` or key`KEEP_ORIGINAL` exists already."
|
|
3559
3559
|
msgstr "La aplicación no ha podido implementarse puesto que ya existe una aplicación con el mismo name, context-path o key."
|
|
3560
3560
|
|
|
3561
|
+
msgid "Could not download data for \"{{name}}\": access denied."
|
|
3562
|
+
msgstr "No se han podido descargar datos para \"{{name}}\": acceso denegado."
|
|
3563
|
+
|
|
3561
3564
|
msgid "Could not download the file: object with ID \"{{ id }}\" is not a valid binary."
|
|
3562
3565
|
msgstr "No ha podido descargarse el archivo: El objeto con el ID \"{{ id }}\" no es un archivo binario válido."
|
|
3563
3566
|
|
|
3564
3567
|
msgid "Could not download the log file."
|
|
3565
3568
|
msgstr "El archivo de registro no ha podido descargarse."
|
|
3566
3569
|
|
|
3570
|
+
msgid "Could not download the report. You need this global role to download reports: Measurement Read."
|
|
3571
|
+
msgstr "No se ha podido descargar el informe. Necesita este rol global para descargar informes: Estadísticas Leer."
|
|
3572
|
+
|
|
3573
|
+
msgid "Could not enable the \"Ignore case when logging in\" feature. Duplicate usernames or aliases were detected when ignoring case sensitivity. Resolve conflicting names and try again."
|
|
3574
|
+
msgstr "No se ha podido activar la función \"Ignorar mayúsculas y minúsculas al iniciar sesión\". Se han detectado nombres de usuario o alias duplicados al ignorar mayúsculas y minúsculas. Resuelve los nombres conflictivos e inténtalo de nuevo."
|
|
3575
|
+
|
|
3567
3576
|
msgid "Could not execute bulk operation on an empty group. Group with ID \"{{groupId}}\" has no child assets."
|
|
3568
3577
|
msgstr "No se puede ejecutar la operación en masa en un grupo vacío. El grupo con el ID \"{{groupId}}\" no tiene activos secundarios."
|
|
3569
3578
|
|
|
@@ -7629,6 +7638,9 @@ msgstr "Si se selecciona, los valores vacíos se ignorarán en todos los recurso
|
|
|
7629
7638
|
msgid "If selected, it will process the result of the request using response templates."
|
|
7630
7639
|
msgstr "Si se ha seleccionado, procesará el resultado de la solicitud utilizando las plantillas de respuesta."
|
|
7631
7640
|
|
|
7641
|
+
msgid "If selected, the letter case of the username does not matter during login."
|
|
7642
|
+
msgstr "Si se selecciona esta opción, el nombre de usuario no tendrá importancia durante el inicio de sesión."
|
|
7643
|
+
|
|
7632
7644
|
msgid "If selected, then every request needs to use the same \"User-Agent\" header as the first request which initiated the session."
|
|
7633
7645
|
msgstr "Si se selecciona, todas las solicitudes deberán usar el mismo encabezado \"User-Agent\" que la primera solicitud que inició la sesión."
|
|
7634
7646
|
|
|
@@ -7638,6 +7650,9 @@ msgstr "Si se configura un filtro, sólo los dispositivos de este tipo podrán i
|
|
|
7638
7650
|
msgid "If the filter is set, the software will show up for installation only for devices of that type. If no filter is set, it will be available for all devices."
|
|
7639
7651
|
msgstr "Si se configura un filtro, sólo los dispositivos de este tipo podrán instalar el software. Si no se configura ningún filtro, estará disponible para todos los dispositivos."
|
|
7640
7652
|
|
|
7653
|
+
msgid "Ignore case when logging in"
|
|
7654
|
+
msgstr "Ignorar mayúsculas y minúsculas al iniciar sesión"
|
|
7655
|
+
|
|
7641
7656
|
msgid "Ignore empty values"
|
|
7642
7657
|
msgstr "Ignorar valores vacíos"
|
|
7643
7658
|
|
|
@@ -10339,6 +10354,9 @@ msgstr "En línea"
|
|
|
10339
10354
|
msgid "Online`type of checking`"
|
|
10340
10355
|
msgstr "Online"
|
|
10341
10356
|
|
|
10357
|
+
msgid "Only a tenant administrator can configure the \"Ignore case when logging in\" option."
|
|
10358
|
+
msgstr "Sólo un administrador de tenant puede configurar la opción \"Ignorar mayúsculas y minúsculas al iniciar sesión\"."
|
|
10359
|
+
|
|
10342
10360
|
msgid "Only active contracts with free slots are displayed."
|
|
10343
10361
|
msgstr "Sólo se muestran contratos activos con ranuras libres."
|
|
10344
10362
|
|
|
@@ -14837,6 +14855,9 @@ msgstr ""
|
|
|
14837
14855
|
"\n"
|
|
14838
14856
|
"Con este procedimiento el nuevo hardware sigue enlazado a la información creada por su predecesor."
|
|
14839
14857
|
|
|
14858
|
+
msgid "The feature \"Ignore case when logging in\" is not available."
|
|
14859
|
+
msgstr "La función \"Ignorar mayúsculas y minúsculas al iniciar sesión\" no está disponible."
|
|
14860
|
+
|
|
14840
14861
|
msgid "The file is empty."
|
|
14841
14862
|
msgstr "El archivo está vacío."
|
|
14842
14863
|
|
package/core/locales/fr.po
CHANGED
|
@@ -3558,12 +3558,21 @@ msgstr "Impossible de déployer le module \"{{moduleName}}\". Échec de compilat
|
|
|
3558
3558
|
msgid "Could not deploy the application, as an application with the same name`KEEP_ORIGINAL`, context-path`KEEP_ORIGINAL` or key`KEEP_ORIGINAL` exists already."
|
|
3559
3559
|
msgstr "Impossible de déployer l'application avec les mêmes name, context-path ou la key existe déjà."
|
|
3560
3560
|
|
|
3561
|
+
msgid "Could not download data for \"{{name}}\": access denied."
|
|
3562
|
+
msgstr "Impossible de télécharger les données pour \"{{name}}\" : accès refusé."
|
|
3563
|
+
|
|
3561
3564
|
msgid "Could not download the file: object with ID \"{{ id }}\" is not a valid binary."
|
|
3562
3565
|
msgstr "Chargement du fichier impossible : l'objet avec l'ID \"{{ id }}\" n'est pas un binaire valide."
|
|
3563
3566
|
|
|
3564
3567
|
msgid "Could not download the log file."
|
|
3565
3568
|
msgstr "Téléchargement du fichier journal impossible."
|
|
3566
3569
|
|
|
3570
|
+
msgid "Could not download the report. You need this global role to download reports: Measurement Read."
|
|
3571
|
+
msgstr "Impossible de télécharger le rapport. Vous avez besoin de ce rôle global pour télécharger les rapports : Mesure Lire."
|
|
3572
|
+
|
|
3573
|
+
msgid "Could not enable the \"Ignore case when logging in\" feature. Duplicate usernames or aliases were detected when ignoring case sensitivity. Resolve conflicting names and try again."
|
|
3574
|
+
msgstr "Impossible d'activer la fonction \"Ignorer casse lors de la connexion\". Des doublons de noms d'utilisateur ou d'alias ont été détectés lorsque la sensibilité à la casse a été ignorée. Résolvez les conflits de noms et réessayez."
|
|
3575
|
+
|
|
3567
3576
|
msgid "Could not execute bulk operation on an empty group. Group with ID \"{{groupId}}\" has no child assets."
|
|
3568
3577
|
msgstr "Impossible d'exécuter l'opération en masse sur un groupe vide. Le groupe avec l'ID \"{{groupId}}\" n'a pas d'actif enfant."
|
|
3569
3578
|
|
|
@@ -7629,6 +7638,9 @@ msgstr "Si cette option est sélectionnée, les valeurs vides de toutes les ress
|
|
|
7629
7638
|
msgid "If selected, it will process the result of the request using response templates."
|
|
7630
7639
|
msgstr "Si cette option est sélectionnée, le résultat de la requête sera traité avec des modèles de réponse."
|
|
7631
7640
|
|
|
7641
|
+
msgid "If selected, the letter case of the username does not matter during login."
|
|
7642
|
+
msgstr "Si cette option est sélectionnée, la casse du nom d'utilisateur n'a pas d'importance lors de la connexion."
|
|
7643
|
+
|
|
7632
7644
|
msgid "If selected, then every request needs to use the same \"User-Agent\" header as the first request which initiated the session."
|
|
7633
7645
|
msgstr "Si cette option est sélectionnée, toutes les demandes doivent utiliser le même en-tête \"User-Agent\" comme première demande qui a initié la session."
|
|
7634
7646
|
|
|
@@ -7638,6 +7650,9 @@ msgstr "Si le filtre est activé, le microprogramme s'affiche uniquement lors de
|
|
|
7638
7650
|
msgid "If the filter is set, the software will show up for installation only for devices of that type. If no filter is set, it will be available for all devices."
|
|
7639
7651
|
msgstr "Si le filtre est activé, le logiciel s'affiche uniquement lors de l'installation des appareils de même type. Si aucun filtre n'est activé, le logiciel est disponible pour tous les appareils."
|
|
7640
7652
|
|
|
7653
|
+
msgid "Ignore case when logging in"
|
|
7654
|
+
msgstr "Ignorer la casse lors de la connexion"
|
|
7655
|
+
|
|
7641
7656
|
msgid "Ignore empty values"
|
|
7642
7657
|
msgstr "Ignorer les valeurs vides"
|
|
7643
7658
|
|
|
@@ -10339,6 +10354,9 @@ msgstr "En ligne"
|
|
|
10339
10354
|
msgid "Online`type of checking`"
|
|
10340
10355
|
msgstr "En ligne"
|
|
10341
10356
|
|
|
10357
|
+
msgid "Only a tenant administrator can configure the \"Ignore case when logging in\" option."
|
|
10358
|
+
msgstr "Seul un administrateur gérant peut configurer l'option \"Ignorer casse lors de la connexion\"."
|
|
10359
|
+
|
|
10342
10360
|
msgid "Only active contracts with free slots are displayed."
|
|
10343
10361
|
msgstr "Seuls les contrats actifs avec des emplacements libres sont affichés."
|
|
10344
10362
|
|
|
@@ -14837,6 +14855,9 @@ msgstr ""
|
|
|
14837
14855
|
"\n"
|
|
14838
14856
|
"Avec cette prodécure, le nouveau matériel est toujours relié aux informations créées par son prédécesseur."
|
|
14839
14857
|
|
|
14858
|
+
msgid "The feature \"Ignore case when logging in\" is not available."
|
|
14859
|
+
msgstr "La fonction \"Ignorer la casse lors de la connexion\" n'est pas disponible."
|
|
14860
|
+
|
|
14840
14861
|
msgid "The file is empty."
|
|
14841
14862
|
msgstr "Ce fichier est vide."
|
|
14842
14863
|
|
package/core/locales/ja_JP.po
CHANGED
|
@@ -3532,12 +3532,21 @@ msgstr "モジュール \"{{moduleName}}\" をデプロイできませんでし
|
|
|
3532
3532
|
msgid "Could not deploy the application, as an application with the same name`KEEP_ORIGINAL`, context-path`KEEP_ORIGINAL` or key`KEEP_ORIGINAL` exists already."
|
|
3533
3533
|
msgstr "同じ name、context-path、または key を持つアプリケーションが既に存在するため、アプリケーションをデプロイできませんでした。"
|
|
3534
3534
|
|
|
3535
|
+
msgid "Could not download data for \"{{name}}\": access denied."
|
|
3536
|
+
msgstr \"{{name}}\"のデータをダウンロードできませんでした。:アクセスが拒否されました。"
|
|
3537
|
+
|
|
3535
3538
|
msgid "Could not download the file: object with ID \"{{ id }}\" is not a valid binary."
|
|
3536
3539
|
msgstr "ファイルをダウンロードできませんでした: ID \"{{ id }}\" のオブジェクトは有効なバイナリではありません。"
|
|
3537
3540
|
|
|
3538
3541
|
msgid "Could not download the log file."
|
|
3539
3542
|
msgstr "ログ ファイルをダウンロードできませんでした。"
|
|
3540
3543
|
|
|
3544
|
+
msgid "Could not download the report. You need this global role to download reports: Measurement Read."
|
|
3545
|
+
msgstr "レポートをダウンロードできませんでした。レポートをダウンロードするには、このグローバル・ロールが必要です:計測読み取り"
|
|
3546
|
+
|
|
3547
|
+
msgid "Could not enable the \"Ignore case when logging in\" feature. Duplicate usernames or aliases were detected when ignoring case sensitivity. Resolve conflicting names and try again."
|
|
3548
|
+
msgstr "[ログインの際に大文字と小文字の区別を無視] 機能を有効化できませんでした。大文字と小文字の区別を無視すると、重複するユーザー名またはエイリアスが検出されました。競合する名前を解決してから、もう一度試してください。"
|
|
3549
|
+
|
|
3541
3550
|
msgid "Could not execute bulk operation on an empty group. Group with ID \"{{groupId}}\" has no child assets."
|
|
3542
3551
|
msgstr "空のグループで一括操作を実行できませんでした。ID \"{{groupId}}\" のグループには子アセットがありません。"
|
|
3543
3552
|
|
package/core/locales/nl.po
CHANGED
|
@@ -3558,12 +3558,21 @@ msgstr "Kon module \"{{moduleName}}\" niet gebruiken. Compilatie mislukt in expr
|
|
|
3558
3558
|
msgid "Could not deploy the application, as an application with the same name`KEEP_ORIGINAL`, context-path`KEEP_ORIGINAL` or key`KEEP_ORIGINAL` exists already."
|
|
3559
3559
|
msgstr "De applicatie kan niet worden geïmplementeerd, omdat er al een applicatie bestaat met dezelfde name, context-path of key."
|
|
3560
3560
|
|
|
3561
|
+
msgid "Could not download data for \"{{name}}\": access denied."
|
|
3562
|
+
msgstr "Kan gegevens voor \"{{name}}\" niet downloaden: toegang geweigerd."
|
|
3563
|
+
|
|
3561
3564
|
msgid "Could not download the file: object with ID \"{{ id }}\" is not a valid binary."
|
|
3562
3565
|
msgstr "Kan het bestand niet downloaden: object met ID \"{{ id }}\" is geen geldige binary."
|
|
3563
3566
|
|
|
3564
3567
|
msgid "Could not download the log file."
|
|
3565
3568
|
msgstr "Kon het logbestand niet downloaden."
|
|
3566
3569
|
|
|
3570
|
+
msgid "Could not download the report. You need this global role to download reports: Measurement Read."
|
|
3571
|
+
msgstr "Kan het rapport niet downloaden. U hebt deze globale rol nodig om rapporten te downloaden: Metingen Lezen."
|
|
3572
|
+
|
|
3573
|
+
msgid "Could not enable the \"Ignore case when logging in\" feature. Duplicate usernames or aliases were detected when ignoring case sensitivity. Resolve conflicting names and try again."
|
|
3574
|
+
msgstr "De functie \"Hoofdletters negeren bij aanmelden\" kon niet worden ingeschakeld. Er werden dubbele gebruikersnamen of aliassen gedetecteerd bij het negeren van hoofdlettergevoeligheid. Los conflicterende namen op en probeer het opnieuw."
|
|
3575
|
+
|
|
3567
3576
|
msgid "Could not execute bulk operation on an empty group. Group with ID \"{{groupId}}\" has no child assets."
|
|
3568
3577
|
msgstr "Kon bulkbewerking niet uitvoeren voor een lege groep. Groep met ID \"{{groupId}}\" heeft geen onderliggende assets."
|
|
3569
3578
|
|
|
@@ -7628,6 +7637,9 @@ msgstr "Als dit is ingeschakeld, worden lege waarden genegeerd voor alle onderst
|
|
|
7628
7637
|
msgid "If selected, it will process the result of the request using response templates."
|
|
7629
7638
|
msgstr "Indien geselecteerd, zal het resultaat van het verzoek met behulp van antwoordsjablonen worden verwerkt."
|
|
7630
7639
|
|
|
7640
|
+
msgid "If selected, the letter case of the username does not matter during login."
|
|
7641
|
+
msgstr "Indien geselecteerd, maakt het bij aanmelden niet uit of de gebruikersnaam hoofdletters bevat."
|
|
7642
|
+
|
|
7631
7643
|
msgid "If selected, then every request needs to use the same \"User-Agent\" header as the first request which initiated the session."
|
|
7632
7644
|
msgstr "Als dit is geselecteerd, moet elke aanvraag dezelfde \"User-Agent\"-kopregel gebruiken als de eerste aanvraag die de sessie heeft geïnitieerd."
|
|
7633
7645
|
|
|
@@ -7637,6 +7649,9 @@ msgstr "Als de filter is ingesteld, zal de firmware alleen verschijnen voor inst
|
|
|
7637
7649
|
msgid "If the filter is set, the software will show up for installation only for devices of that type. If no filter is set, it will be available for all devices."
|
|
7638
7650
|
msgstr "Als de filter is ingesteld, zal de software alleen verschijnen voor installatie bij apparaten van dat type. Als geen filter is ingesteld, zal hij voor all apparaten beschikbaar zijn."
|
|
7639
7651
|
|
|
7652
|
+
msgid "Ignore case when logging in"
|
|
7653
|
+
msgstr "Hoofdletters negeren bij aanmelden"
|
|
7654
|
+
|
|
7640
7655
|
msgid "Ignore empty values"
|
|
7641
7656
|
msgstr "Lege waarden negeren"
|
|
7642
7657
|
|
|
@@ -10338,6 +10353,9 @@ msgstr "Online"
|
|
|
10338
10353
|
msgid "Online`type of checking`"
|
|
10339
10354
|
msgstr "Online"
|
|
10340
10355
|
|
|
10356
|
+
msgid "Only a tenant administrator can configure the \"Ignore case when logging in\" option."
|
|
10357
|
+
msgstr "Alleen een tenant administrator kan de optie \"Hoofdletters negeren bij aanmelden\" configureren."
|
|
10358
|
+
|
|
10341
10359
|
msgid "Only active contracts with free slots are displayed."
|
|
10342
10360
|
msgstr "Er worden actieve contracten met vrije slots weergegeven."
|
|
10343
10361
|
|
|
@@ -14836,6 +14854,9 @@ msgstr ""
|
|
|
14836
14854
|
"\n"
|
|
14837
14855
|
"Bij deze procedure is de nieuwe hardware nog gekoppeld aan de informatie die door zijn voorganger werd gemaakt."
|
|
14838
14856
|
|
|
14857
|
+
msgid "The feature \"Ignore case when logging in\" is not available."
|
|
14858
|
+
msgstr "De functie \"Hoofdletters negeren bij aanmelden\" is niet beschikbaar."
|
|
14859
|
+
|
|
14839
14860
|
msgid "The file is empty."
|
|
14840
14861
|
msgstr "Het bestand is leeg."
|
|
14841
14862
|
|
package/core/locales/pl.po
CHANGED
|
@@ -3578,12 +3578,21 @@ msgstr "Nie można wdrożyć modułu „{{moduleName}}”. Błąd kompilacji wys
|
|
|
3578
3578
|
msgid "Could not deploy the application, as an application with the same name`KEEP_ORIGINAL`, context-path`KEEP_ORIGINAL` or key`KEEP_ORIGINAL` exists already."
|
|
3579
3579
|
msgstr "Nie można wdrożyć aplikacji, ponieważ istnieje już aplikacja o takich samych parametrach name, context-path lub key."
|
|
3580
3580
|
|
|
3581
|
+
msgid "Could not download data for \"{{name}}\": access denied."
|
|
3582
|
+
msgstr "Nie można pobrać danych dla \"{{name}}\": odmowa dostępu."
|
|
3583
|
+
|
|
3581
3584
|
msgid "Could not download the file: object with ID \"{{ id }}\" is not a valid binary."
|
|
3582
3585
|
msgstr "Nie udało się pobrać pliku: obiekt o ID „{{ id }}” nie jest prawidłowym plikiem binarnym."
|
|
3583
3586
|
|
|
3584
3587
|
msgid "Could not download the log file."
|
|
3585
3588
|
msgstr "Nie można pobrać pliku dziennika."
|
|
3586
3589
|
|
|
3590
|
+
msgid "Could not download the report. You need this global role to download reports: Measurement Read."
|
|
3591
|
+
msgstr "Nie można pobrać raportu. Do pobierania raportów potrzebna jest rola globalna: Odczyt pomiarów."
|
|
3592
|
+
|
|
3593
|
+
msgid "Could not enable the \"Ignore case when logging in\" feature. Duplicate usernames or aliases were detected when ignoring case sensitivity. Resolve conflicting names and try again."
|
|
3594
|
+
msgstr "Nie można było włączyć funkcji \"Ignoruj wielkość liter podczas logowania\". Wykryto zduplikowane nazwy użytkowników lub aliasy podczas ignorowania wielkości liter. Rozwiąż konflikt nazw i spróbuj ponownie."
|
|
3595
|
+
|
|
3587
3596
|
msgid "Could not execute bulk operation on an empty group. Group with ID \"{{groupId}}\" has no child assets."
|
|
3588
3597
|
msgstr "Nie można wykonać operacji zbiorczej na pustej grupie. Grupa o identyfikatorze „{{groupId}}” nie ma zasobów podrzędnych."
|
|
3589
3598
|
|
|
@@ -7649,6 +7658,9 @@ msgstr "W przypadku zaznaczenia tej opcji puste wartości będą ignorowane we w
|
|
|
7649
7658
|
msgid "If selected, it will process the result of the request using response templates."
|
|
7650
7659
|
msgstr "W przypadku zaznaczenia tej opcji wynik żądania będzie przetwarzany przy użyciu szablonów odpowiedzi."
|
|
7651
7660
|
|
|
7661
|
+
msgid "If selected, the letter case of the username does not matter during login."
|
|
7662
|
+
msgstr "W przypadku zaznaczenia tej opcji wielkość liter nazwy użytkownika nie ma znaczenia podczas logowania."
|
|
7663
|
+
|
|
7652
7664
|
msgid "If selected, then every request needs to use the same \"User-Agent\" header as the first request which initiated the session."
|
|
7653
7665
|
msgstr "W przypadku zaznaczenia tej opcji każde żądanie musi używać tego samego nagłówka „User-Agent” co pierwsze żądanie, które zainicjowało sesję."
|
|
7654
7666
|
|
|
@@ -7658,6 +7670,9 @@ msgstr "W przypadku ustawienia filtru oprogramowanie sprzętowe będzie wyświet
|
|
|
7658
7670
|
msgid "If the filter is set, the software will show up for installation only for devices of that type. If no filter is set, it will be available for all devices."
|
|
7659
7671
|
msgstr "W przypadku ustawienia filtru oprogramowanie będzie wyświetlane na potrzeby instalacji jedynie dla urządzeń tego typu. Jeśli nie zostanie ustawiony żaden filtr, będzie dostępne dla wszystkich urządzeń."
|
|
7660
7672
|
|
|
7673
|
+
msgid "Ignore case when logging in"
|
|
7674
|
+
msgstr "Ignoruj wielkość liter podczas logowania"
|
|
7675
|
+
|
|
7661
7676
|
msgid "Ignore empty values"
|
|
7662
7677
|
msgstr "Ignoruj puste wartości"
|
|
7663
7678
|
|
|
@@ -10362,6 +10377,9 @@ msgstr "Online"
|
|
|
10362
10377
|
msgid "Online`type of checking`"
|
|
10363
10378
|
msgstr "Online"
|
|
10364
10379
|
|
|
10380
|
+
msgid "Only a tenant administrator can configure the \"Ignore case when logging in\" option."
|
|
10381
|
+
msgstr "Tylko administrator tenanta może skonfigurować opcję \"Ignoruj wielkość liter podczas logowania\"."
|
|
10382
|
+
|
|
10365
10383
|
msgid "Only active contracts with free slots are displayed."
|
|
10366
10384
|
msgstr "Wyświetlane są tylko aktywne kontrakty z wolnymi miejscami."
|
|
10367
10385
|
|
|
@@ -14862,6 +14880,9 @@ msgstr ""
|
|
|
14862
14880
|
"\n"
|
|
14863
14881
|
"Dzięki tej procedurze nowy sprzęt będzie powiązany z danymi wytworzonymi przez sprzęt poprzedni."
|
|
14864
14882
|
|
|
14883
|
+
msgid "The feature \"Ignore case when logging in\" is not available."
|
|
14884
|
+
msgstr "Funkcja \"Ignoruj wielkość liter podczas logowania\" jest niedostępna."
|
|
14885
|
+
|
|
14865
14886
|
msgid "The file is empty."
|
|
14866
14887
|
msgstr "Plik jest pusty."
|
|
14867
14888
|
|
package/core/locales/pt_BR.po
CHANGED
|
@@ -3558,12 +3558,21 @@ msgstr "Não foi possível implantar o módulo \"{{moduleName}}\". A compilaçã
|
|
|
3558
3558
|
msgid "Could not deploy the application, as an application with the same name`KEEP_ORIGINAL`, context-path`KEEP_ORIGINAL` or key`KEEP_ORIGINAL` exists already."
|
|
3559
3559
|
msgstr "Não foi possível implantar a aplicação, pois já existe uma aplicação com os mesmos name, context-path ou key."
|
|
3560
3560
|
|
|
3561
|
+
msgid "Could not download data for \"{{name}}\": access denied."
|
|
3562
|
+
msgstr "Não foi possível baixar os dados de \"{{name}}\": acesso negado."
|
|
3563
|
+
|
|
3561
3564
|
msgid "Could not download the file: object with ID \"{{ id }}\" is not a valid binary."
|
|
3562
3565
|
msgstr "Não foi possível baixar o arquivo: o objeto com a ID \"{{ id }}\" não é um binário válido."
|
|
3563
3566
|
|
|
3564
3567
|
msgid "Could not download the log file."
|
|
3565
3568
|
msgstr "Não foi possível baixar o arquivo de log."
|
|
3566
3569
|
|
|
3570
|
+
msgid "Could not download the report. You need this global role to download reports: Measurement Read."
|
|
3571
|
+
msgstr "Não foi possível baixar o relatório. Você precisa dessa função global para baixar relatórios: Medição Ler."
|
|
3572
|
+
|
|
3573
|
+
msgid "Could not enable the \"Ignore case when logging in\" feature. Duplicate usernames or aliases were detected when ignoring case sensitivity. Resolve conflicting names and try again."
|
|
3574
|
+
msgstr "Não foi possível ativar o recurso \"Ignorar maiúsculas e minúsculas ao fazer login\". Nomes de usuário ou aliases duplicados foram detectados ao ignorar a distinção entre maiúsculas e minúsculas. Resolva os nomes em conflito e tente novamente."
|
|
3575
|
+
|
|
3567
3576
|
msgid "Could not execute bulk operation on an empty group. Group with ID \"{{groupId}}\" has no child assets."
|
|
3568
3577
|
msgstr "Não é possível executar a operação em massa em um grupo vazio. O grupo com a ID \"{{groupId}}\" não tem ativos secundários."
|
|
3569
3578
|
|
|
@@ -7628,6 +7637,9 @@ msgstr "Se selecionado, ignorará valores vazios em todos os recursos abaixo."
|
|
|
7628
7637
|
msgid "If selected, it will process the result of the request using response templates."
|
|
7629
7638
|
msgstr "Se selecionado, processará o resultado da solicitação usando templates de resposta."
|
|
7630
7639
|
|
|
7640
|
+
msgid "If selected, the letter case of the username does not matter during login."
|
|
7641
|
+
msgstr "Se selecionada, as letras maiúsculas e minúsculas do nome de usuário não importam durante o login."
|
|
7642
|
+
|
|
7631
7643
|
msgid "If selected, then every request needs to use the same \"User-Agent\" header as the first request which initiated the session."
|
|
7632
7644
|
msgstr "Se selecionado, então cada solicitação precisa usar o mesmo cabeçalho\"User-Agent\" como a primeira solicitação que iniciou a sessão."
|
|
7633
7645
|
|
|
@@ -7637,6 +7649,9 @@ msgstr "Se o filtro estiver configurado, o firmware aparecerá para instalação
|
|
|
7637
7649
|
msgid "If the filter is set, the software will show up for installation only for devices of that type. If no filter is set, it will be available for all devices."
|
|
7638
7650
|
msgstr "Se o filtro estiver configurado, o software aparecerá para instalação apenas para dispositivos desse tipo. Se nenhum filtro estiver configurado, ele estará disponível para todos os dispositivos."
|
|
7639
7651
|
|
|
7652
|
+
msgid "Ignore case when logging in"
|
|
7653
|
+
msgstr "Ignorar maiúsculas e minúsculas ao fazer login"
|
|
7654
|
+
|
|
7640
7655
|
msgid "Ignore empty values"
|
|
7641
7656
|
msgstr "Ignorar valores vazios"
|
|
7642
7657
|
|
|
@@ -10338,6 +10353,9 @@ msgstr "Online"
|
|
|
10338
10353
|
msgid "Online`type of checking`"
|
|
10339
10354
|
msgstr "Online"
|
|
10340
10355
|
|
|
10356
|
+
msgid "Only a tenant administrator can configure the \"Ignore case when logging in\" option."
|
|
10357
|
+
msgstr "Somente um administrador de tenant pode configurar a opção \"Ignorar maiúsculas e minúsculas ao fazer login\"."
|
|
10358
|
+
|
|
10341
10359
|
msgid "Only active contracts with free slots are displayed."
|
|
10342
10360
|
msgstr "Somente são exibidos contratos com slots livres."
|
|
10343
10361
|
|
|
@@ -14836,6 +14854,9 @@ msgstr ""
|
|
|
14836
14854
|
"\n"
|
|
14837
14855
|
"Com este procedimento, o novo hardware pode continuar vinculado à informação que foi criada pelo seu antecessor."
|
|
14838
14856
|
|
|
14857
|
+
msgid "The feature \"Ignore case when logging in\" is not available."
|
|
14858
|
+
msgstr "O recurso \"Ignorar maiúsculas e minúsculas ao fazer login\" não está disponível."
|
|
14859
|
+
|
|
14839
14860
|
msgid "The file is empty."
|
|
14840
14861
|
msgstr "O arquivo está vazio."
|
|
14841
14862
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(){function e(i,e,s,l,u,c,d,p){var m=this;this.downloadReportForDevice=function(e,t,r,n){t=_.get(t,"id",t),r=_(r).map(_.partial(m.createPairFromSeries,t)).value();return new m.Downloader(e,n,r).start()},this.downloadReportForDatapoints=function(e,t,r){t=_(t).filter(function(e){return!0===e.__active}).map(m.getDpRequestParams).value();return t.length?new m.Downloader(e,r,t).start():i.reject(new Error(d("At least 1 data point must be selected")))},this.createPairFromSeries=function(e,t){return{source:e,fragmentType:t}},this.getDpRequestParams=function(e){return{source:e.__target.id,valueFragmentType:e.fragment,valueFragmentSeries:e.series}},this.generateFileName=function(e,t){if(_.isEmpty(e.source&&t)||_.isEmpty(e.valueFragmentType||e.fragmentType))throw new Error("Unable to generate a file name for given data");var r=e.valueFragmentType?[e.valueFragmentType,e.valueFragmentSeries].join("."):e.fragmentType;return[e.source,r,t].join(".")},this.Downloader=function(r,n,e){var o=this,t=_.uniqBy(e,function(e){return JSON.stringify(e)});function a(e){return{text:d("Access denied."),type:"danger",detailedData:e}}this.downloadReports=function(){var e=_(t).map(o.downloadReportForDpRequestParams).value();return i.all(e).then(o.onDownloads).catch(o.onFail)},this.start=function(){return u({templateUrl:":::PLUGIN_PATH:::/ui/views/measurementsReport.html",title:d("Generating report"),controller:["$scope","$timeout",function(n,a){n.completed=0,n.total=t.length,n.reportFileName="report.zip",n.close=function(){var e,t,r;void 0!==window.navigator.msSaveBlob?(e=n.blob,t=n.reportFileName,window.navigator.msSaveBlob(e,t)):(r=n.url,a(function(){window.URL.revokeObjectURL(r)},5e3)),n.$close()},o.scope=n,o.downloadReports()}]})},this.downloadReportForDpRequestParams=function(t,e){e=o.getFilter(t,e);return s.list(e,r).then(function(e){return o.onDownload(t,e)}).catch(function(e){o.onAsyncResult(t,e)})},this.onDownload=function(e,t){return o.scope.completed+=1,t.name=m.generateFileName(e,r.name),t},this.onAsyncResult=function(e,t){return t.async?(o.scope.completed+=1,null):i.reject(t)},this.onFail=function(e){o.scope.$dismiss(),function(r){var n=i.defer();{var e;403===r.status?r.data instanceof Blob?((e=new FileReader).addEventListener("loadend",function(e){try{var t=JSON.parse(_.get(e,"srcElement.result"));n.resolve({type:"danger",text:p.getString(t.message),detailedData:t})}catch(e){n.resolve(a(r))}}),e.readAsText(r.data)):n.resolve(a(r)):n.resolve({type:"danger",text:d("An error occurred. Please try again later."),detailedData:r})}return n.promise}(e).then(c.add)},this.onDownloads=function(e){var t=e.filter(_.identity),e=e.length-t.length;return 0<e&&(e=p.getPlural(e,"You will get a CSV/Excel file for 1 series via email.","You will get CSV/Excel files for {{$count}} series via email.",{}),c.success(e)),0===t.length?i.when():l.zipFiles(t).then(function(e){o.scope.blob=e,o.scope.url=window.URL.createObjectURL(e)})},this.getFilter=function(e,t){t=_.isArray(n)?n[t]:n;return _.merge({},t,e)}}}e.$inject=["$q","$rootScope","c8yMeasurements","c8yZip","c8yModal","c8yAlert","gettext","gettextCatalog"],angular.module("c8y.ui").service("MeasurementsReportSvc",e)}();
|
|
1
|
+
"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function _regeneratorRuntime(){_regeneratorRuntime=function(){return a};var u,a={},t=Object.prototype,l=t.hasOwnProperty,s=Object.defineProperty||function(t,e,r){t[e]=r.value},e="function"==typeof Symbol?Symbol:{},n=e.iterator||"@@iterator",r=e.asyncIterator||"@@asyncIterator",o=e.toStringTag||"@@toStringTag";function i(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{i({},"")}catch(u){i=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var o,i,a,c,e=e&&e.prototype instanceof g?e:g,e=Object.create(e.prototype),n=new R(n||[]);return s(e,"_invoke",{value:(o=t,i=r,a=n,c=h,function(t,e){if(c===d)throw new Error("Generator is already running");if(c===y){if("throw"===t)throw e;return{value:u,done:!0}}for(a.method=t,a.arg=e;;){var r=a.delegate;if(r){r=function t(e,r){var n=r.method,o=e.iterator[n];if(o===u)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=u,t(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;n=f(o,e.iterator,r.arg);if("throw"===n.type)return r.method="throw",r.arg=n.arg,r.delegate=null,v;o=n.arg;return o?o.done?(r[e.resultName]=o.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=u),r.delegate=null,v):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}(r,a);if(r){if(r===v)continue;return r}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(c===h)throw c=y,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);c=d;r=f(o,i,a);if("normal"===r.type){if(c=a.done?y:p,r.arg===v)continue;return{value:r.arg,done:a.done}}"throw"===r.type&&(c=y,a.method="throw",a.arg=r.arg)}})}),e}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}a.wrap=c;var h="suspendedStart",p="suspendedYield",d="executing",y="completed",v={};function g(){}function m(){}function w(){}var e={},b=(i(e,n,function(){return this}),Object.getPrototypeOf),b=b&&b(b(F([]))),_=(b&&b!==t&&l.call(b,n)&&(e=b),w.prototype=g.prototype=Object.create(e));function E(t){["next","throw","return"].forEach(function(e){i(t,e,function(t){return this._invoke(e,t)})})}function x(a,c){var e;s(this,"_invoke",{value:function(r,n){function t(){return new c(function(t,e){!function e(t,r,n,o){var i,t=f(a[t],a,r);if("throw"!==t.type)return(r=(i=t.arg).value)&&"object"==_typeof(r)&&l.call(r,"__await")?c.resolve(r.__await).then(function(t){e("next",t,n,o)},function(t){e("throw",t,n,o)}):c.resolve(r).then(function(t){i.value=t,n(i)},function(t){return e("throw",t,n,o)});o(t.arg)}(r,n,t,e)})}return e=e?e.then(t,t):t()}})}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function S(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function R(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function F(e){if(e||""===e){var r,t=e[n];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return r=-1,(t=function t(){for(;++r<e.length;)if(l.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=u,t.done=!0,t}).next=t}throw new TypeError(_typeof(e)+" is not iterable")}return s(_,"constructor",{value:m.prototype=w,configurable:!0}),s(w,"constructor",{value:m,configurable:!0}),m.displayName=i(w,o,"GeneratorFunction"),a.isGeneratorFunction=function(t){t="function"==typeof t&&t.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},a.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,i(t,o,"GeneratorFunction")),t.prototype=Object.create(_),t},a.awrap=function(t){return{__await:t}},E(x.prototype),i(x.prototype,r,function(){return this}),a.AsyncIterator=x,a.async=function(t,e,r,n,o){void 0===o&&(o=Promise);var i=new x(c(t,e,r,n),o);return a.isGeneratorFunction(e)?i:i.next().then(function(t){return t.done?t.value:i.next()})},E(_),i(_,o,"Generator"),i(_,n,function(){return this}),i(_,"toString",function(){return"[object Generator]"}),a.keys=function(t){var e,r=Object(t),n=[];for(e in r)n.push(e);return n.reverse(),function t(){for(;n.length;){var e=n.pop();if(e in r)return t.value=e,t.done=!1,t}return t.done=!0,t}},a.values=F,R.prototype={constructor:R,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=u,this.done=!1,this.delegate=null,this.method="next",this.arg=u,this.tryEntries.forEach(S),!t)for(var e in this)"t"===e.charAt(0)&&l.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=u)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var n=this;function t(t,e){return i.type="throw",i.arg=r,n.next=t,e&&(n.method="next",n.arg=u),!!e}for(var e=this.tryEntries.length-1;0<=e;--e){var o=this.tryEntries[e],i=o.completion;if("root"===o.tryLoc)return t("end");if(o.tryLoc<=this.prev){var a=l.call(o,"catchLoc"),c=l.call(o,"finallyLoc");if(a&&c){if(this.prev<o.catchLoc)return t(o.catchLoc,!0);if(this.prev<o.finallyLoc)return t(o.finallyLoc)}else if(a){if(this.prev<o.catchLoc)return t(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return t(o.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;0<=r;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&l.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}var i=(o=o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc?null:o)?o.completion:{};return i.type=t,i.arg=e,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;0<=e;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),S(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;0<=e;--e){var r,n,o=this.tryEntries[e];if(o.tryLoc===t)return"throw"===(r=o.completion).type&&(n=r.arg,S(o)),n}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:F(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=u),v}},a}function asyncGeneratorStep(t,e,r,n,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void r(t)}c.done?e(u):Promise.resolve(u).then(n,o)}function _asyncToGenerator(c){return function(){var t=this,a=arguments;return new Promise(function(e,r){var n=c.apply(t,a);function o(t){asyncGeneratorStep(n,e,r,o,i,"next",t)}function i(t){asyncGeneratorStep(n,e,r,o,i,"throw",t)}o(void 0)})}}!function(){function t(c,u,l,s,f,h,p,d,o){var y=this;this.downloadReportForDevice=function(t,e,r,n){e=_.get(e,"id",e),r=_(r).map(_.partial(y.createPairFromSeries,e)).value();return new y.Downloader(t,n,r).start()},this.downloadReportForDatapoints=function(e,t,r){var n=_(t).filter(function(t){return!0===t.__active}).map(y.getDpRequestParams).value();return n.length?o.current().then(function(t){return o.hasRole(t,"ROLE_MEASUREMENT_READ")?new y.Downloader(e,r,n).start():c.reject(new Error(h("Could not download the report. You need this global role to download reports: Measurement Read.")))}):c.reject(new Error(h("At least 1 data point must be selected")))},this.createPairFromSeries=function(t,e){return{source:t,fragmentType:e}},this.getDpRequestParams=function(t){return{source:t.__target.id,valueFragmentType:t.fragment,valueFragmentSeries:t.series}},this.generateFileName=function(t,e){if(_.isEmpty(t.source&&e)||_.isEmpty(t.valueFragmentType||t.fragmentType))throw new Error("Unable to generate a file name for given data");var r=t.valueFragmentType?[t.valueFragmentType,t.valueFragmentSeries].join("."):t.fragmentType;return[t.source,r,e].join(".")},this.Downloader=function(r,n,t){var i=this,e=_.uniqBy(t,function(t){return JSON.stringify(t)});function o(){return(o=_asyncToGenerator(_regeneratorRuntime().mark(function t(r){var n,o,e;return _regeneratorRuntime().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(n=c.defer(),403!==r.status)t.next=14;else{if(r.data instanceof Blob)return t.next=5,d.detail(r.config.params.source);t.next=11}break;case 5:o=t.sent,(e=new FileReader).addEventListener("loadend",function(t){try{var e=JSON.parse(_.get(t,"srcElement.result"));n.resolve({type:"danger",text:p.getString('Could not download data for "{{name}}": access denied.',o.data),detailedData:e})}catch(t){n.resolve(a(r))}}),e.readAsText(r.data),t.next=12;break;case 11:n.resolve(a(r));case 12:t.next=15;break;case 14:n.resolve({type:"danger",text:h("An error occurred. Please try again later."),detailedData:r});case 15:return t.abrupt("return",n.promise);case 16:case"end":return t.stop()}},t)}))).apply(this,arguments)}function a(t){return{text:h("Access denied."),type:"danger",detailedData:t}}this.downloadReports=function(){var t=_(e).map(i.downloadReportForDpRequestParams).value();return c.all(t).then(i.onDownloads)},this.start=function(){return s({templateUrl:":::PLUGIN_PATH:::/ui/views/measurementsReport.html",title:h("Generating report"),controller:["$scope","$timeout",function(n,o){n.completed=0,n.total=e.length,n.reportFileName="report.zip",n.close=function(){var t,e,r;void 0!==window.navigator.msSaveBlob?(t=n.blob,e=n.reportFileName,window.navigator.msSaveBlob(t,e)):(r=n.url,o(function(){window.URL.revokeObjectURL(r)},5e3)),n.$close()},i.scope=n,i.downloadReports()}]})},this.downloadReportForDpRequestParams=function(e,t){t=i.getFilter(e,t);return u.list(t,r).then(function(t){return i.onDownload(e,t)}).catch(function(t){return i.onDownloadError(t)})},this.onDownload=function(t,e){return i.scope.completed+=1,e.name=y.generateFileName(t,r.name),e},this.onDownloadError=function(t){return t.async?(i.scope.completed+=1,c.resolve(null)):(i.displayError(t),c.resolve(void 0))},this.displayError=function(t){!function(){return o.apply(this,arguments)}(t).then(f.add)},this.onDownloads=function(t){var t=t.filter(function(t){return void 0!==t}),e=t.filter(_.identity),t=t.length-e.length;return 0<t&&(t=p.getPlural(t,"You will get a CSV/Excel file for 1 series via email.","You will get CSV/Excel files for {{$count}} series via email.",{}),f.success(t)),0===e.length?c.when():l.zipFiles(e).then(function(t){i.scope.blob=t,i.scope.url=window.URL.createObjectURL(t)})},this.getFilter=function(t,e){e=_.isArray(n)?n[e]:n;return _.merge({},e,t)}}}t.$inject=["$q","c8yMeasurements","c8yZip","c8yModal","c8yAlert","gettext","gettextCatalog","c8yInventory","c8yUser"],angular.module("c8y.ui").service("MeasurementsReportSvc",t)}();
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(){function e(
|
|
1
|
+
"use strict";!function(){function e(t,e,o,i,n,l){var s=this;function r(e){s.role=e,a();e=e.roles;e=(e||{}).references||[],s.selectedPermissions=_.map(e,"role.id")}function a(){i.listGlobalPermissions().then(c)}function c(e){s.permissions=e}function u(){s.globalRoleDetailForm.$setDirty()}function f(e){return s.saving=!0,e.finally(function(){s.saving=!1}),e}_.assign(s,{$onInit:function(){(function(){var e=s.id,n=s.duplicateId;("new"===e?function(e){var n=i.newGlobalRole(e);return n.then(function(){e&&l(u)}),n}(n):function(e){return o.global.detail(e).then(t.getResData)}(e)).then(r)})(),a()},STRINGS:i.STRINGS,helpLink:n.getUserGuideLink(i.STRINGS.LINKS.ROLES_INVENTORY),onSaveName:function(e){return f(i.saveGlobalRoleName(s.role,e))},cancel:i.list,save:function(){return f(i.saveGlobalRole(s.role,s.selectedPermissions))},hasAppPermissions:function(){var t=/^ROLE_APPLICATION/;return _.some(s.selectedPermissions,function(e,n){return e&&t.test(n)})},onSelectedRolesChange:function(e){s.selectedPermissions=e,u()}})}e.$inject=["c8yBase","c8yPermissions","c8yRoles","c8yRolesUi","c8yDocs","$timeout"],angular.module("c8y.roles").component("c8yRoleDetailGlobal",{templateUrl:":::PLUGIN_PATH:::/detail/roleDetailGlobal.html",bindings:{id:"<",duplicateId:"<",tabName:"<"},controllerAs:"vm",controller:e})}();
|
|
@@ -2,13 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
<c8y-breadcrumbs-set>
|
|
4
4
|
<c8y-breadcrumbs-item
|
|
5
|
-
icon="connected-people"
|
|
6
5
|
path="#roles/global_roles"
|
|
7
|
-
label="{{
|
|
6
|
+
label="{{ vm.tabName }}"
|
|
8
7
|
></c8y-breadcrumbs-item>
|
|
9
8
|
<c8y-breadcrumbs-item
|
|
10
|
-
icon="c8y-users"
|
|
11
|
-
path="#roles"
|
|
12
9
|
label="{{ 'Roles' | translate }}"
|
|
13
10
|
></c8y-breadcrumbs-item>
|
|
14
11
|
<c8y-breadcrumbs-item
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(){function n(t,e,o,i,n){var
|
|
1
|
+
"use strict";!function(){function n(t,e,o,i,n){var a=this;function r(n){return a.saving=!0,n.finally(function(){a.saving=!1}),n}function l(n){return"SUPPORT"===n.name&&!a.isTopTenant}_.assign(a,{$onInit:function(){!function(){var n=a.id,e=a.duplicateId;("new"===n?i.newInventoryRole(e):o.detail(n).then(t.getResData)).then(function(n){a.role=n})}()},$onChanges:function(n){n.isTopTenant&&(a.permissionScopes=function(){var n=e.SCOPES.values();return _.reject(n,l)}())},STRINGS:i.STRINGS,helpLink:n.getUserGuideLink(i.STRINGS.LINKS.ROLES_INVENTORY),onSaveName:function(n){return r(i.saveInventoryRoleName(a.role,n))},cancel:i.list,save:function(){return r(i.saveInventoryRole(a.role))}})}n.$inject=["c8yBase","c8yPermissions","c8yRoles","c8yRolesUi","c8yDocs"],angular.module("c8y.roles").component("c8yRoleDetailInventory",{templateUrl:":::PLUGIN_PATH:::/detail/roleDetailInventory.html",bindings:{id:"<",duplicateId:"<",isTopTenant:"<",tabName:"<"},controllerAs:"vm",controller:n})}();
|
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
<c8y-breadcrumbs-set>
|
|
4
4
|
<c8y-breadcrumbs-item
|
|
5
|
-
path="#roles"
|
|
5
|
+
path="#roles/inventory_roles"
|
|
6
|
+
label="{{ vm.tabName }}"
|
|
7
|
+
></c8y-breadcrumbs-item>
|
|
8
|
+
<c8y-breadcrumbs-item
|
|
6
9
|
label="{{ 'Roles' | translate }}"
|
|
7
|
-
icon="c8y-users"
|
|
8
10
|
></c8y-breadcrumbs-item>
|
|
9
11
|
<c8y-breadcrumbs-item
|
|
10
|
-
|
|
11
|
-
label="{{ '
|
|
12
|
-
icon="insurance-agent"
|
|
12
|
+
icon="c8y-accounts"
|
|
13
|
+
label="{{ 'Accounts' | translate }}"
|
|
13
14
|
></c8y-breadcrumbs-item>
|
|
14
15
|
</c8y-breadcrumbs-set>
|
|
15
16
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(){function e(n,o){var t=this;_.assign(t,{remove:function(e){o.removeAfterConfirmation(e).then(function(){t.onRemove({role:e})})},duplicate:o.duplicate,edit:o.edit,isUndeletable:o.isUndeletable,$onInit:function(){o.canCreate().then(function(e){t.canCreate=e})}}),n.loadNext=function(){t.onLoadNext()},n.$watch("vm.roles.paging",function(e){t.roles&&(t.roles=t.roles.sort(function(e,n){return e.name.localeCompare(n.name,void 0,{numeric:!0})})),n.paging=e,_.forEach(t.roles,function(e){e.name=e.name&&_.trim(e.name),e.description=e.description&&_.trim(e.description)})})}e.$inject=["$scope","c8yRolesUi"],angular.module("c8y.roles").component("c8yRolesList",{templateUrl:":::PLUGIN_PATH:::/list/rolesList.html",bindings:{roles:"<",addRole:"&",onRemove:"&",helpText:"<",onLoadNext:"&"},controllerAs:"vm",controller:e})}();
|
|
1
|
+
"use strict";!function(){function e(n,o){var t=this;_.assign(t,{remove:function(e){o.removeAfterConfirmation(e).then(function(){t.onRemove({role:e})})},duplicate:o.duplicate,edit:o.edit,isUndeletable:o.isUndeletable,$onInit:function(){o.canCreate().then(function(e){t.canCreate=e})}}),n.loadNext=function(){t.onLoadNext()},n.$watch("vm.roles.paging",function(e){t.roles&&(t.roles=t.roles.sort(function(e,n){return e.name.localeCompare(n.name,void 0,{numeric:!0})})),n.paging=e,_.forEach(t.roles,function(e){e.name=e.name&&_.trim(e.name),e.description=e.description&&_.trim(e.description)})})}e.$inject=["$scope","c8yRolesUi"],angular.module("c8y.roles").component("c8yRolesList",{templateUrl:":::PLUGIN_PATH:::/list/rolesList.html",bindings:{tabName:"<",roles:"<",addRole:"&",onRemove:"&",helpText:"<",onLoadNext:"&"},controllerAs:"vm",controller:e})}();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(){function e(g,e,n){
|
|
1
|
+
"use strict";!function(){function e(g,e,n){v.$inject=["$rootScope","$location","$q","gettextCatalog","c8yBase","c8yTitle","c8yModal","c8yAlert","c8yRoles","c8yPermissions","c8yRolesUiStrings"],u.$inject=["$routeParams","c8yTenant"];var y="roles",b="roles/inventory_roles",R="".concat(y,"/global/:roleId"),w="".concat(y,"/inventory/:roleId"),t="c8y-users",o=g("Global roles"),a={priority:1e3,icon:"connected-people",template:"<c8y-roles-list tab-name=\"'".concat(o,'\' | translate" roles="vm.globalRoles" help-text="vm.globalHelpText" on-remove="vm.onRemove(role, vm.globalRoles)" add-role="vm.add(\'global\')" on-load-next="vm.loadNext(\'global\')"></c8y-roles-list>'),name:o,controller:"c8yRolesOverviewCtrl",controllerAs:"vm"},r=g("Inventory roles"),l={icon:"insurance-agent",template:"<c8y-roles-list tab-name=\"'".concat(r,'\' | translate" roles="vm.inventoryRoles" help-text="vm.inventoryHelpText" on-remove="vm.onRemove(role, vm.inventoryRoles)" add-role="vm.add(\'inventory\')" on-load-next="vm.loadNext(\'inventory\')"></c8y-roles-list>'),name:r,controller:"c8yRolesOverviewCtrl",controllerAs:"vm"},i={template:"<c8y-role-detail-global tab-name=\"'".concat(o,'\' | translate" id="vm.params.roleId" duplicate-id="vm.params.duplicate"></c8y-role-global-global>')},c={template:"<c8y-role-detail-inventory tab-name=\"'".concat(r,'\' | translate" id="vm.params.roleId" duplicate-id="vm.params.duplicate" is-top-tenant="vm.isTopTenant"></c8y-role-detail-inventory>')},s={controllerAs:"vm",controller:u};function u(e,n){var t=this;_.assign(t,{isTopTenant:!1,params:e}),n.isCurrentUserTopTenant().then(function(e){t.isTopTenant=e})}var T=["READ","ADMIN","CREATE","UPDATE"],E="ROLE_USER_MANAGEMENT_ADMIN",m=["ROLE_USER_MANAGEMENT_READ",E];function d(){e.when("/".concat(y),a),e.when("/".concat(y),l),e.when("/".concat(R),_.assign(i,s)),e.when("/".concat(w),_.assign(c,s))}function v(a,t,r,l,o,e,i,c,s,n,u){return{ROUTE_LIST:y,STRINGS:u,listGlobalPermissions:function(){return n.listGlobal().then(function(e){return _.filter(e,function(e){return _.includes(T,e.access)})})},list:m,setListTitle:function(){e.changeTitle({title:g("Roles")})},add:d,edit:function(e){var n=s.isGlobal(e)?R:w;return function(e,n){e=o.getId(e),n=n.replace(/:\w+/,e);return t.search("duplicate",null),t.path(n)}(e,n)},duplicate:function(e){d(s.isGlobal(e)?"global":"inventory",e.id)},removeAfterConfirmation:function(e){var n={title:g("Delete role"),body:l.getString('You are about to delete role "{{name}}". Do you want to proceed?',e),labels:{ok:g("Delete")},status:"danger"},n=i(n),t=_.partial(s.remove,e),o=_.partial(s.global.remove,e),e=s.isGlobal(e)?o:t;return n.then(e).then(function(){return c.success(g("Role deleted."))}).catch(function(e){var n=_.get(e,"status");return n&&(422===n?c.warning(g("Role cannot be deleted because it is assigned to users.")):(n=e,n=_.get(n,"data",n),a.$emit("alert",{type:"danger",text:$("<div/>").text(l.getString(n.message)).html(),detailedData:n}))),r.reject(e)})},canCreate:function(){return n.hasAnyRole([E])},newInventoryRole:function(e){var n=r.when({name:l.getString("New inventory role"),permissions:[]});e&&(n=s.detail(e).then(function(e){var e=e.data,n={};return n.name="".concat(e.name," 2"),n.permissions=_.map(e.permissions,function(e){return _.omit(e,["id"])}),n}));return n},saveInventoryRole:function(e){var n=r.when();e.id||(n=v(e,e.name).catch(h(e.name)));return n.then(_.partial(s.save,e)).then(function(){return c.success(g("Inventory role saved."))}).then(m)},saveInventoryRoleName:function(n,t){return v(n,t).then(function(){var e;return n.id?e=s.update({id:n.id,name:t}).then(function(e){return n.name=t,e}):n.name=t,e},h(t))},newGlobalRole:function(e){var n=r.when({name:l.getString("New global role")});e&&(n=s.global.detail(e).then(function(e){e=_.pick(e.data,["name","roles","applications"]);return e.name+=" 2",e}));return n},saveGlobalRole:function(n,t){return(n.id?function(){var e=a.$new(!0);return e.role=n,i({templateUrl:":::PLUGIN_PATH:::/detail/roleGlobalSaveConfirm.html",title:g("Confirm saving changes?"),scope:e})}():r.when()).then(function(){var e=r.when();return(e=n.id?e:f(n,n.name).catch(h(n.name))).then(_.partial(s.global.save,n))}).then(function(e){return s.global.updateRoles(e,t)}).then(function(){return c.success(g("Global role saved."))}).then(m)},saveGlobalRoleName:function(n,t){return f(n,t).then(function(){var e=r.when();return n.id?e=s.global.update({id:n.id,name:t}).then(function(e){return n.name=t,e}):n.name=t,e},h(t))},isUndeletable:function(e){return s.isGlobal(e)&&("admins"===_.lowerCase(e.name)||"devices"===_.lowerCase(e.name)||n.hasRole(e,"ROLE_NO_DELETE"))}};function m(){var e=new RegExp("\\/roles\\/inventory\\/(\\w+)"),e=t.path().match(e),e="/".concat(e?b:y);t.path(e),t.search("duplicate",null)}function d(e,n){e=("global"===e?R:w).replace(/:\w+/,"new");t.path(e),n&&t.search("duplicate",n)}function v(n,t){return s.list().then(function(e){return p(e,n,t)})}function p(e,n,t){e=_.filter(e,function(e){return e.id!==n.id});return _.some(e,{name:t})&&r.reject({duplicate:!0})}function h(n){return function(e){return _.get(e,"duplicate")&&c.danger(l.getString('There is already a role with the name "{{name}}"',{name:n})),r.reject()}}function f(n,t){return s.global.list().then(function(e){return p(e,n,t)})}}return{$get:v,init:function(){d(),n.addNavigation({name:g("Roles"),parent:g("Accounts"),routerLinkExact:!1,priority:4900,path:y,icon:t,showIfPermissions:{anyRole:m}})},hookViews:d}}e.$inject=["gettext","c8yViewsProvider","c8yNavigatorProvider"],angular.module("c8y.roles").provider("c8yRolesUi",e)}();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ownKeys(t,e){var r,n=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)),n}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(r),!0).forEach(function(e){_defineProperty(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function _defineProperty(e,t,r){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"==_typeof(e)?e:String(e)}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);r=r.call(e,t||"default");if("object"!=_typeof(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var r;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(r="Object"===(r=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _iterableToArrayLimit(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,s,
|
|
1
|
+
"use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ownKeys(t,e){var r,n=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)),n}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(r),!0).forEach(function(e){_defineProperty(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function _defineProperty(e,t,r){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"==_typeof(e)?e:String(e)}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);r=r.call(e,t||"default");if("object"!=_typeof(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var r;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(r="Object"===(r=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _iterableToArrayLimit(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,s,a=[],l=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(a.push(n.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=r.return&&(s=r.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}}function _arrayWithHoles(e){if(Array.isArray(e))return e}!function(){function e(e,t,r,n,o,i,s,a,l,c){var u=this,y=c("You cannot edit inventory roles for user with external origin, since it is managed via your authorization server.");function f(){t.listInventoryRoles(u.userId).then(r.getResData).then(function(e){u.assignedRoles=_.keyBy(e.inventoryAssignments,"managedObject")}),t.detail(u.userId).then(r.getResData).then(function(e){u.user=e,u.user.owner?t.listInventoryRoles(u.user.owner).then(r.getResData).then(function(e){u.ownerAssignedRoles=_.keyBy(e.inventoryAssignments,"managedObject"),_.isEmpty(u.ownerAssignedRoles)&&(u.displayNoOwnerRolesAlert=!0),u.failedToFetchOwnerInventoryRoles=!1}).catch(function(){u.failedToFetchOwnerInventoryRoles=!0}):u.failedToFetchOwnerInventoryRoles=!1})}function d(){f(),a.success(l.getPlural(p(),"Inventory role updated","Inventory roles updated",{}))}function p(){return _.filter(u.assignedRoles,"isModified").length}function g(e){var t="replace"===e.process,e=e.roles,r=_.map(u.assignedRoles);return n.copyUserRoles(e,r,u.userId,t).then(f).then(o.successUserRolesCopy)}_.assign(u,{$onInit:function(){t.detail(u.userId).then(r.getResData).then(function(e){return t.hasExternalOrigin(e)?s.isSsoClearingUserRolesOnEveryLogin().then(function(e){return u.disableEditForExternalUsers=e,u.disableEditForExternalUsers&&a.warning(y),u.disableEditForExternalUsers}):u.disableEditForExternalUsers=!1})},$onChange:function(e){e.user&&f()},onChangeRoles:function(e){var t=e.roles,e=e.managedObjectId;u.assignedRoles[e]=u.assignedRoles[e]||{},_.assign(u.assignedRoles[e],{managedObject:e,roles:t,isModified:!0}),u.assignedRoles=_objectSpread({},u.assignedRoles)},onSaveInventoryRoles:function(){n.onSaveInventoryRoles(u.userId,u.assignedRoles).then(d)},copyRoles:function(){o.copyFromUserDialog(u.userId).then(g)},loadAssignedRoles:f,isUnchanged:function(){return 0===p()},pageSize:20,scrollToTop:function(){var e=_slicedToArray(angular.element(document.querySelector("#inventory-roles-container")),1)[0];e&&e.scrollTo(0,0)},helpLink:i.getUserGuideLink(_.get(o.STRINGS,"LINKS.ROLES_INVENTORY")),stopEventPropagation:function(e){e.stopPropagation()},displayNoOwnerRolesAlert:!1,failedToFetchOwnerInventoryRoles:null,disableEditForExternalUsers:!1}),f()}e.$inject=["$q","c8yUser","c8yBase","c8yUserInventoryRoles","c8yUserRolesUi","c8yDocs","c8yLoginOptions","c8yAlert","gettextCatalog","gettext"],angular.module("c8y.userRoles").component("c8yUserInventoryRolesTab",{templateUrl:":::PLUGIN_PATH:::/inventoryRolesTab/inventoryRolesTab.html",controllerAs:"vm",controller:e,bindings:{userId:"<"}})}();
|
|
@@ -85,6 +85,7 @@
|
|
|
85
85
|
title="{{ 'Copy inventory roles from another user' | translate }}"
|
|
86
86
|
type="button"
|
|
87
87
|
ng-click="vm.copyRoles()"
|
|
88
|
+
ng-disabled="vm.disableEditForExternalUsers"
|
|
88
89
|
>
|
|
89
90
|
<i c8y-icon="clipboard"></i>
|
|
90
91
|
{{ 'Copy inventory roles from another user' | translate }}
|
|
@@ -164,7 +165,7 @@
|
|
|
164
165
|
class="btn btn-primary"
|
|
165
166
|
title="{{ 'Save' | translate }}"
|
|
166
167
|
type="submit"
|
|
167
|
-
ng-disabled="vm.isUnchanged()"
|
|
168
|
+
ng-disabled="vm.disableEditForExternalUsers || vm.isUnchanged()"
|
|
168
169
|
ng-click="vm.onSaveInventoryRoles()"
|
|
169
170
|
>
|
|
170
171
|
{{ 'Save' | translate }}
|